问题 问答题 简答题

S拥有所有用户的公开密钥,用户A使用协议

A → S:A

B

Ra

S → A: S

Ss(S

A

Ra

Kb)

其中Ss( )表示S利用私有密钥签名

向S申请B的公开密钥Kb。上述协议存在问题吗?若存在,请说明此问题;若不存在,请给出理由。

 

答案

参考答案:

存在。

由于S没有把公钥和公钥持有人捆绑在一起,A就无法确定它所收到的公钥是不是B的,即B的公钥有可能被伪造。如果攻击者截获A发给S的信息,并将协议改成

A → S:A ,, C ,, Ra

S收到消息后,则又会按协议

S → A: S ,, Ss(S ,, A ,, Ra ,, Kc)

将Kc发送给A,A收到信息后会认为他收到的是Kb ,而实际上收到的是Kc ,但是A会把它当作Kb ,因为他无法确认。

多项选择题
单项选择题