第08章 数字签名与认证协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2. 认证协议
相互认证
相互认证的常规加密原始方案示意图
密钥分配 中心(KDC)
密钥分配 步骤
(1)请求 || N1
(2)EKa[Ks || 请求 || N1 || EKb(Ks, IDA)]
(3)EKb[Ks || IDA] 发起方 A (4)EKs[N2] (5)EKs[f(N2)] 响应方 B
实施关键

收方应假定发方对私有密钥的完全控制
1. 数字签名
直接数字签名 实施示例 M
E KRa EKRa(M) (a)公开密钥加密:认证和签名 D KUa M
M
E KRa EKRa(M)
E KUb EKUb[EKRa(M)]
D KRb EKRa(M)
D KUa
M
(b)公开密钥加密:保密、认证和签名 H M KUa 比较
鉴别步骤
2. 认证协议
相互认证
相互认证的常规加密原始方案过程描述 1. A → KDC:IDA || IDB || N1 2. KDC → A:EKa[Ks || IDB || N1 || EKb[Ks || IDA]] 3. A → B:EKb[Ks || IDA] 4. B → A:EKs[N2] 5. A → B:EKs[f(N2)] 相互认证的常规加密原始方案可能存在的攻击模式 简单地对第3步进行观察、记录并重放,加重通信负担。 假定X是一个对手,已经获得了一个旧的会话密钥,则X可冒 充A,使用旧密钥通过简单的重放第3步就可以欺骗B。除非B 一直牢记所有与A的会话密钥,否则B无法确定这是一个重放。
2. 认证协议
相互认证
对付重放攻击的常用方法 为每个用来认证交换的消息分配一个序号,新的消息只有在它的序号 满足一种正确的次序时才被接收。这种方法的难点在于它需要通信各 方记录已处理的最近一个序号。因为有这种负担,序号一般不用于认 证和密钥交换。 时间戳:A方接收一个消息,只有当消息包含的时间戳(经A判断后) 与A了解的当前时间足够接近,才认为消息是新的。这种方法的难点 在于它需要通信各方的时钟保持同步。首先,需要某种协议来维持不 同处理机时钟的同步,这个协议还必须是容错的和安全的,即要能对 付网络的故障和恶意的攻击。其次,如果暂时失去同步会导致一方的 时钟机制出错,那攻击成功的机率将大为增加。最后,因为网络时延 的可变性和不可预知性,很难期望分布时钟能保持精确的同步。因此, 任何基于时间戳的过程必须申请足够大的时间窗口以适应网络时延, 同时又要使时间窗口足够小以使攻击成功的机率最小。 挑战/响应:若A方期望从B接收一个新近的消息,就先要向B发送一 个现时消息(nonce)(即挑战),然后要求随后从B接收的消息 (即响应)包含正确的现时值。这种方法不大适合面向无连接的应用, 因为在任何无连接传输之前它需要有握手的负担,这将在很大程度上 丢失无连接传输的主要特征。
1. 2.
1. 2.
1. 数字签名
需仲裁的数字签名 方案示例讨论
方案(a)和(b)存在的问题 1. X必须确信A不会泄露Kxa,也不会产生虚假的签名。(仲裁能和 收方结成联盟来伪造发方的签名。) 2. Y必须确信A只有在散列码正确且确是X签名的情况下才发送。 (仲裁能和发方结成联盟来否认一个签名消息 。) 3. 双方必须确信A能公平地解决争端。(仲裁作用。) 方案(c)的优点 1. 通信前各方没有共享任何信息,可防止结盟欺骗的发生。 2. 假定KRa是安全的,即使KRx已不安全,日期不对的消息不会 被发送。 3. 从X发给Y的消息内容对A和其他任何人都是保密的。
2. 认证协议
相互认证
相互认证的常规加密改进方案 1. A → B:IDA || Na 2. B → KDC:IDB || Nb || EKb[IDA || Na || Tb] 3. KDC → A: EKa[IDB || Na || Ks || Tb] || EKb[IDA || Ks || Tb] || Nb 4. A → B:EKb[IDA || Ks || Tb] || EKs[Nb] 相互认证的常规加密改进方案的优点 证明书的过期时间Tb是相对于B的时钟。这样,这个时间戳不 需要同步时钟,因为B只检查自身产生的时间戳。 A和B分别检查各自生成的现时Na和Nb,确保不是重放。 证明书的过期时间Tb的使用使得在有效时间内A又想与B建立 新的会话时,双方不必重复多次与认证服务器联系的必要。
M
K1 C
||
E
K2
(c) 消息认证与保密,认证与密文连接
1. 数字签名
消息认证示例的安全性分析:

可用来保护通信双方免受任何第三方的攻击。 无法用来防止通信双方的互相攻击,无法解决通信双方可能存 在多种形式的争执。
原因:
1.
2.
wk.baidu.com
接收方可能伪造并声称它来自发送方。接收方只要简单地生成 一个消息,并附加使用由发送方和接收方所共享的密钥生成的 认证码即可。 发送方可以否认发送过该消息。因为接收方伪造一个消息是可 能的,无法证明发送方发送过该消息这一事实。
2. 认证协议
相互认证
相互认证的常规加密改进方案建立新会话的方案 1. A → B:EKb[IDA || Ks || Tb], N’a 2. B → A: N’b, EKs[N’a] 3. A → B:EKs[N’b] 建立新会话的方案的安全保障 证明书的过期时间Tb验证消息中的票据没有过期。 新产生的现时N’a和N’b将向每方保证这不是重放攻击。
弱点分析


发方若想否认发送过某个消息,则可以声称该私有密钥丢失或 被盗用,且伪造了他(她)的签名。 X的私有密钥真的可能在时间T被盗。获得该密钥的人便能发 送带有X的签名消息并附上小于等于T的时间戳。
1. 数字签名
需仲裁的数字签名 方案实施
每个从X发往收方Y的签名消息首先被送给仲裁者A,仲 裁者A对该消息和它的签名进行一系列的测试以检 验它的出处和内容。然后对消息注明日期,附上一 个已经经过仲裁证实属实的说明后发给Y。A的存在 解决了直接签名方案所面临的问题:X可能否认发 送过该消息。
第八章 数字签名和认证协议
1. 数字签名
2. 认证协议 3. 数字签名标准(DSS) 4. ElGamal签名体制
1. 数字签名
消息认证示例:
源点 M || M C K 比较 终点 K C CK(M) (a)消息认证 C D K2 EK2[M||CK1(M)] (b) 消息认证与保密,认证与明文连接 EK2[M] E M K2 K1 C CK1(EK2[M]) || C K1 比较 K2 D M CK1(M) M K1 比较
M
KRa H E
||
EKRa[H(M)] D (c)散列及公开密钥加密:认证和签名 H M KUa D 比较
M
KRa H E
||
E
D K
K
EK[M||EKRa[H(M)]] EKRa[H(M)] (d)散列及公开密钥加密:保密、认证和签名
1. 数字签名
直接数字签名 方案弱点
方案的有效性依赖于发方私有密钥的安全性。
1. 数字签名
解决方案:
由于发方和收方之间存在欺骗或抵赖,因此除了采用防 止第三方攻击的认证之外还需要采用防止当事双方 相互攻击的手段。最吸引人的解决方案是笔迹签名 的模拟——数字签名。
数字签名必须拥有的基本性质:

必须能证实签名者和签名的日期和时间。 必须能验证被签的消息内容。 签名必须能被第三方证实以便解决争端。
数字签名的方法:


直接的 需仲裁的
1. 数字签名
直接数字签名 方案实施


