TLS1.0/1.1のリスクとTLS1.2へ移行するメリット

Google ChromeやMicrosoft Internet Explorerといった主要ブラウザは、セキュリティ強化のため2020年上半期からTLS1.0/1.1の接続無効化の対応を進めています。「TLS」は、ネットワークにおけるデータ暗号化の仕組みで、暗号化プロトコル「SSL」の後継規格として2000年前後に発足し、現在TLS1.3までリリースされています。TLS1.0/1.1を利用している場合、Webサイトに接続できなかったり、安全な通信ではないことを示す警告が出てしまったりするため、ユーザは正常にアクセスが出来なくなることが想定されます。自社サイトのユーザビリティやPV数を下げないためにも、サーバ管理者は早急にTLS1.2への移行を検討すべきでしょう。ここでは、TLS1.0/1.1を使い続けるリスクや、1.2へ移行した場合のメリットについて解説します。

TLSとは何か?

まずTLSの概要について解説します。冒頭でも述べたように、TLSはネットワークにおける暗号化プロトコルの一種です。正式名称は「Transport Layer Security」であり、暗号化プロトコルとして有名な「SSL(Secure Sockets Layer)」の後継規格として普及してきました。

SSLはバージョン3.0において致命的な脆弱性(POODLE)※1が見つかったことで使用できなくなり、その直接的な後継規格としてTLS1.0が開発されました。今でも「SSL」の方が一般に広く認知されているため、「SSL/TLS」と表記される場合が多いです。TLSは1999年に1.0、2006年に1.1、2008年に1.2、2018年に1.3がリリースされました。現在は1.0および1.1から1.2への完全移行が進む段階にあるといえます。

なぜ移行が進んでいるかというと、TLS1.0/1.1にも脆弱性が確認されているからです。ただし、SSL3.0のように一斉に無効化されるわけではなく、時間をかけて段階的に移行する動きが見られます。しかし、2020年上半期をめどに主要ブラウザ(Chrome、Edge、Internet Explorer、Firefox、Safari)で対応が終了となるため、TLS1.0/1.1を使用しているWebサイトはアクセス数が減少する可能性が高いでしょう。できるだけ早く、TLS1.2への移行対応が必要です。

※1   POODLE:SSL3.0に潜在する欠陥。適当なデータ列を暗号文として送り、パディング(不足桁数の”0”埋め)が不正である場合に発生するエラーや処理不実行を利用して、データ列が暗号文として適切かを調べる「パディングオラクル攻撃」によって暗号の一部を解読できる問題。

TLS1.0/1.1/1.2

では、TLS1.2へ移行すると、具体的に何が変わるのでしょうか。ここでは、TLSの各バージョンの特徴を整理していきます。

TLS各バージョンの特徴

TLS1.0

インターネットで使用される技術の標準化を推進する団体「IETF(The Internet Engineering Task Force)」が作成した、最初のTLSです。SSLサーバ証明書の署名に使われるハッシュ化アルゴリズムとして、160ビットのハッシュ値を生成する「SHA-1」を採用し、主にWindows XPで利用されていました。SSL3.0の実質的な後継規格で、内部バージョンはSSL3.1となっています。SSL3.0廃止の原因となった脆弱性「POODLE」が残っていることから、安全な暗号化プロトコルとは言えません。

TLS1.1

TLS1.0の後継規格で、サーバ証明書チェックに使われるハッシュ化アルゴリズムは同じく「SHA-1」です。CBCモード※2の脆弱性を利用した攻撃 (BEAST 攻撃等) への対応やAESの正式導入などにより、TLS1.0よりも強固なプロトコルになりました。しかし、2005年にSHA-1への効果的な攻撃方法が発見されてからは脆弱性が高まり、現在(2020年)はSHA-2を採用した暗号化プロトコルへの移行が推奨されています。

TLS1.2

ハッシュ化アルゴリズムとして、SHA-1よりも強固(ビット長が大きい)な「SHA-2 family (SHA-224・SHA-256 ・SHA-384・SHA-512) 」を採用しているため、TLS1.0/1.1よりも安全性は高いといえます。2019年時点で94%のWebサイトがTLS1.2に対応済みとなっており、すでに暗号化プロトコルとしてはスタンダードと呼べる存在です。

それぞれの違い

TLS1.0/1.1では、AESの導入やCBCモードの脆弱性対応といった進化が見られます。しかしSHA-1アルゴリズムの脆弱性は改善されていません。一方、TLS1.2では、ハッシュ化アルゴリズムとしてビット長が大きなSHA-2(デフォルトはSHA-256)を採用しており、SHA-1の脆弱性を克服しています。

※2  CBCモード:ブロック暗号のひとつで、1つ前の暗号文ブロックと平文ブロックをXOR(排他的論理和)で連鎖させながら暗号化するアルゴリズム。

TLS1.0/1.1を使い続けるリスクと1.2移行のメリット

このようにTLS1.0/1.1には脆弱性が残されており、1.2へ移行しない場合は、次のようなリスクが発生すると考えられます。

TLS1.0および1.1を使い続けるリスク

SHA-1の終息

暗号化のアルゴリズムとしての安全性が低下しており、電子署名の偽造が可能になるなどの脅威が存在している。暗号化のハッシュアルゴリズムとしては既に終息に向かっている状況で、SHA-2などのより安全なハッシュ関数への移行が推奨されている。

暗号化通信が不可能になる

