802.1x/EAPの企業グレードの認証を採用したセキュリティに対する意識の高い企業や組織は、一部の無線LAN VoIP電話機の実装によってリスクにさらされている。私はVocera Communicationが脆弱性を持つベンダーの1つであることを確認しており、他のセキュリティ研究者からCiscoの無線VoIP電話機も同様にこの設計の欠陥を持っていると聞いている。私は現在VoceraとCiscoに公式の回答を求めている。Vocera自身のPDF文書の55ページには、次のような断り書きがある。
PEAPは2つの部分からなるプロトコルである。最初の部分では認証サーバーとクライアントが暗号化されたTransport Level Security(TLS)トンネルを設定する。バッジは認証サーバーから証明書を受け取るが、処理オーバーヘッドが生じるため検証は行わない。
セキュリティの立場から言えば、これは設計上の判断としては無謀なものであり、そもそも非対称暗号を用いた強いEAP認証を採用する目的を無意味にしてしまうものだ。証明書の検証処理を行わないと、802.1x PEAP認証の安全性は、事実上Cisco独自のLEAP認証のレベルまで落ちてしまう。これが意味するのは、クライアント(今回の場合、無線VoIP電話)が無線アクセスポイントとその裏側にある認証インフラは正当なものであると仮定し、処理オーバーヘッドを減らすために証明書は正しいものとして検証しないということだ。
サーバーの証明書の検証を行わないと、ネットワークを攻撃しようとする攻撃者に対し、ハッシュ化されたクライアントのパスワードが平文で送信されてしまう。ハッシュ化されたパスワードの強さはパスワードの複雑さと長さだけに依存するが、ハッシュ化されたパスワードは一般に辞書攻撃に対し数時間程度で破られてしまう。一部のEAPの実装ではハッシュさえ用いられておらず、この場合にはこの攻撃を受けるとパスワードが直ちに平文で攻撃者に送られてしまう。パスワードが破られてしまうと、ユーザー名は平文で送られることからすでに知られてしまっているため、攻撃者はネットワークに侵入する手段を得られるだけでなく、すべてのサーバーとアプリケーションにアクセスするための認証情報を得ることになる。セキュリティの立場から言えば、これは最悪のシナリオだ。もしDomain Adminのパスワードがこの方法で破られてしまえば、この王国全体への鍵が破られたことになる。
一時的な回避方法:
証明書の検証を行わない脆弱性を持つクライアントでは802.1x/EAP認証は使わないようにし、それらの脆弱性のある組み込みデバイスではWPA-PSKを使うようにする。WPA-PSKモードは計算能力が不足しているそれらの組み込みデバイスでも高速に実行できるため、立ち上げとローミングにかかる時間も短くなる。どうしてもLEAPや、証明書が検証されないPEAP、あるいは証明書が検証されないEAP-FASTモードを使う必要があるのであれば、パスワードのハッシュは攻撃者にさらされていると仮定しなければならない。
注意:LEAPはハッシュ化されたパスワードを平文で送っており、これを守ろうとする努力はまったくしていない。EAP-FASTの実装の多くは、誰でもでっち上げることが出来る匿名サーバー証明書を用いているため、基本的に弱いものだ。PEAPは、もし証明書の署名者とサブジェクトフィールド(サーバー名)がクライアントによって適切に検証される正しい実装と配置が行われていれば、安全なものになり得る。
もし、EAPの実装に脆弱性を持つクライアントを使わなくてはならないのなら、約128ビットのエントロピーを実現するには、使うパスワードは無作為の32文字の英数字からなるものでなくてはならない。64ビットのエントロピーで十分であれば、無作為の16文字の英数字でも足りる。特殊文字は一部の無線インフラやデバイスで互換性の問題が生じる場合があったり、キーパッドやモバイル機器では入力できない場合があることから、使わないことを勧める。
WPA-PSKを使っているのであれば、無作為の10文字から16文字のPSK(事前共有鍵)パスフレーズを使えば十分だ。これは、WPA-PSKに対し辞書攻撃を行うには著しく時間とCPUパワーを要するためだ。WPA-PSKの欠点は、すべてのクライアントが同じPSKを使わなくてはならないということで、もしそのPSKが設定されているデバイスの1つをなくしてしまったら、すべてのクライアントデバイスの鍵を変える必要がある。WPA-PSKモードのもう一つの欠点は、1つのPSKが破られてしまうと、同じ鍵を使う他のWPA-PSKセッションも攻撃者に復号化されてしまうことだ。RuckusのDynamic PSKモードを使えばこれら2つの欠点を避けることができる。Dynamic PSKは非常に実用的で効果的なクライアントごとのPSKだが、これはRuckus製品にしか採用されていない。
結論:
クライアント側のPEAPとEAP-FASTの実装におけるこれらの設計上の欠陥が解決されるまでは、ユーザーは現在Active Directoryや自分の電話で使っているような短い暗証番号のような、比較的短いパスワードは使うことができない。これらの欠陥が修正されたとしても、証明書の検証に必要な計算資源のため、これらの組み込みデバイスはローミングするには処理が遅すぎることになるかもしれない。幸い、WPA2標準のPMKキャッシングと事前認証機能を使えば、インフラとクライアントがこれをサポートしていれば、シームレスなローミングが可能だ。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