79

Click here to load reader

第5讲 PKI 认证(一)

  • Upload
    sandro

  • View
    376

  • Download
    5

Embed Size (px)

DESCRIPTION

第5讲 PKI 认证(一). 认证相关基本概念,身份认证. 一、认证基本概念. 1、问题的提出 2、认证的分类 3、消息认证 4、身份认证 5、认证协议. 1、问题的提出. 认证就是确认实体是它所声明的。 认证是最重要的安全服务之一。 认证服务提供了关于某个实体身份的保证。( 所有其它的安全服务都依赖于该服务) 认证可以对抗假冒攻击的危险. 2、认证的种类. 数字签名:手写签名的电子化 消息认证:消息来源和内容的合法性 HASH 函数:消息的完整性 身份认证:实体所宣称与实体本身的相符性 认证协议:身份认证、密钥交换. 3、消息认证(1). - PowerPoint PPT Presentation

Citation preview

Page 1: 第5讲  PKI 认证(一)

第 5 讲 PKI 认证(一)

认证相关基本概念,身份认证

Page 2: 第5讲  PKI 认证(一)

一、认证基本概念

1 、问题的提出2 、认证的分类3 、消息认证4 、身份认证5 、认证协议

Page 3: 第5讲  PKI 认证(一)

1 、问题的提出

认证就是确认实体是它所声明的。认证是最重要的安全服务之一。认证服务提供了关于某个实体身份的保证。(所有其它的安全服务都依赖于该服务)认证可以对抗假冒攻击的危险

Page 4: 第5讲  PKI 认证(一)

2 、认证的种类

数字签名:手写签名的电子化消息认证:消息来源和内容的合法性HASH 函数:消息的完整性身份认证:实体所宣称与实体本身的相符性认证协议:身份认证、密钥交换

Page 5: 第5讲  PKI 认证(一)

3 、消息认证( 1 )需求:在网络通信中,有一些针对消息内容的攻击方法 伪造消息 窜改消息内容 改变消息顺序 消息重放或者延迟

定义描述:对收到的消息进行验证,证明确实是来自声称的发送方,并且没有被修改过。 如果在消息中加入时间及顺序信息,则可以完成对

时间和顺序的认证

Page 6: 第5讲  PKI 认证(一)

3 、消息认证( 2 )

实现消息认证的基本方法: Message encryption :用整个消息的密

文作为认证标识(接收方必须能够识别错误)

MAC :一个公开函数,加上一个密钥产生一个固定长度的值作为认证标识

Hash function :一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识

Page 7: 第5讲  PKI 认证(一)

4 、身份认证( 1 )

定义:证实客户的真实身份与其所声称的身份是否相符的过程。依据: Something the user know ( 所知)

密码、口令等 Something the user possesses (拥有)

身份证、护照、密钥盘等 Something the user is (or How he behaves)

指纹、笔迹、声音、虹膜、 DNA 等

Page 8: 第5讲  PKI 认证(一)

4 、身份认证( 2 )

消息认证与身份认证的差别: 实体鉴别一般都是实时的,消息鉴别一般不

提供时间性。 实体鉴别只证实实体的身份,消息鉴别除了

消息的合法和完整外,还需要知道消息的含义。

数字签字是实现身份识别的有效途径。但在身份识别中消息的语义是基本固定的,一般不是“终生”的,签字是长期有效的。

Page 9: 第5讲  PKI 认证(一)

5 、认证协议( 1 )

双方认证 (mutual authentication)单向认证 (one-way authentication)

Page 10: 第5讲  PKI 认证(一)

5 、认证协议( 2 )最常用的协议。该协议使得通信各方互相认证鉴别各自的身份,然后交换会话密钥。基于鉴别的密钥交换核心问题有两个: 保密性 实效性

为了防止伪装和防止暴露会话密钥,基本鉴别和会话密码信息必须以保密形式通信,这就要求预先存在保密或公开密钥供实现加密使用。第二个问题也很重要,因为涉及防止消息重放攻击。

Page 11: 第5讲  PKI 认证(一)

二、身份认证基本情况

1 、身份认证的作用2 、身份认证的分类3 、身份认证的模型和组成4 、身份认证的要求5 、身份认证的实现途径6、身份认证的机制

