【WiFiが危険?】WPA2脆弱性とその対策についてまとめてみた

「WPA2」とは「WiFi Protected Access 2」の略で、無線通信暗号化の際の規格のひとつです。 そもそも、無線通信は有線に比べてセキュリティリスクが高く、有線と同等のセキュリティでは不十分とされています。 無線通信暗号化の仕組みは時代を経て進化しており、中でも2004年に登場したWPA2はそれまでの安全面での弱点を解消した、最も信頼のおける規格として広く普及しました。

WPA2の脆弱性

2017年10月、ベルギーのルーヴェン・カトリック大学セキュリティ研究員、Mathy Vanhoef氏とそのチームによって、WPA2の脆弱性が報告されました。 KRACK(Key Reinstallation Attack)と呼ばれるその脆弱性は、WPA2の「4Wayハンドシェイク」の弱点を突いたものであり、攻撃者は、WiFiネットワーク上に送信された暗号化データを傍受し、解読することができると警告しています。 ネットワーク上でやり取りされた個人情報の盗難はもとより、Webページに潜入して情報を操作したり、機器にマルウェアを送り込むこともできると言われ、その性質上、スマホやタブレットをはじめとするほとんどのWiFi機器が対象になるため、さまざまな場所で不安が広がっています。

WPA2の仕組み

WPA2は、当初無線通信の技術として利用されていたWEP(Wired Equivalent Privacy)、およびその安全性を強化させたWPA(WiFi Protected Access)をさらに改良し、AES(Advanced Encryption Standard)と呼ばれる暗号化アルゴリズムを採用しています。 もともと暗号化は「ストリーム方式」と呼ばれる、データを順番に暗号化していく方法で行われ、これは処理速度が速いという利点がある一方で、比較的簡単に暗号が見破られてしまう、という問題点がありました。 AESでは、この点を解消した「ブロック方式」と呼ばれる暗号化アルゴリズムが用いられ、データをブロックに分けたうえで暗号化する仕組みが採られています。SPN構造を用いたこの方式は、旧来使用されていたDES(Data Encryption Standard)に代わる、非常に強固な暗号化アルゴリズムであるとされています。 また、WiFi通信時に、スマホなどの無線クライアントとアクセスポイント間で行われる基本的な接続手順はWPAとほぼ同じ方式が採られており、PTK(Pairwise Transient Key=クライアントとAP間で共通の一つとなる暗号/複合用鍵)とGTK(Group Temporary Key=AP配下の全クライアントで共通の一つとなる暗号/複合用鍵)をインストールし、それらを暗号・複合に利用します。

WPA2の仕組みと、通信手順の詳細

以下は、WiFiでのWPA2を使用した通信手順の概要です。 (1)通常WPA2において、クライアントとアクセスポイントの間では事前にPMK(Pairwise Master Key)が交換されます。 (2)通信が確立すると、アクセスポイントは自分のみが知りえる情報である「Anonce」と呼ばれる値をクライアントへ、クライアントは自分のみが知りえる情報である「Snonce」と呼ばれる値をアクセスポイントへ送信します。 (3)それにより、「PMK」「Anonce」「Snonce」「APのMACアドレス」「クライアントのMACアドレス」という五つの情報をクライアント・アクセスポイント双方が把握できる状態となり、それらをもとに、それぞれがPTKを生成しインストールすることができるようになります。 (4)生成したPTKのうち、アクセスポイントはその一部を使いGTKを暗号化し、クライアントに宛てて送信します。 (5)それを受け取ったクライアントは、同様にPTKのうちの一部を使い複合し、GTKを生成することができます。その後クライアントは処理完了の通知をアクセスポイントに返送します。 PTKの中にはTK(Temporary Key)と呼ばれる値があり、nonceという値と共に使用し、通信そのものを暗号化します。nonceはパケットごとに違った値が用いられるため、それにより通信の秘匿性が保たれる仕組みとなっています。

WPA2の規格がWPA2の脆弱性につながった

ここで問題となるのが、WPA2の規格です。それは「PTKのインストールと共にnonceがリセットされてしまう」という点です。 全ての処理が完了しているのにも関わらず、なんらかの理由により、暗号されたGTKが再度上記手順4の通りアクセスポイントから送信されると、クライアントは処理完了の返送(※上記手順5)が自身からアクセスポイントに対し届いていないと判断し、処理完了通知を再度送信しようとします。 それと同時に、クライアントにてPTKを再度インストールする処理が行われますが、その際にnonceもリセットされる仕組みとなっているため、再送前の通信とまったく同じTKに対し、再度同じnonceを付加するかたちで通信が行われることとなります。 今回の件はWPA2のこの特性を突いた攻撃であり、攻撃者は意図的にPTKの再インストールを促し、それにより通信を傍受します。それが今回の脆弱性にKRACK(Key Reinstallation Attack)という名がつけられている理由です。

WiFi利用者を脅かす攻撃「KRACK」の仕組み

攻撃者はまず、標的となるWiFiクライアントおよびWiFiアクセスポイントの中間に潜入し、それぞれの通信の仲立ちをするように位置します。 そのうえで、「4Wayハンドシェイク」の一部分を妨害し、クライアントからアクセスポイントに対する応答の返信を行わなくさせます。 クライアントの応答がないことで、アクセスポイントはメッセージを再送し、それを受けたクライアントはPTKを再インストールしたうえで、同じ情報を再度アクセスポイント宛に応答しようとします。 これらを何度も繰り返し、延々と再送を行わせることで攻撃者は同じ情報を収集できるようになり、そこから通信を解析し、通信内容を盗み見ることができるようになる、という仕組みです。

