メインコンテンツへスキップ

🗑️ TLS1.3で廃止された仕組みとその理由

🌱 はじめに

TLS1.3は「速く、安全でシンプル」なプロトコルを目指し、多くの古い暗号方式や仕組みを大胆に廃止しました。互換性のために残され続けてきた技術は、時代が進むにつれて脆弱性の温床となり、攻撃者に利用されるリスクが高まっていました。この記事では、TLS1.3で廃止された主な機能と、その背景をまとめます。


⏳ 歴史的経緯

  • TLS1.0〜1.2では「後方互換性」を重視し、多数の暗号スイートや鍵交換方式をサポート。

  • その結果、安全性が低い方式も生き残り続けた

  • しかしインターネット利用の爆発的拡大に伴い、「脆弱性を突かれたら即座に被害拡大」という状況になり、抜本的な見直しが必要になった。

TLS1.3では「安全ではないものは一切残さない」という方針が採られた。


🔐 廃止された主な暗号と仕組み

1. RSA鍵交換

  • 問題点

    • Forward Secrecyを保証できない(サーバー秘密鍵が漏れたら過去通信も解読可能)。

    • 実装によってはBleichenbacher攻撃などの脆弱性が存在。

  • TLS1.3での対応

    • ECDHE(楕円曲線Diffie-Hellman Ephemeral)のみ採用

    • セッションごとに一時的な鍵を生成し、Forward Secrecyを必須化。


2. CBC(Cipher Block Chaining)モード

  • 問題点

    • パディングオラクル攻撃(BEAST, Lucky13など)の対象。

    • 実装が複雑でバグが入りやすい。

  • TLS1.3での対応

    • AEAD(Authenticated Encryption with Associated Data)方式に一本化

    • AES-GCMやChaCha20-Poly1305のみをサポート。


3. SHA-1

  • 問題点

    • 衝突攻撃が実証され、証明書署名に不適。

    • 継続利用は攻撃者に偽造証明書作成の余地を与える。

  • TLS1.3での対応

    • SHA-256/384のみ使用可能


4. Static DH(固定Diffie-Hellman)

  • 問題点

    • 鍵が固定のためForward Secrecyが得られない。

  • TLS1.3での対応

    • Ephemeral DH/ECDH(使い捨て鍵)以外は廃止


5. 圧縮(TLS-level Compression)

  • 問題点

    • CRIME攻撃により機密情報(Cookieなど)が漏洩する可能性。

  • TLS1.3での対応

    • TLSレベルでの圧縮機能は完全に削除

    • 必要ならアプリケーション層(HTTP/2やHTTP/3)で圧縮を行う。


6. レガシーな暗号スイート

  • RC4, 3DES, IDEA, MD5を利用したスイートなどはすべて廃止。

  • 理由: 既に実用的な攻撃が可能で、安全性が保証できないため。


🛡️ 廃止によるメリット

  • 安全性の向上

    • 過去の脆弱性を突かれるリスクを排除。

  • 実装のシンプル化

    • 選択肢が減り、コードが整理される。

    • 実装者が「間違った暗号を選ぶ」リスクがなくなる。

  • 性能向上

    • AEAD方式(AES-GCM/ChaCha20-Poly1305)は並列化に強く、ハードウェア最適化済み。

TLS1.3の「大胆な断捨離」は、セキュリティとパフォーマンスの両立に直結した。


🎯 まとめ

TLS1.3で廃止された仕組みは、一見すると便利だったが脆弱性や運用負担を抱えていたものです。

  • RSA鍵交換、CBCモード、SHA-1、圧縮などはすべてリスクが高く不適切

  • Forward SecrecyとAEADに一本化することで、よりシンプルで安全な設計に進化

もし運用環境で古いTLSバージョンを有効のまま残していると、これらの危険な暗号がまだ使われてしまう。必ずTLS1.3または最低限TLS1.2に移行する必要がある。