Page 12: 第5讲  PKI 认证(一)

1 、身份认证的作用

身份认证需求: 某一成员(声称者)提交一 个主体的身份并声称它是那个主体。身份认证目的: 使别的成员(验证者)获得对声称者所声称的事实的信任

Page 13: 第5讲  PKI 认证(一)

2 、身份认证的分类( 1 )

实体鉴别可以分为本地和远程两类。 实体在本地环境的初始化鉴别(就是说,作为实体

个人,和设备物理接触,不和网络中的其他设备通信)。

连接远程设备、实体和环境的实体鉴别。本地鉴别:需要用户的进行明确的操作

远程鉴别:通常将本地鉴别结果传送到远程。 ( 1 )安全 ( 2 )易用

Page 14: 第5讲  PKI 认证(一)

2 、身份认证的分类( 2 )

实体鉴别可以是单向的也可以是双向的。 单向鉴别是指通信双方中只有一方向另一方进行鉴

别。 双向鉴别是指通信双方相互进行鉴别。

Page 15: 第5讲  PKI 认证(一)

3 、身份认证的组成( 1 )

A

TP

B

Page 16: 第5讲  PKI 认证(一)

3 、身份认证的组成( 2 )

一方是出示证件的人,称作示证者P(Prover) ,又称声称者 (Claimant) 。另一方为验证者 V ( Verifier),检验声称者提出的证件的正确性和合法性,决定是否满足要求。第三方是可信赖者 TP ( Trusted third party) ,参与调解纠纷。第四方是攻击者,可以窃听或伪装声称者骗取验证者的信任。

Page 17: 第5讲  PKI 认证(一)

4 、身份认证的要求( 1 )验证者正确识别合法申请者的概率极大化。 ( 2 )不具有可传递性( Transferability) ( 3 )攻击者伪装成申请者欺骗验证者成功的概率要小到

可以忽略的程度 ( 4 )计算有效性 ( 5 )通信有效性 ( 6)秘密参数能安全存储*( 7)交互识别*( 8)第三方的实时参与*( 9)第三方的可信赖性*( 10)可证明的安全性

Page 18: 第5讲  PKI 认证(一)

5 、身份认证的实现途径三种途径之一或他们的组合

( 1 )所知( Knowledge ) :密码、口令( 2 )所有( Possesses): 身份证、护照、信用卡、钥匙

( 3 )个人特征:指纹、笔迹、声纹、手型、血型、视网膜、虹膜、 DNA 以及个人动作方面的一些特征

( 4 )你做的事情(如手写签名)设计依据:安全水平、系统通过率、用户可接受性、成本等

Page 19: 第5讲  PKI 认证(一)

6、身份认证的机制( 1 )

非密码的鉴别机制基于密码算法的鉴别 采用对称密码算法的机制 采用公开密码算法的机制 采用密码校验函数的机制零知识证明协议

Page 20: 第5讲  PKI 认证(一)

6、身份认证的机制( 2 )

id id nrv

声称者 验证者

密钥和 id来自物理令牌或本地存储器

加密,封装或签名

密钥 id

解密或验证

是或不是

密钥

idnrv

消息

加密,封装或签名

简化的基于密码技术的鉴别机制

Page 21: 第5讲  PKI 认证(一)

三、非密码方式的身份认证机制1 、口令机制2 、一次性口令机制3 、基于地址的机制4 、基于个人特征的机制5 、个人鉴别令牌

Page 22: 第5讲  PKI 认证(一)

1 、口令机制( 1 )

口令或通行字机制是最广泛研究和使用的身份鉴别法。通常为长度为 5~8的字符串。选择原则:易记、难猜、抗分析能力强。口令系统有许多脆弱点: 外部泄露 口令猜测 线路窃听 危及验证者 重放

Page 23: 第5讲  PKI 认证(一)

1 、口令机制( 2 )

对付外部泄露的措施 教育、培训; 严格组织管理办法和执行手续; 口令定期改变; 每个口令只与一个人有关; 输入的口令不再现在终端上; 使用易记的口令,不要写在纸上。

