技術コラム集

無線LANの基本とセキュリティ技術

2007.1

ユークエスト株式会社
長谷川 滋郎(はせがわ しげお)

1 無線LAN一般

1-1 はじめに

無線LANが当たり前のようにパソコンに搭載されて、ゲーム機等にも標準的に装備されてきています。これらに使われている無線LANは、現時点ではIEEE802.11a/g/bとして規格化されているものをさしており、TCP/IPのネットワークプロトコルの下層に位置するMAC層のプロトコルとなっています。

MAC層のプロトコルとしては、Ethernet/802.3が有名ですが、無線LANはこれらのメタル(電線)接続と異なり、空気中を飛び交う電波にプロトコルを乗せて通信を行いますので、Ethernetのようなメタル接続の通信に比べて、回線を維持するために考慮すべき事項が増えてきます。昨今、PLC(電力線搬送通信)でも無線LANと同じような技術が使われはじめ、電波を介した通信としては最適なMAC層のプロトコルの1つと言えると思います。

無線LANのカード、モジュールは、パソコンで使用するために市販されているものが結構あります。弊社ではAtheros社のモジュールを使って、組込みシステムで無線LANを動かしています。

本稿では、無線LANを組込みシステムに搭載するにあたって注意すべき点を、
1.無線LAN一般 2.暗号セキュリティ 3.無線認証 の順に述べていきます。

1-2無線LANの通信の流れ

ここでは組込みシステムで使うということで、ステーションにフォーカスして話を進めます。
まず、無線LANの通信の様子を有線LAN(Ethernet)と比較してみましょう。

シーケンス有線LAN無線LAN
1HUBを幹線に接続するAccess Point(AP)を幹線に接続する
2ケーブルで機器をHUBに接続するステーションが適切なAPを探し出す
3HUBとLINKが確立するステーションがAPにアソシエーションする
4IPアドレスを割り振るIPアドレスを割り振る
5ARPパケットで相手を探すARPパケットで相手を探す
6TCP/IPで通信をするTCP/IPで通信をする
7ケーブルが抜けるBeaconが途絶える、APが接続解除する
8ケーブルで機器をHUBに接続するステーションが適切なAPを探し出す

基本的に通信をする(シーケンス4~6)は、有線LANも無線LANも同じ処理になります。当たり前のことと言われればそれまでですが、これがネットワークのレイヤ構造のすばらしい点で、MAC層である有線LAN、無線LANの概念は、ネットワーク通信のIP層以上の概念から独立して考えることができます。

ここで、有線LANと違って厄介なのが、LINKの確立(シーケンス2,3)と、LINKの監視(シーケンス7,8)です。逆に言えば、無線LANとしてはこれらLINKの状態保持を行うための処理が本質であるということになります。

ソフトウェア的に考えると、メディアの質、つまり有線LANで言うところのケーブルの質の確保は、そのほとんどの部分をカード、モジュールの内部のチップが行ってくれるので、その質に応じた通信状態を維持するということが大切です。

以下では、このLINK状態の保持を行うためのソフトウェアで考慮する必要のある項目をリストアップして検討してみます。

1-3 Beaconパケット

図1有線LANでLINKを張るHUBは人間が目で見て探しますが、無線LANではAPがその存在を示すパケットを定期的に送出します。これがBeaconパケットです。

Beaconパケットには、そのAPがどのようなAPであるかを示す情報が含まれています。

情報としては、

  • APの暗号設定
  • APの通信伝送レート設定
  • SSID
  • ESSID

等が含まれています。

ステーションは最初に自分の設定できるチャネルをスキャン(探索)して、近傍に存在しているAPのBeacon情報を収集します。収集したBeacon情報を元に最適なAPを選んで、そのAPとMACレベルでの接続を確立します。Beaconはステーションにとって見えない空気中のHUBのポートを探すための案内役をします。

一般にBeaconは100msの間隔で送信されています。間隔の設定はAPに依存して変更可能ですが、100msの間隔で送信されていると考えて問題ないでしょう。

このBeaconは無線LAN上における「ブロードキャストパケット」であり、近傍の全てのノード(ステーションもAPも)が受信可能です。

