计算机系统信息安全:密码协议

讲述了密码协议相关的基本概念、认证协议、秘密分割与共享的实现机制、盲签名、一次签名、由签名算法、验证协议、否认协议组成的不可抵赖的数字签名、同时签约、Kerberos的相关介绍。
展开查看详情

1.第6章 密码协议 南京大学计算机系黄皓教授 2011年11月7日

2. 参考文献 [1] Wenbo Mao著, 现代密码学理论与实践,电子工业出版社, 2004年7月。 [2] Bruce Chneier, 应用密码学,机械工业出版社,2000年1月。 [3] Douglas R. Stinson, Cryptography: Theory and Practice, CRC Press LLC, 2002. (冯登国译,密码学原理与实践, 电 子工业出版社,2003年2月。) 2011/12/5 南京大学计算机系讲义 2

3. 内容 1. 密码协议的基本概念 2. 一个鉴别与密钥交换的一个研究过程 3. 认证协议 4. 秘密分割/秘密共享 5. 盲签名 6. 一次签名 7. 不可抵赖签名 8. 同时签约 2011/12/5 南京大学计算机系讲义 3

4.1. 密码协议的基本概念

5. 1. 密码协议的基本概念—协议  协议是一系列步骤  它包括两方或多方  设计它的目的是要完成一项任务 2011/12/5 南京大学计算机系讲义 5

6. 1. 密码协议的基本概念 密码协议的基本概念—协议特点  协议中的每人都必须了解协议,并且预先知道所要完成 的所有步骤。  协议中的每人都必须同意遵循它。  协议必须是不模糊的,每一步必须明确定意义,并且不 会引起误解。  协议必须是完整的,对每种可能的情况必须规定具体的 动作。 2011/12/5 南京大学计算机系讲义 6

7.1. 密码协议的基本概念 密码协议的基本概念—协议特点  密码协议是使用密码技术的协议。  参与该协议的伙伴  可能是朋友和完全信任的人,  可能是竞争对手和互相不完全信任的人。  密码协议包含某种密码算法。  在协议中使用密码的目的是防止或发现偷听者、欺骗、 抵赖等等。  不可能知道得比协议中规定的更多。 2011/12/5 南京大学计算机系讲义 7

8.1. 密码协议的基本概念 密码协议概述—协议的目的  计算一个数值想共享它们的秘密部分  共同产生随机系列  确定互相的身份  同时签署合同  证明一个事实  …………….. 2011/12/5 南京大学计算机系讲义 8

9.1. 密码协议的基本概念 密码协议概述—仲裁协议  仲裁者是在完成协议过程中值得信任的第三方;  仲裁者在协议中没有既得利益、与参与协议的任何人 没有利害关系;  协议中的所有的人都接受这一事实  仲裁者能帮助互不信任的双方完成协议 2011/12/5 南京大学计算机系讲义 9

10.1. 密码协议的基本概念 密码协议概述—裁决协议 裁决协议可以分成两个子协议  非仲裁子协议:每次执行;  仲裁子协议:出现争议时执行; 非仲裁子协议 裁决子协议 I. Alice和Bob谈判合同的条款。 I. Alice和Bob出现在法官面前。 II. Alice签署合同。 II. Alice提出她的证据。 III. Bob签署合同。 III. Bob也提出他的证据。 IV. 法官根据证据裁决。 2011/12/5 南京大学计算机系讲义 10

11.1. 密码协议的基本概念 密码协议概述—对协议的攻击  被动攻击 (passive attack)  窃听协议的部分和全部  主动攻击(active attack)  引入新的消息、删除原有的消息、重放消息  被动骗子(passive cheater)  遵守协议,但试图获得协议外的消息  主动骗子(active cheater)  破坏协议  协议对被动欺骗来说应该是安全的  合法用户可以发觉是否有主动欺骗 2011/12/5 南京大学计算机系讲义 11

12.2. 一个鉴别与密钥交换的一个研究过程

