Windows
email
PGP
暗号化
GnuPG
52
どのような問題がありますか?

この記事は最終更新日から3年以上が経過しています。

投稿日

更新日

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

前回の続き

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

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

新規登録して、もっと便利にQiitaを使ってみよう

  1. ユーザーやタグをフォローできます
  2. 便利な情報をストックできます
  3. 記事の編集提案をすることができます
ログインすると使える機能について
karkwind
自称、ネットワークエンジニア。無職。 ネットワーク中心のことをエントリーしたいと思います。

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
機械学習を発展させるための知識を発信しよう!
~
PHP強化月間~開発する上で知っておくべき知見を共有しよう~
~
52
どのような問題がありますか?
新規登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
新規登録ログイン
ストックするカテゴリー