Page 24: 第5讲  PKI 认证(一)

1 、口令机制( 3 )

对付口令猜测的措施 教育、培训; 严格限制非法登录的次数; 口令验证中插入实时延迟; 限制最小长度,至少 6~8字节以上 防止用户特征相关口令, 口令定期改变; 及时更改预设口令; 使用机器产生的口令。

Page 25: 第5讲  PKI 认证(一)

1 、口令机制( 4 )对付线路窃听的措施 :使用保护口令机制 (如单向函数 )

q

fid

id q

比较

是或不是

p

id

声称者 验证者

消息

Page 26: 第5讲  PKI 认证(一)

1 、口令机制( 5 )

对付线路窃听的措施的缺陷: 攻击者很容易构造一张q与 p对应的表,表中的 p 尽最大可

能包含所期望的值。 随机串( Salt )是使这种攻击变得困难的一种办法。 在口令后使用随机数。 只能保护在多台计算机上使用相同口令或在同一计算机上使

用同一口令的不同用户。

Page 27: 第5讲  PKI 认证(一)

1 、口令机制( 6)

改进方案:

q id

q id

比较

f

是或不是

声称者 验证者

p

id

消息salt

Page 28: 第5讲  PKI 认证(一)

1 、口令机制( 7)

基本的对付危及验证者的措施:使用单向函数

p id

id q

比较

是或不是

声称者 验证者

p

id

消息

f q

salt

Page 29: 第5讲  PKI 认证(一)

1 、口令机制( 8)

对付窃听及危及验证者的措施声称者

f

q id g

id r

比较

是或不是

p

id

r

验证者

消息salt

salt

Page 30: 第5讲  PKI 认证(一)

1 、口令机制( 9)对付重放攻击的措施

r id nrv

g

f

id q

g

比较

是或不是

p

声称者验证者

消息q

idnrv

salt

Page 31: 第5讲  PKI 认证(一)

1 、口令机制( 10)

UNIX系统中的口令存储 : UNIX系统使用 crypt() 保证系统密码的完整性。 这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能够将密码转换为原来的明码。

Page 32: 第5讲  PKI 认证(一)

2 、一次性口令机制( 1 )

一次性口令机制确保在每次认证中所使用的口令不同,以对付重放攻击。确定口令的方法:( 1 )两端共同拥有一串随机口令,在该串的某一位置保持同步; ( 2 )两端共同使用一个随机序列生成器,在该序列生成器的初态保持同步; ( 3 )使用时戳,两端维持同步的时钟。

Page 33: 第5讲  PKI 认证(一)

2 、一次性口令机制( 2 )

一次性口令机制的强度:( 1 )没有器件而知道口令 p ,不能导致一个简单的

攻击;( 2 )拥有器件而不知道口令 p ,不能导致一个简单

的攻击;( 3 )除非攻击者也能进行时间同步,否则重放不是

一个简单的攻击;( 4 )知道 q (例如通过浏览验证者系统文件)而不

知道设备安全值 dsv ,不能导致一个简单的攻击。

Page 34: 第5讲  PKI 认证(一)

2 、一次性口令机制( 3 )

SKEY 验证程序 其安全性依赖于一个单向函数。为建立这样的系统 A 输入一随机数 R ,计算机计算 f ( R ) , f ( f ( R )),f ( f ( f ( R …)) ), , 共计算 100 次,计算得到的数为 x1, x2 , x3 ,… x100 , A 打印出这样的表,随身携带,计算机将 x101 存在 A 的名字旁边。

第一次登录,键入 x100 ,

以后依次键入 xi ,计算机计算 f(xi) ,并将它与 xi+1比较。

Page 35: 第5讲  PKI 认证(一)

3 、基于地址的机制基于地址的机制假定声称者的可鉴别性是以呼叫的源地址为基础的。在大多数的数据网络中,呼叫地址的辨别都是可行的。在不能可靠地辨别地址时,可以用一个呼叫—回应设备来获得呼叫的源地址。 一个验证者对每一个主体都保持一份合法呼叫地址的文件。 这种机制最大的困难是在一个临时的环境里维持一个连续的主机和网络地址的联系。地址的转换频繁、呼叫—转发或重定向引起了一些主要问题。 基于地址的机制自身不能被作为鉴别机制,但可作为其它机制的有用补充。