APと接続が確立した後もステーションはBeaconを受け続けているので、APとの接続状態をある程度検知することができます。Beaconが途絶えて、通信が正常終了しなくなった時、APに異常な状態が発生したと考えられるので、新たなAPを探索して接続を確立することになります。

無線は空気中を伝搬しているので、電波を伝えたくない範囲まで電波が届きます。これは、例えばビルの事務所の中で無線通信をしたいと思っても、隣のビルや上下階の事務所に通信データが伝わるというようなことです(図1)。言わば、他所の会社のHUBにも繋げることができてしまうということで、このため、誰の所有のHUB(AP)かを基本的に示す情報が必要になります。これは一般的にSSIDとして認識されます。

SSIDは可変長の文字列で、通信をしたいノードで一意に決めて共有する情報です。SSIDを例えば "CQ_interface12" とすると、APとステーションは共にその情報を共有して、ステーションは接続をするAPとして該当するSSIDのAPだけを対象にします。

しかし、このSSIDは通常Beaconに載っており、近傍の全てのノードが参照することができるため、外部の人間にも"CQ_interface12"の情報が知れ渡り、勝手にHUB(AP)に接続されることが起こり得ます。外部からの侵入を防ぐために、認証セキュリティが必要になります。

ここで言う「認証セキュリティ」は単なる「暗号」とは異なることに注意が必要です。APとステーションの間でお互いに相手を特定するための「認証」を行なう動作であり、副次的に認証の状況を外部に知られないためにこの「認証」の動作に暗号化が必要になるということになります。認証の方式には、WEP(Shared-Key)方式とWPA/WPA2方式があります。

当初のIEEE802.11ではWEPを定めましたが、キーを変更する仕組みがないことなどから、脆弱性があり、詳細は2暗号セキュリティの項で述べます。

1-4 InfrustructureとAdHoc

図2今までは、APとステーションの接続の話をしてきました。この通信形態をインフラストラクチャモードと呼びます。

一方、無線LANにはステーション同士を直結する通信方式があります。Ethernetでいうところのクロスケーブルでの直結に相当します。このモードをIBSS(Independent Basic Service Set)と呼び、通称アドホックモードと呼びます(図2)。

アドホックでは2つ以上のステーションが同時に通信を行なえます。インフラストラクチャモードがAPによる中央集権型の通信とすると、アドホックモードは個別ステーションによる分散管理型の通信といえます。

分散管理型の通信では、誰も他にいない状態で通信を始める最初のステーションが代表者としてBeaconを送出します。後から加わるステーションはそのBeaconに合わせる形で、通信に参加します。

Beaconを送出しているステーションがいなくなった場合、個々のステーションが独自に情報を集めて、次に代表となるべきステーションが自主的にBeaconを送出し始めます。こうして、通信の管理を進めて行く方式です。

アドホックで注意が必要なのは、集中管理されていないので、認証自体ができないということです。このため、暗号による通信はできても、認証によってセキュリティを向上させることが困難です。そのことを踏まえて、利用するべきです。

アドホックは分散管理のイメージであるため、LINKの確立という意味でいうと、具体的にLINKの確立を確認する手順がありません。よって、各ステーションが独自のLINKが確立している状況を想定して、動作するということになります。

1-5 パケットの衝突と隠れ端末

LINKが確立している状態で通信エラーが発生した時に、それが回線の品質の劣化を示すのかどうかを判断するのは非常に難しい問題です。Ethernetの場合、電気的に接続されているので、電気レベルを監視することで、回線自体の劣化を確認することができますが、無線LANの場合、通信エラーには様々な外的な要因が働いている可能性があり、回線の劣化を一概に捉えることができません。

  • PHY(電波)レベルでの障害電波(2.4zGHz帯での電子レンジ等)
  • 他のノードとの通信データの衝突
  • 外気の状態
  • 伝搬経路の障害物(窓やドアの開け閉め等)

このうち、「他のノードとの通信衝突」に関して、典型的な例として「隠れ端末」と呼ばれる状態を説明します(図3)。

図3APで集中管理するインフラストラクチャモードでは、APを中心としてステーションが配置されると考えられます。

この時、APからより遠方のステーション同士はお互いに電波が届かないところに存在することになります。同時に2つのステーションから送信されたデータは、APの近傍で衝突して、APに伝わらない状況になり、ステーションにはAPからACK応答が返ってこないという結果としてしか検知できません。

