・IEEE802.1x
LANに接続したユーザを認証し,許可されたユーザーだけを通信させるようにする.
ユーザーがつながるLAN機器のポートを閉めたり,開けたりすることで実現する.
・必要となる機器
サプリカント,オーセンティケータ,認証サーバ
・サプリカント
認証をうけるパソコン(OS附属のソフト,専用ソフト)
・オーセンティケータ
サプリカントを収容するネットワーク機器(LANスイッチ,無線LANアクセスポイント)
接続ポートをON・OFFし,認証をクリアしたサプリカントだけをLANに通す役割をする.
・認証サーバ
ユーザを認証して通信を許可するかどうか判断する機器.判断した結果をオーセンティケータに
通知する役割をもつ.(RADIUSサーバが一般的)
・EAP(Extensible Authentication Protocol)
拡張可能なプロトコル
様々な認証方式の情報を運ぶためのプロトコル
IEEE802.1xでは,この仕組みを使って認証情報を運ぶ.
RFC3748で規定されている
PPPの仕組みを拡張したもの
PPPでは,認証方式としてPAP,CHAPを使用する.そこで,これ以外の様々な
認証方式に対応可能としたのがEAPである.
→IEEE802.1xではEAPのこの仕組みをつかい,様々な認証方式を使いわけられるようにした.
・サプリカントとオーセンティケータ間
→イーサネット,無線LANでつながっている
→EAPパケットをMACフレームで運ぶEAPOLを定めている.
→IEEE802.1xでLAN上でEAPパケットを運ぶためにEAPパケットをMACフレームの
データ部分にいれて運ぶ仕組み(EAPOL)
・EAPOLのMACフレーム
DA || SA || Type(88-8E) ||データ :EAPOLフレーム(46-1500B)|| FCS(4B)
・データ(EAPOLフレーム)
バージョン(1B) || タイプ(1B)|| データ長(2B)||データ(EAPパケット)(42-1496B)
タイプ
0:EAP Packet(データ送信用)
EAPパケットでユーザーIDや証明書といった認証データを
運ぶときにEAP Packetメッセージをもちいる.
1:EAPOL Start(通信の開始):EAP通信をはじめるときに使う.
EAPによる通信はサプリカントがEAPOL Startメッセージをサプリカントに出すか,
逆にオーセンティケータからサプリカントにEAPRequestメッセージを出したときに始まる.
※Windows附属のサプリカントはLANに接続しても自らEAPOL-Startメッセージを出さない.
そこで,オーセンティケータはクライアントの接続を検知したポートに対して,定期的にEAPの
Requestメッセージをおくるようにしている機器がおおい.
2:EAPOL Logoff(通信の終了)
3:EAPOL Key(暗号通信用の鍵情報の通知)
無線LANの場合はこのキーフレームを使って,鍵情報をおくる
オーセンティケータからサプリカントに暗号通信用の鍵情報を配布するための
EAPOL-Keyとよばれるメッセージ
キーフレームとよばれる.
IEEE802.1xをもちいると,このキーフレームのしくみを利用して,無線LANクライアント
に自動的に暗号鍵情報を通知できるようになる.
クライアントごとに毎回違う鍵情報を通知できるので安全面でメリットがある.
・EAPパケット
コード(1B) || ID(1B) || 長さ(2B) || タイプ(1B) || データ(可変長)
コード(1B):EAPの4つのメッセージの種類を示す.
1:Request
2:Response
3:Success
4:Failure
ID(1B)
要求(Requestメッセージ)と応答(Responseメッセージ)を対応づけるための番号
→認証サーバは新しいRequestメッセージを送信するたびにIDフィールドに違う値を設定する.
サプリカントがResponseメッセージのIDフィールドにRequestフレームに対応したID番号を
入れて返信する.
長さ(2B)
フレームのサイズ
タイプ(1B)
認証方式ごとに値がきめられている.
EAP-MD5: 4
EAP-TLS: 13
EAP-PEAP:25
データ
実際の認証で使われるユーザー名,証明書などがはいる.
・オーセンティケータと認証サーバ間
→EAPパケットをRADIUSで運ぶための拡張仕様を使う.
・EAPパケットを運ぶのに,サプリカントとオーセンティケータ間は
EAPOLをつかい,オーセンティケータと認証サーバ間はRADIUSの
拡張仕様をつかう.
→EAPパケットをやりとりするのは,サプリカントと認証サーバ間である.
→オーセンティケータはEAPパケットを中継する役割を果たす.
→認証の当事者間(サプリカントと認証サーバ間)でEAPパケットを
やりとりできるようにしている.
・認証の流れ
IEEE802.1xの通信は,サプリカントがLANにつながったときから始まる.
サプリカントはまず,認証サーバとEAPパケットをやりとりして,認証方式をきめる.
その後,実際の認証の作業にはいる.
・WindowsXP附属のサプリカントが標準でもっている方式
EAP-MD5
EAP-PEAP(ピープ)
EAP-TLS
→IEEE802.1xでは,これらの方式から選んで使う.
ユーザー認証がおわったら,認証サーバは許可,拒否の判断をして,その結果を
オーセンティケータに通知する.
→許可ならばオーセンティケータのポートを開いてサプリカントが通信できるようにする.
このとき,RADIUSサーバがオーセンティケータにVLAN情報を通知したり,オーセンティケータが
サプリカントに無線LANの暗号鍵情報を配布することも可能.
・EAPでは4つのメッセージを使って認証情報をやりとりする.
Requestメッセージ:認証サーバからサプリカントへの通信
Responseメッセージ;サプリカントから認証サーバへの通信
認証結果の通知:Success(認証成功) or Failure(認証失敗)というメッセージが使用される.
サプリカントと認証サーバはEAPパケットの先頭部分の”コード”部分に記述された数値によって
メッセージの種類が判断できる.
データ
実際の認証で使われるユーザー名,証明書などがはいる.
・RADIUSによる認証システム
→クライアント/サーバ方式
IEEE802.1xでは,オーセンティケータがRADIUSクライアントに相当し,認証サーバが
RADIUSサーバに相当する.この両者の間でRADIUS形式のパケットをやりとりする.
・RADIUSは,UDP上で動作するプロトコルである.
→RADIUSパケットはUDPパケットのデータ部分に入ってやりとりされる.
→MACヘッダー||IPヘッダー||UDPヘッダー||RADIUSパケット
・RADIUSサーバには,あらかじめ認証対象となるユーザーの認証情報をデータベースとして
格納しておく.
→IEEE802.1xでは,RADIUSサーバーがオーセンティケータから認証情報を受け取り,自身の
データベースに記載された情報をつかって許可・拒否を判断し,その結果をオーセンティケータに
返信する.
・IEEE802.1xでは,LANでRADIUSの仕組みを利用するにあたって,RADIUSの中核機能を
拡張する2つの仕組みを取り入れている.
→RADIUSでEAPパケットを運ぶための仕組み,LAN特有の情報をRADIUSで扱う仕組み
→RADIUSパケットに入るデータがEAPパケットであることを示す値(タイプ値)が79番と定義されている.
・RADIUSパケット
コード(1B) || 識別子 (1B) || パケット長(2B) || 認証符号(16B) || 属性データ1 || 属性データ2
・コード
1:Access-Request
2:Access-Accept
3:Access-Reject
11:Access-Challenge
・識別子
要求と応答を対応づけるための番号
・認証符号
データの整合性チェックなどに利用
・属性データ
タイプ(1B)||データ長(2B)||データ(可変長)
・RADIUSで扱うデータは,「属性データ」とよばれている.属性とは,そのデータの種類をあらわした情報
である.データの属性はRADIUSパケット内に入る個々のデータに記述された”タイプ値”で識別する.
→RADIUSパケットでEAPパケットを運ぶときは,タイプは79番
・サプリカントとオーセンティケータの間:EAPOLで EAPパケットをMACフレームにいれて運ぶ.
→このEAPパケットをうけとったオーセンティケータは,MACフレーム内のEAPパケットを取り出し,
そのままRADIUSパケットのデータとして乗せ替えて,RADIUSサーバにおくる.
→このときデータの属性を示すタイプ値を79番として,EAPパケットであることを示す.
→サプリカントとRADIUSサーバでEAPパケットをやりとりできるようになる.
・IEEE802.1xでLAN特有の情報を通知するための仕組み
→オーセンティケータにユーザーごとのVLAN番号を割り当てる「認証VLAN」を実現する.
・VLAN番号を割り当てるときは,RADIUSサーバがオーセンティケータに
”Tunnel-Type(トンネルタイプ)”,”Tunnel-Medium-Type(トンネルメディアタイプ)”,
”Tunnel-Private-Group-Id”という3つのタイプの属性データを通知する.
・Tunnel-Typeのデータ部分には,VLANを示す"13",Tunnel-Medium-Typeは
イーサネットでは"6"を入れることがきまっている.そして,Tunnel-Private-Group-Idの
データ部分にVLAN番号が入る.
→認証VLAN機能を持つLANスイッチはRADIUSサーバから通知されたこの3つのデータの
属性を解釈して,ポートにVLANを設定する.
・EAP-MD5方式
チャレンジ・レスポンス方式
→パスワードを生の状態でやりとりしない方式
認証サーバがサプリカントにチャレンジコードとよばれる乱数を送る.
サプリカントはそのチャレンジコードとパスワードをMD5と呼ばれる
ハッシュ関数を用いて,レスポンスコードをつくり,認証サーバに返信する.
認証サーバも同じMD5のハッシュ関数を使って,そのレスポンスコードを検証することで
通信相手のパスワードを検証する.
・IEEE802.1xで用いられる認証方式
・EAP-MD5(ユーザーID,パスワード)
サプリカントに証明書などをインストールする必要がない.
→導入や管理の手間がかからないが,セキュリティ面で不安がある.
→チャレンジコードとレスポンスの組み合わせからパスワードが推測される危険性がある.
・EAP-PEAP(SSLの仕組みを使う)
Webアクセス暗号化プロトコルであるSSLの仕組みをつかった認証方式.
→パソコンとWebサーバで暗号通信用の鍵を共有し,その共有鍵を使って実際にやりとりする
データを暗号化する.(パソコンとWebサーバ間でしかやりとりできない暗号トンネルを作り,そのトンネル
中で実際のデータを通すイメージ)
EAP-PEAPでは,暗号化トンネルをつくるところまでは,SSLと同様.
その先,EAP-PEAPでは,あの暗号化トンネル内でIDとパスワードをやりとりする.
デフォルトでは,”EAP-MSCHAP v2”というチャレンジ・レスポンス方式の認証方式を使用する.
サーバにSSLと同様に”サーバ証明書”が必要.一方,クライアントにはサーバ証明書が
自分の信頼したサーバーの証明書であることを検証するために”ルートCA証明書”が必要になる.
・EAP-TLS(お互いに証明書を交換する)
サプリカントとサーバのお互いで自身の証明書を交換しあう方式
→証明書の検証をサプリカントとサーバーで相互に実施する.
→最初にサーバーがサプリカントに証明書を送付し,サプリカントは自身のルートCA証明書を
使用してそのサーバ証明書を検証する.検証がクリアできたら,クライアント証明書をサーバに送付する.
サーバも自身のルートCA証明書でクライアント証明書を検証し,検証がクリアできたら認証成功である.
→セキュリティ強度が高いが,導入や管理に手間がかかる.
PR