Page 36: 第5讲  PKI 认证(一)

4 、基于个人特征的机制

生物特征识别技术主要有: 1 )指纹识别; 2 )声音识别; 3 )手迹识别; 4 )视网膜扫描; 5 )手形。

这些技术的使用对网络安全协议不会有重要的影响。

Page 37: 第5讲  PKI 认证(一)

5 、个人鉴别令牌

物理特性用于支持认证“某人拥有某东西” ,但通常要与一个口令或 PIN结合使用。这种器件应具有存储功能,通常有键盘、显示器等界面部件,更复杂的能支持一次性口令,甚至可嵌入处理器和自己的网络通信设备(如智能卡)。这种器件通常还利用其它密码鉴别方法。

Page 38: 第5讲  PKI 认证(一)

四、采用对称密码的身份机制

1 、对称密码认证机制2 、无可信第三方参与的单向认证3 、无可信第三方参与的双向认证4 、涉及可信第三方的双向认证

Page 39: 第5讲  PKI 认证(一)

1 、对称密码认证机制( 1 )

基于对称密码算法的鉴别依靠一定协议下的数据加密处理。通信双方共享一个密钥(通常存储在硬件中),该密钥在询问—应答协议中处理或加密信息交换。

Page 40: 第5讲  PKI 认证(一)

1 、对称密码认证机制( 2 )A: 实体 A的可区分标识符 /B: 实体 B的可区分标识符TP: 可信第三方的可区分标识符KXY:实体 X 和实体 Y之间共享的秘密密钥 ,只用于对称密码技术SX:与实体 X 有关的私有签名密钥 ,只用于非对称加密技术NX: 由实体 X 给出的顺序号 /RX: 由实体 X 给出的随机数TX: 由实体 X 原发的时变参数 ,它或者是时间标记 TX,或者是顺序号 RX

Y||Z: 数据项Y和 Z以 Y在前Z在后顺序拼接的结果eK(Z): 用密钥 K的对称加密算法对数据 Z加密的结果fK(Z): 使用以密钥 K和任意数据串Z作为输入的密码校验函数 f所产生的密码校验值CertX:由可信第三方签发给实体 X 的证书TokenXY: 实体 X 发给Y的权标 , 包含使用密码技术变换的信息TVP: 时变参数 /SSX(Z): 用私有签名密钥 SX对数据 Z进行私有签名变换所产生的签名 .

Page 41: 第5讲  PKI 认证(一)

2 、无可信第三方参与的单向认证( 1 )

一次传送鉴别

A B

( 1 ) TokenAB

(2)

( 1 ) TokenAB=Text2||eKAB(TA||B||Text1)

NA

( 2 ) B 解密,验证 B 、时间标记或顺序号的正确性

Page 42: 第5讲  PKI 认证(一)

2 、无可信第三方参与的单向认证( 2 )

两次传送鉴别

A B( 1 ) RB||Text1

(3)

( 2 ) TokenAB=Text3||eKAB(RB||B||Text2)

( 3 ) B 解密,验证 B 、 RB 的正确性

( 2 ) TokenAB

Page 43: 第5讲  PKI 认证(一)

3 、无可信第三方参与的双向认证( 1 )

两次传送鉴别A B

( 1 ) TokenAB

(2)

( 4 ) B 解密,验证 B 、 RB 的正确性

( 3 ) TokenBA( 1 ) TokenAB=Text2||eKAB(TA||B||Text1)

NA ( 3 ) TokenBA=Text4||eKAB(TB||A||Text3)

NB

(4)

Page 44: 第5讲  PKI 认证(一)

3 、无可信第三方参与的双向认证( 2 )

三次传送鉴别

A B( 1 ) RB||Text1 (3)

( 3 ) B 解密,验证 B 、 RB 的正确性

( 2 ) TokenAB

( 4 ) TokenBA

(5)

( 5 ) A 解密,验证 B 、 RB 、 RA 的正确性

Page 45: 第5讲  PKI 认证(一)

4 、涉及可信第三方的双向认证( 1 )四次传送鉴别

