密码协议是指两个或者两个以上参与者使用密码算法时,为了达到加密保护或安全认证目的而约定的交互规则。
密钥交换协议
公钥密码出现之前,密钥交换很不方便,公钥密码可以在不安全信道上进行交换,交换的密码协议是为了协商会话密钥,从而建立安全信道。
1.Diffie-Hellman密钥交换协议
只能提供建立会话密钥的功能,无法抵抗中间人攻击(数字签名可以解决)。
2.MQV密钥交换协议
MQV是在DH协议的基础上,在交互过程中使用了双方的公钥信息,只有拥有相应私钥的用户才能计算出与对方相同的会话密钥。该协议使用椭圆曲线加法群作为基本的计算群。
3.SM2密钥交换协议
MQV的变种
实体鉴别协议
1.一次传递鉴别
我直接告诉你我是谁。
方法有:
- 对称加密(我加密,你解密)
- 密码校验函数(对指定数据,我算一遍,你算一遍)
- 数字签名(我私钥加密,你公钥验签)
2.两次传递鉴别
一次加密需要时间同步并且序列号不重复,因此有了两次加密。
你想验证我身份,首先由你说口号,我再对口号(方法和一次传递类似)。
综合密码协议举例
1.IPSec(工作在网络层,一般用于子网间通信,称为 站到站通信)
IPSec本质上是一套协议集合,框架包括了 AH协议(认证头协议)、ESP协议(封装安全载荷协议)、IKE协议(互联网密钥交换协议)和各种算法。基本思想是将基于密码技术的安全机制引入到IP协议中来实现网络层的通信安全。
AH:数据源身份鉴别,完整性校验和抗重放。为IP数据报文提供完整性校验。
ESP:在AH的基础上增加了对报文的加密功能,当ESP和AH配合使用时,AH提供身份鉴别,ESP提供数据加密,当ESP单独使用时,不会对IP头进行认证,可用于NAT(地址转换)。
IKE:鉴别身份,协商密钥,共享密钥,创建安全联盟(SA)
第一阶段:主模式 第二阶段:快速模式
密码算法:加密算法、认证算法、密钥协商算法
2.SSL(工作在应用层和传输层之间,一般用于端到子网通信,称为段到站通信)
简单理解为:http+SSL=https http:明文传输 https:密文传输
SSL不是单个协议,而是由多个协议组成的两层协议集合。
TLS相当于SSL的继承者。
密码协议分析概要
由于不断发展,攻击形式多样,密码协议的设计形成了一套原则:
- 消息独立完整性原则
- 消息前提准备原则
- 主体身份鉴别标识原则
- 加密目的原则
- 签名原则
- 随机数使用原则
- 时间戳使用原则
- 编码原则