Microsoftでは、2017年2月14日以降、SSLサーバ証明書についてSHA-1ハッシュアルゴリズムで生成されたものは受け入れ中止と発表しており、SHA-1でSSL通信が可能な環境が減っている。

Webサイトへのアクセス不可

主要ブラウザで2020年上半期をめどにTLS1.0/1.1での接続が無効化される。そのため、サーバ側でTLS1.0/1.1を使用し続けると、多くのユーザがWebサイトにアクセスできなくなる。

検索順位の低下

TLS1.2へ移行していないWebサイトは、脆弱性があるサイトとして、検索順位に悪影響が出る可能性が高い。

TLS1.2へ移行するメリット

2020年時点で、TLS1.3に対応できていないブラウザも多く、なおかつ1.0/1.1への対応を終了させるブラウザが大半を占めるため、事実上1.2のみが無風地帯となっています。したがって、現状使い勝手と安全性を両立した唯一の暗号化プロトコルといえるでしょう。実際に、iPhone・iPadに搭載されているiOSおよびOS XがTLS1.2を必須としており、モバイル端末からのアクセスを落とさずに済むことは間違いありません。

SSL/TLS脆弱性の確認方法

自社のサイトがTLS1.3に対応しているか、またTLS1.0/1.1を無効化できているか簡単に確認できる方法を紹介します。
Qualys社のSSL Labsが提供している「SSL Server Test」は、チェックしたいサイトのドメインを入力するだけでSSLサーバ証明書の信頼性や有効期限、設定状況、各SSL/TLSプロトコルの使用可能状況などを総合的に診断し、脆弱性が存在していないか確認することができます。
SSL Labs「SSL Server Test」https://www.ssllabs.com/ssltest/index.html

100点満点でスコアを算出し、A(A+,A,A-)〜Fの8段階で評価されます。
古いSSLやTLS1.0や1.1などの推奨されていないプロトコルが使用可能だったり、TLS1.2が使用不可となっていたりする場合は、脆弱性として警告が表示されます。その他にも、証明書の署名アルゴリズムがSHA-1を使用している場合や、既知の脆弱性に対する攻撃が可能になっている場合なども警告が表示されるため、もし脆弱性が発見された場合は早急に対応することをお勧めします。

●安全なサイトの場合

●脆弱性がある場合

●プロトコルへの対応状況
TLS1.0や1.1を利用可能な場合は「WEAK」として黄文字で表示され、SSL3などが利用可能な場合は「INSECURE」と赤文字で表示されます。

TLS1.2への移行方法

WebサイトをTLS1.2に対応させるには、Webサーバーの設定ファイルの記述を変更する必要があります。利用しているWebサーバーの環境によって設定ファイルが異なりますが、一般的な場合は以下のファイルで設定します。

  • Apache:httpd-ssl.conf(デフォルトの場合)
  • nginex:nginx.conf(デフォルトの場合)

そもそもEnterprise Linux 5以前・CentOS5以前といった古いOSは、OSの仕様上TLS1.2に対応ができないため、OSそのものからリプレイスをするか、プロキシを介するなどの対応が必要となります。しかしこれらのOSは既にサポートが終了しており、ベンダーによるセキュリティのアップデートも行われないため、悪意のある攻撃を受ける可能性がある危険な環境です。プロキシの利用などはあくまで暫定対策であり、可能な限り早急に新しいOSにリプレイスすることをお勧めいたします。

詳しい設定方法についてはWebサーバーの環境によって異なるため、以下などを参考にしてみてください。
IPA「TLS暗号設定 サーバ設定編」https://www.ipa.go.jp/security/ipg/documents/tls_server_config_20211203.pdf

また、Webの標準化に取り組む非営利団体であるMozillaが提供しているSSL Configuration Generatorを利用すれば、各環境におけるConfig記述例を参照することができます。「Modern」「Intermediate」「Old」の3つのレベルで出力することができますが、「Modern」はTLS1.3のみに対応する設定となっているので、TLS1.3に対応していないクライアントもまだまだ存在している現在では、「Intermediate」の設定が無難でしょう。「Old」はTLS1.0/1.1も有効にする設定となっているので避けるべきです。

Mozilla「SSL Configuration Generator」https://ssl-config.mozilla.org/

まとめ

本稿では、データ暗号化プロトコルTLS1.0/1.1/1.2の内容や違いについて解説してきました。TLS1.0/1.1は脆弱性が残されているうえ、SHA-1アルゴリズムに対する攻撃法が発見されており、安全な暗号化プロトコルではありません。また、そのまま使用し続けるとWebサイトのアクセス数や検索順位が落ちる可能性が高いといえます。できるだけ早期にTLS1.2環境への移行をすべきでしょう。利用しているサーバのOSが古い場合はTLS1.2に対応できないことがあるので、その際はOSのリプレイスも早急に検討する必要があります。どうしても難しい場合は、緊急避難的にプロキシサーバを経由することでTLS1.2に対応するという手段も検討してみましょう。

どうしてもすぐに移行できない場合は…

ベアケアでは、プロキシサーバを介すことでTLS1.2での通信を可能にする「SSLプロキシサービス」を提供しています。内容については下記リンクを、より詳しい情報についてはお気軽にお問い合わせくださいませ。

この記事をシェアする

ベアケアブログは、システムとその基盤となるITインフラのセキュリティリスクの軽減・安定稼働を支援するための情報をお届けします

タグ一覧