A B( 6 ) TokenBA

TP

( 4 ) TokenAB

( 2 ) TokenTA

( 1 ) TVPA||B||Text1

(3)(7) (5

)( 2 ) TokenTA=Text4||eKAT(TVPA ||KAB||B||Text3) || eKBT(TTP ||KAB||A||Text2)

NTP

( 4 ) TokenAB=Text6|| eKBT(TTP ||KAB||A||Text2) eKAB(TA ||B||Text5)

NTP NA

( 6 ) TokenBA=Text8|| eKAB(TB ||A||Text7)

NB

Page 46: 第5讲  PKI 认证(一)

4 、涉及可信第三方的双向认证( 2 )

五次传送鉴别

A B

( 7 ) TokenBA

TP

( 5 ) TokenAB

( 3 ) TokenTA

( 2 ) RA||RB||B||Text2

(4)(8) (6

)

( 3 ) TokenTA=Text5||eKAT(RA ||KAB||B||Text4) || eKBT(RB || KAB|| A||Text3)

( 5 ) TokenAB=Text7|| eKBT(RB || KAB|| A||Text3) ||eKAB(RA ||RB||Text6)

( 7 ) TokenBA=Text9|| eKAB(RB ||RA||Text8)

(1)RB||Text1

Page 47: 第5讲  PKI 认证(一)

五、采用非对称密码的身份机制

1 、采用公开密码算法的机制2 、采用公开密码算法的单向鉴别3 、采用公开密码算法的双向鉴别

Page 48: 第5讲  PKI 认证(一)

1 、采用公开密码算法的机制

在该机制中,声称者要通过证明他知道某秘密签名密钥来证实身份。由使用他的秘密签名密钥签署某一消息来完成。消息可包含一个非重复值以抵抗重放攻击。要求验证者有声称者的有效公钥 , 声称者有仅由自己知道和使用的秘密签名私钥。单向认证:仅对实体中的一个进行认证。双向认证:两个通信实体相互进行认证。

Page 49: 第5讲  PKI 认证(一)

2 、采用公开密码算法的单向鉴别( 1 )

一次传递机制

A B( 1 ) CertA||TokenAB

( 1 ) TokenAB=TA||B||Text2||SSA(TA||B||Text1)

NA NA

(2)

(2)B 验证 A 的公开密钥,验证 B 的标识符号

Page 50: 第5讲  PKI 认证(一)

2 、采用公开密码算法的单向鉴别( 2 )

两次传递机制

A B( 1 ) RB||Text1

(3)

( 3 ) B 验证 A 的公开密钥,验证 B 的标识符号

( 1 ) CertA||TokenAB

( 2 ) TokenAB=RA||RB||B||Text3||SSA(RA||RB||B||Text2)

Page 51: 第5讲  PKI 认证(一)

3 、采用公开密码算法的双向鉴别( 1 )

A B(2)

( 2 ) B 验证 A 的公开密钥,验证 B 的标识符号

( 3 ) CertB||TokenBA

两次传递机制

( 1 ) CertA||TokenAB

( 1 ) TokenAB=TA||B||Text2||SSA(TA||B||Text1)

NA NA

(4)

( 3 ) TokenBA=TB||A||Text4||SSB(TB||A||Text3)

NB NB

( 4 ) A 验证 B 的公开密钥,验证 A 的标识符号

Page 52: 第5讲  PKI 认证(一)

3 、采用公开密码算法的双向鉴别( 2 ) • 三次传递机制

A B( 1 ) RB||Text1

(3)

( 3 ) B 验证 A 的公开密钥,验证 B 的标识符号

( 2 ) CertA||TokenAB

( 2 ) TokenAB=RA||RB||B||Text3||SSA(RA||RB||B||Text2)

( 4 ) CertB||TokenBA

( 4 ) TokenBA=RB||RA||A||Text5||SSB(RB||RA||A||Text4)

( 5 ) A 验证 B 的公开密钥,验证 A 的标识符号

(5)

Page 53: 第5讲  PKI 认证(一)

3 、采用公开密码算法的双向鉴别( 3 )

• 两次传递并行机制

A B( 1 ) CertA||RA||Text1

