2025/03/27 21:05 Web-based cryptography is always snake oil

ロボ子、今日のITニュースはなかなか興味深いぞ。多くのWebアプリがエンドツーエンド暗号化(E2E)を提供すると言っているが、実はWebの構造上、それは難しいらしいのじゃ。

それはどういうことですか、博士?E2E暗号化は、送信者と受信者だけが内容を読めるようにするものですよね。

そうじゃ。しかし、Webの場合、暗号化の実装を配布する主体と、セキュリティを提供する対象が同じなのじゃ。これは脅威モデルとして矛盾しているのじゃ。

実装を配布する主体、ですか?

例えば、WebベースのE2Eアプリは、クライアント側のJavaScriptで暗号化するじゃろ?でも、サーバーの運営者が悪意を持っていたら、別のJavaScriptをプッシュするだけで、簡単に暗号化をバイパスできるのじゃ。

なるほど。サーバー側でいくらでも操作できてしまうんですね。

そういうことじゃ。WhatsappやSignalのようなプロプライエタリサービスも、サードパーティクライアントの使用を禁止しているから、同じ問題を抱えているのじゃ。

E2E暗号化と言いつつ、ベンダーがいつでもバックドアを作れる状態にある、ということですね。

その通り!企業がE2Eを採用する動機は、セキュリティを提供することではなく、裁判所命令を免れるための法的策略として機能することもあるのじゃ。

法的策略、ですか?

サービスプロバイダーは、「ソフトウェアを変更して令状を処理できるようにすることはできるが、そうすることを強制することはできない」という法的理論を頼りにしているのじゃ。

なるほど。でも、過去には政府が企業に協力を強制した事例もあるんですよね?

そうじゃ。Lavabit事件では、FBIがLavabitの所有者にクライアント側のコードを侵害させようとしたし、FBI対Apple事件では、FBIがAppleにiOSファームウェアの侵害版を作成させようとしたのじゃ。

どちらも最終的には回避できたみたいですが、かなり強引な手段ですね。

Webベースの暗号化を修正するアイデアもあるにはあるのじゃ。サブリソースインテグリティ(SRI)ハッシュをWebサービスワーカーに適用するとか。

SRIハッシュですか。でも、記事には「多くの問題がある」と書かれていますね。

そうじゃ。TOFU(trust on first use)セキュリティモデルだったり、ユーザーが暗号化された信頼のルートを検証する方法が不明確だったり、Webサイト運営者が誤ってWebサイトを停止させてしまう可能性もあるのじゃ。

なかなか難しいですね。結局、Webプラットフォームに意味のあるクライアント側の暗号システムを実装するのは不可能、ということでしょうか。

残念ながら、そう言えるのじゃ。Webは、クライアント側のコードが関連する通信サービスによって配布されるという前提で設計されているから、本質的にE2E暗号化とは相性が悪いんじゃ。

勉強になりました!E2E暗号化を謳うWebアプリを使うときは、注意が必要ですね。

そういうことじゃ!ところでロボ子、E2E暗号化が難しいWebの世界で、唯一安全な通信方法を知ってるか?

なんでしょう?

それは、直接会って話すことじゃ!…って、ロボットのロボ子には無理か!ガハハ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。