WPA2脆弱性への対策(1)ソフトウェアアップデートを行う

今回の脆弱性において、WiFi利用時の最も効果のある対策はソフトウェアアップデートであると言われています。その後の報告によると、既にApple社、およびMicrosoft社は既に今回の脆弱性への対応を実施しており、具体的には「4Wayハンドシェイク」の再送信を行わない仕組みをWPA2に実装しているとのことで、これはセキュリティパッチの適用により実現できます。スマホの中でもiPhoneと、ノートPCなどでWidows端末を利用している場合には、ソフトウェアアップデートにより、この脆弱性を解消することができそうです。 また、今回の報告では、数あるクライアントのなかでもAndroid6.0の危険性が報告されています。Android6.0では通信の再送があると上記TK(Temporary Key)の値がゼロにリセットされてしまう、というバグが見つけられています。 これは、スマホなどを含むAndroid6.0デバイスから送信された通信を、傍受して盗み出すことがとても簡単であることを指しており、攻撃の種類によっては致命的となる可能性があるとも警告されています。 スマホやタブレットを含む、Android6.0デバイスを使用する際には、端末製造元に対し、今回の脆弱性に対する最新のパッチがリリースされているかを確認することをお勧めします。 上記に関わらず、WiFiを利用する際には、必ずセキュリティパッチの有無を確認し、端末のファームウェアを、WPA2脆弱性対策が施された、最新の状態に保っておくことができると理想的です。

WPA2脆弱性への対策(2)フリーWiFiの利用を避ける

家庭内や職場のWiFiに比べ、街中のフリーWiFiは、どのような仕組みにより、どのような通信者が同じネットワーク配下に存在するのかが不明です。可能な限りこのようなネットワークの利用は避けることが望ましいでしょう。

WPA2脆弱性への対策(3)安全性が確認されるまで有線接続に切り替える

WiFiでの通信自体にに問題があるため、可能な限り有線接続に切り替えることも推奨されています。WiFi利用中のPCなどで、イーサネットポートを搭載している機器については、有線接続でのネットワーク利用も検討すべきといえるでしょう。 また、スマホやタブレット利用者の場合、機器にイーサネットポートが搭載されていることはほぼ無いため、この対策はあまり現実的とは言えないでしょう。

WPA2脆弱性への対策(4)WiFi利用とあわせVPNサービスを利用する

WiFi通信時に、VPN(Virtual Private Network)の利用が可能な場合には、それらを活用することも推奨されています。VPNネットワーク内では、通信は完全に暗号化される仕組みとなっており、攻撃者からの不正アクセスを保護します。 反面で、一般的なスマホユーザでVPNを活用できることは稀であり、これは企業内のWiFi利用などを想定した対策であるとも言えます。

WPA2脆弱性への対策(5)WiFiのパスワードを変更する必要があるか

今回の脆弱性の性質上、WiFiのパスワードが強固であるか否かに関わらず、攻撃者はデバイスやWiFiネットワークそのものを攻撃できると言われています。 反面で、クライアントおよびアクセスポイントのファームウェアアップデートが完了したうえでのパスワード変更は、一般的セキュリティ対策の観点から、悪い事ではないとされています。

WiFi利用時のみに起こりうる事象であることを理解する

今回の脆弱性は、WiFiネットワーク配下のみでの事象となっています。「Channel-based MitM」と呼ばれる、攻撃対象となるWiFiアクセスポイントのSSIDを不正に入手し妨害する手口により、比較的近い場所から攻撃を行います。そのため、インターネットを隔てた遠隔地から攻撃されることはないと報告されています。 また、可能な限りWiFiではなく、4Gなどのモバイルネットワークを利用することも推奨されています。 加えて、HTTPS環境では攻撃を受けないことも報告されているため、WiFiを使用したウェブサイト閲覧時で、特に秘匿性の高い情報を送信する場合には、必ずHTTPS接続が行われていることを確認するよう心がけましょう。また必要に応じて、自動でHTTPS接続を行うウェブブラウザを導入することも効果的であるとされています。

それでも現状のWiFi利用時には、やはりWPA2が一番安全である

これまでの脆弱性を考慮しても、やはり現状ある無線通信規格の中で、一番安全なのはWPA2とされています。WiFi利用時には、WPA2よりもセキュリティリスクが高いとされるWEPやWPAなど、以前の通信規格に切り替えるのではなく、引き続きWPA2を使用することが推奨されています。

WPA2脆弱性のまとめと安全なWiFi利用に向けて

WiFi通信規格のひとつである「WPA2」の脆弱性について、上記の通りまとめてみましたが、いかがだったでしょうか。 今回の事象は、スマホとWiFiが普及したことにより、発表があった際に非常に大きなインパクトを持つ脆弱性としてさまざまな場所で取り上げられ、問題となりました。 現在は、各社のセキュリティパッチ配布等により大きな被害には至っていないようですが、依然としてその経過が注目されています。 また、セキュリティホールを突いたこのような脆弱性は、インパクトが大きくなるほどに、世界中で様々な憶測が飛び交い、必要以上に騒ぎ立ててしまう傾向があるため、まずは落ち着いて、セキュリティ機関からの公式な見解を待ち、適切に対処することが望ましいとされています。 みなさんも、ご自分の端末を改めて確認の上、安全にWiFiを利用できるよう、セキュリティリスクに備えてください。