OpenPGPって何だ?

SHIGEちゃんさん、す、すみません。
またまたヘルプです!

今度はどうされました?

取引先からメールのやり取りをOpenPGPでやりましょうって言われまして。
公開鍵渡すからよろしくってUSB渡されて、そのまま別の来客対応されてしまって、訳分からず帰ってきた次第でして。

ハハハ。
OpenPGPはメールやファイルのやり取りに使用されている暗号化技術です。
S/MIMEといった技術と並んでメールのエンド・ツー・エンドの暗号化では最も普及した方式の一つです。

だったら、私も聞いたことがあってもよさそうなものですが

実はどの方式もそれほど普及していないのが実情です。

メールに暗号化って必要なんですか?

メールは、実は送信の過程でいくつも盗み見できるポイントがあります。
なので暗号化はしたほうがよいに決まっていますが・・・

なぜ普及しないんですか?

どの方式も送信者と受信者の双方が対応しないといけないというのがネックになっています。

メールをやり取りする前に準備が必要だということですね。

そうですね。
元々、OpenPGPの元になったPGP(Pretty Good Privacy)というソフトウエアはライセンスの問題(現在は有償化)がありましたが、その後誰でも使えるような規格であるOpenPGPが作られ、GPLで利用できるGnuPGなどの実装に発展しました。認証局のコストがかかるS/MIMEなどと違いフリーで使えるのでもっと普及してもよさそうなものですが、ユーザーの必要性と個々で事前に準備する手間を天秤にかけるとなかなかハードルが高いようです。

というと、実際にはGnuPGを使用するんですか。

そうですね。
ネットでみるとGnuPGとOpenPGPは別物と書かれているものもありますが、OpenPGP規格に完全準拠したGPLの実装です。GPGとも呼ばれます。

私はWindows10で、メーラーはOutlook、先方はメーラーはThunderbirdを使用されていました。

GnuPGを使用するには、GUIインターフェイス、ThunderbirdやKmailやiPhone(iPad)用のiPGMailのようにOpenPGP機能が統合されて備え付けられているもの、メーラーのプラグインなど様々なものがあります。

先方はきっとThunderbirdのOpenPGP機能を使用しているのでしょう。きたピーさんはGunPGオフィシャルにインストール型の統合アプリケーションがあるので、これをダウンロードしてPCにインストールしましょう。

教えてください。

まずはGnuPGのホームページに行って、Gpg4winというアプリケーションをダウンロードしましょう。

Gpg4winのインストール(秘密鍵の作成)

  1. GunPGの公式サイトにアクセス
    https://www.gnupg.org/index.html
  1. 上部メニューから「Download」を選択、ダウンロードページにアクセス
  2. ページ中段にあるGpg4winのダウンロードリンクをクリック
  1. gpg4win.orgのページの上部にある緑のボタンで最新版のGpg4winをダウンロード
    ※ 「Donate(寄付)」の画面になりますが「$0」を選んでダウンロードしてOKです。(寄付できるならぜひ)
  1. ダウンロードした.exeファイルをダブルクリックし、インストールを開始します。
  1. 設定はデフォルトで問題ありません。必要に応じてカスタムセットアップを選択してください。インストールが完了すると証明書マネージャーの「Kleopatra」が起動します。
  1. 「New Key Pair」をクリックし、公開鍵と秘密鍵の鍵ペアを作成します。
  1. 開いたウインドウで「詳細設定」をクリックし、鍵の仕様を決めます。「RSA(互換性大)」の4096ビットまたは「EdDSA(Ed25519/強度大)」を選択するとよいでしょう。選んだら「OK]を押して戻ります。

できるだけ有効期限にもチェックを入れて設定しましょう。用途によって設定してください。有効期限は後から「Kleopatra」やコマンドラインから更新することができます。

  1. 自分の名前とメールアドレスを入力し、「Protect the generated key with a passphrase」チェックボックスにチェックを入れて「Create」をクリックし、鍵ペアを作成します。
  1. パスフレーズの入力ウインドウが表示されます。キーワードにあたる安全なパスフレーズを入力します。できる限り使いまわしをしないようにしてください。(確認用も同じパスフレーズを入力して、「OK」を押してください)
  1. しばらく待つと完了画面が表示されます。「Make a Backup Of Your Key Pair…」を押して秘密鍵をバックアップしておきます。他の二つのボタンは決して押さないでください。
  1. 「秘密鍵のエクスポート」ウインドウが表示されるので、ファイル名と保存先を選びます。
  2. パスフレーズの入力ウインドウが表示されるので、先程設定したパスフレーズを入力して保存してください。秘密鍵はUSBメモリなどローカルデバイスに大切に保管してください。
  3. 完了画面が表示され、自分の秘密鍵が作成されました。

OpenPGPは、一対一の鍵付き郵便のようなものです。送信相手に対になる公開鍵を渡さなければいけません。きたピーさんも先方と同じように、物理的な方法での受け渡しがいいと思います。
では、公開鍵のエクスポートの仕方について説明します。

Gpg4winのインストール(公開鍵のエクスポート)

  1. 先程の「Kleopatra」を開きます。
    ※「Kleopatra」はデフォルトの設定だとWindowsのタスクバーに常駐しています。
  2. 自分の鍵ペア(秘密鍵)がリストに表示されるので、該当する鍵ペアを選択し、リボンで「エクスポート」を押すか、該当する鍵ペアを選択し右クリックでメニューを開き、「エクスポート」を選択します。
  1. 「証明書をエクスポート」ウインドウが表示されるので、ファイル名と保存先を選びます。
  2. USBメモリなどの物理デバイスに保存し、相手に渡します。

