LoginSignup
79
54

More than 5 years have passed since last update.

PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ!~公開キー配布編~

Last updated at Posted at 2018-12-23

前回の続き

PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ! ~セットアップ編~ - Qiita」の続きです。
#いいねしていただいた方々に感謝いたします。

初めての方は、上記のサイトを参照していただけますようお願いいたします。

【お詫び】本当は、ファイル暗号化編を作っていた

本来であれば、ファイル暗号化編を作りたかったのですが、公開キーの配布方法を書いていなかったなと思い、書いていたら、かなりの量になってしまい、また体力がなくなってしまいましたorz
なので、今回は、公開キー配布編を解説したいと思います。

まず、公開キーを作る

相手に公開キーを渡さないと意味がありません。
なので、公開キーをエクスポートします。

Kleopatraを開き、自分のカギを右クリックして、Exportをする

gog01-1.png

適当な場所に保存する。

gpg02-2.png

その時、ファイル名は、デフォルトでもいいけど、適当に。

相手に公開キーを渡す

実は、これが一番難しい。
メールで送る際、相手がZIPパスワードをやり取りする仲であれば、特段問題ないんですが、以下のようなリスクがあります。

公開キーの入れ替えのリスク

実は、これが一番の問題です。
メール配送中に、別のキーにすり替わっている可能性があります。
いわゆる、中間者攻撃(Man-In-The-Middle attack)です。
具体的に書きますと、

  1. Aさんは、Bさん宛に公開キーをメールで送信する
  2. AさんとBさん間に、Cさんがその内容を読み取り、Aさん公開キーを改ざんして、Bさんに送るようにする
  3. Bさんは、改ざんされたAさんの公開キーで暗号して、Aさんにメールで送る
  4. Cさんは、改ざんされたAさんの秘密キーを持っているので、中身を見ることができる
  5. Cさんは、本当のAさんの公開キーを使って、再暗号化して、Aさんに送る
  6. Aさんは、盗まれていることに気がつかない

ただ、これには弱点がありまして、Bさんが署名をしていたら、再暗号化するときには、Bさんの秘密キーが必要です。
ただ、同じように、Bさんの公開キーを改ざんしてしまえば、意味なくなってしまいます。

さてどうすればいいのか?

本来であれば、直接交換が基本だけど…

本来であれば、直接、公開キーを交換するのがいいんだけど、それだと手間がかかる。
なので、メールの署名欄に、フィンガープリント(指紋)を普段から、書いておくことをお勧めします。
それでも、その指紋も改ざんされる可能性がありますが。

フィンガープリント(指紋)って?

まぁ~その名の通り、その公開キーの指紋です。
指紋が伝えられたものと、一致していれば、その公開キーは本人のものであると、証明ができます。
指紋が書いている場所は、右クリックを行い、詳細を選択。

gpg03-01.png

詳細画面に、「Fingerprint」とという項目があるので、その20バイト(16進数)が、指紋に当たります。

gpg04-02.png

それを信頼できる方法(直接伝えるのもよし、電話で伝えるもよし、FAXで伝えるのもよし)で相手に伝えればいいのです。

そうやって、お互いの公開キーを交換しましょう。

ほかにも、簡易キー配布所を作って、そこのURLを伝える

前に、「自分だけのPGP公開キー検索サイトを作ってみた - Qiita」みたいな、簡易的な公開キー配布所を作って、そこに公開キーを入れておくというのも手です。

そして、相手方には、メールアドレスと指紋を教えれば、改ざんは、より難しくなります。

もらった公開キーをインポートする

さて、公開キーをあげてばかりではなく、もらわないといけません。

ということで、相手方も、上記のリスクを念頭において、受け取ってください。

ダブルクリックすると、警告が出ます

受け取った、公開キーをダブルクリックすると、Kleopatraが立ち上がり、以下のようなダイアログが出ます。

gpg05.png

簡単に訳しますと、

上記でいっていたリスクがあるから、指紋は、電話や名刺や信頼されたサイトで確認しなさいよ。
実行してもいい?

って感じです。

もちろん、はいをクリックします。

検証証するユーザーID(メールアドレス)と、指紋の確認

以下の画面が出るので、ユーザーIDの確認と、フィンガープリント(指紋)の確認をしてください。

gpg06.png

特に指紋が同じかどうかは、正確に確認して、チェックを入れてください。

両方とも、チェックを入れたら、次へをクリックします。

自分の秘密キーでこの公開キーを署名する

次へをクリックしたら、以下の画面が出ます。

gpg07-02.png

署名をするには、秘密キーを持っている必要があります。
たいてい、1つしかありませんが、私のように複数ある場合もありますw
その人とメールのやり取りをする(公開キーの交換をした)ユーザーID(メールアドレス)を選択をしましょう。

そして、「自分自身のためだけに署名する」を選択しておきましょう。
別に、「見る人すべてに署名する」でもいいのですが、署名した証明書を後でサーバに送信するというチェックは外しておきましょう。
外しておかないと、もらった公開キーが、公開キーサーバーにアップロードされて、検索されてしまいます。

一般的な公開キーサーバー
PGP KEYSERVER
SKS Keyservers

しかも、残念なことに、一度公開されたら、消せない仕様になっています。
Revoke(無効)を送信することはできますが、メールアドレスそのもの情報は削除できません。
なので、公開キーを公開キーサーバーに公開するのは、控えたほうがいいでしょう。

署名をクリックしたら、パスワードを求められるので、自分のパスワードを入力する

署名をクリックすると、パスワードを求められるので、署名する、自分User-IDのパスワードを入力しましょう。

gpg08.png

署名が完了したら、以下の画面が出る

署名が完了したら、以下の画面が出ますので、完了をクリックしましょう。

gpg09.png

Kleopatraの鍵の一覧にインポートしたユーザーを確認する

Kleopatraの鍵の一覧にインポートしたユーザーがいることを確認してください。

gpg10.png

重要なのは、User-ID'sが「certified」になっていること。

自分が署名したことで、「認定」されました。

not certifiedになっていたら、右クリックして、「詳細」をクリックし、署名をクリックし、再度、署名作業を行ってください。

ということで

ここで、力尽きました…
続きが読みたい方は、いいね等シェアして、励ましていただけると助かります。

よろしくお願いいたします。

2019/04/25追記 やっとファイル添付編ができました

PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ! ~ファイル添付編~ - Qiita

よろしくお願いいたします。

79
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
79
54