WPA2 脆弱性(KRACKs)に関する覚え書き

no extension

昨夜は早めに寝落ちしてしまったのだが,その間に TL が随分賑やかになっていた。 そこで WPA2 脆弱性の話と中性子星衝突を重力波望遠鏡で観測した話をまとめておく。

今回は,世界中で大騒ぎになっている Wi-Fi の WPA2 認証に関する脆弱性について。 Bluetooth でやらかしたばっかりなのに追い打ちですやん。

脆弱性の内容

通称 KRACKs (Key Reinstallation Attacks)。

WPA2 プロトコルには、ハンドシェイク中に Nonce およびセッション鍵が再利用される問題があります。攻撃者はアクセスポイント (AP) とクライアントの間で Man-in-the-Middle 攻撃を成功させた後、ハンドシェイク中に特定のメッセージを AP またはクライアントに再送することで、Nonce やリプレイカウンタ をリセットし、すでに使用されているセッション鍵を再利用させることが可能です。

Nonce (ノンスまたはナンスと読むらしい)ってのは暗号通信の最初にやり取りする使い捨てのランダムな値で,これを認証情報に混ぜることで第三者による「リプレイ攻撃(replay attack)」を防ぐことができる。 今回はそういうのが全部チャイされてしまうわけやね。

これが成功すると中間者攻撃(man-in-the-middle attack)が成立してしまい,通信内容の盗み見や改竄ができるようになってしまう。 ただし影響範囲は無線 LAN 内に限定されるため,インターネット越しに攻撃を受けるわけではない。 また暗号通信に使われる暗号アルゴリズムには脆弱性はない。

具体的な脆弱性の内容は以下の通り(Vulnerability Note VU#228519 より抜粋)。

  • 4-way ハンドシェイクにおける Pairwise Key の再利用 (CVE-2017-13077)
  • 4-way ハンドシェイクにおける Group Key の再利用 (CVE-2017-13078)
  • 4-way ハンドシェイクにおける Integrity Group Key の再利用 (CVE-2017-13079)
  • Group-key ハンドシェイクにおける Group Key の再利用 (CVE-2017-13080)
  • Group-key ハンドシェイクにおける Integrity Group Key の再利用 (CVE-2017-13081)
  • Fast BSS Transition 再接続リクエストの再送許可とその処理における Pairwise Key の再利用 (CVE-2017-13082)
  • PeerKey ハンドシェイクにおける STK Key の再利用 (CVE-2017-13084)
  • Tunneled Direct-Link Setup (TDLS) ハンドシェイクにおける TDLS PeerKey (TPK) Key の再利用 (CVE-2017-13086)
  • Wireless Network Management (WNM) Sleep Mode レスポンスフレーム処理時の Group Key (GTK) の再利用 (CVE-2017-13087)
  • Wireless Network Management (WNM) Sleep Mode レスポンスフレーム処理時の Integrity Ggroup Key (IGTK) の再利用 (CVE-2017-13088)

影響度(CVSS)

CVSSv3 基本評価値 5.0 (CVSS:3.0/AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L)

基本評価基準 評価値
攻撃元区分(AV) 隣接(A)
攻撃条件の複雑さ(AC) 高(H)
必要な特権レベル(PR) 不要(N)
ユーザ関与レベル(UI) 不要(N)
スコープ(S) 変更なし(U)
情報漏えいの可能性(機密性への影響, C) 低(L)
情報改ざんの可能性(完全性への影響, I) 低(L)
業務停止の可能性(可用性への影響, A) 低(L)

CVSS については解説ページを参照のこと。

影響を受ける製品

Wi-Fi 通信が可能なあらゆる機器が対象となる。 たとえば無線 LAN ルータ1,スマホ等の携帯端末,ネットワーク家電などが考えられる。

対策・回避策

なお GitHub にて CVE-2017-13082(Fast BSS Transition 再接続リクエストの再送許可とその処理における Pairwise Key の再利用)についてのチェックツールが公開されている模様(CVE-2017-13082 は 802.11r 方式を使うアクセスポイントに影響する)

サポートが受けられない場合,回避方法としては以下が挙げられるだろう。

  • Wi-Fi を使用しない
    • 公衆空間で Wi-Fi を使わない場合は無効にしておく
    • 公衆無線 LAN はリスクが高いので利用しない
    • 可能であれば有線で接続する
  • 暗号化通信を利用する
    • Web でのやりとりには HTTPS を使う(HSTS (HTTP Strict Transport Security) でちゃんと HTTPS にリダイレクトされること)
    • VPN サービスを利用する(慌ててよく分からないサービスに飛びつかないこと)

WPA2 がダメだからと言って WEP を使うのは事態を悪化させるだけである。 脆弱性が発見された現時点でも WPA2 が一番まともな認証プロトコルであることには変わりない。

はっきりいってネットワーク機器のアップデートはあまり期待できない。 とくに安ものの無線 LAN ルータとか,古い機種のスマホとかは事実上の放置プレイである。 先月の Bluetooth 脆弱性に対応しなかったベンダ企業やその製品については,今回も何もないと考えたほうがいい。

はっきり言って Android 端末はもう潮時かなと思ってる。 他の選択肢が Apple 製品しかないってのが業腹だけど(個人的に嫌いなんだよ)。

まぁ,この機会にゆっくり考えることにしよう。

ブックマーク


  1. 無線 LAN ルータは Wi-Fi ネットワークを中継する機能のあるものが対象となる。 ↩︎