
脆弱性との終わりなき戦い!SSL/TLSのバージョンアップの歴史
はい、こんにちは!松井真也です。
シリーズ「毎日あなたが安全にウェブ利用できるスゴイ仕組み:SSL/TLS」の第3回でございます!
前回は、SSL/TLSが一体何を確保・保証するのかについて知りましたね!大きく3つあって、機密性・完全性・真正性でした。ようするに、盗聴と改ざんを防ぎ、通信相手が本物かを保証する仕組みです。セキュリティが重要視される昨今、ますます重要な技術です。
さて、今回はそのSSL/TLSのバージョンについてお話しします。脆弱性や攻撃方法が見つかっては対策するという「イタチごっご」がここでも展開されます!本気で脆弱性を探す専門家(や攻撃者)と、それに対策する専門家の激しい攻防戦より、セキュリティ技術は進化していきます。
その展開を見ていきましょう!

脆弱性との戦いとSSLとTLSの進化
SSLとTLSの技術は時間と共に進化してきました。その流れを時系列で追っていきましょう!
SSL1.0
初めに登場するはずだったSSL 1.0。設計したのは、ネットスケープコミュニケーションズ社(以下、ネスケ社)です。
しかし、その設計段階で大きな脆弱性が発見されたために公にはリリースされませんでした。なんだか今後の展開を予測させるような話ですね…。

SSL2.0
SSL 2.0は1994年にリリースされました!最初のバージョンが「2.0」って違和感ありありですが。ネスケ社がSSL1.0の脆弱性を修正して作成しました。
が、しかし。SSL 2.0が公開された当初、多くのセキュリティ問題が指摘されたようです。特に代表的な攻撃の一つは「ダウングレード攻撃」です。
この攻撃は、暗号化方式のネゴシエーション中に攻撃者が介入し、より低いセキュリティレベルのプロトコルを使わせるものです。これにより、本来可能なはずのより高いセキュリティのプロトコルではなく、より弱い暗号化方式を使用させられてしまいます。結果として、通信の機密性は脅かされます…。

SSL3.0
そこで、「ダウングレード攻撃」に対処するため、SSL 3.0が1995年にリリースされました!対応速いですね。
このバージョンは、長い間、広く使われてきました。「SSL」といえば「SSL 3.0」であり、特にウェブブラウザとウェブサーバ間の暗号化通信において、インターネットのセキュリティ基準として機能しました。
SSL 3.0が広く使われるようになった背景には、SSL 2.0に存在したセキュリティの脆弱性への対応がある一方で、新しいプロトコルとしての機能向上や互換性の提供もあったようです。これにより、セキュリティが強化され、より信頼性の高い通信が可能になりました。すばらしい。
しかし、隆盛を誇ったバージョンもいつかは終わりが来るものです。
2014年に「POODLE(Padding Oracle On Downgraded Legacy Encryption)攻撃」という攻撃法が発見されました。暗号ブロックのパディングの仕組みに付け入るものです。名前は無理やり「Poodle」になるようにしたな…という感じがしますねw。やることには、可愛げがないですけども。

この攻撃により、暗号化された通信の中で情報を盗み出すことが可能で、特にSSL 3.0が使用する暗号ブロックチェーンモード(CBC)が影響を受けました。
POODLE攻撃の発見により、SSL 3.0の使用は推奨されなくなり、より新しいTLSプロトコルへの移行が加速されました。
TLS1.0
TLS 1.0は1999年に登場しました。SSL3.0の後継という位置づけですが、POODLE攻撃の発見後…というわけではないことに注意です。このバージョンは、POODLE攻撃にも対応ができた仕様でした。
SSL 3.0からの多くの改善が加えられましたわけですが、公開から時間が経過する中で、いくつかのセキュリティ上の問題が指摘されました。
特に、BEAST(Browser Exploit Against SSL/TLS)攻撃など、特定の暗号化モードに対する脆弱性が発見されました(こっちの名称は可愛げがゼロですなw)。
TLS1.1
さらに、2006年にはTLS 1.1が導入されました。BEAST攻撃への対応が行われました。ただ、このバージョンも、もはや使用してはいけないという扱いです。
TLS1.2
TLS 1.2は2008年に公開され、SHA-256ハッシュアルゴリズムや認証付き暗号モードのサポートが追加されました。
TLS1.3
最新のTLS 1.3では、以前のバージョンに比べてさらに多くのセキュリティ強化が施されました。通信の速度も向上しています。
現代のインターネットセキュリティ環境では、TLS 1.2以上の使用が推奨されており、古いプロトコルのサポートを終了する動きも広がっています。これは、技術の進歩により古い暗号技術が解読されやすくなっているため、より新しい技術への移行が求められています。
はい、本日はここまで!今回は。SSL/TLSのバージョンの変遷についてご紹介しました。最後が駆け足になってしまってすみません。確実にセキュリティが上がってきたことは実感できたのではないかと思います!
次回は、暗号化方式の話にいきましょうか。では。