(2)

(4)

( 4 ) A 和 B 验证各自的随机数

( 1 ) CertB||RB||Text2

( 1 ) TokenAB=RA||RB||B||Text4||SSA(RA||RB||B||Text3)

( 3 ) TokenBA

( 1 ) TokenBA=RB||RA||A||Text6||SSB(RB||RA||A||Text5)

( 2 ) A 和 B 确保他们拥有另一实体的公开密钥

(2)

(4)

( 3 ) TokenAB

Page 54: 第5讲  PKI 认证(一)

六、其它方式的身份认证机制1 、采用密码校验函数的机制2 、采用密码校验函数的单向鉴别3 、采用密码校验函数的双向鉴别4 、零知识证明技术

Page 55: 第5讲  PKI 认证(一)

1 、采用密码校验函数的机制

在该机制中,待鉴别的实体通过表明它拥有某个秘密鉴别密钥来证实其身份。可由该实体以其秘密密钥和特定数据作输入,使用密码校验函数获得密码校验值来达到。声称者和验证者共享秘密鉴别密钥,应仅为该两个实体所知,以及他们的信任方。

Page 56: 第5讲  PKI 认证(一)

2 、采用密码校验函数的单向鉴别( 1 )

一次传递鉴别

A B( 1 ) TokenAB

( 1 ) TokenAB=TA||Text2||fKAB(TA||B||Text1)

NA NA

(2)

(2)B 验证 A 的标识符号和时间标记

Page 57: 第5讲  PKI 认证(一)

2 、采用密码校验函数的单向鉴别( 2 )

A B( 1 ) RB||Text1

(3)

( 3 ) B 验证 B 的标识符号和随机数

( 2 ) TokenAB

( 2 ) TokenAB=Text3||fKAB(RB||B||Text2)

两次传递机制

Page 58: 第5讲  PKI 认证(一)

3 、采用密码校验函数的双向鉴别( 1 )

A B(2)

( 2 ) B 验证 A 的标识符号和时间标记

( 3 ) TokenBA

• 两次传递机制

( 1 ) TokenAB

( 1 ) TokenAB=TA||B||Text2||fKAB(TA||B||Text1)

NA NA

(4)

( 3 ) TokenBA=TB||A||Text4||SSB(TB||A||Text3)

NB NB

( 4 ) A 验证 B 的标识符号和时间标记

Page 59: 第5讲  PKI 认证(一)

3 、采用密码校验函数的双向鉴别( 2 ) • 三次传递机制

A B( 1 ) RB||Text1

(3)

( 3 ) B 验证 B 的标识符号和随机数

( 2 ) TokenAB

( 2 ) TokenAB=RA||Text3||fKAB(RA||RB||B||Text2)

( 4 ) TokenBA

( 4 ) TokenBA=Text5|| fKAB(RB||RA||Text2)

( 5 ) A 验证 A 的标识符号和随机数

(5)

Page 60: 第5讲  PKI 认证(一)

4 、零知识证明技术零知识证明技术可使信息的拥有者无需泄露任何信息就能够向验证者或任何第三方证明它拥有该信息。在网络身份鉴别中,已经提出了零知识技术的一些变形,例如, FFS 方案, FS 方案和 GQ方案。一般地,验证者颁布大量的询问给声称者,声称者对每个询问计算一个回答,而在计算中使用了秘密信息。大部分技术要求传输的数据量较大,并且要求一个更复杂的协议,需要一些协议交换。

Page 61: 第5讲  PKI 认证(一)

七、密钥交换协议1 、认证和交换协议2 、认证协议的设计3 、重放攻击4 、 Needham/Schroeder Protocol [1978]5 、 Denning Protocol [1982]6 、 KEHN927、一个基于临时值握手协议: WOO92a8、一个基于临时值握手协议: WOO92b

Page 62: 第5讲  PKI 认证(一)

1 、认证和交换协议( 1 )

如果用于连接完整性服务的密钥被在线建立,那么事实证明将认证和密钥交换功能组合在一个协议中是重要的(鉴别和密钥交换协议)。最常用的协议,该协议使得通信各方互相鉴别各自的身份,然后交换会话密钥。基于鉴别的密钥交换核心问题有两个: 保密性 时效性