この通信のエラーは、ノードの配置の問題なので、回線のより確実な通信を確保することは行なうべきであっても、回線の劣化と判断するべきではありません。

こうした現象は、隣接する同一チャネルのAPとの間でも起こり得る現象で、これらの現象と回線の劣化との判断はさらに難しいのです。

無線LANでの典型的な回線の劣化は、APからのBeaconを含めた正常な通信データの電波強度が落ちているという状況であり、これは一般に「APからの距離が離れた」ことを示すと考えられます。この場合、上記の現象を含めて、より近くに好ましいAPが存在するのであれば、接続を切り替えるのが望ましいといえます。

ただし、必ずしも最適のAPが常にあるわけではなく、どうしてもある程度遠方のAPと通信を確立しなくてはならないステーションは存在します。このような場合にはACKエラーを頻発させないような工夫が必要です。

例えば、遠方のステーションは伝送レートを落としており、なおかつ通信データが長い場合、データ送信により長い期間帯域を使います。そのデータがACKエラーになるとさらに再送を行ない、帯域を使います。この状態が定常的に発生すると、遠方のステーションが通信データ量に比較してかなりの帯域を使ってしまいます。これを避けるために、RTS/CTS(送信要求/送信可)の短いパケットで通信の帯域を確保して、送信データが確実にAPに伝わるように工夫をしています。

2 暗号セキュリティ

配線の煩わしさのない無線LANですが、その便利さとは裏腹に放置しておくと大事になりかねない問題も持っています。それがセキュリティです。

Beaconパケットのところで述べたようなLINKを確立するためにお互いを認証するという動作と、回線の状態を外から見えなくするための暗号化の処理があります。

組込みシステムの場合、アプリケーションやユースケースによって求められるセキュリティの強度も異なりますが、一般的に言って、ネットワークの中に1台でもセキュリティ強度の低いノードがあると、ネットワーク全体を危険にさらすことになります。

2-1 WEP

もともとIEEE802.11で定義されているセキュリティとは、以下の三つでした。

  1. ESSID
  2. MACフィルタリング
  3. WEP64/128

1.は単なるAP接続とグルーピングが目的であり、2.はステーションのMACアドレスでAPへの接続規制を行うわけですが、ステーションのMACアドレスは偽造することも不可能ではありません。よってこれら1.、2.は、厳密な意味でのセキュリティとは言えません。

1.、2.とは違い、3.は実際に流れるデータを隠すという目的のために用意されており、APとステーションで事前に共有鍵を設定しておく、という形をとります。しかしながら、WEPアルゴリズムは暗号学的には弱い部類に入る暗号なので、電波が届き、かつそのデータを傍受できるPCがあれば、クラッキングツールを用いて容易に鍵の類推をすることができ、生データを見ることが可能になってしまいます。

2-2 WPA

IEEE802.11という規格に対して、この普及を促進する業界団体Wi-Fiアライアンス(発足当時の名称はWECA)は、無線LAN同士の相互接続の認証を行い、Wi-Fiというブランドを構築していました。IEEE802.11だけのセキュリティの弱さを危惧したWi-Fiは、WPA (Wi-Fi Protected Access)を2002年10月に発表しました。WPAは、認証を事前秘密鍵で行うか、RADIUSサーバーを使用するかで二つに別れ、前者はWPA-PSK、後者はWPA-1X(あるいは単にWPA)と呼ばれています。

2-2-1 WPA-PSK

図4WPA-PSKでは、APとステーションで共有するパスフレーズから、決められたアルゴリズムに従って512bitのマスターキー(PMKと呼ばれる)を事前に生成しておきます。

そして、AP-ステーション間のLINK確立後、4Way-Handshakeと呼ばれるプロトコルで乱数とお互いのMACアドレスを交換し、それらとマスターキーを組み合わせて512bit(但し、AESを使用する場合は384ビット)のテンポラリキー(PTKと呼ばれる)を生成します。

このうち最初の128bitは、PTKとして両者が同じ物を持ったことを確認するために使用されます。次の128bitは、この後行われるGroupKey-Handshakeにおいて、ブロードキャスト/マルチキャストの暗号鍵(GTKと呼ばれる)の暗号化に使われ、GTKは定期的にAPから配布されます。残りの256bit(AESを使用する場合は128bit)は、ユニキャストの暗号鍵として使用されます(図4)。