13.2. 一个鉴别与密钥交换的一个研究过程 符号约定  A:Alice,B:Bob,T:Trent  KAT:Alice与Trent的共享密钥;  KBT:Bob与Trent的共享密钥;  { M } K:用密钥k加密消息M。  Ek(M), Dk(M), E(k, M), D(k, M)  KU, KR,  KU,Alice, KU,Bob,KR,Alice, KR,Bob  [ M ] K = M || HMAC( K, M) 2011/12/5 南京大学计算机系讲义 13

14.2. 一个鉴别与密钥交换的一个研究过程 协议1 Alice Trent Bob 1. Alice, Bob 2. { K }KAT { K }KBT 3. Trent,Alice, { K }KBT 4. { 你好Alice,我是Bob }K 2011/12/5 南京大学计算机系讲义 14

15.2. 一个鉴别与密钥交换的一个研究过程 攻击1 — 对协议1的一个攻击 Alice Malice Trent Bob 1. Alice, Bob 2. Alice, Malice 3. { K }KAT { K }KMT •Trent 目的是转交Malice •Alice理解是转交Bob •语义被修改却未被发现 4. Trent,Alice,{ K }KMT 5.{ 你好Alice,我是Bob }K 这只有在Malice是Trent的合法用户时才才成立 内部用户更危险。 2011/12/5 南京大学计算机系讲义 15

16.2. 一个鉴别与密钥交换的一个研究过程 协议2 — 对协议1的一个修改 Alice Trent Bob 1. Alice, {Bob}KAT 2. { K }KAT { K }KBT 3. Trent,Alice, { K }KBT 4. { 你好Alice,我是Bob }KBT 2011/12/5 南京大学计算机系讲义 16

17.2. 一个鉴别与密钥交换的一个研究过程 Alice Malice Trent Bob 没有Alice 1. Alice,{Bob}KAT 的密钥。 ? 2. Alice, {Malice}KAT 2. Alice, {Malice}KMT Trent用KAT来解密, 得到是乱码,不是一 个接受者的名字, Trent就会发现问题。 Malice遇到了困难? 2011/12/5 南京大学计算机系讲义 17

18.2. 一个鉴别与密钥交换的一个研究过程 攻击2 — 对协议2 的一个攻击 Alice Malice Trent Bob 1. Alice,{Malice}KAT 2. { K }KAT { K }KMT 1. Alice,{Bob}KAT 1’. Alice, {Malice}KAT 2. { K }KAT { K }KMT 3. Trent,Alice,{ K }KMT Malice提取从前Alice与 Malice通信的数据 4.{ 你好Alice,我是Bob }K Alice希望与Bob建立共享会话密钥 Alice实际上与Malice建立共享会话密钥 2011/12/5 南京大学计算机系讲义 18

19. 2. 一个鉴别与密钥交换的一个研究过程 攻击3 — 对协议2的又一个攻击 Alice Malice Trent Bob 1. Alice,{Bob}KAT 2. { K }KAT { K }KBT X 3. { K’ }KAT { K }KBT 消息{ K’ }KAT 是从前Alice与Malice 通信时Trent发送的,现在Malice重 4. Trent,Alice,{ K }KBT 新发送该消息。  Malice改变协议中某些消息而不被 5.{ 你好Alie,我是Bob }K’ 发现是可能的。  消息可能被重新播放 2011/12/5 南京大学计算机系讲义 19

20.2. 一个鉴别与密钥交换的一个研究过程 协议3 —对协议2的一个修改 Alice Trent Bob 1. Alice, {Bob}KAT 2. { Bob, K }KAT { Alice, K }KBT 3. Trent,Alice, { K }KBT 4. { 你好Alice,我是Bob }K 2011/12/5 南京大学计算机系讲义 20

21.2. 一个鉴别与密钥交换的一个研究过程 攻击4— 对协议3 的一个攻击 Alice Trent Bob 1. Alice, {Bob}KAT K'是从前Alice与Bob通信 时Malice记录下来的。 2. { Bob, K' }KAT { Alice, K' }KBT 3. Trent,Alice, { K' }KBT 4. { 你好Alice,我是Bob } K' Malice使得Alice与Bob之间用旧的会话密钥通信 这个密钥也许Malice通过其他方式获得了。 2011/12/5 南京大学计算机系讲义 21