Page 63: 第5讲  PKI 认证(一)

1 、认证和交换协议( 2 )

传统加密方法 Needham/Schroeder Protocol [1978] Denning Protocol [1982] KEHN92

公钥加密方法 一个基于临时值握手协议: WOO92a 一个基于临时值握手协议: WOO92b

Page 64: 第5讲  PKI 认证(一)

2 、认证协议的设计介绍在设计认证协议时特别需要注意的问题,并给出抵抗这些攻击的具体设计策略。鉴别和密钥交换协议的核心问题有两个: 保密性 时效性

为了防止伪装和防止暴露会话密钥,基本鉴别与会话密码信息必须以保密形式通信。这就要求预先存在保密或公开密钥供实现加密使用。第二个问题也很重要,因为涉及防止消息重放攻击。

Page 65: 第5讲  PKI 认证(一)

3 、重放攻击( 1 )常见的消息重放 攻击形式有:

1 、简单重放:攻击者简单复制一条消息,以后在重新发送它;2 、可被日志记录的复制品:攻击者可以在一个合法有效的时间窗内重放一个带时间戳的消息;

3 、不能被检测到的复制品:这种情况可能出现,原因是原始信息已经被拦截,无法到达目的地,而只有重放的信息到达目的地。

4 、反向重放,不做修改。向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。

1 )针对同一验证者的重放:非重复值 2 )针对不同验证者的重放:验证者的标识符

Page 66: 第5讲  PKI 认证(一)

3 、重放攻击( 2 )对付重放攻击:非重复值的使用:1 )序列号:计数的策略:对付重放攻击的一种方法是在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号。2 )时间戳: A 接受一个新消息仅当该消息包含一个时间戳,该时间戳在 A 看来,是足够接近 A 所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步 3 )验证者发送随机值(如询问):不可预测、不重复

Page 67: 第5讲  PKI 认证(一)

3 、重放攻击( 3 )对付重放攻击:非重复值的使用: 在网络环境中,特别是在分布式网络环境中,

时钟同步并不容易做到 一旦时钟同步失败

要么协议不能正常服务,影响可用性(availability) ,造成拒绝服务 (DOS)

要么放大时钟窗口,造成攻击的机会 时间窗大小的选择应根据消息的时效性来确

Page 68: 第5讲  PKI 认证(一)

3 、重放攻击( 4 )对付重放攻击:非重复值的使用:

A 期望从 B 获得一个消息 首先发给B一个随机值 (challenge) B收到这个值之后,对它作某种变换,并送回去 A 收到 B的 response ,希望包含这个随机值

在有的协议中,这个 challenge 也称为 nonce 可能明文传输,也可能密文传输 这个条件可以是知道某个口令,也可能是其他的事情 变换例子:用密钥加密,说明 B知道这个密钥 ;简单运算,比如增一,说明 B知道这个随机值

询问 /应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。

Page 69: 第5讲  PKI 认证(一)

3 、重放攻击( 5 )

相互鉴别协议: 在理论上,相互鉴别可通过组合两个单向鉴别交换

协议来实现。然而,这种组合需要被仔细地考察,因为有可能这样的组合易受窃听重放攻击。

另外,设计协议消息数比相应的单向交换协议的消息数的两倍少得多的相互鉴别交换协议是可能的。

因此,由于安全性和性能的原因,相互鉴别交换协议必须为此目的而特别地进行设计。

Page 70: 第5讲  PKI 认证(一)

4 、基于传统密码的协议( 1 )

传统加密方法的单向认证:1 、 A KDC : IDA||IDB|| N1

2 、 KDC A : EKa[Ks || IDB || N1 || EKb [Ks || IDA]]

3 、 A B : EKb [Ks || IDA] || EKs[M]

Page 71: 第5讲  PKI 认证(一)

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)]

保密密钥 Ka 和 Kb 分别是 A 和 KDC 、 B 和 KDC 之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥 Ks 给 A 和 B 。

4 、基于传统密码的协议( 2 )Needham/Schroeder Protocol [1978]

Page 72: 第5讲  PKI 认证(一)

