2021/10/26追記、TCPLSの提案仕様がIETFに提出されました
https://www.ietf.org/archive/id/draft-piraux-tcpls-00.html
ルーヴァン・カトリック大学のFlorentin Rochet氏らによって「TCPLS: Closely Integrating TCP and TLS」という論文が出されています。
面白そうなのでかんたんにメモしておく。
詳しくは論文や文末記載の資料を御覧ください。
TCPLS
この論文では、TCPとTLSを連携させるTCPLSを考案しています。スタック図ではTCPとTLSがくっついてるようなものになりますが、くっついた新しいTCPLSというプロトコルというよりかは、TCPとTLSが連携して動作できるようにするイメージです。
ですので、飛び交うパケットとしては通常のTCPやTLSであり、通信経路上での対応が必要ということはなさそうです。
もともとTCPとTLSはレイヤが分かれていますが、論文では連携させる事による様々なメリットが示されています。
- TCPLSでは、TCP制御情報をTLS拡張やTLSレコードで送ることが出来ます。通常のTCPではオプション領域が40byteまでに制限されていたり、中間装置(ネットワーク機器)によって削除・改変される可能性があります。TCPLSでは長さの上限もなく、暗号的に保護されます。
- TCPの輻輳ウィンドウとTLSのレコード長を合わせることにより、パフォーマンスを向上させる
(アプリケーションデータはTLSレコードで送受信されます。)
その他
論文中ではTCPLSの、Happy eyeballs、Streams 、App-level Connection migrationなどにおいてもメリットについても紹介されている。また、機能面におけるQUICとの比較も行われている。
ユースケース
TCPLSではTCPレイヤの制御情報を安全にやりとりできるため、次のような仕様をより安全にできると述べている。
ここが本題であるわけだが、一旦詳細は論文を参照していただきつつ、余力があれば後日深堀りします。
参考資料
- 論文: https://dl.acm.org/doi/10.1145/3422604.3425947
- プロトタイプ実装: https://github.com/pluginized-protocols/picotcpls
- IETFでのスライド: https://datatracker.ietf.org/meeting/109/materials/slides-109-tcpm-tcpls-00
- HotNets 2020でのスライド: https://pluginized-protocols.org/images/tcpls-slides.pdf
なお、IETF109でも発表があったが、具体的に標準化をすすめるというよりかは、TFO, MPTCPでのユースケースについての理解を深めるためと発表者は述べている。