网络安全 第八章 密码协议

网络安全 第八章 密码协议

协议的基本概念

协议是指由两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤。

协议的三要素:

  • 每一步骤必须依次执行
  • 至少需要两个参与者
  • 通过执行协议必须能够完成某项任务

仲裁协议(Arbitration)

Trent 为仲裁者,是公正的第三方,为通信各方所信赖。其特点:

  • 彼此互不信任的通信双方通信时,通常需要某台计算机充当仲裁者
  • 需要付出一定的费用设立仲裁者
  • 在协议中引入仲裁,由于仲裁者需要对每次会话家里处理,会增加时延;当用户量大时,会成为系统的瓶颈
  • 仲裁的服务器称为黑客攻击的目标,如被攻破,通信信息会泄漏

裁决协议(Adjudication)

裁决人也是公正可信赖的第三方 Trent,但不直接参与协议。

一旦通信双方发生纠纷,通信双方向裁决人提供各自掌握的证据,由裁决人来裁决。其特点:

  • 建立在通信双方均诚实的基础上
  • 当有人怀疑发生欺骗时,可信赖的第三方根据其提供的证据裁决 / 判断
  • 一个好的仲裁协议应能够确定欺骗者的身份
  • 只检测欺骗是否存在,但不能防止欺骗的发生

自动执行协议(Self-enforcing)

自动执行协议本身就保证了公平性,不需要仲裁者和裁决者的参与。如果协议中的一方试图欺骗另一方,那么另一方会立刻检测到该欺骗的发生,并停止执行协议。

一个好的协议应具备的特点:

  • 协议涉及的各方知道此协议的所有步骤
  • 协议涉及的各方必须同意、遵守协议
  • 协议必须是非模糊的,无歧义的
  • 协议必须是完整的,对每一种情况都需要作出反应
  • 每一步操作要么是一方或多方进行计算,要么是在各方之间进行消息传递

安全协议分类及基本密码协议

根据安全协议功能,可将其分类为:

  • 认证协议
  • 密钥建立协议
  • 认证的密钥建立协议

密钥建立协议

密钥建立协议可在实体之间建立会话密钥。

在保密通信中,通常对每次通信会话都采用不同的密钥进行加密,因此叫会话密钥。会话密钥直在通信的持续范围内有效。其特征:

  • 密钥协商协议:由双方或多方共同提供信息建立起共享会话密钥
  • 密钥传输协议:密钥从一个实体传输到另一个实体
  • 会话密钥通常作为通信双方的一次性通信的密钥,也可以扩展到建立多放共享密钥,如会议密钥。
  • 协议可采用单钥、双钥体制或可信赖的第三方实现

采用单钥体制的密钥建立协议

加密解密使用同一密钥。第三方 Trent 统一分配管理密钥。

采用双钥体制的密钥建立协议

未对公钥合法性进行验证,所以不能抵抗中间人攻击,若要解决此问题,需采用 PKI/CA 数字证书技术。

中间人攻击

联锁协议

每次只发送公钥加密后的密文的一半,使得中间人获得一半密文毫无用处。

实际运用中:

当发送采用初始向量 IV(见分组加密模式)的分组加密模式(CBC/CFB/OFB)时,先发送密文消息后发送 IV。

当收发信息的双方都具有计算杂凑函数值的能力,先发送密文的杂凑值,再发送密文。

采用数字签名的密钥交换

单双钥混合实现密钥和信息传输

密钥和消息广播

Diffie-Hellman 密钥交换协议

https://wushouyuan.com/posts/a87e1e11

认证协议

认证包含消息认证、数据源认证和实体认证,用以防止欺骗、伪装等攻击。认证分为单向认证和双向认证。

采用单向函数的认证协议

采用双钥体制的认证

该协议实现了 Host 对 Alice 的认证,而没有实现 Alice 对 Host 的认证,是单向认证。

采用联锁协议的双向认证

该协议可被实施中间人攻击。只发送公钥的协议都容易被中间人攻击。

单向身份识别协议 SKID2

双向身份识别协议 SKID3

认证的密钥建立协议

这类协议将认证和密钥建立结合在一起,使 Alice 和 Bob 确信他们正在与可信赖的对方进行保密通信。密钥认证分为三种:

  • 隐式密钥认证
    • Alice 确信 Bob 的身份,Bob 无需采取任何行动
  • 密钥确证
    • Alice 确信未经验证身份的 Bob 确实拥有某个特定密钥
    • 核心问题是确认 Bob 的密钥值
  • 显式密钥认证
    • Alice 确信经过身份识别的 Bob 确实拥有某个特定密钥
    • 核心问题是确认 Bob 的身份

下文所用的符号表:

\(A\) Alice 的姓名识别符
\(B\) Bob的姓名识别符
\(E_A\) 采用 Trent 与 Alice 共享的密钥加密
\(E_B\) 采用 Trent 与 Bob共享的密钥加密
\(I\) 索引号码
\(K\) 随机会话密钥
\(L\) 有效期
\(T_A,T_B\) 时间戳
\(R_A,R_B\) 由 Alice 和 Bob 选择的一次随机数
\(S_T\) Trent 的签名

大嘴青蛙协议

最简单的采用单钥体制构造的三方协议。

Yahalom 协议

Kerberos 协议

EKE 协议

秘密分拆协议

双方

多方

密码协议的安全性

事实上,每个协议都或多或少存在安全缺陷。

对密码协议的攻击

  • 已知明文攻击
    • 攻击者窃听收集明文 / 密文对,建立加密表
    • 根据加密算法强度,进一步攻破此加密系统
  • 选择密文攻击
    • 攻击者选择特定的密文比特串,如全 0 或全 1,来更快的解出密钥
  • 预言者会话攻击
    • 如果协议双方采用相同密钥,攻击方不用破译密钥就可以攻破此协议
    • 攻击者伪装介入协议,将一方当作预言者“解密服务器”来对付另一方
  • 并行会话攻击
    • 利用通信普遍缺陷:曾经使用过的信息流在新的协议执行过程中被使用

密码协议的安全性分析

  • 攻击检验法
    • 采用有效的攻击方法,逐个对协议进行攻击,来检验协议的安全性
  • 形式语言逻辑分析法
    • 利用非专门语言和验证工具对协议建立模型并加以验证
    • 开发专家系统,对密码协议进行开发和研究
    • 采用能够分析知识和信任的逻辑,对协议进行安全性研究
    • 基于密码系统的代数特点,开发某种形式方法,对协议进行分析和验证
  • 可证安全性分析法
    • 针对密码协议运行环境,定义协议安全目标,以及攻击者能获得的服务;
    • 虚构一个仿真器,利用已知的困难问题参数,模拟协议提供的所有服务, 包括协议的公开参数和真实协议运行中攻击者能够获得所有数据;
    • 虚构一个成功的攻击者,可从仿真器那儿获得所有现实攻击者能够得到 的服务,攻击者最终能使协议目标失效;
    • 仿真器将攻击者证明自己能使协议失效的证据转化为前述困难问题的解;
    • 由于上述已知的困难问题没有有效的解法,所以这样的攻击者就不可能 存在,即协议是安全的;否则该攻击者可以作为一个子程序加以调用, 从而表明该问题有有效算法求解,从而引出矛盾

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×