このように4Way-Handshake、GroupKey-Handshakeを使うことで、キーの変わらないWEP64/128と違い、接続あるいはAPからの更新の度に鍵が変わるようにしてセキュリティの強度を上げています。

2-2-2 WPA1X

図5共有マスターキーを認証の一部とするWPA-PSKとは違い、WPA-1Xは認証としてIEEE802.1Xを使用します(図5)。

IEEE802.1XとはRADIUSサーバーを使用して、いわゆるCredential(証明書)で認証を行う方式であり、このために、ステーションとAP間でEAPoL(EAP over LAN)、APとRADIUSサーバー間でRADIUSプロトコル(EAPがRADIUSプロトコルでWrapされる)が使用されます。

IEEE802.1Xで決められている認証方式はEAPであれば、特に既定されていませんが、WPAでの使用にあたっては、EAP-TLS、PEAP、EAP-TTLSなどTLSをベースとしたものに限定されます。これは、IEEE802.1Xが認証だけを規定しているのに対し、WPAはそれに加え、PTK生成に必要なマスターキー(PMK)の生成を要求するためです。

上記の方式では、その認証の過程においてPMKが生成され、RADIUSサーバーはAPにそのPMKをMPPE(Microsoft Point-to-Point Encryption)を使って転送します。そして、認証成功後、WPA-PSKと同様、4Way-Handshake、GroupKey-Handshakeが行われます。

EAP-TLS、PEAP、EAP-TTLSはセキュアなトンネルを生成するところは共通しますが、細かいところで違いがあるため、以下にその違いを要約します。

方式内容ステーションへの負荷
EAP-TLSお互いの認証をX.509証明書で行う
PEAPX.509証明書による認証はサーバーのみ。ステーションの認証はセキュアトンネル内でさらにEAPによる認証を行う
EAP-TTLSX.509証明書による認証はサーバーのみ。セキュアトンネル内でAVP(Attribute-Value Pair)形式による認証を行う

上記以外にも、Ciscoが提唱するEAP-FASTや携帯電話での認証を応用したEAP-SIMなどが次世代の認証方式として期待されていますが、まだ一般的には使用されておらず、WPA-1XはもっぱらビジネスユースでPEAP、EAP-TTLSで使用されているのが実情のようです。

2-3 WPA2

図6そもそもIEEE802.11のセキュリティは、IEEE802.11iでの標準化作業が進んでいたものの、無線LANが世の中に急速に広まったおかげで、セキュリティ対策が必要になったためにWi-Fiアライアンスから急遽出されたという背景がWPAにはあり、セキュリティ的に十分ではないと考えられていました。

そんな中、2004年6月にようやくIEEE802.11iの標準化作業がおわり、これを反映したWPA2が制定されました。WPA自身はWi-Fiアライアンス内でしか開示されていませんが、以下に述べる部分を含む基本的な部分はIEEE802.11iとして公開されているものと同じですので、以下については、IEEE802.11iの規格として説明します。

WPA2(IEEE802.11i)は、プロトコルで使用されるフレームフォーマットが細かいところで違うものの基本的にはWPAと同じです。WPAとの大きな違いを挙げれば以下のようになります。

  1. AESを標準とする。(TKIPはオプション)
  2. 事前認証が行える。
  3. PMKキャッシュが行える。

このうちの2.と3.、接続するAPが変わる毎に認証が必要になり利便性が悪くなるという、WPA-1Xが本来持っていた問題を解決する機能です。「事前認証」とは、現在接続中以外のAPに対して、今接続中のAPを経由してIEEE802.1X認証を行うものです(図6)。

これにより、ローミングなどで接続するAPが変わっても、事前認証が済んでいるAPに接続することで認証処理を省略することが可能になり、通信の回復がすばやく行えるようになります。

「PMKキャッシュ」とは、一度認証に成功し接続可能となったAPとの間で共有しているPMKをAPがキャッシュしておくことにより、先の「事前認証」と同様、ローミングなどで接続するAPが変わっても認証処理を省略することが可能になり、同様の効果が得られます(図7)。

3 無線認証

