インターネットを支える暗号化通信用の通信プロトコルTLSの新バージョン「TLS 1.3」が2018年8月に正式リリースされた。優れたプライバシー、セキュリティーおよびパフォーマンスを提供するために、前バージョンの「TLS 1.2」から大幅な仕様変更が図られている。
TLS 1.3の特徴
TLS 1.3の主な特徴は以下のとおりである。
- ハンドシェークの大幅見直し
- 暗号スイートの大幅見直し
- 0-RTTモードの追加
ハンドシェークの大幅見直し
ハンドシェークが、TLS 1.2から大幅に見直された。主な変更点は以下となる。
- ハンドシェークの可能な限り早い段階で暗号化通信を開始する。
- ハンドシェークのオーバヘッドを少なくする。
ServerHello以降のハンドシェークの早い段階で暗号化通信が行われるようになったことから、クライアント証明書の内容も暗号化されるようになった。ハンドシェークのオーバーヘッド削減により、基本的に1-RTTでハンドシェークが成立し、暗号化方式の合意が取れなかった場合のみ2-RTTになる。
暗号スイートの大幅見直し
暗号スイートについては、割り切りよく刷新されている。基本方針は以下の通り。
- 暗号化通信方式はPFSのみ可能
- 鍵交換は事前共有鍵交換(PSK)のみ可能。
- 暗号化方式は、認証コード付きの暗号化方式(AEAD)のみ可能。
結果として、暗号スイートとしては以下のみが使用可能となっている。※TLS 1.3では認証に関しては暗号スイートの概念から分離された。
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
0-RTTモードの追加
パフォーマンス確保のため、0-RTTモードが追加となった。前回の接続時の情報を使用して、ハンドシェークと同時に暗号化したデータを送信することによって、0-RTTを実現する。この接続方法は、0-RTTによる初回の接続を入手された場合に、リプライの攻撃を受けるという脆弱性があり、0-RTTを受け付ける場合は対策が必要になる。
その他のTLS 1.2からの主な変更点
その他、脆弱性が指摘されていたが、設定すれば使用可能であった以下の機能が、プロトコルとして使用不可となった。
- 再ネゴシエーション機能
- 圧縮機能
総括
現時点で判明している脆弱性のある方式を割り切りよく使用不可とし、脆弱性への対応がなされている新しい暗号化方式のみを使用可とした結果、難しい暗号化通信方式が意外にもシンプルな形に整理されたのではと感じた。TLS 1.3で暗号化通信方式の選択の基準となった、PFS、事前鍵共有による鍵交換、認証コード付き暗号がなぜ必要になったのかについてもしっかりと理解しておきたい。