Needham/Schroeder Protocol [1978]A 在第 2 步安全地得到了一个新的会话密钥,第 3 步只能由 B 解密、并理解。第 4 步表明 B 已知道 Ks 了。第 5 步表明 B 相信 A 知道 Ks 并且消息不是伪造的。第 4 , 5 步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第 3 步捕获该消息,并重放之,这将在某种程度上干扰破坏 B 方的运行操作。上述方法尽管有第 4,5 步的握手,但仍然有漏洞。假定攻击方 C 已经掌握 A 和 B 之间通信的一个老的会话密钥。 C 可以在第 3 步冒充 A 利用老的会话密钥欺骗 B 。除非 B 记住所有以前使用的与 A 通信的会话密钥,否则 B 无法判断这是一个重放攻击。如果 C 可以中途阻止第 4 步的握手信息,则可以冒充 A 在第 5 步响应。从这一点起, C 就可以向B 发送伪造的消息而对 B 来说认为是用认证的会话密钥与 A 进行的正常通信。

4 、基于传统密码的协议( 3 )

Page 73: 第5讲  PKI 认证(一)

4 、基于传统密码的协议( 4 )

Denning Protocol [1982]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)]| Clock - T | < t1 + t2 其中: t1 是 KDC 时钟与本地时钟( A 或 B )之间差异的估计值; t2 是预期的网络延迟时间。

Page 74: 第5讲  PKI 认证(一)

4 、基于传统密码的协议( 5 )

Denning Protocol [1982] Denning Protocol 比 Needham/Schroeder Protocol 在安全性方面增强了一步。然而,又提出新的问题:即必须依靠各时钟均可通过网络同步。如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者窃听消息,并在以后当时间戳对接收者来说成为当前时重放给接收者。这种重放将会得到意想不到的后果。(称为抑制重放攻击)。一种克服抑制重放攻击的方法是强制各方定期检查自己的时钟是否与 KDC 的时钟同步。另一种避免同步开销的方法是采用临时数握手协议。

Page 75: 第5讲  PKI 认证(一)

4 、基于传统密码的协议( 6)

KEHN92 :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 ]

Page 76: 第5讲  PKI 认证(一)

5 、基于公钥密码的协议( 1 )

公钥加密方法的单向认证:1 、 A B : EKUb[Ks ]|| EKs[M]1 、 A B : M || EKRa[H(M)]1 、 A B : EKUb [ M || EKRa[H(M)]]1 、 A B : M || EKRa[H(M)] || EKRas [ T || IDA

||KUa ]

Page 77: 第5讲  PKI 认证(一)

5 、基于公钥密码的协议( 2 )一个使用时间戳的方法是:1 、 A AS : IDA||IDB

2 、 AS A : EKRas[IDA ||KUa || T ] || EKRas[IDB ||KUb || T ] 3 、 A B : EKRas[IDA||KUa|| T] || EKRas[IDB || KUb || T] ||

EKUb[EKRa [Ks||T]]

Page 78: 第5讲  PKI 认证(一)

5 、基于公钥密码的协议( 3 )

WOO92a :1 、 A KDC : IDA||IDB

2 、 KDC A : EKRauth[IDB ||KUb] 3 、 A B : EKUb[Na ||IDA]4 、 B KDC : IDB||IDA || EKUauth[Na] 5 、 KDC B : EKRauth[IDA ||KUa]|| EKUb[EKRauth

[Na||Ks||IDB]]6 、 B A : EKUa[EKRauth[ Na ||Ks || IDB]||Nb]7 、 A B : EKs[Nb]

Page 79: 第5讲  PKI 认证(一)

5 、基于公钥密码的协议( 4 )

WOO92b :1 、 A KDC : IDA||IDB

2 、 KDC A : EKRauth[IDB ||KUb] 3 、 A B : EKUb[Na ||IDA]4 、 B KDC : IDB||IDA || EKUauth[Na] 5 、 KDC B : EKRauth[IDA ||KUa]|| EKUb[EKRauth

[Na||Ks||IDA||IDB]]6 、 B A : EKUa[EKRauth[ Na ||Ks ||IDA ||

IDB]||Nb]7 、 A B : EKs[Nb]