セキュリティプロトコルとは
セキュリティプロトコルとは何か
現在、世界には様々なシステムが普及、使用されています。それと同時に、まるでイタチごっこのように様々なセキュリティの脆弱性を突いた攻撃が発生し、様々な実害が発生しています。
それはソフトウェアや設定の脆弱性を突いた攻撃もありますが、中でもプロトコルと呼ばれる規格を利用した脆弱性を攻撃する攻撃が発生しています。
ここでは脆弱性の例を挙げつつ、その攻撃に対応するための方法などについて解説します。
そもそもプロトコルとはなにか?
システムにおいて使われるプロトコルという言葉の意味
そもそも、プロトコルとは何なのでしょうか?
もともとプロトコルという単語は、複数人が一つの事柄を実行する為に、必要な事柄を纏めたものをいいます。そういった状況の場合、複数の人それぞれが違う立場や方法などを持っていますが、それぞれが自分の立場に従う行動だけを取れば軋轢を生みます。
そのような軋轢を生まないようにするために、やり方やマナーなどをとりまとめ、共通化すること。またはそういったときの「手順」を表します。
プロトコルという単語は様々な分野で活用されます。
外交用語、医療用語、ビジネス用語など、いろいろなシチュエーションで使用されますが、大きな意味では一つの事柄を複数で行う場合の取り決めのことを表します。
そのなかで、システムにおいてのプロトコルは何の意味を表すのでしょうか。
システム、とりわけIT業界のなかでのプロトコルという言葉は、主にインターネットの通信規格のことを意味します。コンピューターなどのシステム同士で通信を行う場合、それぞれが違う規格で通信をしようとしても、規格が違うため情報のやりとりができません。ですので、あらかじめ決められている規格をお互い使用する様に設定をしておく必要があります。この際に使用する規格が、システムにおけるプロトコルを意味します。
例を挙げるとするならば、大きな所ですと「TCP/IPプロトコル」があげられます。これは世界標準で使用されている通信プロトコルで、違う機器、違うOSであっても通信をすることを可能にする通信プロトコルであり、この通信プロトコルがあるからこそ、全世界のシステムが双方向に通信をすることが出来ています。
セキュリティプロトコルの詳細
システムのプロトコルのなかでも、通信プロトコルと同様に近年益々必須とされてきているものにセキュリティプロトコルがあげられます。
システムは従来、性善説に従って使用されてきていましたが、インターネットが全世界的に使用されるようになり、悪用をしようとする状況が発生しました。そのなかで、家に鍵を掛ける様に、通信をする際も、「のぞき見」や「改ざん」を防ぐために、その安全性を確保する必要に差し迫られたのです。この通信の安全性や確実性を高めたりする機能を備えたプロトコルをセキュリティプロトコルといいます。
このセキュリティプロトコルの代表例としては、HTTPSプロトコルがあげられます。
従来、インターネットでホームページなどのWebページを閲覧する際に必要だったプロトコルはHTTPプロトコルです。このHTTPは「Hyper Text Transfer Protocol」の略で、Webページを環境に依らず表示・閲覧するためのプロトコルでした。
しかし、この通信は暗号化されておらず、盗聴や改ざんが可能な状態でした。近年インターネットで通信販売をしたりする際に、住所や氏名などの個人情報やクレジットカード番号等を使用します。その情報が漏洩したらどうなるでしょうか。
そういった際に、この通信を暗号化することでインターネットの閲覧をよりセキュアな状況で行う事を目指した仕組みがHTTPSです。
このように、各種セキュリティ施策を行い、安全にインターネットを使用出来るようにすることを目指しているのが、セキュリティプロトコルということなのです。
SSL/TSLを利用した攻撃について
SSL/TSLとは何か?HTTPとは何か?
HTTPSは、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)プロトコルを使用し暗号化したHTTPプロトコルです。先述のHTTPプロトコルを暗号化することで、セキュリティの向上を図っています。
厳密にはHTTPSプロトコルはプロトコルではありませんが、SSL/TLSプロトコルにより提供されるセキュアな接続の上でHTTPプロトコルを使用し通信をすることをHTTPSと呼んでいます。
その暗号化をするSSL/TLSプロトコルという存在が、昨今何よりも重要になってきます。
SSL/TLSプロトコルは、インターネット上のウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組みです。個人情報やクレジットカード情報などの重要なデータを暗号化し、ウェブブラウザとウェブサーバ間での通信を安全に行なうことができます。SSLプロトコルは1990年代中盤にリリースされ、現在はTLSプロトコルを使用した通信が行われています。SSLプロトコルとTLSプロトコルはリリース時期の違いくらいでほぼ同様の仕様となっているため、現在ではSSL/TLSプロトコルとひとくくりにされていることがほとんどです。
現在、Webブラウザとして使用されているchromeは、標準でHTTPSを使用していないと警告が出て、ワンクリックで表示されないようになっています。
このことからも分かるとおり、現在HTTPSを使用する事は標準となっています。
SSL/TLSを利用した脆弱性について
難しいことにどのようなセキュリティプロトコルなどのセキュリティの向上を図ったとしても、脆弱性が発覚し、その脆弱性を使用して悪いことをしようとする攻撃者は絶えません。
2014年10月、Google開発者により「POODLE」と呼ばれる脆弱性が公表されました。
これは古いSSL3.0プロトコルを使用した通信の暗号化を解読されてしまい、結果情報の復号化がなされてしまうものです。この脆弱性により、SSLプロトコルでの暗号化通信は非推奨となりました。またTLSプロトコルを利用していたとしても、TLSプロトコルとSSL 3.0プロトコルの両方に対応していると、弱いプロトコルへダウングレードさせることにより攻撃が可能になってしまいます。
また、「Heartbleed」と呼ばれる脆弱性も同年4月にも発見されました。
これは、OpenSSLと呼ばれるオープンソースの暗号化ソフトウェアで、多くのWEBサーバで使用されていました。実は上記のHTTPSでのインターネット暗号化も、Webサーバ側でこのOpenSSLを使用していることが多く、実際複数の法人や公共団体で被害がありました。
対応として、前者の「POODLE」に関してはSSL3.0を使用した通信を行わないことが第1とされました。パソコンのブラウザ側でSSL3.0の無効化、サーバ側も設定を変更し、SSL3.0を受け付けない設定にする必要がありました。「Heartbleed」に関しても、サーバのOpenSSLをアップデートする事で対応可能です。
現在の最新の通信プロトコル TSL1.3について
そして現在、使用されている通信プロトコルはTLS1.3です。これは2018年8月にTLS1.2からアップデートされました。
過去、TLS1.0/1.1とバージョンはありましたが、改ざんを検知するアルゴリズム自体に脆弱性が発見されました。また、上記「POODLE」でも使用される事があるため、現在利用は非推奨になっています。1.3ではこの古いアルゴリズムの削除や仕様の変更により、暗号化接続の高速化、セキュリティ性の向上が図られています。
2024年現在、新しいバーションのリリースは公表されていませんが、公開から5年が経過しているため、今後なにかしら新しいバージョンがリリースされる可能性があります。そうなった場合、できるだけ早く対応出来るように、今からある程度準備を進めておく必要があるのでは無いかと思います。
KRACKについて
KRACKについての概要
近年、2017年10月IPA(独立行政法人 情報処理推進機構)をはじめ多くのセキュリティベンダーが注意喚起を行いました。
その内容は、「KRACK」と呼ばれます。近年特に使用される事が多くなった、Wi-Fiを使用する際のセキュリティプロトコルの一つである、「WPA2」というプロトコルが複数の脆弱性を使用されるものです。
ネットワークを使用する際に、有線LANと無線LANがあります。これはざっくり言うとネットワークを使用する際に物理的なケーブルを必要とするか、必要せず無線を使用するかの差になります。Wi-Fiはこの無線LANの通信規格の1つを使用したものになります。そのWi-Fiの脆弱性を使用した攻撃が、「KRACK」と呼ばれます。
Wi-Fi自体がWindowsやMacOSなどのパソコンだけではなく、AndroidやiPhoneなどのスマートフォンやその他ネットワーク機器も使用する仕組みであるため、その影響範囲は多大となる可能性があると想定されました。
Wi-Fiの暗号化プロトコル「WPA2」
Wi-Fiは物理的な線を使用することなく、インターネットを使用することが出来ます。通信を行う際に、通信を暗号化し、他者へ通信内容が漏洩されないような仕組みになっています。その際に使用するプロトコルの一つが「WPA2」というプロトコルです。
Wi-Fiが使用する暗号化プログラムは3つあります。それは、「WEP」「WPA」そして「WPA2」です。
暗号化は、鍵を使用し暗号化し、受け取る側が受け取った通信を、鍵を使用して復号化させて成立します。
このうち最初の「WEP」はすでに複数の脆弱性が発見されているため、使用することはほぼありません。「WPA」は動的に鍵を変えるため、セキュリティが向上、「WPA2」はさらにAESという暗号化技術を採用することで強固なセキュリティを備えています。
今回のこのKRACKはこの「WPA2」の脆弱性を突いた攻撃です。
通常通信を行う際に違う鍵が生成されるはずが、この脆弱性のために同じ鍵を生成する事があり、この脆弱性を使用して攻撃者はデータを盗み見ることが可能になり、データを盗まれる事が出来てしまうと言うことが発覚しました。
この脆弱性についての対応方法
この脆弱性は、一般に報道される前に、各種メーカーなどに情報を提供され、各種対応がいち早く行われました。
この脆弱性に対しての対応方法としては、1つとしてはメーカーなどから提供されるパッチを適応し、脆弱性を防ぐこと。また、KRACKが発覚した後に定められた「WPA3」というセキュリティプロトコルを使用する事も方法の一つです。
この「WPA3」はパスワードを利用しない、不特定多数のユーザーが利用する無線LAN環境においても、個々の通信を暗号化する仕組みが追加されています。
しかし、WPA3においてもDragonbloodと呼ばれる脆弱性がすでに発見されており、無線LAN機器によってはベンダーから脆弱性を解消するためのセキュリティパッチが提供されています。
つまり、各種ハードウェアやソフトウェアのメーカーが脆弱性に対応したセキュリティパッチが提供された場合、そのパッチを早急に適応することが何よりも対策になります。
また、SSLを使用し常時暗号化されたHTTPSプロトコルを使用した通信を使用することも対策の一つです。これはWPA2とSSL(HTTPS)による二重の暗号化でセキュリティ対策が行われていることを意味する為、仮にWi-Fiの通信データが攻撃者に取り出されても、取り出されたデータ自体が別の仕組み(SSL)により暗号化された状態であるため、漏洩から保護することが可能になるからです。
まとめ
いくつかの代表的なセキュリティプロトコルの説明と今後について複数記載してきました。例外なく、新しい規格がリリースされる度に、まるで、イタチごっこのように脆弱性を発見され、その脆弱性を利用した攻撃が行われる可能性があります。
いつかは総合的な意味での解決に至って欲しいものですが、現状すぐにはなされない事が現実です。従って、ケースにより最善の方法を適宜取っていかざるをえません。そして、この攻撃による被害を防いだり、影響を少なくしたりするためには、随時情報の収集、及びセキュリティパッチの適応や、通信状況の透明化などの各種施策をおこなうことで、そのリスクを下げていくことが今後も必須ではないかと思われます。