涉及通信方——发方和收方 密码方案——非对称密码学 使用前提——收方知道发方的公开密钥 签名实施——可以通过使用发方的私有密钥对整个消息进行加 密,或通过使用发方的私有密钥对消息的散列码进行加密来形 成。 保密方案——可通过对整个消息和签名进行更进一步的加密来 实现,可采用收方的公用密钥(公开加密)或采用双方共享的 密钥(常规加密)来进行加密。
实施关键
所有通信方必须充分信任仲裁机构。
1. 数字签名
需仲裁的数字签名 方案示例 (a)常规加密,仲裁能看到消息内容
1. 2.
X → A:M || EKxa[IDx || H(M)] A → Y:EKay[IDx || M || EKxa[IDx || H(M)] || T] (b)常规加密,仲裁不能看到消息内容 X → A:IDX || EKxy[M] || EKxa[IDX || H(EKxy[M])] A → Y:EKay[IDX || EKxy[M] || EKxa[IDX || H(EKxy[M])] || T] (c)公开密钥加密,仲裁不能看到消息内容 X → A:IDX || EKRx[IDX || EKUy(EKRx[M])] A → Y:EKRa[IDX || EKUy[EKRx[M]] || T]
2. 认证协议
相互认证
相互认证的常规加密原始方案改进1存在的危险 分布时钟由于阴谋破坏或同步时钟、同步机制的故障变得不同 步。当发方的时钟快于预想的收方时钟时,这个问题就会发生。 在这种情况下,对手可截获发自A的消息,当消息中的时间戳 变成收方的当前时间时就重放该消息。这种重放可导致不可预 料的结果。这样的攻击被称为抑制——重放攻击。 相互认证的常规加密原始方案改进1的可能改进 加强通信各方定期与KDC时钟的校准。 避免时钟同步的需求,依赖使用现时的握手。(依然会带来其 它问题,其原因是因为收方选择的现时对发送方是不可预测 的。)
2. 认证协议
相互认证
相互认证的公开密钥加密原始方案
1. 2. 3.
A → AS:IDA || IDB AS → A:EKRas[IDA || KUa || T] || EKRas[IDB || KUb || T] A → B:EKRas[IDA || KUa || T] || EKRas[IDB || KUb || T] || EKUb[EKRa[Ks || T]]
2. 认证协议
主要涉及内容
在消息认证的基础上,进行更深层次的通信对象和通信内容有效性 的认证。 相互认证 单向认证
2. 认证协议
相互认证
相互认证的必要性 通信对象的确认——通信各方相互证实对方的身份 信息交换的机密性——防止信息的篡改和泄漏 信息交换的时效性 ——防止消息重放的威胁 消息重放威胁的表现 最好情况——一个成功的重放会通过为通信方提供用似是而非 的消息而打乱正常的操作。 最差情况——可能允许对手获取会话密钥或成功地假扮为通信 的另一方。
2. 认证协议
相互认证
重放攻击的常用方法示例 简单重放:对手简单地拷贝一个消息并在后来重放。 能被日志记录的重复:对手可以在有效的时间窗口内重放有时 间戳的消息。 不能被日志记录的重复:这种情况的发生是因为初始的消息已 经被阻挠而没有到达目的地;而只有重放的消息到达。 没有修改的退回重放:这是一种消息返回发方的重放。如果使 用常规加密,这种攻击是可能的,并且发方不容易依据内容识 别发送过的消息与收到的消息间的不同。
1. 数字签名
密码学上对数字签名的需求:


签名必须是与要签名消息相关的比特模式。 签名必须使用对发送者来说是唯一的信息,以防伪 造和抵赖。 数字签名的产生必须相对简单。 数字签名的识别和验证必须相对简单。 伪造一个数字签名在计算上是不可行的,无论是通 过对已有的数字签名来构造新消息,还是对给定的 消息构造一个虚假的数字签名。 保留一个数字签名的备份在存储上是现实可行的。
2. 认证协议
相互认证
相互认证的常规加密原始方案改进1过程描述 1. A → KDC:IDA || IDB 2. KDC → A:EKa[Ks || IDB || T || EKb[Ks || IDA || T]] 3. A → B:EKb[Ks || IDA || T] 4. B → A:EKs[N1] 5. A → B:EKs[f(N1)] 相互认证的常规加密原始方案改进1的防重发机制 增加时间戳 T,它能向A和B确保该会话密钥是刚产生的。这样,A和 B双方都知道这个密钥分配是一个最新的交换。A和B通过验证下式来 证实时效性: |Clock – T| < △t1 + △t2 其中△t1是估计的KDC时钟与本地时钟(A或B)的正常偏差,△t2是预期 的网络时延。每个结点可参照某些标准参考源设置自己的时钟。时间 戳T是用主密钥加密的,即使对手获得旧的会话密钥,由于步骤3的重 放将会被B检测出不及时而不会成功。
相关文档
最新文档