安全协议技术
安全协议是在消息交换和处理过程中使用了若干密码算法的协议
分类
- 按目的
- 密钥交换协议
- 认证协议
- 电子商务协议
- 按参与者
- 仲裁协议
- 借助于一个称之为仲裁者的可信第三方(Trusted Third Party)来完成消息交换
- 裁决协议
- 裁决人必须是协议主体均信赖的可信第三方,但是它不需要参与协议的整个过程,只有当协议中出现争议之后,裁决人才参与到协议中来
- 自动执行协议
- 议不需要任何第三方(如仲裁者和裁决者)的参与,在协议主体之间完成协议过程
- 仲裁协议
安全协议缺陷
- 攻击者模型
由于存在攻击者,因此设计一个安全的协议是非常困难的
常见缺陷
- 基本协议缺陷:协议中没有或者很少考虑对攻击者的防范而引发的协议缺陷(如TCP/IP协议的安全缺陷问题等)
- 陈旧消息缺陷:在协议设计过程中,未考虑消息的时效性(即新鲜性),从而使得攻击者可以利用协议过程中产生的过时消息来对协议进行重放攻击
- 并行会话缺陷:协议设计对仅考虑单个协议执行的情况,对多个协议(或同一个协议的多个运行实例)并行会话缺乏考虑,使得攻击者可以相互交换适当的协议消息来获得更为重要的消息
- 内部协议缺陷:协议中缺少足够的信息让协议参与者能够区分消息的真实性而导致缺陷
- 密码系统缺陷:协议中使用的密码算法的安全强度问题导致协议缺陷
中间人攻击
攻击者位于协议通信双方中间而发动的攻击
重放攻击
指攻击者利用其消息再生能力生成诚实用户所期望的消息格式,并重新发送,从而达到破坏协议安全性的目的
- 协议轮内攻击
- 协议轮外攻击
对策
- 挑战应答机制
- 挑战者能够通过他自己输入消息的新鲜性来验证应答者通信的真实性
- 时间戳机制
- 指发送者在消息中嵌入发送消息的本地时刻,而接收者在消息达到后,通过对比消息中所包含的时间信息和本地时间信息的差值,来决定该消息是否为新鲜消息
- 序列号机制
- 协议主体之间首先协商一个一致的初始序列号协议过程中每条协议消息均带上序列号,每条消息的序列号必须进行保护
交错攻击
平行会话攻击
反射攻击
当一个诚实的主体给某个意定的通信方发送消息时,攻击者截获该消息,并将该消息返回给消息的发送者
类型错误攻击
攻击者欺骗某个主体,使得他把一次性随机数、时戳或者身份等信息嵌入到某个密钥中去,从而导致协议安全性被破坏
姓名遗漏攻击
如果与消息相关的主体的名字不能从消息中推断出来,则攻击者利用此缺陷所发动的攻击称之为“归因与姓名遗漏攻击”
安全协议设计原则
- 消息独立性原则
- 即消息的含义应该是一目了然,且消息含义的翻译直接通过该消息就可以完成
- 消息前提准确原则
- 消息所依赖的条件必须明确地定义出来,从而使得协议的评价者知道这些条件是否可以接受。
- 协议主体身份标识原则
- 如果协议主体的身份对于理解消息的含义是必须的,那么协议主体身份就应该在消息中明确地标识出来
- 加密目的明确原则
- 必须使用加密,则必须明确加密在协议安全中的作用和目的
- 签名原则
- 如果在一个安全协议中需要同时进行加密和签名,一般的原则是先加密后签名
- 随机数使用原则
- 对抗重放攻击,还是用来绑定时间上邻接的两条消息
IPSec
一种由IETF设计的端到端的确保IP层通信安全的机制
SSL
安全套接层(SSL:Secure Sockets Layer Protocol),是为网络通信提供安全及数据完整性的一种安全协议
- https