22.2. 一个鉴别与密钥交换的一个研究过程 密码协议的关键问题  修改消息:消息没有鉴别,  攻击1:修改消息的内容。  消息重放:消息不是新鲜的,  攻击2,重放实体名称消息  攻击3,重放密钥消息  攻击4,重放破解的密钥消息 2011/12/5 南京大学计算机系讲义 22

23.3. 认证协议

24.3. 认证协议 3.1 消息的新鲜性和实体的活现性 Needham-Schroeder 对称密钥认证协议 Alice Trent Bob 1. Alice, Bob, NA 2. { Bob, K, NA ,{ Alice, K }KBT } KAT 3. Trent, {Alice, K }KBT 4. { 你好Alice,我是Bob!NB }K 5. { 你好Bob,我是Alice! NB-1}K R.M. Needham and M.D. Schroeder, using encryption for authentication in large networks of computers, communications of the ACM, 21(12): 993-999, 1978. 2011/12/5 南京大学计算机系讲义 24

25.3. 认证协议 3.1 消息的新鲜性和实体的活现性 对Needham-Schroeder 对称密钥认证协议的攻击 Alice Trent Bob 1. Alice, Bob,NA 2. { Bob, K, NA ,{ Alice, K }KBT } KAT 3. Trent, {Alice, K }KBT X Malice 消息重放 3. Trent, {Alice, K’ }KBT 4. { 你好Alice,我是Bob!NB }K’ 5. { 你好Bob,我是Alice! NB-1}K’ Bob 与Alice的会话没有考虑到消息的重放。 2011/12/5 南京大学计算机系讲义 25

26.3. 认证协议 Denning & Sacco的建议— 时间戳 Alice Trent Bob 1. Alice, Bob 2. { Bob, K, T ,{ Alice, K , T }KBT } KAT 3. {Alice, K, T }KBT 4. { 你好Alice,我是Bob!NB }K 5. { 你好Bob,我是Alice! NB-1}K 验证是要求: | Clock –T | < ∆ t1 + ∆ t2 2011/12/5 南京大学计算机系讲义 26

27.3. 认证协议 Denning & Sacco的建议— 时间戳  Denning的协议与Needham/Schroeder的协议相比似乎增加了安全度。 然而,又出现了新的担忧:这个新机制需要信任通过网络进行同步 的时钟。  存在一种危险,分布时钟由于阴谋破坏或同步时钟、同步机制的故 障变得不同步。  当发方的时钟快于预想的收方时钟时,这个问题就会发生。在这种 情况下,对手可截获发自A的报文,当报文中的时间戳变成收方的当 前时间时就重放该报文。这种重放可导致不可预料的结果。这样的 攻击称为抑制—重放攻击。 2011/12/5 南京大学计算机系讲义 27

28.3. 认证协议 3.1 消息的新鲜性和实体的活现性 询问-应答机制 I. Bob →Alice: NB II. Alice →Bob:EKAB (M, NB) III. Bob 解密接收到的密文分组中看到NB则接受Alice;否则拒绝接受Alice。 2011/12/5 南京大学计算机系讲义 28

29.3. 认证协议 3.1 消息的新鲜性和实体的活现性 1. Alice, Bob, NA 2. { Bob, NA , K, { Alice, K }KBT } KAT  新鲜标记NA可能在一个密文分组内,攻击这将会话密钥相关的分组换成过 去的截取的分组,这样使得Alice使用旧的会话密钥。  Trent发给Alice 的密文串: IV, C1, C2, … Cl , (1)  Malice 截取的上次T给A的密文串: IV’, C’1, C’2, … C’l , (2)  Malice截取(1)并将串(1) 改成: IV, C1, C’2, … C’l , (3) NA , K,… Bob NA K, …… Bob NA K’, ……  K’’=DK (C’2) ⊕C1 =K’ ⊕C’1⊕C1 AT 2011/12/5 南京大学计算机系讲义 29