SSL/TLS 1.0 はいつまでに無効化しなければならないか?

はじめに

前回のコラムでは、PCI SSC が2015年12月18日に公開した、SSLおよび初期のTLSから安全なTLSへの移行期限の延長に関するプレスリリース[1]について、速報として概要を解説しました。今回は、プレスリリースと併せて公開された改訂内容について、より掘り下げて解説します。

改訂内容のおさらい

まず、前回のプレスリリースと併せて公開された告示 [2], [3] で示された改訂内容をおさらいしましょう。

  1. アクワイヤラ、プロセッサ、ゲートウェイ、およびサービスプロバイダを含む、処理業者および第三者の事業体すべては、2016年6月までに、TLS 1.1 以上のサービスを提供しなければならない
  2. すべての新しい実装は、PCI DSS v3.1に記載されている通り、TLS 1.1以上を有効にしなければならない
  3. すべての事業体は、2018年6月30日の発効日をもって、TLSの安全なバージョン(NISTによる定義に基づく)のみを使用しなければならない(以下の例外を除く)
  4. SSLおよび初期のTLSに対するすべての既知の攻撃の影響を受けないことが確認され、実証可能なリスクがないPOIターミナルにおいて使用されているSSL/TLS 1.0 は、PCI DSS v3.1に記載されている例外通り、2018年6月以降も使用することができる

この改訂内容の内、3.および4.は、これまでの移行期限日2016年6月30日が二年延長され2018年6月30日になった事を述べており、特に疑問となる点はないかと思います。

TLS 1.1を有効にする事が求められている対象はSSL/TLS 1.0 を無効にする必要もあるか?

一方、1.と2.を見ると、それぞれTLS 1.1 以上のサービスを「提供しなければならない(must provide)」、「有効にしなければならない(must be enabled)」とあります。では、それぞれ TLS 1.1 以上を提供、あるいは有効にするだけで、安全でないSSL および TLS 1.0 は無効にする必要がないのでしょうか?

まず1.と2.は、それぞれ適用される対象が異なる事に注意します。1. は、「アクワイヤラ、プロセッサ、ゲートウェイ、およびサービスプロバイダを含む、処理業者および第三者の事業体すべて」が対象であり、2. は「すべての新しい実装」が対象となっています。
次に 2. については「PCI DSS v3.1 に記載されている通り(Consistent with the existing language in PCI DSS v3.1)」という但し書きがある事に注意します。但し書きに従ってPCI DSS v3.1 を見ると、要件 2.2.3 の Note の箇所に、「Effective immediately, new implementations must not use SSL or early TLS.(猶予期間なしで直ちに、新しい実装は SSL または初期のTLSを使ってはならない)」という記述がある事から、「新しい実装(new implementations)」に対しては、TLS 1.1 以上を有効にするだけでなく、SSL/TLS 1.0 は無効にしなくてはならない事になります。この「新しい実装(new implementations)」とは具体的に何であるかについては、また後ほど解説します。
一方、1.については、このような但し書きがないので、SSL/TLS 1.0 を無効にする事までは求められていない事になります(2018年6月30日までは)。もちろん無効にして TLS 1.1 以上だけを提供しても問題ありません。なお、1.の記載では「2016年6月までに、TLS 1.1 以上のサービスを提供しなければならない」とあり日にちが曖昧ですが、プレスリリース[1] や告示[3] からリンクされている Webinar(Webcast) [4] の14:20辺りのスライドでは「30 June 2016」と記載があり、2016年6月30日までに TLS 1.1 以上を提供する必要がある事になります。

ここまでをまとめると、

  • アクワイヤラ、プロセッサ、ゲートウェイ、およびサービスプロバイダを含む、処理業者および第三者の事業体すべては、2016年6月30日までにTLS 1.1 以上でサービスを提供しなければならない。ただし、新しい実装を除き、2018年6月30日まではSSL/TLS 1.0 を無効にする事は求められていない。
  • すべての新しい実装は、TLS 1.1以上を有効にして、SSL/TLS 1.0 を無効にしなければならない。

という事になります。

「新しい実装」とは何か?

さて、それでは「新しい実装」とは具体的に何を指すのでしょうか?実は、以下で説明するように、新しいシステムを追加する場合でも「新しい実装」には該当しない場合があるのです。
「新しい実装」という言葉の意味は、PCI SSC から公開されている文書 INFORMATION SUPPLEMENT Migrating from SSL and Early TLSのp.3「Understanding “new” and “existing” implementations」で詳しく説明されています。少々長くなりますが、以下に意訳して引用します。

実装は、脆弱なプロトコルの利用に対する依存が無い時、「新しい実装」と見なされる。「新しい」実装と考えられる例として、以下のものが挙げられる:
 ・現在、安全なプロトコルのみ使用している環境に、システムをインストールする事
 ・現在、安全なプロトコルのみ使用しているシステムに、アプリケーションをインストールする事
 ・安全なプロトコルをサポートする他のシステム/ネットワークと通信する新しいシステム、またはネットワークを構築する事
もしも新しい実装が、既存の脆弱なプロトコルをサポートする必要がないのであれば、それは安全なプロトコルと強力な暗号化のみを使い、脆弱なプロトコルにフォールバックしないよう設定しなくてはならない。

注記 : 新しい e-コマースサービスを実装する場合、消費者ユーザの利用する web ブラウザは、サポートする必要のある既存の脆弱なインフラと見なしてはならない。

