コマンドラインなしの PGP 暗号化

PGP には強力であると同時に扱いにくいという評判があり、そのため今では多くの利用が、秘密鍵が決して行ってはならない場所、つまり AI チャットに鍵を貼り付ける形で行われています。本ガイドは、ブラウザ内でローカルに動く PGP スイート を使って、実際の利用のほぼすべてをカバーする四つの操作――ペアの生成、暗号化、復号、署名と検証――を順にたどり、それらが成り立つかどうかを決める衛生まで扱います。

秘密鍵をチャットボットに貼るのはやめましょう

それは予想できる瞬間に起こります。鍵がインポートできない、メッセージが復号できない、指紋が一致しない。すると一番早い方法は、秘密鍵も含めてブロック全体を AI チャットに貼り、何が悪いのか聞くことのように見えます。やめてください。秘密鍵がチャットに入った瞬間、それはあなたの管理を離れています。会話履歴に残るかもしれないし、ログに残るかもしれないし、後で共有するスクリーンショットに残るかもしれないし、使っているつもりだったものとは違うデバイスに残るかもしれません。貼り付けは取り消せません。自分の管理下にないシステムにコピーされた鍵は、漏えいしたものとして扱わなければならず、それは失効させて最初からやり直すということです――まさに、その貼り付けが避けたかった作業そのものです。

二つ目の問題は、最初よりも静かです。答えが間違っているかもしれないのです。言語モデルは鍵の取り扱いに関する一部の要求を拒否し、長い装甲ブロックを切り捨て、その中央を読み違えたうえで指紋や鍵 ID を完全な確信をもって述べることがあります。暗号は「あと少し」を許しません。代わりになるのは、コマンドライン自体が目的ではありません。素材が決して移動しない場所、つまりローカルで作業することです。それがこのサイトの PGP スイート の目的です。鍵の生成、暗号化、復号、署名、検証はブラウザのタブの中で実行され、何もアップロードされません。

PGP が実際に与えてくれるもの

PGP は、その現代的な形、すなわち GnuPG などのツールが実装する OpenPGP 標準としては、一つの鍵ペアの上に築かれた二つの操作です。公開鍵は誰とでも共有でき、印刷も、メールで送ることも、公開することもできます。秘密鍵は秘密に保たれ、パスフレーズで保護されます。公開鍵で暗号化されたものはすべて、対応する秘密鍵でしか復号できません。それが機密性の仕組みのすべてです。事前に交換する共有秘密はなく、守ろうとしているのと同じチャネルで合意するパスワードもありません。

署名は逆方向に働きます。あなたは秘密鍵で署名し、あなたの公開鍵を持つ人は誰でも、その署名がその秘密鍵の所有者によるものであり、署名された内容がそれ以来変わっていないことを検証できます。両者を一緒に使うと、暗号化は誰がこれを読めるのか?に答え、署名は誰がこれを書いたのか、そして無事か?に答えます。どちらも答えないのは誰が見ていたのか?です。この限界には後で戻ります。PGP がいつ適切な道具かを決めるのがそれだからです。

ペアを生成し、相手の鍵で暗号化する

信頼するマシンで鍵ペアを生成し、最初の 1 分から二つの半分を異なる扱いにしてください。公開の半分は名刺です。エクスポートし、あなたに手紙を書く可能性のある人に渡し、文通相手が見つけられる場所に置いてください。秘密の半分は、あなた宛てに暗号化されたすべてのメッセージへのマスター鍵であり、その居場所はオフラインです。復号するマシン上に置き、暗号化したバックアップを別のメディアに持ち、クラウドのメモにも、メールボックスにも、チャットにも置かないでください。生成の際には、どこでも再利用しないパスフレーズを選んでください。このサイトのパスワード生成ツールはローカルで長いパスフレーズを作ることができ、追い詰められて自分で考え出すよりましです。

暗号化は人々が想像するステップであり、最も単純なステップです。受信者の公開鍵を――信頼できる方法で入手したものを。下で扱う理由によります――取り、メッセージを書くかファイルを添付し、その鍵で暗号化します。出力は装甲ブロックで、その内容は対応する秘密鍵の所有者しか読めないため、通常のメールで送ることができます。一つ、はっきり述べておく価値のある帰結があります。自分の鍵にも暗号化しなければ、送ったものを後で読み返すことはできません。それは偶然ではなく、意図的に決めてください。

どの鍵が仕事をしたかに注目してください。暗号化するのは相手の公開鍵であり、自分のではありません。あなたの鍵ペアが重要になるのは、人々があなたに書くときと、あなたが署名するときです。相手のものが重要になるのは、あなたが相手に書くときです。初心者の混乱の大部分――そして失敗した最初の試みの大部分――は、この方向が逆になることであり、その後に誰も開けないメッセージが残ります。時には、それを受け取るはずだった人でさえ開けません。

届いたものを復号し、送るものに署名し、受け取ったものを検証する

復号は、秘密鍵がその保管規則に値する場所です。誰かが装甲ブロックや暗号化ファイルを送ってきます。あなたは秘密鍵でそれを開き、パスフレーズを入力し、内容をローカルで読みます。そのステップのどこにも、ネットワークも、サーバーも、アカウントも必要ありませんし、どれもあってはなりません。あるワークフローが、暗号化されたメッセージと秘密鍵をウェブサイトにアップロードして代わりに復号させようとするなら、そのワークフロー自体が脅威です。タブを閉じてください。

