加密协议分析

易受攻击的环境(dolev-Yao)威胁模型

  • 计算机,设备和资源构成的大型网络是典型开放的。
  • 主体(或实体,代理,用户)能够加入到这样的网络中,并通过该网络来发送和接收消息。
  • 坏人(Malice)(攻击者,对手,敌人,入侵者,窃听者,冒名顶替者),他们会做各种坏事——可能是团伙勾结,合法主体(内部人员)。

Dolev和Yao提出了一个威胁模型,在这个模型中Malice有如下特征:

  • 他能获得经过网络的任何消息;
  • 他是网络的一个合法使用者,因而能够发起与任何其他用户的对话;
  • 他有机会成为任何主体发出信息的接收者;
  • 他能够冒充任何别的主体给任意主体发消息;

在Dolev和Yao的威胁模型,Malice不能做的事情:

  1. Malice不能猜到从足够大的空间中选出的随机数;
  2. 没有正确的密钥(或私钥),Malice不能由给定的密文恢复出明文;对于完善加密算法, Malice也不能从给定的明文构造出正确的密文;
  3. Malice不能求出私有部分,比如,与给定的公钥相匹配的私钥;
  4. Malice虽然能控制我们的计算和通信环境的大量公共部分,但一般他不能控制计算环境中的许多私有区域,如访问离线主体的存储器。

认证密钥建立的安全性

假设K表示Alice和Bob要建立共享的密钥,那所要设计的协议应实现具有以下三个性质的安全服务:

  1. 只有Alice和Bob(或者可能还有他们都信任的某个主体)能够知道K;
  2. Alice和Bob应当知道对方主体知道K;
  3. Alice和Bob应当知道K是新生成的。

利用加密的认证密钥建立协议

消息保密协议

“从Alice到Bob”协议

有一个图

“来自Trent的会话密钥”协议

有一个图

一个攻击
有一个图

一种修复

将第一条消息中Bob的身份处理成秘密的
Alice发送给Trent: Alice, {Bob}KAT;

另一种攻击
Malice会执行
Malice(“Alice”)向Trent发送: Alice, {Malice}KAT

消息认证协议

Malice对协议消息的攻击会引起以下两种结果:

  1. 在错误的主体之间分享一个会话密钥;
  2. 建立了一个错误的会话密钥。

有一个图

认证服务器和其客户之间的密钥 VS 两个客户主体之间的密钥

一个会话密钥只能在一次会话中使用,因而,会话密钥建立协议的任何两次运行所产生的会话密钥都不应是相同的。

旧消息的重放攻击

询问-应答协议 Needhan-Schroeder

有一个图

对称密钥认证协议攻击

有一个图

实体认证协议

有一个图

Needham-Schroeder公钥认证协议

有一个图

对公钥认证协议的攻击

有一个图

当Alice对Malice发起请求的时候,Malice通过操作

最后结果:Bob认为Alice在和他通信,其实是Malice。