问题
问答题 简答题
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 ,因为他无法确认。