具有预共享密钥的WPA2是否是零知识证明的示例?


9

设置接入点并选择WPA2时,必须在AP和STA中手动输入预共享密钥(密码)PSK。

AP和STA双方都必须相互认证。但是他们必须这样做,而不必透露PSK。双方都必须向对方证明他们知道PSK,而没有实际发送它。

那是零知识证明的例子吗?

我以为是,但是当我用Google搜索零知识证明和WPA2或EPA-PSK(使用的身份验证方法)时,没有任何合法性。

Answers:


6

在身份验证中,您经常会遇到零知识密码证明(ZKPP)。EAP本身是一个相当通用的框架,它可能涉及显示客户端的身份,例如,将其身份转移到身份验证的下一层,例如RADIUS。

PACE(BSI TR-03110)是用于身份验证的ZKPP协议的一个示例。EAP-SPEKE是另一个。

密钥的安全性取决于客户端和服务器之间交换中仅使用部分密钥。客户端向服务器提供用密钥加密的随机数。因此,流氓服务器接收到一个加密的随机数,并保留其纯文本版本。这不是零知识,因为流氓服务器可能会在有限的时间内积累足够的信息来破坏AES-128加密。

因此,尽管其他建议的基于EAP的身份验证方案(例如EAP-SPEKE)具有此属性,但是EAP-PSK可能不被视为零知识密码证明的示例。

为了说明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第二条消息由对等方发送到服务器,以:

  *  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第三条消息由服务器发送到对等方:

  *  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的恶意服务器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.