なかなか手渡し難しいですよね。

その場合は、改ざんや盗聴などをされないようメールで送るなどした方がいいですね。
きたピーさんの場合は先方から公開鍵をもらってきているので、それを使って返信すればいいと思います。

あっ、なるほど!

では、早速その公開鍵をインポートしましょう。

PCへの公開鍵のインポート

  1. 交信先から受け取った公開鍵をダブルクリックします。
    「Kleopatra」が起動し、ポップアップウインドウが開きます。
    表示は英文ですが、公開鍵が正しいか確認しましょうとのことなので、信頼できる相手からの受け渡しなら「はい」をクリックしてください。
  1. 相手の証明書(公開鍵)について、相手のID、改ざん防止のための証明書のフィンガープリントが表示されます。
    ※ あらかじめ、電話や別メールでIDとフィンガープリントを確認しておくと安全です。
  2. IDとフィンガープリントがよければ、両チェックボックスにチェックを入れ、自分の秘密鍵で署名します。

秘密鍵を複数持っている場合は、「Certify with」のプルダウンで適切なものを選択してください。
下にある「上級」タブは開かないほうが無難です。


※ 複数の共有を想定し、「Certify for everyone to see(見る人みんなのために署名する)」を選択した場合、「Publish on keyserver afterwards(署名した後でサーバに送信する)」のチェックは必ず外しておいてください。さもないと、受け取った公開キーが、誰でも見ることができる公開鍵サーバーにアップロードされて、自由に検索されてしまいます。原則、公開した情報は消せませんので、必ずチェックを外してください。

  1. 自分の秘密鍵のパスフレーズを入力するポップアップが開いたら、自身のパスフレーズ正しく入力して「OK」を押してください。完了画面を確認し、「完了」を押してインポート完了です。

なんか、ちょっとおっかないですね。

赤文字で書いた署名時の注意だけ守ってください。
特段必要なければ「上級」は閉じたままにしておけば大丈夫です。

上級ですからね。
でも、フィンガープリントもよくわからない。

メールなどリモートでやり取りする場合は、フィンガープリントも別でやり取りしておいた方がよいでしょう。フィンガープリントは公開鍵ファイルのハッシュ値で、中身が改ざんされるとこの文字列も変わるので、改ざん防止のためにあります。

なるほど、鍵がニセモノだとも元も子もないですね。
今回は手渡しだから大丈夫だな。

手渡しでも、誤って違うファイルを渡された時のリスクヘッジにもなりますよ。

了解です。
とりあえず、無事インポートされたと。(ホッ)

一応、「Kleopatra」で確認してみましょう。

先方のIDとメールがリストにありますね。
自分の鍵は太字(BOLD)になっています。
User-ID’sの項目が「certified(認証済)」となっているのが分かります。
「not certified(未認証)」なら、失敗ですので、再度署名をやり直します。

うまくいってますね。

では、さっそくOutlookで使ってみましょう。
自身の公開鍵を相手に送りましょう。

えっと、Outlook開いて。。。

メッセージタブ(リボン)の右側に鍵のマーク(GpgOL)が新たに表示されていますね。

あっ、いつの間に。

クリックすると小さなプルダウンが開きます。
上が「署名」、下が「暗号化」の機能です。
有効だとアイコンの背景が暗転、クリックして有効無効を切り替えられます。

いつも有効化してた方がいいですか?

いや、必要な時だけ有効にしておいてください。
今回は両方有効にしましょう。

今回は私の公開鍵を送ります。

メールそのものを暗号化して送りましょう。
後で保存して取り回しやすいよう、添付ファイルを別で暗号化するのもありです。

アドレスに、本文と。。。メールにファイルを添付して。。。

先程の「GpgOL」が両方とも有効なのを確認して、「送信」してください。
秘密鍵のパスフレーズを入力するポップアップが開きますので、入力して「OK」を押してください。

おっ、行った。

これで先方に届いていると思います。

なんだか、大変ですね。

そうなんです。だから、安全で結構前からある技術なのに普及してないんですが。
テレワークの時代には必要かもしれませんね。

うわっ、さっそく返信来た。
見、見るのはどうやって?鍵マークついてますね。

普通に開けますが、パスフレーズ入力を求められる場合は、入力すれば中身が見られます。
さっきの右上の「GpgOL」の部分にセキュリティレベルが表示されています。

げげっ、添付ファイルが暗号化されている。

普通に拡張子が「gpg」なので、OpenPGPで暗号化されたファイルですね。
ローカルフォルダに一度保存しましょう。

デスクトップに置きました。

ダブルクリックしてファイルを開いてください。
「Kleopatra」が立ち上がり、出力(解凍)先とパスフレーズを求められますので、出力(解凍)先を選び、パスフレーズを入力してください。

暗号化ZIPみたいですね。

復号と検証が終わると100%になりますので、「すべて保存」を押して完了です。

おおっ、待望の発注書だ。
欲しかったんですよ、ノベルティ発注!

こういうセキュリティ面も、これからは取引先選びの条件になるのかもしれませんね。