DP-3TプロトコルでHTTPSを使用する理由
特定のCOVID-19検出アプリでのHTTPSプロトコルの透過性について話し合っています。反対派は、HTTPSを使用するとアプリが難読化され、アプリは透過的に動作し、データが「匿名」であるため、送信内容を確認できるようにすべてのトラフィックをHTTP経由で送信する必要があると主張しています。
調査の結果、この部分は厳密にDP-3Tプロトコルに従っていることがわかりました。このプロトコルでは、「アプリはサーバーへの暗号化されたTLS接続を開き、認証コードを送信します[...]」と記載されています。彼らがプロトコル全体を読んでいないことは確かですが(私も読んでおらず、その一部だけです)、これを念頭に置いても、HTTPSを削除してプレーンHTTPを使い始めない理由はないと言い続けています。彼らはさらに進んで、それがプロトコルに現れる場合、それはひどく設計されていると述べています。
では、DP-3Tなどの匿名プロトコルでHTTPSを使用する理由は何でしょうか。
回答
TLS接続には、3つの重要で異なるプロパティがあります。
- プライバシー、つまり盗聴に対する保護
- 認証、通信する当事者が実際に彼らがなりすましている人であることを確認する
- 整合性。つまり、送信中にデータを変更することはできません。
対戦相手は最初の1つだけに反対しているようですが、他の2つはほとんどのアプリケーションにとって重要です。特にDP-3Tの場合、認証がないということは、アプリケーションがコードが正常に送信されたと見なしている間に、攻撃者が送信を傍受してドロップする可能性があることを意味します。
そして、より一般的には、最近のTLSは安価で、セットアップが簡単です。使用するのではなく、使用しないという非常に正当な理由が必要になります。実際、少なくともiOSの場合、アプリがトランスポートセキュリティを使用することが明示的に要求されており、例外を正当化する必要があります。
ワイヤレスネットワークを介して盗聴を行うことをいとわないサイバー犯罪者に加えて、今日の複雑なネットワークは通常、さまざまな目的のために多数のさまざまな監視ミドルボックスを搭載しています。これらのデバイスは、盗聴するだけでなく、送信されたデータを意図的または意図せずに任意の方法で変更する場合があります。
たとえば、ISPによってインストールされたDPI機器は、Webサイトの広告をISPの広告に置き換えるように設定できます。間違った方法で構成された場合、この機器は、モバイルアプリまたはWebサイトによって送信されるデータストリーム内のJavascriptまたはXMLコードの無関係な部分も置き換えます。
これはほんの一例です。
したがって、Webサイトとモバイルアプリの現在の脅威モデルは、暗号化されたHTTPSをトランスポートとして想定しているだけです。最近のHTTPSはセットアップがかなり簡単です。無料で提供され、不透明で複雑な脅威や潜在的なバグが多数排除されるため、運用の観点から、セットアップが簡単で信頼性が高くなります。
反対派は、HTTPSを使用するとアプリが難読化され、アプリは透過的に動作し、データが「匿名」であるため、送信内容を確認できるようにすべてのトラフィックをHTTP経由で送信する必要があると主張しています。
太字の「彼ら」は開発者ではなくエンドユーザーを指していると仮定します(開発者を指している場合、これはサーバー側のロギングなどの適切なデバッグ手法を使用しないという単純な問題であるためです) )。
現実的には、何人のエンドユーザーがWiresharkまたは同様のソフトウェアを実行する予定ですか?Wiresharkを実行するのに十分な技術的能力を備えたもののうち、HTTPSトラフィックが疑わしいと真剣に考える人はどれくらいいますか?これはおそらく世界で2番目に人気のある(レイヤー7)プロトコルであり(SMTPに続いて、私は想像する傾向があります)、あなたが言うように、DP-3Tプロトコルは明示的にその使用を必要とします。疑わしいと思う人は、そもそもWiresharkを使用するためのネットワークテクノロジーについて十分に知っている可能性は低いでしょう。私の意見では、セキュリティで保護されていないHTTPを使用すると、HTTPSを使用するよりも疑惑が生じる可能性が高くなります。
一方、さまざまな形式のステガノグラフィを使用して、暗号化されていないネットワークストリーム内のデータを非表示にすることは非常に可能です(この場合、DP-3Tで使用される「ランダムな」エフェメラルIDと称されるデータを非表示にすることにより、および/または、感染レポート用にアップロードされたときの秘密鍵。どちらもバイナリデータの不透明な塊であり、ユーザーが内省する意味のある構造はありません)。したがって、技術的なエンドユーザーがアプリのトラフィックを監視できるという事実は、とにかく信頼をもって実際にはそれほど役に立ちません。
いずれにせよ、私たちはそれをはっきりと見ることができます:
- これは、技術者以外のユーザーに何かを納得させるものではありません。
- 技術ユーザーにアプリが安全であると納得させるのに効果的である可能性は低く、アプリが安全でないか、少なくとも設計が不十分であると納得させる可能性があります。
- 他の複数の回答で説明されているように、TLSは機密性以外のことも行います。これにより、他の方法で実装のセキュリティが損なわれる可能性があります。
他の回答の優れた点に加えて、プライバシーが懸念されるデータのみを暗号化すると、これがプライバシーが懸念されるデータであることが敵に伝えられ、このデータの復号化に集中できます。
言い換えれば、プライバシーが唯一の懸念事項である場合でも、敵がどこを見ればよいかわからないように、すべてを暗号化する必要があります。つまり、該当する場合は、HTTPではなくHTTPSを使用します。
これが私が見つけた参考文献です。異なるプロトコルに関するものですが、基本的な考え方は同じです。電子メールの自己防衛:
メッセージを暗号化できるほど、優れています。電子メールをたまにしか暗号化しない場合、暗号化された各メッセージは監視システムの危険信号を発する可能性があります。電子メールのすべてまたはほとんどが暗号化されている場合、監視を行っている人々はどこから始めればよいのかわかりません。