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