认证包括:对通信对象的认证(身份认证) 和 报文内容的认证(报文认证)。
原理
双向认证:
关注重点:保密性+时效性。
保证时效性的两种方法:
- 时间戳:收到的消息包括时间戳,若时间戳符合误差范围, 认为消息是新的。
- 挑战(询问)─应答:用户A向B发一个N询问,B应答一个N,保证消息是新的。
重放攻击:合法的签名消息被拷贝后重新送出
- 简单重放
- 可检测的重放
- 不可检测的重放
- 不加修改的逆向重放
重放攻击的解决方法:
- 使用序列号
- 使用时间戳(需要同步时钟)
- 挑战/应答(使用单独的nonce)
分类:
对称密钥方式:
- 三次握手。
公开密钥方式:
A、B双向使用不同的R值
时标方式。?
单向认证:
分类:
使用对称加密方法:
- 即一次一密方法的变形
使用公开密钥方法:
A向B声称是A,B则向A送一随机数R,A用其私有密钥加密送B,B用A的公开密钥验证。
使用改进的口令方式 ?
.
.
双向认证方案
一、基于对称加密
1、Needham-Schroeder 协议:
2、Denning 协议:(增加时间戳)
时效性验证:| clock - T | < Δt1 + Δt2
3、Neuman 协议:(使用一个额外的nonce )
Neuman 在有效时限内,A与B建立新的会话:
.
二、基于公钥加密
1、Denning AS 协议:
2、Woo-Lam 协议:
.
.
单向认证方案
一、基于对称加密
二、基于公钥加密
.
素材参考自《密码编码学:原理与实践》和中国科学技术大学教师PPT。
.
.
.
.
.