Appleのセキュリティと暗号化戦略は、iOSデバイスのデータのロックダウン方法から、iMessageやFaceTimeシステムがユーザーの通信を保護するために使用する暗号化キーをAppleが保有していないこと、そしてSecure Enclaveがユーザーの秘密を守る方法まで、最近大きな注目を集めています。しかし、10億人のユーザーを抱えるアプリベースのテキスト、ビデオ、音声サービスであるWhatsAppは、火曜日にエンドツーエンドの暗号化が利用可能になったというニュースで注目を集めました。
WhatsAppはAppleに対して、数本の足、いやおそらく一本か二本の腕で優位に立っている。AppleはiMessageとFaceTimeをこの状況から除外するように設計しているからだ。Appleも、2014年にFacebookに買収されたWhatsAppも、通信セッションのセキュリティ確保に使われる暗号鍵にアクセスできない。しかし、WhatsAppのアプローチとユーザーインターフェースはさらに先を進んでおり、Appleは検討すべきであり、もしかしたら既に業務に組み込んでいるかもしれない。
WhatsAppの移行の影響は広範囲に及ぶ。同社のアプリは主要モバイルプラットフォームのすべてと一部のマイナーモバイルプラットフォームで利用可能であり、独裁国家や新興民主主義国、そして表向きは長年自由が保たれてきた国々など、発展途上国では主力機種から低価格帯の機種まで幅広く利用されているからだ。iOSデバイスでも動作するものの、システムとしてはiMessageの競合相手となっている。
セキュリティリストを作成し、3回チェックを外す
電子フロンティア財団(EFF)は2014年に協力し、私が今でも定期的に参照しているメッセージングシステムのスコアカードを作成しました。このスコアカードはWhatsAppの最新の改善点も含め、常に最新の状態に保たれています。このガイドを作成したチームは、ユーザーが信頼できるかどうかを判断するための7つの基準を設定しました。
Skypeもその一つで、評価が低く、今でも笑ってしまうほどひどいシステムもあります。一見安全そうに見えますが、外部からの監視がほとんどなく、設計上の問題もほとんどないため、信頼できるかどうか判断するのは事実上不可能です。だからといってシステムが壊れているわけではありませんが、壊れているかどうかも、特定のセッションが不正に利用されていないかどうかも、私たちにはわかりません。
AppleはFaceTimeとiMessageで7点満点中5点を獲得し、十分な評価を得た。しかし、3月21日に発表されたジョンズ・ホプキンス大学のセキュリティ研究者による調査結果によると、もう1つのチェックマークは削除が遅れているようだ。Appleが評価した4つの正当な基準は、転送中の暗号化、プロバイダーが解読できない暗号化メッセージ、システムの動作に関する適切な文書化、そして結果が公開されているかどうかに関わらず、過去12ヶ月以内に外部監査が実施されていることである。(Googleはチャットとハングアウトのシステムでは全く良い評価を得ていない。)
Appleは3つの点で欠陥を抱えている。第一に、システム利用者が暗号化されたセッションを盗聴する者がいないことを独自に確認する方法がない。第二に、Appleは暗号化コードを外部からのレビューに公開していない。そして最後に、EFFは現在Appleにこのチェックマークを付けているものの、ジョンズ・ホプキンス大学の研究では、iMessageで過去の通信が暗号化された状態で記録された場合、利用可能な暗号鍵を使って後から復号できることが示されている。これは「前方秘匿性」と呼ばれる。(論文では、研究者らが「現在のiMessageユーザーが過去のトラフィックを復号される危険性のある、iMessage暗号化への能動的な攻撃」を実証したと述べている。)
WhatsAppの新しいアップデートは、Open Whisper Systemsの協力を得て改変されたコードに基づいており、このエコシステムにとって大きな前進であり、2つの点でAppleを凌駕しています。オープンソースコードに基づいているにもかかわらず、WhatsAppはまだその実装を他者が精査できるように公開していません。
これは、すべてのグリーンチェックマークを獲得し、さらには期待を上回るための競争なのでしょうか?もちろん、それがAppleの追い上げを促すのであれば、そうかもしれません。直接的な金銭的報酬は伴いませんが、ユーザーの安全を確保し、メッセージチェーンから完全に遮断するというAppleの目標に近づくことができます。これは、私たち全員に利益をもたらす、企業としての誇りを賭けた戦いです。
この場合、過去を忘れることは非難ではない
あらゆる暗号システムにおいて、前方秘匿性は極めて重要です。すべての関係者が定期的に使用することに合意した新しい鍵を作成し、古い鍵を破棄することで、たとえ2者以上が初めて会話を開始した瞬間から盗聴者がデータを吸い上げていたとしても、傍受された「暗号文」を解読することは極めて困難になります。
WhatsAppの実装では、メッセージごとに新しいキーが生成されます。同社が公開したホワイトペーパーには、「メッセージキーは送信されるメッセージごとに変更され、一時的なものであるため、メッセージの暗号化に使用されたメッセージキーは、メッセージの送受信後にセッション状態から復元することはできません」と記載されています。
Appleがシステム移行を行えない技術的な理由はなく、ジョンズ・ホプキンス大学の著者らもそれを強く推奨している。移行にはシステムの再構築が必要であり、論文ではその理由を広く列挙している。(そして繰り返しになるが、Appleは既にこの種の改善にかなり前から取り組んでいる可能性が高い。)
EFFのスコアカードではカバーされていない、少し関連のある側面があります。それは、暗号化されていないメッセージの記録がどこにどのように保存されるかということです。AppleはiOSデバイスからのiMessageの会話をiCloudバックアップの一部としてアーカイブしており、これを無効にする方法はありません。また、iOSデバイスからこれらの記録を削除するには、デバイスをワイプして復元する必要があります。iCloudバックアップははるかに簡単に暗号化されており、パスワードの取得やオフライン攻撃によってその内容を抽出できます。
WhatsAppはデフォルトではこの情報をデバイス外に保存しません。また、アプリ内で以前の会話を自由に消去できます。(iCloudベースのWhatsAppメッセージバックアップや他のプラットフォームでのバックアップを有効にすることもできます。)
私たちは本当に誰かをどれだけ知っているのか
最後に、WhatsAppでは、会話の参加者がシステム内に盗聴者がいないことを非常に簡単に確認できるようになっています。暗号化されたチャネルで適切に設計されたプロトコルを使用した中間者攻撃は、悪意のある者が事実上会話に割り込むことを必要とします。
アリスが紐のついたブリキ缶を持っているところを想像してみてください。紐はアリスの寝室の窓からツリーハウスを通り抜け、ボブの窓まで伸びています。ボブの窓にも、同じ紐のブリキ缶があります。紐をぴんと引っ張ると、二人は会話を始めます。ところが、ツリーハウスに座っているイヴは紐を切り、両端にブリキ缶をくっつけます。彼女はボブからアリスへ、アリスからボブへと伝えます。彼女はとても上手な物まね芸人です。
WhatsApp では、暗号化が有効になっており、傍受されているかどうかを確認できることが明記されています。
暗号の世界では、2者以上の当事者が互いの情報を確認することで安全に通信するセッション暗号化を、様々な方法で構築できます。クローズドシステムでは、プロバイダーは暗号署名とユーザー固有の情報を組み合わせることで、傍受を防止、ブロック、または通知することができます。しかし、この方法が欠陥や特権アクセスを持つ内部関係者によって回避された場合、ユーザーにはわかりません。
人がスキャンしたり読み取ったりできる形式のセキュリティ コードが画面に表示され、第三者が介入していないことを確認できるようになります。
WhatsAppが介入するのは、オプションの検証ステップを通じて、双方が相手側が同じセッション情報を持っていることを確認することです。盗聴者はインターネット上の厳選されたポイントで各方向に別々のセッションを作成できますが、ユーザーごとに固有の暗号化キーを偽造することはできません。
WhatsAppには様々なシグナルがあります。連絡先情報ページでは、相手がWhatsAppクライアントを最新版にアップデートしていて、接続可能かどうかが表示されます。セッションが開始されると、セッションが暗号化されていることをアプリが通知します。連絡先ページまたはセキュリティに関する注意書きをタップすると、セキュリティコードの確認画面が表示されます。この画面には、2次元QRコードと5桁ずつ60桁の数字が表示されます。
同じ場所にいる2人がコードをスキャンできます(どちらでも構いません)。電話機能を持っていない人や正しくない人は、コードをテキストとして読み上げることができます。前述の完璧な物まね芸人イヴとは異なり、誰かが数字を声に出して別の人に読み上げているのを、リアルタイムで、しかも相手と同じ声でオンデマンドで挿入することは事実上不可能です。
コードが一致しない場合は、何か問題が発生しています。間違ったコードが選択されたか(連絡先が間違っていたか、誰かが複数のアカウントを持っているか)、第三者が介入したかのいずれかです。Open Whisper Systemsのプリンシパルの一人であるMoxie Marlinspike氏に、このような状況ではどうすればよいか尋ねたところ、彼はTwitterでこう返答しました。「(キーが一致しない状況では)ユーザーが取れる唯一の手段は、そのチャネルでの通信を避けることです。」
もちろん、WhatsAppのエコシステムには問題のある側面が残っています。常に監査された外部情報がなければ、同社が政府の要請や悪意に応じてソフトウェアを改変していないことを確信することは不可能です。後者については推測することはできますが、前者については保証できません。
Apple、Google、その他のメッセージングプロバイダーは、WhatsApp の現在の高いハードルに着目し、それを上回るよう努力すべきだ。