回答:
認証では、ゼロ知識パスワード証明(ZKPP)に遭遇することがよくあります。EAP自体はかなり一般的なフレームワークであり、たとえば、RADIUSなどの次の認証層に転送するために、クライアントのIDを明らかにする必要がある場合があります。
PACE(BSI TR-03110)は、認証に使用されるZKPPプロトコルの一例です。EAP-SPEKEは別です。
キーのセキュリティは、クライアントとサーバー間の交換でキーの一部のみを使用することに依存しています。クライアントはキーで暗号化されたnonceをサーバーに提供します。したがって、不正なサーバーは暗号化されたナンスを受信し、平文バージョンを保持します。不正なサーバーがAES-128暗号化を解読するのに十分な情報を蓄積する可能性があるため、これはゼロ知識ではありません。
したがって、EAP-PSKはゼロ知識パスワード証明の例とは見なされない場合がありますが、EAP-SPEKEなどのEAPに基づく他の提案された認証方式にはこのプロパティがあります。
EAP-PSKプロトコルの問題のある部分を説明するために、RFC 4764で提示されているメッセージフローを検討してください。
最初のメッセージはサーバーからピアに送信され、次のことが行われます。
* Send a 16-byte random challenge (RAND_S). RAND_S was called RA in Section 3.2 * State its identity (ID_S). ID_S was denoted by A in Section 3.2.
o 2番目のメッセージは、ピアによってサーバーに送信され、次のことを行います。
* Send another 16-byte random challenge (RAND_P). RAND_P was called RB in Section 3.2 * State its identity (ID_P). ID_P was denoted by B in Section 3.2. * Authenticate to the server by proving that it is able to compute a particular MAC (MAC_P), which is a function of the two challenges and AK: MAC_P = CMAC-AES-128(AK, ID_P||ID_S||RAND_S||RAND_P)
o 3番目のメッセージは、次の目的でサーバーからピアに送信されます。
* Authenticate to the peer by proving that it is able to compute another MAC (MAC_S), which is a function of the peer's challenge and AK: MAC_S = CMAC-AES-128(AK, ID_S||RAND_P)
ここで、AKはこの段階で使用される秘密鍵の一部であり、AES-128を復号化できる不正なサーバーに公開される可能性があります。