メッセージングアプリの暗号化
Signal、WhatsApp、iMessageがエンドツーエンド暗号化で会話を保護する仕組みを学びます。
「メッセージングアプリの暗号化」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
エンドツーエンド暗号化とは
エンドツーエンド暗号化(E2E)とは、送信者のデバイスでメッセージを暗号化し、受信者のデバイスでのみ復号できる仕組みです。途中にあるサーバーは、メッセージングプラットフォーム自体も含めて、メッセージを読むことができません。
これは、以前のシステムからの大きな転換です。以前のシステムでは、プロバイダーが鍵を保持していたため、技術的にはすべてのメッセージを読むことができました。
Signal Protocol
WhatsApp、Signal、その他多くのアプリは、もともと Open Whisper Systems が開発した Signal Protocol を使用しています。このプロトコルは、Double Ratchet Algorithm や X3DH(Extended Triple Diffie-Hellman)鍵合意など、複数の暗号技術を組み合わせています。
このプロトコルは前方秘匿性を提供します。つまり、1つのセッション鍵が漏えいしても、過去のメッセージは安全に保たれます。
メッセージングにおける鍵交換
2者が安全に通信するには、ネットワーク経由で送信することなく共有秘密を合意する必要があります。Diffie-Hellman 鍵交換を使うと、公開チャネル上でも、2者がそれぞれ独立に同じ秘密を導出できます。
メッセージングアプリでは、新しい会話を開始するたびに、この処理が自動かつ透過的に行われます。
E2E がプライバシーにもたらす意味
エンドツーエンド暗号化では、メッセージはスマートフォンから送信される前に暗号文へ変換されます。サーバーに見えるのは、解釈できない暗号化データの塊だけです。
そのため、メッセージング企業が政府の召喚令状を受け取った場合やハッキングされた場合でも、会話の実際の内容は保護されます。
メタデータと内容のプライバシー
E2E 暗号化を使っていても、メタデータが常に保護されるとは限りません。プラットフォームは、誰と話したか、いつ話したか、どのくらいの頻度で話したか、どのくらいの時間話したかを把握できる場合があります。
Signal はメタデータの収集を最小限に抑えており、多くのサービスよりも一歩進んでいます。WhatsApp は内容を暗号化しますが、メタデータを親会社の Meta と共有しています。
Apple iMessage と E2E
Apple の iMessage は、送信者と受信者の両方が iMessage を有効にした Apple デバイスを使用している場合に、エンドツーエンド暗号化を使用します。メッセージは青い吹き出しで表示されます。SMS に切り替わると、メッセージは緑色で表示され、暗号化されません。
ただし Apple は iCloud バックアップの鍵を保持しています。そのため、iCloud に保存された iMessage のバックアップは、iCloud Advanced Data Protection を有効にしない限り、デフォルトではエンドツーエンド暗号化されません。
Telegram のハイブリッド方式
Telegram はハイブリッドモデルを採用しています。通常のチャットは、通信中および Telegram のサーバー上で保存されている間は暗号化されますが、鍵は Telegram が保持しているため、理論上は内容にアクセスできます。
Telegram で真のエンドツーエンド暗号化を使用するのは、MTProto プロトコルによる「Secret Chats」だけです。グループチャットとチャンネルは E2E 暗号化されません。
サーバーが E2E メッセージを読めない理由
E2E システムでは、鍵はユーザーのデバイス上で生成・保存され、サーバーには決して保存されません。サーバーはメッセージリレーとしてのみ機能し、暗号化されたパケットを一方のデバイスから別のデバイスへ中継します。
デバイス上の秘密鍵がなければ、膨大な計算資源を使っても、暗号文を復号することは計算量的に現実的ではありません。
保存時の暗号化と通信時の暗号化
通信時の暗号化は、TLS による Web サーバーへの接続の保護など、ネットワーク上を移動するデータを保護します。保存時の暗号化は、スマートフォンの暗号化ストレージなど、ディスクに保存されたデータを保護します。
真の E2E 暗号化はその両方をカバーします。メッセージは送信前に暗号化され、サーバーに保存されている間も暗号化されたままです。
鍵が漏えいした場合
攻撃者がデバイスと秘密鍵にアクセスできると、メッセージを復号できます。そのため、デバイスのセキュリティは暗号アルゴリズム自体と同じくらい重要です。
Signal Protocol の Double Ratchet はメッセージごとに新しい鍵を生成するため、1つの鍵が漏えいしても、過去または将来のメッセージが漏れることはありません。この性質を前方秘匿性および将来秘匿性と呼びます。
連絡先の確認:Safety Numbers
ほとんどの E2E メッセージングアプリでは、対面や電話などの帯域外の手段で「safety numbers」または「security codes」を比較し、正しい相手と話していることを確認できます。
Signal では、各会話に双方の公開鍵から構成された一意の safety number があります。両方のスマートフォンで番号が一致すれば、あなたと連絡先の間で MITM 攻撃は発生していません。
E2E 暗号化クイズ
エンドツーエンド暗号化についての理解度を確認しましょう。
要点:メッセージングの暗号化
エンドツーエンド暗号化は、Signal の Double Ratchet などのプロトコルを使い、送信者と受信者だけがメッセージを読めるようにします。内容が暗号化されていても、メタデータは見える場合があります。
デバイスのセキュリティは、E2E 保護における最後の重要な防衛線です。Signal のようにメタデータを最小限に抑えるアプリがある一方、Telegram のように真の E2E を利用するには Secret Chats を手動で有効にする必要があるアプリもあります。
よくある質問
「メッセージングアプリの暗号化」レッスンは無料ですか?
はい。「メッセージングアプリの暗号化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「メッセージングアプリの暗号化」で何を学びますか?
Signal、WhatsApp、iMessageがエンドツーエンド暗号化で会話を保護する仕組みを学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「メッセージングアプリの暗号化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- メッセージングアプリの暗号化
- 銀行が取引を保護する仕組み
- 暗号技術のないインターネット
- デジタルライフと暗号技術