ネイティブ 802.11 802.1X モジュールへのインターフェイス
オペレーティング システムは、ネイティブ 802.11 ミニポート ドライバーから NDIS_STATUS_DOT11_ASSOCIATION_COMPLETION 表示を受け取った後、Dot11ExtIhvPerformPostAssociate 関数を呼び出して、IHV Extensions DLL による関連付け後の操作を開始します。
関連付け後の操作の実行中、または操作の完了後に、IHV Extensions DLL は、オペレーティング システムでサポートされている拡張認証プロトコル (EAP) アルゴリズムを使用して、アクセス ポイント (AP) でユーザーを認証できます。 この状況では、IHV Extensions DLL は、ネイティブ 802.11 フレームワークの 802.1X モジュールとインターフェイスして、AP から EAP over LAN (EAPOL) 形式で送信される EAP パケットを処理します。
EAPOL 形式の詳細については、IEEE 802.1X-2001 規格の第 7 項を参照してください。
802.1X モジュールとネイティブ 802.11 フレームワークの詳細については、「ネイティブ 802.11 ソフトウェア アーキテクチャ」を参照してください。
ユーザー認証のために 802.1X モジュールをインターフェイスする場合、IHV Extensions DLL は、次のガイドラインに従う必要があります。
Windows Vista の場合、IHV Extensions DLL は、インフラストラクチャの基本サービス セット (BSS) ネットワーク接続に対してのみ、802.1X モジュールを介して 802.1X 認証操作を開始できます。
IHV Extensions DLL は、EAPOL パケットを受信するためにオペレーティング システムに登録する必要があります。 この状況では、DLL は Dot11ExtSetEtherTypeHandling 関数を呼び出し、pusRegistration パラメーターを介して渡される登録済み EtherType の一覧に IEEE EAPOL EtherType (0x888E) を追加する必要があります。 EtherType が登録されると、オペレーティング システムは、Dot11ExtIhvReceivePacket IHV ハンドラー関数の呼び出しを通じて、受信した EAPOL パケットを IHV Extensions DLL に転送します。
EtherType の登録の詳細については、「IEEE EtherType Handling」を参照してください。
関連付け後の操作を実行している間、IHV Extensions DLL は Dot11ExtStartOneX 関数を呼び出して 802.1X 認証操作を開始します。 この関数が呼び出されると、オペレーティング システムは、次の処理を行います。
- 802.1x認証設定のプロパティ ページを表示します。 この情報には、認証に使用される EAP アルゴリズムが含まれます。
- ユーザーに資格情報を要求する。
- EAPOL-Start パケットを AP に送信して、802.1X 認証を開始します。
IHV Extensions DLL は、Dot11ExtIhvPerformPostAssociate の呼び出し中、または関数呼び出しが戻った後、Dot11ExtStartOneX を呼び出すことができます。
IHV Extensions DLL は、ネイティブ 802.11 ミニポート ドライバーが AP との関連付け操作を完了した後にのみ、Dot11ExtStartOneX 関数を呼び出すことができます。 この状況では、IHV Extensions DLL は、次のいずれかの条件で Dot11ExtStartOneX 関数を呼び出さないでください。
- オペレーティング システムが Dot11ExtIhvPerformPostAssociate を呼び出す前。 オペレーティング システムは、ミニポート ドライバーが関連付け操作を正常に完了した後、この関数を呼び出します。 この操作の詳細については、「Association Operations」を参照してください。
- オペレーティング システムが Dot11ExtIhvStopPostAssociate。 オペレーティング システムは、ミニポート ドライバーが AP との関連付け解除操作を完了した後に、この関数を呼び出します。 この操作の詳細については、「Disassociation Operations」を参照してください。
- オペレーティング システムが Dot11ExtIhvAdapterReset を呼び出した後。 オペレーティング システムは、ミニポート ドライバーが基本サービス セット (BSS) ネットワークとの切断操作を完了した後で、この関数を呼び出します。 この操作の詳細については、「Disconnection Operations」を参照してください。
802.1X 認証操作の進行中に、IHV Extensions DLL は Dot11ExtStopOneX を呼び出すことで、操作を取り消すことができます。
802.1X 認証操作の進行中に、IHV Extensions DLL は Dot11ExtProcessOneXPacket を呼び出して、EAPOL パケットをオペレーティング システムに転送して処理する必要があります。 注: IHV Extensions DLL は、AP から受信した EAPOL キー パケットの処理を担当します。 DLL は、Dot11ExtProcessOneXPacket の呼び出しを介して、これらのパケットをオペレーティング システムに渡すことはできません。
802.1X 認証操作が完了すると、オペレーティング システムは Dot11ExtIhvOneXIndicateResult IHV ハンドラー関数を呼び出します。 この関数が呼び出された後、IHV Extensions DLL は、暗号キーの派生に使用される EAPOL キー パケットなど、AP から受信したすべての EAPOL パケットを処理する役割を担います。
802.1X 認証操作が正常に完了すると、オペレーティング システムは、MPPE-Send-Key 値を pDot11MsOneXResultParams パラメーター Dot11ExtIhvOneXIndicateResult が指す DOT11_MSONEX_RESULT_PARAMS 構造体に渡します DOT11_MSONEX_RESULT_PARAMS の pbMPPESendKey メンバーが指す MPPE-Send-Key 値は、認証プロセスによって派生し、EAPOL-Key パケットを AP に送信するときに IHV Extensions DLL によって使用されます。 このキーは暗号化されており、Windows SDK に記載されている CryptUnprotectData 関数を呼び出して、暗号化を解除する必要があります。
暗号キーの導出に使用されるアルゴリズムは、独立系ハードウェア ベンダー (IHV) の実装によって異なります。 IHV Extensions DLL は、IEEE 802.11i-2004 標準の条項 8.5 で定義されているアルゴリズムなどの、標準のキー派生アルゴリズムをサポートするだけでなく、独自のキー派生アルゴリズムもサポートできます。
キーを派生した後、IHV Extensions DLL は、次の関数を呼び出して、ワイヤレス LAN (WLAN) アダプターを管理する Native 802.11 ミニポート ドライバーに、暗号キーをダウンロードできます。
IHV Extensions DLL は、Dot11ExtPostAssociateCompletion 関数を呼び出して、関連付け後の操作を完了します。 関連付け後の操作が完了した後、IHV Extensions DLL は、ユーザーの再認証が必要であると判断した場合、別の 802.1X 認証操作を開始できます。
次の図は、関連付け後の操作中に IHV Extensions DLL が 802.1X 認証操作を開始するときのイベントのシーケンスを示しています。