SSLとTLSの違いとTLS 1.2/1.3の壁

「SSL化してる?」とWEBサイトを持ってる人に質問すれば、大半は伝わると思います。
ところが「TLS化してる?」と質問した場合、伝わらない事が多いと思います。
どちらも暗号化通信技術としては同じなのですが、歴史を振り返ると今から25年以上前に遡ります。

SSL 1.0リリース前に脆弱性が発見され公開されず
SSL 2.01994年リリース
SSL 3.01995年リリース
TLS 1.01999年リリース
TLS 1.12006年リリース
TLS 1.22008年リリース
TLS 1.32018年リリース

このようにバージョンアップの過程で、SSLからTLSへと名称が変わったのです。 TLSになってからの方が歴史が長いのに、未だSSLと言われているのは不思議ですね。

SSLはSecure Sockets Layerの略称で、Netscape社が開発した暗号化通信プロトコルですが、セキュリティの脆弱性が見つかり、Netscape社では手に負えず、インターネット技術の標準化を推進する任意団体であるIETFに引き継がれました。このタイミングで、TLS(Transport Layer Security)に変わったのです。

SSL 3.0で指摘されたPOODLEの脆弱性を解決し、1999年にTLS 1.0がリリースされました。同時にSSL 3.0の使用は禁止されました。この時点でSSLの歴史は終止符を打ちました。

とはいえ、TLSに変更されても大枠の仕組みはSSLと大差はなく…

  1. クライアントからサーバーにSSL/TLS通信のリクエスト
  2. サーバーからクライアントに証明書と公開鍵が送られる
  3. クライアントは公開鍵を元に共通鍵を作りデータをサーバーに送る
  4. サーバーは秘密鍵と送られた共通鍵もとにデータを複合する

今となってはTLS 1.0/1.1も脆弱性が見つかり、主流となるのはTLS 1.2ですが、現在の最新バージョンはTLS 1.3です。 しかし、TLSのシェアは未だTLS 1.2が9割以上を占める割合と言われています。

では、なぜTLS 1.3の導入が進まないのでしょうか…?

TLS 1.3の導入が進まない理由

という見出しで入りましたが、セキュリティが強化された結果なので、これをデメリットと捉えるかメリットと捉えるかは個々の判断に委ねられます。

  1. ブラウザのサポートがまだ完璧に整っていない
  2. 安全でない暗号化アルゴリズムが使えなくなる(MD5、SHA1等)
  3. ミドルボックスを出入りするトラフィックが調査できない
  4. ネットワークセキュリティ製品はトラフィックの複合やコントロールができない

(1)(2)についてはWEBサイトを運用する過程で無視できない項目で、ブラウザの対応はだいぶ進んではきたものの、まだ古いブラウザを使っているユーザーを考慮すると、安易に導入できないのが実情です。(2)についてはパスワードなどの暗号化方式としてMD5やSHA1などを使われている場合に、AEADに実装を変更する必要があるため、それなりにコストがかかってしまいます。

(3)(4)については企業などのネットワーク機器に関連することで、セキュリティが強化されたことで監視したいデータまでも監視できなくなってしまう等の問題が発生します。

TLS 1.3のメリット

もちろん、メリットもあります。

  1. 初回通信時のパフォーマンスが向上する
  2. HTTP/3(QUIC)でも使われるようになる予定
  3. IoT等を意識したパフォーマンスが考えられている

挙げられるのは共通して、TLS 1.2よりも通信速度が向上するということです。

体感的な速度の変化は感じにくいかもしれませんが、長い目でみてTLS 1.3は脆弱性が見つからない限り歴史の長いプロトコルとなりそうです。

ブラウザ別の対応状況

最後にブラウザ別対応状況です。

iOS Safari 13.2 から、 Chrome 78, Firefox 70 からサポートされているので、最新環境では使えるようになり始めています。

でもiOSを考えると、まだiOS10以下のユーザーも結構いると思うので、TLS 1.3を本格的に導入するにはまだ早いような気がします。