Webブラウザーを始めインターネットのあらゆる場面で使われる暗号化技術「TLS」が変わろうとしている。TLS 1.3では、暗号化通信の高速化や暗号鍵の逐次更新によるセキュア化を図る。ユーザーにとってはメリットだが、TLSの通信を解析するセキュリティ機器の負荷が上がる諸刃の剣だ。

 策定中のTLS 1.3は、2017年7月3日にドラフト仕様のバージョン21が標準化団体IETFによって公開された。既にMozilla FirefoxやGoogle ChromeといったWebブラウザーや広く使われるTLSライブラリ「OpenSSL」などがドラフト仕様の実装を始めている。商用でも、2017年7月31日にイクシアコミュニケーションズが発表した「Active SSL」など、対応製品が出始めている。

 TLSは、以前は「SSL」という名称で知られた暗号化プロトコル。TCP/IPのネットワーク階層ではトランスポート層とアプリケーション層の境界で利用するプロトコルで、Webサーバーで使う「HTTP」は「HTTPS」、ファイル転送の「FTP」は「SFTP」など、さまざまなTCP/IPアプリケーションを暗号化できる。

 TLS 1.3は、(1)暗号通信を始める前の準備作業(ハンドシェイク)の効率化、(2)暗号強度の向上が主な改善点だ。

 (1)のハンドシェイク削減は、暗号化が始まるまでのクライアントとサーバーのやり取りの回数が半分以下になる。現行の最新バージョンであるTLS 1.2は、ハンドシェイクの完了までにクライアントとサーバーとの間で2往復のやり取りが発生する。1回目のやり取りでTLSのバージョンや暗号化方式を決め、2回目で暗号鍵を交換する。

TLS 1.2で暗号化通信を始めるまでのやり取り(ハンドシェイク)。ハンドシェイクが終わるまでにクライアントとサーバーとの間で2往復のやり取りが必要。WebブラウザーとWebサイトのやり取りをWiresharkで可視化した。
TLS 1.2で暗号化通信を始めるまでのやり取り(ハンドシェイク)。ハンドシェイクが終わるまでにクライアントとサーバーとの間で2往復のやり取りが必要。WebブラウザーとWebサイトのやり取りをWiresharkで可視化した。
[画像のクリックで拡大表示]

 TLS 1.3では、通常は1往復のハンドシェイクで暗号化が始まる。パケットの往復回数の削減は、遅延の大きい回線では体感速度の向上につながる。

TLS 1.3のハンドシェイク。1往復のやり取りでTLSによる暗号化が始まっている。TLS 1.3ドラフト仕様を有効にしたWebブラウザーとWebサイトのやり取りをWiresharkで可視化した。
TLS 1.3のハンドシェイク。1往復のやり取りでTLSによる暗号化が始まっている。TLS 1.3ドラフト仕様を有効にしたWebブラウザーとWebサイトのやり取りをWiresharkで可視化した。
[画像のクリックで拡大表示]

 さらに事前に暗号鍵の情報を共有しておく方式では、応答確認で暗号化データを含めたパケットを返せる。暗号化強度は通常のハンドシェイクに劣るものの、パケットが往復することなくTLSの暗号化を始められるようになる。