如果两个实体要进行安全通信,那么两方就需要有安全的密钥,那么这个密钥是如何获得的,当然两方可以通过见面交换的方式。如果有多个实体呢,两两进行当面交换岂不是累死了,因此产生了一个可以信赖的第三方(认证服务器)来进行密钥的协商,每个实体与第三方之间有一个密钥,这个密钥是密钥加密密钥,而且密钥加密密钥应该长期使用。
认证的密钥建立应该有如下三个特点:
1k是只有alice 和bob知道的
2alice知道对方知道,就是有实体认证,互相知道身份
3密钥是新生成的,为了防止攻击的发生。建立起来的密钥只能使用一次,叫做会话密钥,短期密钥。
认证的密钥建立协议(两个方向,有第三方的情况下,无第三方的情况下)。
密钥建立协议最开始建立在消息篡改上,一旦说消息被篡改,双方不知道被篡改,他就可以伪装,可以通过原来的密钥问题实现重放等,所以所必须要保证消息未被篡改,消息的验证就比较重要了。
攻击的两种途径:改变密钥,或者变化通信方,那么将这两者绑定就可以了。
通过消息认证,将密钥和通信方绑定。
对消息认证的攻击就是消息重放攻击,对于曾经的密钥,再发送一遍就实现了消息重放的攻击。对于消息重放攻击就需要采取措施来保证避免重放了。一种典型的方式就是询问应答(握手)Needham schroeder协议。就是在alice询问trent的时候加入随机数的形式。在询问应答协议当中实现了实体的认证,因为随机数的问题相当于一个实体的认证,但是在这里面,只是实现了一种实体认证,trent向alice实现了实体认证,但是未曾实现bob和trent的实体验证。如果再增加消息流也就会增加通信。
公钥密码体质的协议才是我们要讨论的问题。