あどけない話

Internet technologies

[TLS][Haskell]TLS 1.3 開発日記 その13 TLS 1.3を遮断する中継装置

原因

  • TLS 1.3は、TLS 1.2と区別のつかないClient Helloを送る。拡張でバージョンが1.3だと教える。
  • TLSの実装は、知らない拡張は単に無視してエラーにしてはいけないという鉄則により、TLSのバージョンアップは順調にいくはずだと信じられていた。
  • BlueCoatは、サーバからのCertificateの中身を見て、中継するか否かを決めるらしい。
  • TLS 1.3を知らないBlueCoatには、Client HelloがTLS 1.2に見える。
  • しかし、サーバから戻って来たハンドシェイクは暗号化されているから中身が読めない。
  • TLS 1.2じゃない」と言って、コネクションを遮断。

考察

  • 世の中にはいろんな実装がある。はぁ。
  • Firefoxは、TLS 1.2にフォールバックするらしい。
  • ChromeでもTLS 1.2にフォールバックすれば一応問題解決。
  • しかし、TLS 1.2でも1.3でもうまくいくようにClient Helloは設計されているので、TLS 1.2にフォールバックするのは、なんだかなぁという感じ。
  • BlueCoatよ、早く直して。