これから述べる認証は、電波や電磁波を出す製品として、順法や相互接続性を確保していることを証明するために第三者機関から取得するもので、前項で説明したセキュリティにおいて通信相手を確認するものとは異なります。

無線LAN機能を搭載した製品を開発する際、必要とされる認証を取得することを考慮しなければなりません。認証を取得するためには、単にハードウェアとして規格を満たすものを作るというだけでなく、規格を満たしていることを確認するためのソフトウェアを、製品に搭載する通常のソフトウェアとは別に用意する必要があります。認証を取得するために必要なソフトウェアとはどんなものなのかについてまとめてみます。

3-1 必要とされる認証

無線LAN機能を搭載した製品を開発する際に必要とされる認証を以下に挙げてみました。

  1. EMC/EMI認証
  2. 無線認証
  3. Wi-Fi認証

上記1.~3.のそれぞれの認証を取得するために必要なソフトウェアについて順に述べていきます。

3-2 EMC/EMI認証

EMC(Electro-Magnetic Compatibility)とは、電気機器などが備える、電磁的な不干渉性および耐性のことですが、このうち「不干渉性」のほう、つまり、ノイズ源として他の電子機器や人体に影響を与えないかどうかという、EMI(Electro Magnetic Interference)について、世界各国でそれぞれ規制が設けられています。

EMC/EMI認証は、無線LAN機能を搭載する/しないに関わらず、必要となります。EMC/EMI認証で必要となるデータの測定は、対象となる製品を通常使用する(=製品に搭載する通常のソフトウェアを動作させた)状態で行います。このため、EMC/EMI認証に関しては、認証取得のために追加で必要となるソフトウェアはありません。

3-3 無線認証

無線認証は、無線機能を搭載した製品を開発/販売する場合、必ず必要となります。そもそも電波は公共のもので、特定の人間が独占しないように電波法で色々と基準が決められています。

通常、電波を使用する場合(発する場合)は、免許が必要ですが、ある特定の要件基準を満たす場合には免許無しで使用することが可能です。ただし、使用する装置は、国が定めた基準をクリアしている必要があります。この判定が無線認証で、日本国内では「技適」と言われているものです。

電波を使用する場合、使用する場所(国)の電波法に従う必要があります。

日本では、製品に搭載する無線LANモジュールが既に認証を取得してあり、認証機関から発行された番号がモジュールの見える位置に表示してあれば、製品として新たに認証を取得する必要はありません。製品のマニュアルには、無線LANモジュールの認証番号を記載することになります。

しかし、北米や欧州をはじめとする海外では事情が異なります。製品に搭載する無線LANモジュールが認証を取得していても、製品として新たに認証を取得する必要があります。無線認証で必要となるデータを測定するためには、まず基本機能として、以下の2つの状態を作る機能が必要となります。

  • 連続送信状態
  • 連続受信状態

また、上記の基本機能以外に、以下に挙げる機能も必要となります。

項目内容
規格切替指定規格(802.11g or 802.11b)の指定を行う
伝送レート指定802.11gの場合:6,9,12,18,24,36,48,54Mbpsの指定を行う
802.11bの場合:1,2,5.5,11Mbps、及び、long preamble or short preambleの指定を行う
出力パワー指定出力パワーの指定を行う
チャネル指定チャネルの指定を行う
※国によって使用できるチャネルが異なるので注意が必要である
変調切替指定連続送信時の変調波or無変調波の指定を行う
※ほとんどの国では変調波の連続送信のみでよいが、国によっては無変調波の連続送信が必要な場合がある

上記に挙げた機能は、無線LANモジュールとともに提供される通常の無線LANドライバソフトウェアには含まれていない場合が多いはずです。ただし、無線LANモジュールの供給メーカは、出荷前の調整用として、上記機能をもったソフトウェアを別に持っています。従って、製品開発メーカは、通常の無線LANドライバソフトウェアとともに、このソフトウェアを製品に搭載する必要があります。

このソフトウェアは、製品を出荷した後には必要なく、また製品を購入したユーザが使用できることは問題があるので、アプリケーションソフトウェアレベルでも工夫が必要になります。すなわち、保守/サポート用など通常のユーザが使用できない画面から起動するような仕組みにしなければなりません。当然ながら、保守/サポート用のユーザインタフェース画面で、連続送信状態/連続受信状態の起動、チャネル指定、変調切替指定などを行えるようにしておくことも必要です。

