ここ数年、巷でよく見られていた「無線LANセキュリティー」に関する誤解をできる限り正していこう、という努力をしてきました。このように思い立った数年前は本当にひどい状況だったのです。

ただ、最近はだいぶ良くなってきて、あからさまな「嘘」の類は少なくなってきました。が、今日、久しぶりに、以下のような記事を発見。

http://bb.watch.impress.co.jp/cda/special/18856.html

問題となるのは「安全性のポイントは暗号化の種類」というセクション。ここにはかなり間違いが見られます。

まず、明らかな間違いは、WEPが利用している暗号化技術(アルゴリズム)。「3DES」となっていますが、これは「RC4」が正解。

次の間違い、というか、不正確な点は、「暗号化の方式」という表でTKIPおよびAES(正確には「AES」ではなく「CCMP」と書くべきなんでしょうが、これは世の中的に広く受け入れられている間違いなのでよしとしましょう:-))の強度とキーの長さがそれぞれ「—」と「任意」になっていること。おそらくこれはWPAでは鍵を直接入れるだけではなくパスフレーズによる鍵の設定ができるので、このような記述になっていると思われます。しかし、WEPのほうの記述は「64bit」、「128bit」と、IVを含んだ暗号化アルゴリズムに入力する鍵の長さを示しているので、WPAについても同じ土俵に立って書くべきだと思います。でないと比較になりません。つまり、ここはTKIP、AESともに「128bit」と書くべきでしょう。ちなみにパスフレーズによる設定はWPAになって初めて使えるようになったわけではありません。WEPの時代にもいくつかの製品ではパスフレーズによる設定が可能でした(で、この部分の処理に脆弱性のある製品もありました)。ただ、WPAのような標準的なやり方はなく、ベンダー固有の方式だったので(それでも割りとスタンダードな方式は存在していたんですが・・)、あまり広く使われなかったというのも、パスフレーズによる鍵設定がWPAならではののも、と思ってしまう要因のひとつかもしれません。また、WPAのパスフレーズも長さは決して「任意」ではなく256文字までとなっています。256文字以上のパスフレーズを入れる手間と128bitの値を16進数で256桁入れる手間はさして変わらないでしょうから、パスフレーズの長さも256文字までとなっています。

TKIPの説明が「キーを一定間隔で変更することで安全性を確保」となっているのは、TKIPに関する最も典型的な勘違いです。これは私がINTEROPやInternet Weekなどでも何度か説明している点です。確かにTKIPがサポートされるようになってから「鍵更新間隔」のようなパラメータがアクセスポイントに追加されたので、TKIPをこのように理解している人が非常に多いのは無理もないのかもしれません。TKIPの処理にはいろいろな「鍵(キー)」が出てくるのですが、TKIPが、もし、「キーを一定間隔で変更する」ものであるなら、いったいどの鍵を変更してくれるのでしょう? 暗号化のおおもとのPMK(Pair-wise Master Key)? 多くの人は鍵のおおもとであるPMKを更新してくれるものだと思っているでしょう。しかし、よく考えてみてください。みなさんがTKIPで802.1Xを使わずにPreshared Keyを使った設定をする場合に入れている鍵はPMKなのですよ。いやいや、私はパスフレーズを入れているよ、というかもしれません。しかし、実際にはそのパスフレーズからPSK、すなわちPMKが導出されて設定されているに過ぎないのです。PSKは設定したら通常そのままですから、「キーを一定間隔で変更することで安全性を確保」というTKIPのメリットはPSKの時には成り立たないのでしょうか? つまりTKIPはPSKを使っているときには意味がない?? そんなことはないわけです。TKIPがサポートされたときにアクセスポイントに追加された「鍵更新間隔」で更新してくれる鍵とは、実はGroup Keyに関するものです。Group Keyはブロード/マルチキャスト時に使われる鍵で、無線ネットワークの中で共有されています(でないと、ブロード/マルチキャストできないので)。この中の誰かがひとり無線のネットワークから抜けたとします。例えば無線を会社の中で使っていて、一人の社員が会社を辞めたと考えてください。当然、この(元)社員は無線のネットワークから完全に切り離されなければなりません。しかし、Group Keyはみなで共有されているので、この元社員はこのままだと会社を辞めた後もブロード/マルチキャストは受信できてしまうことになります。これはまずいですよね。従って、このように誰か一人でも無線ネットワークから抜けたら本来はGroup Keyは更新しないといけないわけです。社員が辞める、といったようなことはそうそう起こるわけではないので、その度ごとにGroup Keyの更新をすればよい、と考えるかもしれません。無線のネットワークでは、無線の届く範囲ぎりぎりの人は無線のネットワークにつながったり切れたりということが頻繁に起こります。このように意図的ではなく無線から切り離された人と退社して無線のネットワークから切り離される人をアクセスポイントが区別することは不可能です。したがって無線のネットワークから一台でも切り離されるたびにGroup Keyを更新するのは実用的ではないわけです。考えられる妥協としては、一定時間ごとにGroup Keyを更新し、切り離された人も一定時間はブロード/マルチキャストを受信できてしまうけれども、そこは百歩譲って、被害を最小限にとどめよう、という案です。そう、これがアクセスポイントに追加されたTKIPの「鍵更新間隔」パラメータの正体です。

以上、長々と書きましたが、最後の点は依然よく見られる勘違いなので、まあ仕方ないかな、と思います。しかし他の点は少々軽率なミスと言えるでしょう。この記事を書いておられる「清水理史」さんはとても緻密な記事をかかれる方で、私もいつも参考にさせていただいていますし、尊敬もしている方です。なので、今回の記事はちょっと残念だったな、と思います。