反対に「既存の」実装とは、以前から存在する脆弱なプロトコルへの依存や利用がある場合を指す。「既存の」実装と考えられる例として、以下のものが挙げられる:
 ・現在、脆弱なプロトコルを利用している、かつ/または脆弱なプロトコルをサポートする必要がある環境に、システムをインストールする事
 ・現在、脆弱なプロトコルを利用している、かつ/または脆弱なプロトコルをサポートする必要があるシステムに、アプリケーションをインストールする事
 ・現在、脆弱なプロトコルを利用しているシステム/ネットワークと通信する新しいシステム、またはネットワークを構築する事

なお、SSL/初期のTLSを利用し続ける事は環境にリスクをもたらすため、既存の実装は速やかにアップグレードする事を推奨する。

いくつかポイントとなる点を挙げると、

  • 「実装」には、システムを追加する事やアプリケーションをインストールする事、また他のシステム/ネットワークと通信する新しいシステムやネットワークを構築する事が含まれる。
  • 追加するシステムが、以前から存在しているSSL/TLS 1.0を利用するシステムと通信する必要がある場合は、それは「既存の実装」となる。ただし、この通信する必要がある相手として、エンドユーザのWebブラウザは除外しなくてはならない。
  • 上記以外の場合、すなわち以前から存在しているSSL/TLS 1.0を利用するシステムと通信する必要がない場合は「新しい実装」となる。

といった所でしょうか。
従って、新しいシステムを追加する場合であっても、既存の SSL/TLS 1.0 を利用しているシステムと通信する必要があるのであれば、そのシステムについて 2018年6月30日まではSSL/TLS 1.0 を無効にしなくても良いという事になります。(ただし、エンドユーザのWebブラウザは、既存のSSL/TLS 1.0 を利用しているシステムとは見なせません)

これは良く考えれば合理的な定義です。既存のモノはともかく、新しく作るモノでも SSL/TLS 1.0 を利用しているようでは TLS 1.1 以上への移行も遅々として進みませんから、基本的には新しく作るモノについてはTLS 1.1 以上を使うべきです。しかしながら、新しいシステムが既存のSSL/TLS 1.0 を利用するシステムと通信する必要があるような場合でもSSL/TLS 1.0 を使ってはならない、という事になると、既存システム側でも少なくともTLS 1.1 以上を有効にする必要が出て来てしまいます。そこで、このようなケースについては、新しいシステムであってもSSL/TLS 1.0をすぐには無効化しなくてもいいですよ、という事にしているのだと思われます。

まとめ

PCI SSC が公開したSSLおよび初期のTLSから安全なTLSへの移行期限の延長に関する改訂内容について、前回より掘り下げて解説しました。ここまでの内容を踏まえて、最後に本コラムのタイトルである「SSL/TLS 1.0 はいつまでに無効化しなければならないか?」についてまとめましょう。

  • 遅くとも 2018年6月30日までには、全てのSSL/TLS 1.0を無効化する必要がある。
    (改訂内容4.で記載された特定環境のPOIターミナルが唯一の例外)
  • 「新しい実装」については、ただちに無効化が必要。
    ここで「新しい実装」とは、既存のSSL/TLS 1.0を利用しているシステム/ネットワークと通信する必要がない、新しいシステム、アプリケーション、ネットワークなどの事。
  • なお、アクワイヤラ、プロセッサ、ゲートウェイ、およびサービスプロバイダを含む、処理業者および第三者の事業体すべては、既存の実装についてSSL/TLS 1.0 の即時無効化は求められていないが、2016年6月30日までにTLS 1.1 以上でサービスを提供しなければならない。

SSL/TLS 1.0の即時無効化が求められている「新しい実装」は、文言から想起される素朴な意味とはいささか異なっており、新しいシステムを追加する場合であっても、2018年6月末まではSSL/TLS 1.0 を利用できる可能性があります。しかしながら同時に、そのようなシステムに対してTLS 1.1 以上への速やかな移行が推奨されている事も心に留めておくべきでしょう。

SSL/TLS 1.0 からの新しい移行タイムライン

SSL/TLS 1.0 からの新しい移行タイムライン

※サービスプロバイダ等は、2016年6月30日までにTLS 1.1 以上でサービスを提供する事が求められる。

免責事項

  • 本文書の転載・加工・再配布はご遠慮ください。
  • 本文書を使用することによっていかなる損害が生じようとも、当社は一切責任を負いません。
  • 本文書は、PCI Security Standards Council (PCI SSC)によって公開された文書をNTTデータ先端技術株式会社によって解釈、抄訳したものをベースとした弊社独自の文書であり、PCI SSC による見解や解釈を正式に示すものではありません。
  • 文書の内容に関してPCI SSCへのお問い合わせはご遠慮ください。
    お問合せは、以下の連絡先までお願いいたします。
    NTTデータ先端技術株式会社
    E-mail: pci@intellilink.co.jp  TEL: 03-5859-5428

参考リソース

  • [4] Webinar: Migrating from SSL and Early TLS
    http://info.pcisecuritystandards.org/webinar-migrating-from-ssl-early-tls

Writer Profile

セキュリティ事業部
セキュリティコンサルティング担当 チーフコンサルタント
佐藤 功視(CISSP、QSA)


SSL/TLS 1.0 はいつまでに無効化しなければならないか?