Obfuscated TCP ( ObsTCP ) は、伝送制御プロトコル(TCP)上で日和見暗号化を実装するトランスポート層プロトコルの提案でした。これは、トランスポート層セキュリティ(TLS)よりも実装コストと複雑さが低く、インターネット上の TCP トラフィックの大量盗聴や悪意のある破損を防ぐように設計されています。2008 年 8 月、IETF はTCP オプションの提案を拒否し、代わりにアプリケーション層で行うことを示唆しました。[1]このプロジェクトは数か月後から非アクティブになっています。
2010 年 6 月には、 tcpcryptと呼ばれる別の提案が提出されました。これは、ObsTCP の目標の多くを共有しています。つまり、アプリケーションに対して透過的であること、日和見的であること、オーバーヘッドが低いことです。必要な設定はさらに少なくなります (DNS エントリや HTTP ヘッダーはありません)。ObsTCP とは異なり、tcpcrypt は、認証を実装し、中間者攻撃(MITM) を防ぐためのプリミティブをアプリケーションに提供します。[2]
歴史的起源
ObsTCP は Adam Langley によって作成されました。TCP 通信を日和見暗号化で難読化するという概念は、いくつかの反復を経て進化しました。ObsTCP の実験的な反復では、'SYN' パケットの TCP オプションを使用して ObsTCP のサポートを宣伝し、サーバーは 'SYNACK' で公開キーで応答しました。IETFドラフトプロトコルは 2008 年 7 月に初めて公開されました。パケットは Salsa20/8 [3]で暗号化され、MD5 チェックサムで署名されたパケットでした。[4]
現在の(第3の)反復では、基盤となるTCPプロトコルの動作を変更することなく、特別なDNSレコード(または帯域外方式)を使用してサポートとキーをアドバタイズします。[5]
暗号化機能
ObsTCP は、公開鍵証明書、証明機関のサービス、または複雑な公開鍵インフラストラクチャを必要とせずに TCP トラフィックを保護することを目的とした低コストのプロトコルです。中間者攻撃から保護するのではなく、暗号化されていないトラフィックを網羅する無指向の監視の使用を抑制することを目的としています。
このソフトウェアは現在、Salsa20/8 [3]ストリーム暗号とCurve25519 [6]楕円曲線Diffie Hellman関数をサポートしています。
TLS/SSL/HTTPSとの比較
接続の確立
ObsTCP を使用するサーバーは、公開キーとポート番号をアドバタイズします。
DNSの「A レコード」は、 ObsTCP のサーバー サポートを宣伝するために使用できます ( DNS の「CNAME レコード」で「フレンドリ」名を提供します)。代わりに、HTTP ヘッダー レコード、またはキャッシュされた/帯域外のキーセット情報も使用できます。
ObsTCP サーバーに接続するクライアントは、サーバーに接続してトラフィックを暗号化する前に、DNS エントリを解析し、HTTP ヘッダー レコードを使用するか、キャッシュされたデータや帯域外データを使用して公開キーとポート番号を取得します。
参照
- 機会主義的暗号化
- tcpcrypt (同様の目標を持つ新しい提案)
- トランスポート層セキュリティ(TLS、SSL とも呼ばれる)
- IPsec
参考文献
- ^ Adam Langley (2008-08-15)。「残念ですが、Obfuscated TCP は終了したと思います」。Obfuscated TCP 開発ブログ。
- ^ Andrea Bittau 他 (2010-08-13)。ユビキタスなトランスポートレベル暗号化のケース(PDF)。第 19 回 USENIX セキュリティシンポジウム。
- ^ ab "Snuffle 2005". cr.yp.to . 2009年5月8日閲覧。
- ^ Eddy, Wesley; Langley, Adam. 「TCP オプションに使用可能なスペースの拡張」。IETF。2015年 2 月 7 日閲覧。
- ^ 「Obfuscated TCP History」。Google。2008年10月2日。2009年1月8日時点のオリジナルよりアーカイブ。2009年5月8日閲覧。
- ^ 「Curve25519: 高速楕円曲線暗号」cr.yp.to。2009年5月8日閲覧。
- ^ 「難読化された TCP クライアント: Firefox」。Google。2009年 5 月 8 日閲覧。
- ^ 「ObsTCP トランスポート層を使用した ObsTCP のインストール」。Google。2009年 5 月 8 日閲覧。
