Ghost in the Machines
On 9月 23, 2021 by adminGPG (GnuPG) ソフトウェアは、機密情報 (主にパスワード) を含むファイルを暗号化するために使用しています。 システム エンジニアとして、私はほとんどの作業をリモート サーバーで行い、コマンド ライン インターフェイスでアクセスします。 当然ながら、GPG のコマンドライン バージョンを使用して、ドキュメントを直接暗号化および解読する方が簡単だと思います。
GPG (GNU Privacy Guard) は、PGP (Pretty Good Privacy) 暗号化ソフトウェアの無料のオープンソース バージョンです。 概念的には、どちらも暗号化 (すなわち、暗号化と復号化) に同じアプローチを使用しています。
以下は、GPG コマンドラインツールをインストールする方法と、最も必要とされる基本的なコマンドのリストについての簡単な入門書です。 一方、GPG の機能 (電子メール通信の暗号化、または GUI テキスト エディタでの文書の暗号化など) にアクセスするためのグラフィカル ユーザー インターフェイス (GUI) を好む場合は、この記事の最後にあるリンクを参照してください。
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
GPG コマンドライン ツールを Mac にインストールする最も簡単な方法は、まず Homebrew (Mac にインストール可能なソフトウェア パッケージ数千を提供するパッケージ管理システム) をインストールすることです。
ターミナル ウィンドウ (アプリケーション > ユーティリティ メニュー) を開き、次のコマンドを入力します。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Quick How To
以下は GPG のコマンドライン使用に関する非常に短い紹介です。 これは「クイックリファレンス」または「カンニングペーパー」と考えてください。 あなたは、この投稿で説明されていることよりも確実に GPG について学ぶ必要があります。 これは、あなたが始めることだけを意図しています。 GPG をもっと広範囲に使用するつもりなら、より多くのドキュメントを読むことを強くお勧めします (以下のリンク セクションを参照)。
GPG は強力な暗号化ソフトウェアですが、いくつかの基本を理解すれば簡単に習得することもできます。 GPG は公開鍵暗号方式として知られている暗号化方式を使用しており、多くの利点と利益をもたらします。 しかし、これらの利点を得るためには、それをすべて機能させるための最小限の複雑さが必要です。 公開鍵暗号方式がどのように機能するかの概要については、暗号技術入門 (この投稿の最後にあるリンク) をお読みください。
コマンドで使用する表記規則:
以下のすべての例では、独自の値に置き換える必要があるテキスト (ユーザー名、電子メールアドレス、ファイル名など) を「灰色のイタリック」で表示しています。
"gray italic""black constant width"
GPG 鍵の作成:
GPG を始めるには、まず鍵ペアを作成する必要があります。 つまり、1つのコマンドで秘密鍵と公開鍵の両方を生成することになります。 プロンプトで名前と電子メールアドレスを入力しますが、それ以外はデフォルトのオプションを受け入れます。
gpg --gen-key
最初の鍵は、プライベート (または秘密) 鍵です。 この秘密鍵は常に安全に保管する必要があり、誰とも共有してはいけません。 秘密鍵はパスワードで保護されています。 パスワードはできるだけ長く、かつ忘れないものにしましょう。 パスワードを忘れると、復元する方法がありません。 同じ理由で、秘密鍵のバックアップコピーも作っておくとよいでしょう。 (Mac OS X では、バックアップに Time Machine を使用することを検討してください。)
2番目の鍵は公開鍵で、これは他の人と安全に共有できます。
秘密鍵と公開鍵の関係は、実際には非常に単純なものです。 公開鍵で暗号化されたものはすべて、関連する秘密鍵でのみ復号化できます。 したがって、あなたは自分の公開鍵を他の人に提供し、その人は自分の公開鍵をあなたに提供します。 あなたの公開鍵で暗号化されたものは、あなただけが復号化することができます。
公開鍵をエクスポートする:
次のステップは、公開鍵をエクスポートして、別の人と共有することです。
gpg --export --armor [email protected] > mypubkey.asc
他人の公開鍵をインポートする:
公開鍵をインポートする場合、一般に GPG の「キーリング」と呼ばれるものに入れることになります。「
gpg --import theirpubkey.asc
キーリング内の公開鍵を一覧表示する:
キーリング内の公開鍵の一覧と、各鍵に関連付けられた名前と電子メール・アドレスを表示できます。
gpg --list-keys
キーリング内の秘密鍵を一覧表示する:
次のコマンドはキーリング内の秘密鍵の一覧を表示します。
gpg --list-secret-keys
公開鍵を信頼する:
他人の公開鍵をインポートしたら、今度はその鍵の信頼レベルを設定する必要があります。
コマンドに相手の名前または電子メールを指定します。
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Useful GPG Commands
GPGには多くのオプションがありますが、そのほとんどは決して必要ないでしょう。 ここでは、必要となる可能性の高い最も便利なコマンドを簡単にリストアップします。
ファイルの暗号化:
ファイル名 filename.txt というファイルを 1 人の個人に対して暗号化するには、その個人を受信者に指定します。
gpg --encrypt --recipient glenn filename.txt
これにより、filename.txt.gpg という名前の新しい暗号化ファイルが作成されます。
自分自身だけが復号化できるようにファイルを暗号化する場合は、自分自身を受信者として指定します。
gpg --encrypt --recipient 'my_name' filename.txt
自分と他の人の両方が復号できるようにファイルを暗号化したい場合は、自分と他の人の両方を受信者として指定します。
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
あるグループのためにファイルを暗号化したい場合は、gpg.gpg でグループを定義して、そのグループに対して暗号化します。conf ファイル (以下のセクションを参照) でグループを定義し、そのグループを受信者として指定します。
gpg --encrypt --recipient journalists filename.txt
しばらくすると、もっと簡潔に、コマンドライン・オプションの短いバージョンを使いたくなるでしょう。 以下は同じコマンドです。
gpg -e -r journalists filename.txt
Decrypt a file to terminal (standard output):
このコマンドの最初のバージョンは、ターミナルウィンドウ自体の中にファイルの内容を表示します。
gpg --decrypt filename.txt.gpg
--decrypt
オプションはファイルが ASCII テキストファイルである場合のみ使用します。 バイナリファイルの場合は、--decrypt
オプションを省略すると、復号化されたファイルがディスクに書き込まれます。 この時点で、ファイルを表示するために使用されている任意のアプリケーションでバイナリファイルを開くことができます。
ディスクへのファイルの復号化:
ファイルが ASCII かバイナリかにかかわらず、暗号化ファイルの内容を変更したい場合は、まずファイルを復号化して変更を加え、その後ファイルを再暗号化しなければなりません。 前の段落で述べたように、コマンドの --decrypt
オプションを省略することにより、ファイルの復号化されたバージョンをディスクに書き込みます。
gpg filename.txt.gpg
暗号化ファイルの名前が filename.txt であった場合、そのファイルは復号化されます。
GPG設定ファイルに人のグループを作成する
利便性のために、GPG設定ファイルに人のグループをあらかじめ定義しておくことができます。 これには、グループの個々のメンバーを面倒な方法で指定するのではなく、受信者としてグループ名だけを指定して、グループのすべてのメンバーにファイルを暗号化できるという利点があります。
あなたの GPG ソフトウェア設定は、ホーム ディレクトリの ~/.gnupg/gpg.conf
ファイルに保存されます。 このファイルは、お気に入りのコマンド ライン テキスト エディタ (vim、nano、pico、emacs など) を使用して編集します。 設定ファイルには数多くの設定がありますが、グループの定義に関連するセクションに進みます。
グループを定義するとき、グループのメンバーをリストアップします。 各メンバーは、GPG キーリングで見つかった公開鍵のいくつかの属性によって参照されます。通常、人の名前 (または姓や名のような名前の一部) または電子メール アドレス (または電子メール アドレスの一部)です。
以下は、各人のファーストネームをリストした、「ジャーナリスト」という名前のグループの例です。
group journalists = glenn laura ewan barton
Where To Go From Here
GPGについてもっと学ぶことをお勧めします。 以下のリンクを参照してください。
また、コンピュータのハードドライブからファイルを消去する安全な方法についても学んでください。 Mac OS X では、Finder 内に「ゴミ箱を安全に空にする」オプションがあります。
コマンドラインで GPG を使用する方法を学ぶというテーマなので、「bcwipe」(コマンドライン内でファイルを安全に消去するプログラム)を試してみるのもよいでしょう。
brew install bcwipe
Links
General
- Introduction to Cryptography (PDF)
- GnuPG Software Website
- GnuPG on Wikipedia
- Homebrew (Mac OS X 用パッケージマネージャ)
GUI Tools
- GPG Suite (Mac OS X 用 GUI)
- Mac OS X での GPG Suite の使い方(電子フロンティア財団)
- Gpg4win (Windows 用 GUI)
- Windows での Gpg4Win の使い方(電子フロンティア財団)
コメントを残す