目前,我正在为VPN服务器设计一个低温系统。其中一个要求是完全的前向保密,但我不知道如何在短暂的密钥交换上实现身份验证。
如果双方都拥有签名的公钥(由CA或共同信任方签名)并交换此公钥,则可以通过CA的公钥验证对方的身份。为了实现完美的前向保密,双方必须生成一个短暂的密钥,并相互发送公钥。由于这些密钥没有签名,一个如何对另一个密钥进行身份验证以确保密钥不被更改/切换?即使密钥是通过经过验证的通道交换的(例如,使用签名的和可信的公钥),该通道也不会自动确保由同一方生成临时密钥。此外,计算公共临时密钥上的MAC并不会导致安全的密码化学,因为公钥最初可能是由中间人创建的。有没有任何方法可以对短暂的密钥交换进行身份验证?
发布于 2015-09-12 19:00:35
由于这些密钥没有签名,一个如何对另一个密钥进行身份验证以确保密钥不被更改/切换?
必须签字。通过钥匙交换派对,用他们的长期钥匙。
即使密钥是通过经过验证的通道交换的(例如,使用签名的和可信的公钥),该通道也不会自动确保由同一方生成临时密钥。
这些密钥保证由签名方生成,除非: 1)它们不是遵循协议,而是签名他人的密钥(您必须假定不是这样)或2)长期密钥已经被破坏(这就是为什么它被称为前向保密)。
此外,计算公共临时密钥上的MAC并不会导致安全的密码化学,因为公钥最初可能是由中间人创建的。
如果您能安全地交换密钥,MAC就能工作。例如,如果长期密钥用于经过身份验证的加密(而不仅仅是签名),则可以生成一个临时MAC密钥来验证临时公钥的交换。在这种情况下,不知道MAC密钥的中间人不能为自己的公钥伪造MAC值。
但是,这是不必要的复杂,因为您最好直接使用经过身份验证的加密来交换短暂的公钥。
发布于 2015-09-11 15:03:43
是的有。你有很多可能性。
您可以检查不同的协议:Station to Station,NAXOS,KEA和KEA+,.
https://crypto.stackexchange.com/questions/29118
复制相似问题