iMessage 経由でメッセージを送信することは、iOS デバイスと Mac コンピュータの間で通信する一般的な方法です。毎日数千万件のメッセージが Apple のサーバーで処理されており、Apple に噛まれたデバイスの売上が伸びるにつれて、iMessage の人気も高まっています。しかし、メッセージが潜在的な攻撃者からどのように保護されるかについて考えたことがありますか?
Appleが最近リリースした DOKUMENT iOS のセキュリティについて説明します。 iOS で使用されるセキュリティ メカニズム (システム、データの暗号化と保護、アプリケーションのセキュリティ、ネットワーク通信、インターネット サービス、デバイスのセキュリティ) についてわかりやすく説明しています。セキュリティについて少し理解しており、英語に問題がない場合は、20 ページに iMessage を見つけることができます。そうでない場合は、iMessage のセキュリティの原則をできるだけ明確に説明しようとします。
メッセージ送信の基礎は暗号化です。一般の人にとって、これは、キーを使用してメッセージを暗号化し、受信者がこのキーを使用してメッセージを復号化する手順を連想することがよくあります。このようなキーは対称キーと呼ばれます。このプロセスの重要なポイントは、キーを受信者に渡すことです。攻撃者がそれを入手した場合、メッセージを復号化し、受信者になりすます可能性があります。わかりやすくするために、鍵が 1 つだけ収まる鍵付きの箱を想像してください。この鍵を使って箱の中身を出し入れできます。
幸いなことに、公開鍵と秘密鍵という 2 つの鍵を使用する非対称暗号化があります。原則として、誰もがあなたの公開鍵を知ることができますが、もちろんあなたの秘密鍵を知っているのはあなただけです。誰かがあなたにメッセージを送信したい場合、そのメッセージはあなたの公開鍵で暗号化されます。暗号化されたメッセージは、秘密キーを使用してのみ復号化できます。もう一度単純化してメールボックスを想像してみると、今度は 2 つのロックが付いています。公開キーを使用すると、誰でもロックを解除してコンテンツを挿入できますが、秘密キーを持っているユーザーだけがそれを選択できます。確かに、公開キーで暗号化されたメッセージは、この公開キーでは復号化できないことを付け加えておきます。
iMessage でのセキュリティの仕組み:
- iMessage がアクティブになると、デバイス上で 1280 つのキー ペアが生成されます。256b RSA はデータを暗号化し、XNUMXb ECDSA はデータが途中で改ざんされていないことを確認します。
- 2 つの公開キーは Apple のディレクトリ サービス (IDS) に送信されます。もちろん、2 つの秘密キーはデバイス上にのみ保存されたままになります。
- IDS では、公開キーは Apple プッシュ通知サービス (APN) の電話番号、電子メール、デバイス アドレスに関連付けられます。
- 誰かがあなたにメッセージを送信したい場合、相手のデバイスはあなたの公開キー (複数のデバイスで iMessage を使用している場合は複数の公開キー) と、IDS 内のデバイスの APN アドレスを見つけます。
- 彼は 128b AES を使用してメッセージを暗号化し、秘密キーで署名します。メッセージが複数のデバイスに届く場合、メッセージはデバイスごとに個別に Apple のサーバーに保存され、暗号化されます。
- タイムスタンプなどの一部のデータはまったく暗号化されません。
- すべての通信は TLS 経由で行われます。
- 長いメッセージと添付ファイルは、iCloud 上のランダムなキーで暗号化されます。このような各オブジェクトには独自の URI (サーバー上の何かのアドレス) があります。
- メッセージはすべてのデバイスに配信されると削除されます。少なくとも 7 つのデバイスに配信されなかった場合、サーバー上に XNUMX 日間残された後、削除されます。
この説明は複雑に思えるかもしれませんが、上の図を見れば原理が確実に理解できるでしょう。このようなセキュリティ システムの利点は、外部からブルート フォースによってのみ攻撃できることです。まあ、今のところは攻撃者が賢くなっているからです。
潜在的な脅威は Apple 自体にあります。これは、彼がキーのインフラストラクチャ全体を管理しているためで、理論的には、たとえば裁判所命令により、受信メッセージが復号化される可能性がある別のデバイス (公開キーと秘密キーの別のペア) をあなたのアカウントに割り当てることができます。しかし、ここでAppleはそのようなことはしていないし、今後も行うつもりはないと述べている。
そして、それは誰の前で暗号化されるのでしょうか?通常の SSL では不十分で、メッセージが Apple に送信され、Apple が SSL 経由でメッセージを再度ディスパッチするのでしょうか?いずれにせよ、Apple にはメッセージを盗聴する権限があるのに、なぜ周りが騒がしいのでしょうか?いずれにせよ、第三者によるメッセージの盗聴を防ぐだけの問題であり、そのためには SSL で十分です。
Apple が秘密鍵を送信しないと信じるなら、Apple も秘密鍵を読み取らないでしょう。いずれにしても、SSL はクライアントとサーバーの接続における非対称暗号化の実装にすぎません。
したがって、メッセージを SSL 経由で 2 回暗号化して送信し、Apple がそれを読み取ることができます。または、事前に公開キーを要求し、SSL の場合と同じ暗号を使用するため、メッセージを 2 回暗号化せずに送信しますが、理論上 Apple はメッセージを読み取ることができません。
そして、なぜ Apple でもデータが暗号化されているのでしょうか?なぜなら、一部の従業員が間違いなくそれらにアクセスできるからです。彼はガールフレンドに浮気されたので、彼女のメッセージをダウンロードし始めました。それが漏洩し、Apple は窮地に陥りました。
面白い叫び声..