安全协议复习整理
4、
安全协议的设计原则和存在问题(安全协议设计的困难性)
安全协议的设计原则。 (1) 设计目标明确,无二义性; (2) 最好应用描述协议的形式语言,对安全协议本身进行形式化描述; (3) 通过形式化分析方法证明安全协议实现设计目标; (4) 安全性与具体采用的密码算法无关; (5) 保证临时值和会话密钥等重要消息的新鲜性,防止重放攻击; (6) 尽量采用异步认证方式,避免采用同步时钟(时戳)的认证方式; (7) 具有抵抗常见攻击,特别是防止重放攻击的能力; (8) 进行运行环境的风险分析,作尽可能少的初始安全假设; (9) 实用性强,可用于各种网络的不同协议层; (10) 尽可能减少密码运算,以降低成本,扩大应用范围。 安全协议设计与分析的困难性在于: (1) 安全目标本身的微妙性。例如,表面上十分简单的“认证目标” ,实际上十分 微妙。 (2) 协议运行环境的复杂性 . 实际上, 当安全协议运行在一个十分复杂的公开环境 时,攻击者处处存在。 (3) 攻击者模型的复杂性。我们必须形式化地描述攻击者的能力,对攻击者和攻
2、
攻击模型
Dolev 和 Yao 攻击者模型 认为攻击者具有如下能力: (1) 可以窃听所有经过网络的消息; (2) 可以阻止和截获所有经过网络的消息; (3) 可以存储所获得或自身创造的消息; (4) 可以根据存储的消息伪造消息,并发送该消息; (5) 可以作为合法的主体参与协议的运行。
3、
常见的攻击分类(重定向、反射、Oracle、篡改)
2
击行为进行分类和形式化的分析。 (4) 安全协议本身具有“高并发性”的特点。
5、
典型的秘密共享和计算
Shamir 秘密共享 (t, n) 秘密共享 秘密信息 K 把一个信息(秘密的秘方,发射代码等)分成 n 部分(P1,…,Pn),每部 分叫做它的“影子”或共享 使用 t-1 次任意系数的随机多项式 Step 1. 构造多项式: 交易商选择了一个共享秘密, K ( < p : 随机素数) 为常数项, F(x) = K + a1x + a2x2 + … + ak-1xt-1 mod p 为 t-1 次任意系数的随机多项式。 Step 2. 秘密分割:分配 F(Xi) (Xi=1,…,n) 安全共享 Pi。(接着销毁 K 和所有 ai…) (Xi,Ki) Step 3. 秘密恢复:当 t 共享 =(K1, K2,…,Kt) 其中 n 是给定的, 使用拉格朗日差值 多项式方案恢复 K。 例如: (3,5) (t,n)秘密共享 K=11(一个常数), p=17(分成了 17 份) 构造 2 次随机多项式 2 F(x) = K + a1x + a2x mod p a1=8, a2=7 (已经给出的) 2 F(x) = 11 + 8x + 7x mod 17 秘密分割 (分割成 t 份) 2 K1 = F(1) = 71 + 8 1 + 11 9 mod 17 2 K2 = F(2) = 72 + 8 2 + 11 4 mod 17 2 K3 = F(3) = 73 + 8 3 + 11 13 mod 17 2 K4 = F(4) = 74 + 8 4 + 11 2 mod 17 2 K5 = F(5) = 75 + 8 5 + 11 5 mod 17 (K1, K2, K3, K4, K5 )=(P1,…,P5) 方法一:解方程恢复秘密 由 K2, K3, K4, 我们可以得到 K = 11 a 22 + b 2 + K 4 mod 17 a 32 + b 3 + K 13 mod 17 a 42 + b 4 + K 2 mod 17 解 3 个变量的多项式方程 获得 K. 2 3 1 3 1 2 K K1 ( ) K2 ( ) K3 ( ) 方法二:利用拉格朗日插值 2 1 3 1 1 2 3 2 1 3 2 3 9 3 4 (3) 13 1mod17 11
Bird 等人的协议
1. AB: NA 2. B A : NB, u(KAB, NA, …) 3. AB: v(KAB, NB, …) u,v 相同时,存在 Oracle 攻击 1. I(A)B: NI 2. B I(A) : NB, u(KAB, NI, …) 1’. I(B)A: NB(I 为了回答 B,开始一个新会话,询问 A) 2’. A I(B) : NA, u(KAB, NB, …) 3. I(A)B: u(KAB, NB, …) (I 假冒 A 与 B 建立会话)
3
6、
典型数字签名的阈下信道
阈下信道: 简易的阈下信道(缺点是无密钥) 可以是句子中单词的数目。句子中奇数个单词对应 “1”,而偶数个单词 对应“0”。 可以是一幅画。如一棵苹果树,苹果的个数代表一定的约定 Gustavus Simmons 发明了传统数字签名算法中阈下信道的概念。Walter 看到来 回传递的签名的无害消息,但他完全看不到通过阈下信道传递的信息。
窃听 攻击者获取协议运行中所传输的消息 篡改 攻击者更改协议运行中所传输的消息的内容 重放 攻击者记录已经获取的消息并在随后的协议运行中发送给相同 的或不同的接收者 重放特例: 1. A → B:{ NA }K 2. B → A:{ NB }K,NA
1Leabharlann Baidu
3. A → B:NB C 假冒 B 1. A → C:{ NA }K 1’. C → A:{ NA }K 2’. A → C:{ N’A }K,NA 2. C → A:{ N’A }K,NA 3. A → C:N’A 3’. C → A:N’A 预重放 重放的一种 反射 攻击者将消息发回给消息的发送者 拒绝服务 攻击者阻止合法用户完成协议 类型攻击 攻击者将协议运行中某一类消息域替换成其它的消息域 密码分析 攻击者利用在协议运行中所获取的消息进行分析以获取有用的 信息 证书操纵 攻击者选择或更改证书信息来攻击协议的运行 证书中间人攻击 攻击者 C 选择一个随机值 c,声明 g c 是他的公钥 1. A → CB:g x, g a 1’. CA → B:g z, g c 2’. B → CA:g y, g b 2. CB → A:g z, g c A ,C 将计算密钥 KAC = g a z + c x。A 被 C 欺骗,相信和 B 通讯; B ,C 将计算密钥 KBC = g zb + cy。B 被 C 欺骗,相信和 B 通讯; (中间人攻击,生成 2 个密钥 Kac 和 Kbc。注意:这里前提是 A 与 B 无法识别 对方的证书!)
安全协议复习
1、安全协议基本概念,要素和应用场景
所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系 列步骤。 协议具有以下特点(要素) : 协议自始至终是有序的过程,每一个步骤必须执行,在前一步没有执行完之前, 后面的步骤不可能执行; 协议至少需要两个参与者; 通过协议必须能够完成某项任务。 协议还有其他特点: (1)协议中的每人都必须了解协议,并且预先知道所要完成的所有步骤。 (2)协议中的每人都必须同意遵循它。 (3)协议必须是不模糊的,每一步必须明确定义,并且不会引起误解。 (4)协议必须是完整的,对每种可能的情况必须规定具体的动作。 场景: 电子商务 SET (安全电子交易) – 信用卡交易 数字现金, 电子支票, 电子货币 电子拍卖 网上银行 电子政务 电子选举 公平交换 (签约) 应用环境 传统的应用的转变 新应用的出现促进了密码学的发展
8、 典型协议攻击分析(实验) 8.1、NSPK(Needham-Schroeder Public-Key Protocol)的验证
认识 NS 协议 1.I R :{NI , I }KPR 2.R I :{NI , NR}KPi 3.I R :{NR}KPR 在 Needham-Schroeder 协议中,默认协议双方都从可信服务器中获取了对方的公钥; 1:I 作为协议的发起者,向 R 发送随机数 Ni 及具有新鲜性的随机数 I(也称临时 值,nonce)作为挑战,并用 R 的公钥加密; 2:响应者 R 接收并对 I 作出挑战,用 I 的公钥加密已经解密的 Ni 及随机数 NR 发 送给 I; 3:最后,I 向 B 发送用 R 公钥加密的 NR 。 经过这样一次协议的运行,主体 A 和 B 就建立了一个他们之间的共享秘密 NR , 这个共享秘密可以为他们进行秘密通信确认双方身份时使用。 攻击 A 作为响应者并假冒 I 和 R 进行通信和欺骗,从而实现对 NS 公钥协议的攻击:
Bellare-Rogaway MAP1 协议
1. AB: NA 2. B A : NB, [B, A, NA, NB]KAB 3. AB: [A, NB]KAB //只保留 B,破坏结构 选择协议攻击, A 被 I 用作 Oracle 攻击 A 1. A I(B): NA (I 假冒 B,开始一个 MAP1 会话) 1’. I(B)A: NA (I 为了回答 A,开始一个会话,询问 A) 2’. A I(B): N’A, [B, A, NA, N’A]KAB 2. I(B)A: N’A, [B, A, NA, N’A]KAB (I 假冒 B 完成 MAP1 会话) 3. A I(B) : [A, N’A]KAB
使用阈下信道的基本过程:
(1)Alice 产生一个无害消息,最好随机; (2)Alice 对这个无害信息这样签名,用与 Bob 共享的秘密密钥,她在签名中隐藏她 的阈下信息; (3)Alice 通过 Walter 发送签名消息给 Bob; (4)Walter 读这份无害的消息并检查签名,没发现什么问题,他将这份签了名的消 息传递给 Bob; (5)Bob 检查这份无害消息的签名,确认消息来自于 Alice; (6)Bob 忽略无害的消息,而用他与 Alice 共享的秘密密钥,提取阈下消息。 1. EIGamal 签名方案的阈下信道(课本 p38 页) 公钥:p:素数, g<p(p,g 可由一组用户共享) y=gx (mod p) 私钥:x<p 签名:k:随机选取,与 p-1 互素, a(签名)=g k mod p, b(签名)满足 M = (xa+kb) mod ( p-1) (即有:b = ( M- xa)k-1 mod (p-1) ) 验证:如果 ya ab (mod p ) = gM (mod p),则签名有效。 控制单向函数的输出比特 搜索选择适当的 k,使得 a=gk mod p 中的某些位为阈下信息。 2.RSA 数字签名的阈下信道 (解释) 签名者取两个随机大素数 p 和 q(保密) ,计算公开的模数 r=pq(公开), 计算秘密的欧拉函数 (r) =(p-1)(q-1)(保密) 。 随机选取整数 e,满足 gcd(e, (r))=1(公开 e,验证密钥) 计算 d,满足 de≡1(mod (r))(签名密钥) 签名:y=H(x)d (mod r), 把 x||y 发送给验证者 验证:检查下式是否成立 ye=H(x) (mod r). 选择 x 的不同表达方式,使得 H(x)中的某些位为阈下信息
7、
Oracle 攻击
讨论基于对称密码的双方密钥建立与认证协议 分类准则 预先有密钥可用:参与者之间共享,参与者与服务器共享(在线) ,离线服务 器-证书(公钥) 会话密钥生成的方法:密钥传输,协商,混合
4
记号 A, B :期望共享会话密钥的两个用户 S :可信服务器 {M}K :使用密钥 K 加密信息 M,提供机密性与完整性 实体认证协议