2-3(1) 無線LANのセキュリティ

無線LANのセキュリティ対策について、IPAから次のように述べられている。

「無線LANのセキュリティ対策の重要性」

電波の届く範囲なら壁などの障害物を超えてどこでも通信が可能という便利さを備えています。しかし、その便利さとは裏腹に、悪意ある者から不正アクセスの対象として狙われ易い環境とも言えます。しかも、電波という、目に見えない通信経路を使うということは、侵入されていることさえも気付きにくいため、大きな脅威となります。(http://www.ipa.go.jp/security/ciadr/wirelesslan.htmlより引用)

この章では、セキュリティ対策について述べる。
まず、無線LANのセキュリティの全体像を以下に示す。
認証
 ユーザ認証と端末認証に分けて考えるべきである。
 WPA-PSKなどのユーザ認証の場合、許可されていない持ち込みPCでも接続できてします。一方、EAP-TLSやMACアドレス認証は、端末を不正利用されれば誰でもが利用できてしまう。とはいえ、Windowsのログイン認証にてユーザ認証ができているとも考えられる。
   →後ろの記事で詳しく解説する

暗号
   →後ろの記事で詳しく解説する

その他
 ①端末間直接通信の禁止
  ホテルや公衆無線LANサービスでは必要
 ②ESS-IDの隠蔽
  Hide SSIDで設定する。詳しくはSSID Profileの設計にて。
 ③ANY接続の拒否
  Deny_Broadcast Probesで設定する。詳しくはSSID Profileの設計にて。
  ※ちなみに、この設定はIAPには無く、コントローラタイプのみで設定可能。  
・・・

参考までに NTT西日本のフレッツスポットでは以下が採用されているようだ。
(1)暗号
 WEPまたはAES
(2)認証
 ①Web認証 ID/パスワードによる認証
 ②端末認証  MACアドレス認証 →縮小傾向に

2-3(2) 無線LANの暗号化方式
2-3(3) 無線LANの認証方式
2-3(4) 認証①WEP
2-3(5) 認証②WPA-PSK
2-3(6) 認証③MACアドレス認証
2-3(7) 認証④WEB認証
2-3(8) 認証⑤IEEE802.1X認証
2-3(9) 認証⑤-1 PEAP
2-3(10) 認証⑤-2 EAP-TLS
2-3(11) PEAPとEAP-TLSの使い分け

2-3(2) 無線LANの暗号化方式

暗号化の方式は、文献によって見解が分かれるし、メーカ毎に若干考え方というか表示が違う。そこで、IPAのまとめを活用することにした。
http://www.ipa.go.jp/security/ciadr/wirelesslan.html

暗号化方式 暗号化アルゴリズム 鍵の自動更新 暗号キーの
更新機能
改ざん
検知 
1 WEP RC4 なし なし なし
2 WPA(TKIP) RC4 あり あり あり
3 WPA2 AES あり あり あり

※同じくIPAの情報処理技術者試験の過去問では、WPAを「通信規格」と表現している。このあたりも、ぶれがある。
f 

暗号の方式も、言葉がたくさんあってよく分かりません。
暗号化方式と暗号化アルゴリズムって違うのですか?

単なる言葉の問題なので、あまり気にする必要はないかもしれない。
暗号化のアルゴリズムは、暗号化の技術そのもの。暗号化方式は、暗号化アルゴリズムを使って、鍵を作って暗号化する一連と考えればよいのだろうかと思う。

では、3つの暗号化方式を順に解説する。

WEP
今は脆弱性があるので、使うべきではない。ツールを使うと一瞬で解読できる。その対策として、WEPの仕組みを4カ所改良した次のTKIPが開発された。軸となる改良点は、鍵を定期的に更新する点である。鍵を自動で変えれば、たとえ暗号化が破られたとしても、また新しい鍵で暗号化する。

WPA
厳密にいうと、WPAは、暗号化の仕組み(TKIP)と、認証の仕組み(IEEE802.1X)と、改ざん検出(MIC)の仕組みを含めた通信規格と呼ぶべきだと考えている。少なくとも、暗号化だけの技術ではないので注意していただきたい。

WPA2
WPAと同じように、暗号化の仕組みだけを意味するのではない。認証の仕組み(IEEE802.1X)と、改ざん検出(CCMP)の仕組みを含めた通信規格である。
※CCMPは電子署名を使った改ざん検出。MICは単にハッシュするだけ。

IPsec
最近の製品はIPsecに対応しているものが多く、IPsecでの暗号も可能である。ただ、あまりしないかな。

まあ、結論として、WPA2を使いたい。

2-3(3) 無線LANの認証方式

無線LANの認証はややこしい。また、運用管理者や利用者の設定もあり、簡単な作業ではない。さらに、認証サーバの一元管理などを求められることも多く、きちんとした設計が必要だ。

こちらも、認証方式の分類には文献によって分かれると思うが、とりあえずは以下の整理とする。

認証の種類 認証方法 ユーザ認証/端末認証
0 オープン認証 認証なし        ー
1 WEPによる認証 WEPキー ユーザ認証
2 WPA-PSK 事前共有鍵(pre-shared-key) ユーザ認証
3 MACアドレス認証 MACアドレス 端末認証
4 WEB認証 ユーザID/パスワード ユーザ認証
5 EAP(IEEE802.1X認証) ユーザID/パスワード(PEAP)
クライアント証明書(EAP-TSL)
ユーザ認証(PEAP)
端末認証(EAP-TSL)

参考までに、Windows7のパソコンにおける、無線LANの認証設定は以下が選択できる。
open

認証と当てはめると
(0)認証なし(オープン認証)
 → 認証なし(オープンシステム)
(1)WEPによる認証
 → 共有キー
(2)WPA-PSK
 → WPA2パーソナル、WPAパーソナル
(5)EAP(802.1 X認証)
 → WPA2エンタープライズ、WPAエンタープライズ、802.1X、CCKM

※(1)のWEPは脆弱性があることから使わないと考えよう。
詳しくは順に解説する。

i  
あれ、SSIDも一つの認証ですよね?
SSIDを知らなければ接続できないと思います。
確か、セキュリティのためにAPから送信するビーコンにSSIDを埋め込まない設定ができたと思います。

いや、意味が無い。
実際の通信にはSSIDが含まれているので、盗聴すれば分かってしまう。

2-3(4) 認証①WEP

セキュリティの脆弱性があるので使うべきではないが、参考として記載する。

以下はWindows7における、WEPによる認証と暗号の設定画面である。
※一番下のキーインデックスに関して補足する。APではWEPキーを4つ設定できる。どのキーを使うかをAP側と合わせるためのもの。
wep

2-3(5) 認証②WPA-PSK

これはPSK(Pre-Shared Key)という事前共有鍵を用いて認証する。PSKはパスワードと同じと思ってもよいだろう。
事前共有鍵は、通信の暗号化に使うする鍵ではなく、単なる認証用の合言葉と考えたほうがよいだろう。
後で紹介するIEEE802.1XによるEAPの認証に比べて、簡単な認証である。特に、PEAPやTLSでは証明書が必要であるが、認証局をたてるのは大変。無線のセキュリティ対策はWPA(又はWPA2)を通うことが常識になっている。しかし、802.1 X認証ではRADIUSなどの認証サーバが必要であり、これはハードルが高い、そこで、WPA-PSKは簡易に構築するには適しているだろう。

g 

PSKはID/パスワードと考えていいですか?

ID/パスワードは、利用者毎に違う。しかし、PSKは共通だ。全社員同じPSKでも可能である。
i

WPA-PSKの場合、
WPAとつくから、これはIEEE802.1 X認証の一つですか?

いや違う。PSKは認証としての機能であり、通信の暗号化はWPAである。

以下は、Windows7におけるWPA-PSKの設定画面である。
psk

2-3(6) 認証③MACアドレス認証

MACアドレスは暗号化されない。また、簡単に自分で変更できる。管理が大変というデメリットばかりの認証方式である。
しかし、実は以外に利用されている。フレッツスポットとか。
ユーザ(利用者)のPC上での設定が不要というのが最大の特徴であろう。一般の利用者に802.1X認証の設定を依頼するのはかなり厳しいし、問い合わせをうけるヘルプデスクも大変なことになる。MACアドレス認証でも、一定の効果があることから、他の認証と組み合わせて活用するとよいと思う。
g 

PCのMACアドレスってそんなに簡単に変えられるの?
昔のPCはマイネットワークから簡単に変えられたが、今はできにくくなっている。

話が変わってMACアドレスの管理であるが、MACアドレスをAPに登録して管理することも、RADIUSで一元管理することも可能である。APに登録する場合は、全APに登録しなければいけないので、かなりの手間ではある・・・。

2-3(7) 認証④WEB認証

最近は流行っている。なぜならPCに設定が不要だからである。IEEE802.1X認証のようなに、複雑なPCの設定がいらない。

g 

なるほど。PCの設定がいらないから、PCの無線LANの設定で、設定が出てこないのですね。
でも、だったらみんなWeb認証にすればいいのでは?

Web認証のセキュリティは高くない。たしか通信は暗号化されない。なので、TKIPなどの暗号化技術との組み合わせが必要だ。
それと、ちょっと要調査ではあるが、802.1 Xなどのようにセッション管理はできるのだろうかという疑問がある。ログオフした情報などが分からないので、一度ログインしてしまえば、翌日もずっと使えたりする可能性もあるのではないか。また、ローミングなどでAPが切替わるときなどの対応に疑問がある。(要確認)

Web認証の場合、ID/パスワードはRadiusやADなどに問い合わせをする。
また、IEEE802.1 Xなどの認証とは別次元でやっているので併用も可能であろう。

2-3(8) 認証⑤IEEE802.1X認証

IEEE802.1X認証は複雑であり、苦手な人も多いだろう。
整理としては、情報処理技術者試験の過去問(H20SV午後Ⅱ問2)を引用する。

認証方式 クライアント認証 サーバ認証 セッション鍵
の自動生成
ノートPCの
OSでの対応
EAP-MD5 利用者ID/パスワード なし なし 現在は実装なし
EAP-TLS ディジタル証明書 あり あり 標準対応
EAP-TTLS 利用者ID/パスワード あり あり 追加ソフトが必要
PEAP 利用者ID/パスワード あり あり 標準対応

種類がたくさんあるが、覚えるべきメインはPEAPとEAP-TLSである。
(1)PEAP
 ・サーバの認証はサーバ証明書、クライアントの認証はID/パスワード
(2)EAP-TLS
 ・サーバの認証はPEAPと同じだが、クライアントの認証はクライアント証明書が必要で、クライアント毎に証明書が必要。
g
ということは、PEAPよりも、証明書で認証するEAP-TLSの方が、セキュリティが高いということですね?
いや、一概にそうともいえない。PEAPはユーザ認証で、EAP-TLSは端末認証である。つまり、クライアント証明書が入った端末であれば、誰でも利用できる。なので、端末が盗まれたら、利用されてしまう。
 ただ、端末は一人一台で、そこにパスワードがかかっていることが、現在の企業パソコンの現状であろう。そうであればユーザ認証もできているであろうから、EAP-TLSはもっともセキュリティが高いといえる。

参考として、IEEE802.1X認証の設定の一部を紹介する。
peap
PEAPの場合は、PEAPと書かれたものを選択する。
EAP-TLSは、[スマート カードまたはその他の証明書] を選択する。

詳細な設定は、別途PCの設定方法で記載する予定。
d 

参考までに聞きたいのですが、
無線LANにおけるIEEE802.1 X認証とDHCPによるIP取得はどっちが先でしょうか?
IEEE802.1 X認証が先である。これで無線LANのアダプタが有効になる。

2-3(9) 認証⑤-1 PEAP

PEAPとは、Protected Extensible Authentication Protocolの略である。「保護された、拡張認証プロトコル」である。暗号化して保護した状態で、認証情報をやり取りする。

特徴
・クライアント側に必要なのは、CA証明書のみ。クライアント証明書は不要
 →(証明書配布管理の手間が少ない)
・ユーザ名とパスワードで認証する。

名称未設定 11

必要なものは、
・AP・無線LANコントローラ
・RADIUSサーバ
・認証局
である。WindowsServerで構築する場合、ADでユーザを管理し、認証局・RADIUSサーバでもADのユーザ情報を利用している。
PEAP概念

図は簡略化している。①~④のシーケンスは実際にはもう少し複雑である。

①~④では、RADIUSサーバのサーバ証明書をサプリカントに送り、サプリカントではCA証明書の公開鍵を使ってRADIUSサーバの真正性も確認している。つまり、ユーザは「このAPに安心してつないでよいのか?悪意のあるAPではないか?」を確認することができるのだ。

ポイントは、APやWLC(オーセンティケータ)は、EAPOLとRADIUSの相互変換を行っているだけで、内容の判断は行っていない点である。したがって、オーセンティケータは認証のためのユーザデータベースは持っていないし、証明書も必要ない。

2-3(10) 認証⑤-2 EAP-TLS

EAP-TLSとは、Extensible Authentication Protocol – Transport Layer Securityの略である。

特徴
・サーバ側・クライアントが双方に証明書が必要である。
 →クライアントへの配布管理の手間がかかる
・セキュリティは高い。クライアントの証明書で認証するから。

名称未設定 11

必要なものは、
・AP・無線LANコントローラ
・RADIUSサーバ
・認証局
である。(PEAPと同じ)
WindowsServerで構築する場合、ADでユーザを管理し、認証局・RADIUSサーバでもADのユーザ情報を利用している。

名称未設定 13

図は簡略化している。①~④のシーケンスは実際にはもう少し複雑である。

①~④ では、RADIUSサーバのサーバ証明書と署名をサプリカントに送り、サプリカントではCA証明書の公開鍵を使ってRADIUSサーバの真正性を確認している。サプリカントがRADIUSサーバに送った証明書と署名を、RADIUSサーバでも確認している。
ポイントは、APやWLC(オーセンティケータ)は、EAPOLとRADIUSの相互変換を行っているだけで、内容の判断は行っていない点である。したがって、オーセンティケータは認証のためのユーザデータベースは持っていないし、証明書も必要ない。(PEAPと同じ)