3-4 Wi-Fi認証

Wi-Fi認証は、無線LAN機能を搭載した製品を開発/販売する場合、必ず必要という訳ではありませんが、他の無線LAN機器との相互接続性を強くアピールしたい場合などには必要となります。

Wi-Fi認証を取得するには、まずWi-Fiアライアンスへの加盟が必須です。加盟すると、Wi-Fi認証に必要な試験項目の内容を知ることができます。

Wi-Fi認証は、無線LANドライバソフトウェアに関しては、通常のもののみでよく、無線認証とは異なって、連続送信状態/連続受信状態の起動などを行う必要はありません。逆に、Wi-Fi認証の試験時に、通常の無線LANドライバソフトウェアと別のソフトウェアを動作させてはいけません。

アプリケーションソフトウェアについては、無線認証と同様、保守/サポート用のユーザインタフェース画面等で、その機能を起動する仕組みを作っておく必要があるかもしれません。

3-5 認証取得プロセスにおける注意点

ここまで、認証を取得するために必要なソフトウェアについて述べてきましたが、認証を取得するプロセスにおける注意点についてもいくつか挙げてみます。

まず、無線認証を取得するためには、かなりの期間がかかります。国によっても異なりますが、北米などの場合、無線認証に必要なデータを測定し、申請書を作成するのに約1ヶ月かかります。その後、認証されるまでにさらに最大で約1ヶ月、合計で最大約2ヶ月かかることになります。当然のことながら、製品出荷時には認証を取得している必要があるため、無線認証のために必要なソフトウェアは開発の比較的早い段階で搭載を完了しておく必要があるということになります。

また、無線認証の項で、「日本では、製品に搭載する無線LANモジュールが既に認証を取得していれば、製品として新たに認証を取得する必要はない」と述べましたが、ここにも注意点があります。無線LANモジュールメーカが認証を取得した際に使用したアンテナと異なるアンテナを使用する場合です。

この場合は、書類審査が必要となります。通常、無線LANモジュールメーカは、利得の大きいアンテナを使用して認証を取得しているので、使用するアンテナがそのアンテナよりも利得が小さい(=出力パワーが小さい)ことを示す書類を提出し、審査を受けることになります。これにより、無線LANモジュールとは別の認証番号が発行されます。

この認証番号は外から見える位置に表示しなくてはなりません。書類審査とはいえ、一定の期間を要するので、注意が必要です。また、指向性が強い(=ある方向への出力パワーが極めて大きい)アンテナを使用する場合などは、書類審査ではなく、海外と同様に、製品としてデータを測定して、新たに認証を取得する必要が出て来るので、これも注意が必要です。

無線認証に必要なデータの測定や申請書の作成等については、日本国内に代行業者がいくつかあります。国よっては、日本国内ではなく現地での測定が必要となるところもありますが、それらも含めて代行してくれる業者もあります。ただし、これらの業者も、保有している測定ブースの数には限りがあるので、早い段階で業者との間でスケジュール調整を行い、そのスケジュールに合わせて、必要なソフトウェアを搭載していく必要があります。

Wi-Fi認証に関しても、日本国内でテストを実施できる場所は限られているので、比較的早い段階での予約が必要です。そのスケジュールに合わせて、ソフトウェアの開発が必要ということになります。

3-6 最終的にはメーカの責任

最後に、ソフトウェアとは直接関係がないものの、認証取得に関連して注意が必要な点をいくつか挙げてみようとおもいます。

製品として無線認証を取得する場合、対象となる製品を、認証を取得した状態から簡単に変えられないという工夫が必要になります。具体的には、

  • 搭載されている無線LANモジュールを変えられない
  • 無線LANモジュールの出力パラメータを変えられない
  • アンテナを変えられない

といった対策です。

このため、製品を簡単に解体できないように特殊ネジを使用したり、アンテナの取り付け部にも特殊ネジを使用したりすることが必要になります。

最終的にどういった対策をとるかは、最終的には製品を開発/販売するメーカの責任になってしまいます。これについても、事前に十分に検討しておく必要があります。

ページのトップへ