署名と検証はペアであり、検証は人々が省く半分です。あなたが作る署名は、受信者にこう伝えます。これはこの鍵の所有者から来たもので、変わっていない、と。あなたが検証する署名は、届いたものについて同じことを伝えます――ただしそれは、あなたが実際に確認し、かつ送信者のものだと信頼する公開鍵に対してのみ行った場合に限ります。検証の失敗は、クリックして通り過ぎる警告ではありません。それは三つのことのいずれかを意味します。署名後に内容が変わった、署名が壊れている、あるいは署名した鍵が期待したものではない。どれも同じ結末です。その内容に基づいて行動せず、別のチャネルで送信者に何が起きたのか尋ねてください。

ほとんどの日、鍵の衛生こそがセキュリティです

現実世界の PGP の失敗は、数学が破られることはめったにありません。それは、バックアップのない秘密鍵がノートパソコンと一緒に失われることです。フォーラムのアカウントから再利用されたパスフレーズです。会話の途中で失効した鍵で、文通相手が静かに平文へ戻ってしまうことです。実際に維持できる有効期限を設定してください――1 年から 2 年が一般的で妥当な選択です――そして更新日は、失効する週ではなく、鍵を生成したその日にカレンダーに入れてください。

失効証明書は鍵と同時に、必要になる前に生成し、バックアップと一緒に保管してください。失効証明書は、鍵が退役したか漏えいしたかを世界に伝える方法です。それを作るには秘密鍵が必要であり、それは悪い日にまさに持っていないかもしれないものなのです。パスフレーズ、バックアップ、失効証明書は地味ですが、事件と行き止まりの違いはそれらです。

最後に指紋です。鍵 ID は短く、何の証明にもなりません。指紋は公開鍵の長いハッシュであり、それを比較することが、自分の持つ鍵が文通相手の持つ鍵であることを知る方法です。別経路で比較してください――通話で読み上げる、相手から渡された名刺と照合する、相手が管理するページと照合する――鍵を届けたのと同じメールスレッドの中では行わないでください。メールで届き、その指紋も同じメッセージにあった鍵は、自分自身を検証したことになります。つまり、まったく検証されていないということです。

正直な限界と、別の道具を使うべきとき

PGP は内容を暗号化します。メタデータは隠しません。メールでは、送信者、受信者、時刻、そして通常は件名が、メッセージを運ぶサーバーから見えるままですし、暗号化ファイルのサイズも何かを語ります。また、PGP には 30 年にわたる使い勝手の歴史があります――鍵管理は一世代のユーザーを混乱させ、ツールが現代のメッセンジャーのように見えなくなることはありませんでした。そのどれもが PGP を無用にするわけではありません。それが PGP を具体的なものにします。中央アカウントも、間に立つベンダーもなく、鍵を管理できる人々の間で行う、非同期のファイルとメッセージの暗号化です。

日常の会話には Signal がより良い道具です。鍵はあなたの代わりに管理され、メタデータの扱いはより強力で、夕食前に指紋を比較する必要は誰にもありません。保存や転送のためにファイルを暗号化するには、age は PGP より単純で、誤用しにくい道具です。必要なのが署名だけのときにリリースや文書に署名するには、minisign はより小さく、より明確です。PGP に残された領域は現実のものです――何年も後まで読めなければならないメール、既存のインフラの中の署名、ツールと何十年にもわたる相互運用性――そしてその領域では、ここの PGP スイート は、仕事からコマンドラインを取り除きますが、その仕事に必要な注意は取り除きません。

よくある質問

ブラウザベースの PGP は安全ですか?

鍵素材がタブを離れることはありません。生成、暗号化、復号、署名はすべてブラウザ内でローカルに実行され、ページが何かをアップロードしたり保管したりすることはありません。とはいえ、ブラウザの信頼性は、それを実行するデバイスとブラウザ自体の信頼性までです――拡張機能、マルウェア、借りたマシンがその下にあります。日常の鍵については、そのトレードオフは妥当です。最もリスクの高い鍵――リリースや保管庫、他人のデータを守る鍵――については、オフラインのマシンを使い、ブラウザの道具は便利さのための仕事に留めてください。

秘密鍵やそのパスフレーズを失いました――誰か私のメッセージを復旧できますか?

できません。それが要点です。パスワードのリセットも、サポートデスクも、バックドアもありません。秘密の半分が失われた鍵や、パスフレーズを忘れた鍵で暗号化されたメッセージは、暗号化されたままです。あなたのために復旧できる人は、他の誰かのためにも復旧できることになります。だからこそ、衛生の節のバックアップと失効証明書が存在します――バックアップはデバイスを失っても生き延びる方法であり、失効証明書は、もう使えない、あるいはもう信頼しない鍵を退役させる方法です。

公開鍵が本当にその人のものだと、どうやって分かりますか?

指紋を第二のチャネルで比較してください。通話で声に出して読む、その人から渡された名刺と照合する、その人が管理するページと照合する、といった方法です。指紋は公開鍵の完全なハッシュです。両側で一致すれば、相手が持つ鍵と同じ鍵をあなたが持っています。鍵サーバーは何も証明しません――誰でも、任意の名前とメールアドレスを主張する鍵をアップロードでき、一覧に載ることは検証ではありません。どこからかダウンロードした鍵を、指紋によって別の場所で確認すること、それが目指すべき基準です。