A要和B进行安全会话,需要双方都信任的可信第三方S,以便于为通信双方分发会话密钥。S与A之间有通信密钥Kas,S与B之间有通信密钥Kbs。
1.A首先发给可信第三方S一条消息。内含“会话发出方A的身份、会话接收方B的身份、随机数Na”。
2.可信第三方S给A回复一条Kas加密的信息,内含“A信息中的自然数Na,会话接收方B的身份,A与B的会话密钥Kab以及一条只有接收方B才能打开读取而A无法打开的消息”。
3.随后,A转发给接收方B一条消息,该消息由S和B信道密钥Kbs加密,其内容就是上一步骤中S发给A的消息中A无法读取的那条,内含“AB会话信道密钥Kab和会话发出方A的身份”。
4.B收到消息后由密钥Kbs打开读取,再发送给A由Kab加密的信息,内容为随机数Nb。
5.最后A由Kab解密后读取到来自B的随机数Nb,减1操作后,再发送给B Nb-1 数字,该信息依然由Kab加密。
我认为随机数Na作用是为了第二步A收到S发送的消息后,可由Na确定此消息是发送给自己的。随机数Nb在第五步中执行减一操作是为了让A证明自己有密钥读取信息,证实身份。
重放攻击发生在第三步中,当有攻击方根据之前的消息破解了Kab和Kbs和A的身份,就可以伪装成A在第三步给B发送信息,经过后续第四第五步之后,B会误以为攻击方就是A成功建立信道,至此,攻击方可以以A的身份与B通信。
(如有不同见解或者我的答案有错误还请各位前辈不吝指正)