メールのPGP・GPG暗号化
GPGを設定してメールに署名・暗号化し、PGPのWeb of Trustモデルを理解します。
「メールのPGP・GPG暗号化」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
Phil ZimmermannとPGPの誕生
Phil Zimmermannは1991年にPretty Good Privacyを公開し、一般の人々が初めて強力な暗号化を利用できるようにしました。当時、暗号化は兵器として分類されていたため、米国政府は彼を輸出許可なしで兵器を輸出したとして捜査しました。事件は1996年に取り下げられ、PGPは個人のプライバシー技術における画期的な存在となりました。
PGPにおける公開鍵と秘密鍵のペア
PGPは公開鍵暗号方式を使用します。数学的に関連付けられた鍵ペアを生成し、公開鍵は自由に共有して他の人があなた宛てのメッセージを暗号化するために使用します。秘密鍵は秘密に保持し、それらのメッセージを復号するために使用します。秘密鍵を失うと、暗号化されたすべてのデータにアクセスできなくなります。
受信者へのメッセージの暗号化
誰かに暗号化したメールを送るには、その人の公開鍵を入手し、それを使ってメッセージを暗号化します。一致する秘密鍵を持つ人だけが、メッセージを復号して読むことができます。実際のPGPではハイブリッド暗号方式が使われます。まずランダムなセッション鍵で共通鍵暗号によってメッセージを暗号化し、その後、セッション鍵自体を受信者の公開鍵で暗号化します。
秘密鍵による署名
秘密鍵を使ってメッセージに署名することもできます。受信者は公開鍵で署名を検証し、メッセージが確かにあなたから送られたことと、内容が改ざんされていないことを確認できます。署名と暗号化は独立した操作であり、組み合わせることもできます。脅威モデルに応じて、通常は署名してから暗号化するか、暗号化してから署名します。
Web of Trustモデル
PGPは認証局に依存しません。その代わりに、個人同士が互いの公開鍵に署名して真正性を保証するWeb of Trustを使用します。AliceがBobを信頼しており、BobがCarolの鍵に署名している場合、AliceはCarolの鍵を間接的に信頼できます。このモデルは技術コミュニティではうまく機能しますが、一般ユーザー向けに信頼関係を構築するのは困難です。
GPG:無償の実装
GNU Privacy Guardは、一般にGPGまたはGnuPGと呼ばれる、OpenPGP標準の無償のオープンソース実装です。Linux、macOS、Windowsで動作し、コマンドラインインターフェースと、PGP機能をアプリケーションに組み込むためのライブラリの両方を提供します。GPGは現在、OpenPGP操作におけるデファクト標準のツールです。
初めてのGPG鍵ペアの生成
gpg --full-generate-keyを実行すると、アルゴリズム、鍵長、有効期限を選択する手順が表示されます。署名にはEd25519、暗号化にはCurve25519を選ぶのが現代的です。ディスク上の秘密鍵を保護するパスフレーズを設定する必要があります。生成処理では、十分なランダム性を確保するためにシステムの活動からエントロピーを収集します。
公開鍵のエクスポートと共有
鍵ペアを生成したら、gpg --armor --export your@email.comで公開鍵をエクスポートし、生成されたテキストブロックを共有します。受信者はgpg --importでそれをインポートします。公開鍵は、自分のWebサイトやメール署名、鍵サーバーに掲載できます。秘密鍵ファイルは決して共有しないでください。
鍵サーバーと鍵の検索
keys.openpgp.orgやkeyserver.ubuntu.comなどの鍵サーバーを使うと、公開鍵を公開したり検索したりできます。gpg --keyserver keys.openpgp.org --send-keys YOURKEYIDで鍵をアップロードします。現在のkeys.openpgp.orgでは、公開する前にメールアドレスの確認が必要です。そのため、他人のアドレス用に偽の鍵がアップロードされる問題を軽減できます。
GPG CLIによるファイルとメールの暗号化
ファイルを暗号化するには、gpg --encrypt --recipient recipient@email.com --armor file.txtを実行すると、file.txt.ascが生成されます。復号するには、gpg --decrypt file.txt.ascを実行します。メールの場合は、OpenPGPを標準でサポートするThunderbirdやEnigmailアドオンなどのツールが、GPGをメール作成画面に直接統合します。これにより、鍵の検索と暗号化が透過的に処理されます。
PGPの制限と使いやすさの課題
PGP暗号化はメッセージ本文を保護しますが、To、From、Subject、日付の各フィールドは平文のまま残ります。鍵管理は複雑で、ユーザーは受信者の鍵を見つけ、検証し、信頼しなければなりません。暗号化されたメールは、メールサーバーで検索やインデックス作成ができません。こうした使いやすさの障壁により、高いセキュリティ特性を備えているにもかかわらず、技術コミュニティ以外でのPGPの普及は限られています。
PGPの鍵の使い方
PGPを使って同僚に暗号化メールを送る場合、メッセージの暗号化にはどの鍵を使いますか?
PGPとGPG:重要なポイント
PGPは、公開鍵と秘密鍵のペアを使って、メールのエンドツーエンド暗号化とデジタル署名を提供します。GPGは、その無償のオープンソース実装です。中央集権型のCAの代わりにWeb of Trustを使用します。公開鍵は鍵サーバーで共有できますが、秘密鍵は強力なパスフレーズで保護する必要があります。使いやすさは、広く普及するうえで依然として最大の障壁です。
よくある質問
「メールのPGP・GPG暗号化」レッスンは無料ですか?
はい。「メールのPGP・GPG暗号化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「メールのPGP・GPG暗号化」で何を学びますか?
GPGを設定してメールに署名・暗号化し、PGPのWeb of Trustモデルを理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「メールのPGP・GPG暗号化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- メールが本質的に安全でない理由
- メールのPGP・GPG暗号化
- 企業メールにおけるS/MIME
- 現代のメッセージングにおけるエンドツーエンド暗号化