開発者が語る、無線技術についてや製品開発の秘話、技術者向け情報、新しく興味深い話題、サイレックスが提供するサービスや現状などの話題などを配信していきます。10:00YS「WPA2のプロトコル設計根本に関わる脆弱性論文(KRACK)」が発表されて、無線LAN業界のみならずSNSなどでも騒がれているようです。WPA2」...「WPA2におけるNonce値の再利用を強制することによるキー再設定攻撃」とあります。これだけでは何のことだかわかりませんね。箇条書きで概略を示すと、KRACKで示されている脆弱性は次のようなものです。マスター鍵(PMK)の解読ができるものではない。通信暗号鍵(PTK)の解読ができるわけでもない、ただし例外あり(後述)。WEP脆弱性と異なり、受動的な傍受で解読できるわけではない。通信の中継、少なくとも妨害を前提としている。WEP脆弱性と異なり、暗号強度そのものの脆弱性ではない。handshake手順に関連する。handshake手順はPSKでもEAP認証(WPA2-Enterprise)でも基本的に同じなので、脆弱性のある実装系ならば認証方式に関わらず攻撃を受け得る。MitM)を前提としている。真APと同じMACアドレス、同じSSIDで異なるチャネルの偽APを設置し、何らかの方法でクライアントをそこに接続させる。偽APは基本的に真APとクライアントの間を素通しで中継する。handshakeのなかで、APから返送されるMSG3(r+1)はあえて中継せずに保持する。MSG3(r+1)が遮断されるので、クライアントからのMSG4は返らない。真APは一定時間後にMSG3(r+2)を再送する。偽APは保持しておいた1番目のMSG3(r+1)と2番めのMSG3(r+2)を立て続けに送信する。クライアントは1番目のMSG3(r+1)を受けて平文MSG4(r+1)を返送したあと暗号化モードに遷移するが、その直後に2番目のMSG3(r+2)を受ける。クライアントはNonce=1で暗号化したEnc1{MSG4(r+2)}を返送したあと同じ鍵で暗号化モードに再遷移し、そのときNonce=1に再設定される。次にクライアントが暗号化パケットを送信するとき、先ほどEnc1{MSG4(r+2)}の暗号化に使ったのと同じPTK・同じNonce=1で暗号化して送信する(Enc1{Data...})。攻撃者はMSG4(r+1)とEnc1{MSG4(r+2)}の差分から暗号パターンを再生し、Enc1{Data...}に適用することでDataの内容を解読し得る。解読以外にも再送や偽造、応用でグループ鍵GTKや802.11R高速ローミング(FT)も攻撃できるとありますが、詳細は省きます。偽APを設定して「何らかの方法で」接続を誘導して、「解読したいデータの送信直前にMSG3再送を送り込む」ことで「そのパケットが解読できる(かもしれない)」というものです。「偽APに接続させて中継する」以外にも、正規の通信をMSG3送信のタイミングで妨害し「偶発事故に見せかけて」再送を発生させることでNonce再利用を起こすこともできるとありますが、この場合は「解読したいパケットの送信直前にMSG3を注入する」選択ができないため、攻撃者にとって欲しい情報を入手できる可能性はぐっと狭まります。WEP脆弱性との違いWEPではAPごと(正確にはAP群、ESSごと)に同じ鍵を共有し、全ノードに対する送受信が同じ鍵で暗号化されていました。パターン反復を防ぐためIVカウンタが使われていましたがWEP-IVは32bit幅で、これが最大値(0xffffffff)に達すると0に周回したので、受動的に傍受しているだけで解読データを収集することができました。IV」が知られているため、通信量次第では分単位の時間でWEP鍵を逆算することができ、いちど逆算されると全ネットワークの通信が解読可能になってしまいました。WPAではマスターキー(PMK)にMACアドレスなどの要素を加え、ノード毎に異なる暗号鍵(PTK)を作って暗号化に用います。1ノードのPTKが解読できたとしても、他のノードの通信は解読できません。Number)値を含むNonce値が使われ、PNが最大値に達すると0には周回せずPTKの再設定(Re-Key)が行われます。WEPのような「傍受によるパターン蓄積とそれに基づく鍵の逆推定」はできない、という理屈でした。handshakeにおけるMSG3の再送信)においてPN値(ひいてはNonce値)のリセットが行われるので、同じ鍵・同じNonce値で異なるデータを暗号化して送信することを意図的に起こせる、という指摘です。Nonceの再利用があったからといって、すぐさま通信暗号鍵(PTK)が推定できるわけではありません。それを何千回か起こせばPTKが推定できるかも知れませんが、仮にPTKが判明してもマスター鍵(PMK)が推定できるわけではなく、PMKがわからない限り(WEPのように)全ネットワークが解読できるようにはなりません。「解読したいパケットの直前にMSG3再送を注入することに成功すれば、直後に送信される暗号化パケットの内容を解読できる(かもしれない)」ということです。おまけの脆弱性KRACK論文には特に重篤なセキュリティ脆弱性として、上記2.で記した「例外」を挙げています。guarantees)」と書かれています。「暗号鍵に既知の値が設定されてしまう」というのは確かに重大問題ではありますが、それが「機密だだ漏れ」になるでしょうか。この状態ではAP側に正規のPTK・子機側にゼロ鍵が設定された状態となるので、互いに相手の送ってくる暗号を復号できず通信が成立しません。これではIPも通らないのでDHCPによるアドレス取得にも至らないはずです。間に介在する偽APはゼロ鍵を使って子機と通信することができますが、偽APも正規のPTKを知らないのでやっぱり真APとは通信できず、「ゼロ鍵のまま知らん顔してパケットを中継し続ける」こともできません。偽APが真APを介さずに有線LANの基幹回線に接続できれば「知らん顔してパケット中継」もできるかもしれませんが、攻撃者(盗聴者)が基幹回線に接続できる状況での無線LANハックというのはどれだけ実現性があるものでしょうか。Vulnerability」も理論上は大きな穴であり塞いだほうが良いことは確かなのですが、今すぐその穴を突いて盗聴解読ができるかというと、そういう訳ではないようです。まとめ今回のKRACK論文、「既存の実装系は全て影響を受ける」「WPA2のプロトコル設計根本に関わる脆弱性」という枕詞でネットではかなり騒がれていましたが、実際に読んでみると「手間がかかる(偽APの設置と接続誘導が前提)割に大して有効な攻撃方法じゃない(PTKやPMKが解読できるわけじゃない)」と感じました。SYNに狙いを定めてMSG3を再送し接続先を偽のサーバにすり換えるとか)ことも理論上不可能ではないはずなので、塞いだほうが良いことではありますが、WEP脆弱性の時のように「解読ソフトを入れた機器を盗聴対象ネットワークの側に置いておくだけで全通信内容が筒抜けになる」という大穴ではなかったようです。個人情報の取り扱いについて。