\r\n\r\n
パスワードやサーバーのログイン情報など、機密情報をメールで送る必要があるけれど、悪意のある人に渡らないように安全に送る方法がわからない、ということはありませんか?
ここでは、PGPで暗号化されたメッセージやファイルを、一般的なgnupgツールで安全に転送する方法を学びます。さっそく、通信の安全性を確保する方法を学んでみましょう。
PGPを初めて耳にする方は、PGPの優れた入門書と解説をご覧ください。簡潔さのためにここでは説明しないさまざまな詳細が含まれています。まず、gnupgがインストールされていることを確認し、ターミナルで以下のコマンドを実行します。
gnupg --version現在動作しているgnupgのバージョン(v2+であること)が表示されれば、セットアップは完了で、次のセクションに進むことができます。そうでない場合は、以下のコマンドを実行して、gnupgをインストールします。
sudo apt-get install gnupg2完了したら、以下がインストールされていることを確認します。
gnupg -- versiongnupgが正しくインストールされていると仮定して、バージョン番号が表示されます。
非対称暗号化では、まず、公開鍵と秘密鍵からなるPGPキーペアを生成します。公開鍵は暗号化されたメッセージを受け取りたい人に自由に配布することができ、秘密鍵は安全な場所に保管されます。
そして、公開鍵でメッセージを暗号化して送信し、秘密鍵で復号化することができます。
gpg --generate-keyこの際、最初にお名前とメールアドレスをお伺いしますが、本名とメールアドレスである必要はありません。ただし、これは他の人がメッセージを暗号化する相手を選ぶときに見るものなので、他の人があなたを簡単に識別できるようにしてください。
次に、名前とメールアドレスの確認のためにOを入力すると、必要なパスワードの入力画面が表示されますので、好きなパスワードを入力してください。このパスワードは、送られてきたメッセージを復号化する際に毎回入力する必要があります。
パスワードの確認後、新しいPGPキーペアの生成が始まりますが、コンピュータから十分なエントロピー/ランダムデータを収集するために数分かかる場合があります。鍵の生成に成功したというメッセージが表示されるまで、数分間、端末から離れ、他のことをしてください。
鍵ペアが生成されたので、他の人に配布するために公開鍵をエクスポートする必要があります。ターミナルでコマンドを実行します。
gpg -a --export -e '[email protected]` > mykey.asc"[email protected] "でPGPキー生成時に提供されたメールアドレスを必ず変更してください。カレントディレクトリにmy-key.asc.というファイルができます。 このファイルを、暗号化したメールを送れるようにしたい人に送ります。
あなたが自分の公開鍵を他人と共有できるようになったのと同じように、他人も自分の公開鍵をあなたと共有するようになるのです。誰かの公開PGP鍵を受け取ったら、そのファイルをあるディレクトリに保存し、同じディレクトリからターミナルにアクセスして実行します。
gpg --import key.ascこれでその人の公開PGP鍵がgnupgにインポートされ、暗号化されたメッセージの送信が可能になります。現在gnupgで利用可能なすべてのPGP鍵の一覧は、いつでも以下のサイトで見ることができます。
gpg --list-keys以下のようなエントリーが表示され、gnupgの各キーに対して1つのエントリーが表示されます。
pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29] 8978168C4E79A08553E5789CD42A4A4EC1468CFE uid [ unknown] Matt Dizak <[email protected]>注意しなければならないのは、鍵の持ち主を明記した記入者の名前とメールアドレスだけです。メールを暗号化する場合、必要なのは受信者のメールアドレスだけです。
例えば、ウェブデザイナーに機密情報を送る必要がある場合、他是您已在电子邮件地址下导入的PGP密钥[email protected]。 必要なメッセージを入力し、テキストファイルなどに保存します。message.txtのディレクトリの中で、以下のコマンドを実行してください。
gpg -e -a -r '[email protected]' message.txt早速、上記のコマンドを分解してみましょう。
ほとんどの場合、この公開鍵で暗号化するかどうか確認されますので、Yキーをクリックするだけです。新しいmessage.txt.ascファイルが作成され、テキストエディタで開くと以下のような表示になります。
-----BEGIN PGP MESSAGE----- hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36 ..... -----END PGP MESSAGE-----これは、暗号化された状態で新たに生成されたメッセージです。このファイルを電子メールに添付するか、このファイルの内容を電子メールの本文にコピー&ペーストしてください。
受信者は、自分の秘密鍵を用いてメッセージを復号化することができるため、送信中にこのメッセージを見た人は、平文版を見ることができないようになっています。
上のセクションでは、テキストメッセージを暗号化する方法を説明しましたが、バイナリファイルの場合はどうでしょうか?基本的に同じように動作します。例えば、image.zipというファイルを暗号化するには、ターミナルで次のコマンドを実行します。
gpg -e -r '[email protected]' images.zip唯一の違いは、-aオプションが出力ファイル名とともに削除されることである。そして、先ほどと同じように、公開鍵の使用の確認を求められたら、Yキーを押すだけです。
image.zip.gpgというファイルが作成されます。これは暗号化されたzipファイルで、デザイナーに添付してメール送信することができます。そして、秘密鍵を用いてZIPファイルを復号化することができる。
また、送られてきたメッセージを解読する手段も必要です。誰かがあなたに暗号化されたメッセージを送るには、まずあなたの公開PGP鍵を相手と共有しなければならないことを忘れないでください。暗号化されたメッセージと同じように見える暗号化されたテキストブロックが渡されます(例)。
-----BEGIN PGP MESSAGE----- hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36 ..... -----END PGP MESSAGE-----このテキストブロックをファイル(例:message.asc)に保存し、ターミナルでコマンドを実行します。
gpg -d message.asc > message.txtPGPキーペアの生成時に入力したパスワードと同じものを入力するよう促されます。パスワードの入力に成功すると、message.txtは、平文形式のメッセージの復号化されたバージョンを含むファイルを作成します。以上です。
このガイドで、PGP暗号化で通信を適切に保護するために必要なすべてを学びました。PGPキーペアの生成方法、他者と共有する公開鍵のエクスポート方法、他者の公開鍵のインポート方法、メッセージの暗号化および復号化方法について学習しました。
今後、機密情報をメールで送信する必要がある場合でも、意図した相手だけにメッセージの内容を見せることができ、不要な客から遠ざけられるので安心です。暗号化おめでとうございます。