ケータイ用語の基礎知識
第764回:TLS とは
2016年7月12日 16:58
SSL後継の規格、SSL 3.0の次がTLS 1.0に
「TLS」は、ネットワーク上で、データを暗号化してやりとりするための規格のひとつです。データののぞき見や改ざんなどを防ぐことができ、インターネットバンキングやネットショッピングなど、個人情報や金銭の情報を扱うためには必須の技術と言えます。その名称は、トランスポート層セキュリティを意味する英語「Transport Layer Security」の略から来ています。
TLSは、「第31回:SSL(Secure Socket Layer)とは」で解説した「SSL」の後継となる規格です。SSLのバージョン 3.0を元としたものがTLS 1.0になっています。そのため、TLS単独ではなく「TLS/SSL」と表記されることも多くあります。2016年7月現在、最新の規格はTLS 1.2で、次のバージョンのたたき台となるドラフト版も公開されています。
現在、インターネット上では、多くのWebサイトではSSL 3.0の利用を終了し、TLS 1.2といった安全な規格を使うことが推奨されています。携帯電話、スマートフォン向けのサイトやサプリでも多くのものが、現在ではSSL 3.0以前ではなく、TLS 1.0以降を使うようになってきています。
TLS 1.0は、基本的にはSSLの機能を踏襲していますが、一部のアルゴリズムが修正され、SSL 3.0を標的にした攻撃のいくつかは無効にできます。
TLS 1.1はデータ暗号化の際のCBC(Cipher Block Chaining)に対する攻撃への対策強化、TLS 1.2ではハッシュ関数にSHA-256が追加されるなどの修正、および機能追加が行われました。
たとえば、携帯電話・スマートフォンのおサイフケータイ機能を電子マネーや、定期券として使う、JR東日本の「モバイルSuica」も、TLSに対応するサービスのひとつです。モバイルSuicaは、2016年8月24日以降、現在使われているSSL 3.0を無効化するとしています。そのため、セキュリティ方式として「TLS 1.0」、ハッシュ関数として「SHA-2」を利用するように切り替わるため、この日以降、これらに対応していない古い携帯電話や、スマートフォンが利用できなくなります。
新しいセキュリティ方式、ハッシュ関数を使えない機種で、このようなサイトに接続しようと場合、「SSL/TLS通信が無効です」「接続が中断されました」などのメッセージが表示され、接続を拒否されることになります。
POODLE脆弱性で危険となったSSL 3.0を置き換える
繰り返しになりますが、ネット上では、多くのWebサイト、WebサービスでSSL 3.0が無効化され、ほとんどがTLS 1.0以降へ切り替わっています。
パソコンでも、Windows 8.1以前で標準的なWebブラウザであったInternet Explorerでは、2015年4月のWindows Updateによるセキュリティ修正でSSL 3.0が無効化されました。
Google Chromeでも、2015年2月から配布がはじまったChrome 40でSSL 3.0へのフォールバック機能がデフォルトでは使えなくなりました。それまではTLS 1.0で接続できなかった場合、軽微なエラーを示すアイコンを表示したまま、以前のSSL 3.0で接続を試すようになっていたのが、TLS 1.0で接続できなければ、繋がらなくなりました。
SSL 3.0を使った通信については、2014年、暗号データの最後尾にある「パディングデータ」を改変する「POODLE攻撃」に対する脆弱性が見つかりました。この攻撃方法を使うと、最大でも数百バイト程度のデータ通信で1バイトのデータを解読することが可能です。ということは数十Kバイト~数Mバイト程度、通信してしまえば、その際に認証データとして使われるCookieなどを解読できるのです。
この攻撃方法が発見された際には非常に問題視され、多くのWebサーバーやWebブラウザー、アプリケーションが非常に早い段階で「SSL 3.0の使用を取りやめる」「TLS 1.0接続ができなかった場合でも、SSL 3.0にフォールバックしない」という対策が講じられました。このような対策が携帯電話やスマートフォン向けのサイトでも行われているわけです。
なお、TLS 1.0に関してはPOODLE攻撃ほど致命的な内容ではないものの、2015年以降、攻撃方法がいくつか見つかっています。2016年現在、多くの機関において、重要情報を扱う場合、TLS 1.0は非推奨になるケースが出てきています。たとえば、クレジットカードのセキュリティ基準を策定維持している団体「PCI SSC」では、インターネット上でのクレジットカードの処理にTLS 1.0の使用は非推奨とされ、TLS 1.2などに対応することを勧めています。
携帯電話・スマートフォンの場合は、古い機種ではこれらのセキュリティ技術に対応していない場合もあるため、このようなサービスを使い続ける場合は、新しい機種への乗り換えを検討すべきでしょう。
たとえばAndroid OSの場合は、TLS 1.1以降に対応できるのはAndroid 4.3以降となっています。Androidの場合は、ブラウザのエンジン自体がAndroid 4.4以降、Web Kit WebViewからChrome WebViewに変更されています。TLSなどWeb関連のセキュリティパッチは今後、Googleからは提供されないことになっていることなどを考慮するならば、最低でもAndroid 4.4以降を搭載する機種を考える必要があるでしょう。