Presentation is loading. Please wait.

Presentation is loading. Please wait.

数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术.

Similar presentations


Presentation on theme: "数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术."— Presentation transcript:

1 数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术

2 数字签名 数字签名(Digital Signature)是公开密钥体系加密技术发展的一个重要的成果。通常,对数字签名的鉴别过程也就是身份认证。 本章讨论数字签名及鉴别的实现。

3 不可否认性的应用需求 网络通信中,希望有效防止通信双方的欺骗和抵赖行为。
简单的报文鉴别技术只能使通信免受来自第三方的攻击,无法防止通信双方之间的互相攻击。 Y 伪造一个不同的消息,但声称是从 X 收到的; X可以否认发过该消息,Y 无法证明 X 确实发了该消息; 原因:鉴别技术基于秘密共享。 因此,在现代经济生活中,除了报文鉴别技术外,还迫切需要一种技术手段来防止通信中的抵赖和欺骗行为。 数字签名技术为此提供了一种解决方案。

4 数字签名的功能 是对现实生活中笔迹签名的功能模拟。 对消息进行签名时,必须能够对消息的内容进行鉴别。
必须能够用来证实签名的作者和签名的时间。 对消息进行签名时,必须能够对消息的内容进行鉴别。 签名应具有法律效力,必须能被第三方证实用以解决争端。 必须包含对签名进行鉴别的功能。

5 数字签名的设计目标 签名的比特模式是依赖于消息报文的,也就是说,数据签名是以消息报文作为输入计算出来的,签名能够对消息的内容进行鉴别;
数据签名对发送者来说必须是惟一的,能够防止伪造和抵赖; 产生数字签名的算法必须相对简单易于实现,且能够在存储介质上保存备份; 对数字签名的识别、证实和鉴别也必须相对简单,易于实现; 伪造数字签名在计算上是不可行的,无论攻击者采用何种方法(利用数字签名伪造报文,或者对报文伪造数字签名)。

6 数字签名的解决方案 目前已有多种数字签名解决方案和签名计算函数。 按技术特点可分为两类: 直接数字签名方案; 基于仲裁的数字签名方案。

7 直接数字签名 实现比较简单,在技术上仅涉及到通信的源点X和终点Y双方。 终点Y需要了解源点X的公开密钥Kux。
发送方A可以使用其私有密钥KRx对整个消息报文进行加密来生成数字签名。 更好的方法是使用KRx对消息报文的散列码进行加密来形成数字签名。

8 直接数字签名的安全性 方案的安全性依赖于发送方X私有密钥的安全性。 发送方可以声称自己的私有密钥丢失或被盗用,而否认其发送过某个报文。
改进:每个签名报文中包含一个时间戳。 问题: X 的私有密钥确实在时间 T 被窃取; 攻击者窃取 X 的密钥后,则可能发送带有 X 的签名报文,附上一个等于 T 的时间戳,接受者无法判别。

9 基于仲裁的数字签名 实际应用中,多采用基于仲裁的数字签名技术,通过引入仲裁来解决直接签名方案中的问题。
仲裁者必须是一个所有通信方都能充分信任的仲裁机构。 基本工作方式(假定用户X和Y之间进行通信): 每个从X发往Y的签名报文首先被送给仲裁者A; A检验该报文及其签名的出处和内容,然后对报文注明日期,并附加上一个“仲裁证实”的标记发给Y。 这种方式解决了发方否认的难题。 三种基于仲裁的签名算法:

10 基于仲裁的数字签名--对称密钥加密方式 发送方X和仲裁A共享一个对称密钥Kax ,接收方Y和仲裁A共享一个对称密钥Kay。 过程:
X → A : X向Y发送M时,先计算H(M),然后将附加了数字签名(X的标识符IDx和H(M)组成)的报文传给A,其中数字签名用Kax加密; M‖EKax( IDx‖H(M) ) A对数字签名解密和验证,若合法,执行下步: A → Y :A将X的标识符、原始报文M、X的数字签名和时间戳T一起用Kay加密传给Y: EKay( IDx‖M‖EKax( IDx‖H(M) )‖T ) Y用Kay解密并存储得到M和签名。

11 基于仲裁的数字签名--对称密钥加密方式 争端解决方式(如X否认发过M) 特点:
Y → A :EKay( IDx‖M‖EKax( IDx‖H(M) ) )。 仲裁A可用Kay恢复出IDx 、M及签名,然后再用Kax对签名解密并验证其散列码。 特点: Y 不能直接验证 X 的签名,签名只在发生争端时使用。 双方都需要高度相信 A Y 相信 A 已对消息认证,X 不能否认其签名; X 信任 A 没有暴露 Kax,无人可伪造 DS; 双方都信任 A 处理争议是公正。 问题: 报文 M 明文传送给A,有可能被窃听。

12 具有加密功能的对称加密方式 发方X与仲裁者A共享密钥Kax,A与接收方Y共享密钥Kay,X和Y共享Kxy ; 过程:
X向Y发送M时,先将M用Kxy加密,再计算H(Ekxy ( M) ) ,然后将附加了数字签名的报文传给A,其中数字签名用Kax加密IDx‖EKxy(M)‖EKax( IDx‖H (EKxy(M)) ) ; A对数字签名进行解密和验证; 若合法,A将X的标识符、Ekxy ( M) 、X的数字签名和时间戳T一起用Kay加密传给Y: EKay( IDx‖EKxy (M)‖EKax( IDx‖H (EKxy(M))‖T ) Y用Kay解密得到Ekxy ( M)和签名,再用Kxy解密得到M。 此方案中,A无法阅读M中的内容。

13 以上两种方案不足: 原因:基于对称钥-秘密的共享信息。 1) A 和发送方 X 联手可以否认签名的信息。
2) A和接收方 Y 联手可以伪造发送方 X 的签名。 原因:基于对称钥-秘密的共享信息。

14 基于仲裁的数字签名—公开密钥加密方式 特点:仲裁者看不见消息的内容。 过程: 优点:
X先将M用自己的私钥加密,再用Y的公钥加密,再次用自己的私钥加密(双重加密): IDx || EKRx [ IDx || EKUy ( EKRx(M) )] 经过三重加密后传给A,此时报文 M 只有 Y 能够阅读,A 不能读取. A 能利用X的公钥进行外层解密,从而证实报文确实是来自 X 因为只有 X 拥有KRx 。 验证后 A 向 Y 发送用仲裁者私钥KRa加密的消息,其中包括时间戳 T AY: EKRa [ IDx || EKUy(EKRx(M)) || T] 优点: 通信各方之间无须共享任何信息,从而避免了联手作弊; 只要 KRa 安全,则不会出现伪造 A 发送的消息; 消息的内容是保密的,包括对 A 在内。

15 鉴别协议 鉴别作用是证实通信中某一方的身份,也称认证(Certification)。 两个基本方式
相互鉴别(mutual Certification) :指通信各方相互间进行身份认证,同时交换会话密钥。其重点是密钥的分配。 单向鉴别(one-way Certification) :主要用于电子邮件等应用中。其特点是通信双方无需同时在线。

16 相互鉴别 目的:用于通信各方之间的相互进行身份认证,同时交换会话密钥。 需要解决的核心问题: 机密性 时效性 密钥交换的机密性和时效性。
防止会话密钥被篡改或和泄露; 用户身份信息和会话密钥都必须以密文形式交换; 前提:通信各方事先保存一个密钥(共享或公开密钥)。 时效性 为了防止消息的重放(replay)攻击。

17 报文重放(replay) 攻击 攻击过程: 后果 窃听。 复制或部分复制一个报文。 在以后的某个时间重放 扰乱接收者正常的工作。
可以拦截原信息,用重放消息取代; 可以在一个合法有效的时间窗内重放一个带时间戳的消息。 后果 扰乱接收者正常的工作。 窃取会话密钥,假扮成一个通信方欺骗其他人。

18 例:使用公钥加密算法建立会话密钥过程中的重放攻击
设重放了

19 重放攻击问题的解决方式 报文序号方式 在认证交换中对消息报文编排序号,消息序号合法时才接受。
问题:通讯双方都必须记录最近处理的序号;通信各方必须保持序号同步。 通过加入随机数使密钥分配具有认证性

20 时间戳方式 在报文中附加发送的时间戳;接收时只有报文时间戳与本地时间足够接近时,才认为是一个合法的新报文。 问题: 通信各方的时钟同步比较困难; 时间窗口的大小如何确定。

21 由于存在众多可能的攻击形式,要设计一个非常完美的鉴别协议是非常困难的。
以下介绍采用对称钥加密及公钥加密两种相互鉴别协议。

22 基于对称密钥加密的相互鉴别 须具备的条件 目的: KDC 为通信双方A、B产生短期的会话密钥 Ks 。 工作过程:
主密钥 Ka 和 Kb 是安全的。 目的: KDC 为通信双方A、B产生短期的会话密钥 Ks 。 工作过程: (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)]

23 基于对称密钥加密的相互鉴别过程 A在会话开始时首先向KDC发送报文,包含A和B的标识和一个与时间相关的现时标识符N1 。
A就可安全地从KDC获得一个新的会话密钥Ks 。 A将用Kb加密的会话密钥Ks发送给B,这个会话密钥只有B能够通过解密获得。 B向A发送用会话密钥加密的现时值N2,向A证实B已经正确获得了会话密钥 Ks A使用新建立的会话密钥Ks对f(N2)加密后返回给B

24 基于对称密钥加密的相互鉴别 问题:过期的会话密钥 改进 : X可冒充A,使用过期密钥,并重放第3步的报文,就可以欺骗B。
增加时间戳机制 :需要通信各方周期性地与KDC通信进行时钟校准。 通信时使用现时握手。 1,2结合。

25 基于对称密钥加密的相互鉴别 办法:通信各方周期性地与KDC通信进行时钟校准。 改进后的协议过程 (增加时间戳):
(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)] T 是时间戳,需满足: 其中,C 本地时间,  t1 时钟偏差,  t2 网络时延。 新问题:如何安全准确地通过网络进行时钟同步; 办法:通信各方周期性地与KDC通信进行时钟校准。

26 基于对称密钥加密的相互鉴别 改进后的协议过程 (增加时间戳和现时握手 ) (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) 其中, Na和Nb分别为A和B生成的现时值,用以验证时效性;称EKb ( IDA‖Na‖Tb )为访问B的“票据”(ticket)。

27 基于公开密钥加密的相互鉴别

28 基于公开密钥加密的相互鉴别 过程 (1) A → AS : IDA‖IDB (2) AS → A : CA‖CB
(3) A → B : CA‖CB ‖EKUb(EKRa(Ks‖T)) 其中: A 的公钥和私钥分别为 KUa 和 KRa ; B 的公钥和私钥分别为 KUb 和 KRb ; AS(鉴别中心) 的公钥和私钥分别为 KUas 和 KRas ; CA = EKRas(IDA‖KUa‖T),A 的公开密钥证书; CB = EKRas(IDB‖KUb‖T),B 的公开密钥证书。 AS实际只提供公钥证书,会话密钥的选择与加密由A负责。 缺点:此法也需要严格的时钟同步。

29 基于公开密钥加密的相互鉴别 改进(使用现时值N代替时间戳) (1) A → KDC :IDA‖IDB
(2) KDC → A :EKRk ( IDB‖KUb) (3) A → B: EKUb ( Na‖IDA ) (4) B → KDC :IDB‖IDA‖EKUk( Na ) (5) KDC → B: EKRk ( IDA‖KUa)‖EKUb ( EKRk (Na‖Ks‖IDB )) (6) B → A : EKUa( EKRk (Na‖Ks‖IDB )‖Nb ) (7) A → B : EKs ( Nb )

30 单向鉴别 One-Way Authentication。 主要用于电子邮件认证等应用。
电子邮件特点:使用SMTP传输,要求信封(报头)为明文; 要求:报文以密文传输;收方能鉴别信的来源. 单向鉴别特点:发方和收方无需同时在线。 鉴别时收发方不能在线交互。

31 基于对称密钥加密的单向鉴别 以KDC策略为基础。 具体过程: 问题:很明显无法防止重放攻击. (1) A → KDC :IDA‖IDB‖N1
(2) KDC → A :EKa ( Ks‖IDB‖N1‖EKb ( Ks‖IDA) ) (3) A → B : EKb ( Ks‖IDA)‖EKs(M) 其中,Ka、Kb分别为A和B与KDC间的共享主密钥,N1为一个现时值。 问题:很明显无法防止重放攻击.

32 基于公开密钥加密的单向鉴别 公钥加密非常适合于电子邮件,可提供加密或/和鉴别功能。一般需要掌握对方的公钥。
保密性为主: A → B :EKUb (Ks)‖EKs(M)。该方案比简单地采用B的公钥对整个报文加密效率高的多。 鉴别为主: A → B :M‖EKRa (H(M))。即生成一个好的签名,而报文以明文传送。 保密和鉴别: A → B :EKUb( M‖EKRa (H(M)) )。 数字证书: A → B :M‖EKRa (H(M))‖EKRas (T‖IDA‖KUa)。 其中KRas 为AS的私钥, EKRa (H(M))为A的签名, EKRas (T‖IDA‖KUa)为AS颁发的证书。

33 数据加密解密、身份认证流程图 A用户 B用户 2005-07-20 33 解密 用户B数字证书 用户A数字证书 加密 数字 信封 数字签名
密文 明文 Hash A用户 用户A的私有 签名密钥 对称密钥 + 信息 摘要 用户A的公开 用户B的私有 密钥 B用户 用户B的公开 解密 33

34 A用户先用Hash算法对发送信息(即“明文”)进行运算,形成“信息摘要”,并用自己的私人密钥对其加密,从而形成数字签名。
A用户随机产生对称密钥(DES密钥)对明文进行加密,形成密文。 为了安全把A用户随机产生的对称密钥送达B用户,A用户用B用户的公开密钥对其进行加密,形成了数字信封。这样A用户最后把密文和数字信封一起发送给B用户。 B用户收到A用户的传来的密文与数字信封后,先用自己的私有密钥对数字信封进行解密,从而获得A用户的DES密钥,再用该密钥对密文进行解密,继而得到明文、A用户的数字签名及用户的数字证书。 为了确保“明文”的完整性,B用户把明文用Hash算法对明文进行运算,形成“信息摘要”。 同时B用户把A用户的数字签名用A用户的公开密钥进行解密,从而形成另一“信息摘要1”。 B用户把“信息摘要”与“信息摘要1”进行比较,若一致,说明收到的“明文”没有被修改过。

35 数字签名标准(DSS) 现在已有多种实现各种数字签名的方法,目前数字签名采用较多的是公钥加密技术,如基于RSA Data Security公司的PKCS(Public Key Cryptography Standards)、x.509、PGP(Pretty Good Privacy)。 如RSA方法是将报文作为散列函数的输入,产生一个定长的散列码,发方再用私钥对散列码加密形成签名。 1994年美国标准与技术协会NIST公布了数字签名标准(DSS)。 DSS基于SHA算法并设计了一种新的数字签名算法DSA (Digital Signature Algorithm) 。DSA是一个公开钥数字签名算法,用于检验数据的完整性和一致性,第三方可以使用它来确认数字签名的合法性。

36 DSS的数字签名方案 同时采用散列函数H()和签名函数Sig()。
签名函数的输入是散列函数输出的散列码及一个用于生成签名的随机数k。还需要使用发送方的私钥(用KRa表示)和由参数集构成的一个全局公开密钥(KUG)。 签名函数输出的最终结果(即数字签名)由两个分量组成,记为s和r。 在接收端,验证函数的输入包括了报文的散列码、数字签名、全局公开密钥KUG以及发送方公开密钥KUa 。

37 DSS的数字签名方案 Ua

38 数字签名算法( DSA ) 设计基础基于离散对数的计算。 三个p、q、g 作为全局公开的密钥分量:
p是一个素数,其长度在512比特到1024比特之间,可以对p进行更精确的描述:p是素数,且满足2L-1 ≤ p ≤ 2L(其中512≤ L ≤1024,且L是64的倍数); q是一个长度为160位的素数,且q是p-1的一个素因子,即2159 ≤ p ≤ 2160,且(p-1) mod q = 0; g定义为g = h(p-1)/q mod p ,其中h是一个整数,且满足1 ≤ h ≤ (p-1),故g = h(p-1)/q mod p > 1。 用户的私有密钥x必须是一个1~ (p- l) 之间的随机数或伪随机数(即1 < x < p)。 公开密钥y利用私有密钥计算出来的:y = gx mod p 。

39 签名函数Sig() 输入为: 公开的密钥分量(p,q,g); 用户私有密钥x; 报文的散列码H(M),报文的散列码采用SHA-1算法计算;
一个额外的整数密数k,k是随机或伪随机整数,且对每个签名是惟一,也就是说对每一个报文需要选择不同的k。

40 验证函数(Ver)

41 DSS的签名函数和验证函数

42 身份认证技术 数字签名和鉴别技术的一个最主要的应用领域就是身份认证。
当今的网络应用环境中,网络资源的安全性保障通常采用基于用户身份的资源访问控制策略。 身份认证的重要作用就是保护网络中的数据和服务不被未授权的用户所访问。

43 纯认证系统模型 网络安全的两个问题:一是保密性问题,即保护机密信息;一是认证(鉴别)问题,即保证真实性和完整性。
一般说,认证不能自动提供保密性,而保密性也不能自然地提供认证功能。 认证的基本思想是通过验证称谓者的一个或多个参数的真实性和有效性,以验证其是否名副其实。 身份认证是系统对网络主体进行验证的过程,用户必须证明他是谁。

44 身份认证技术和数字签名的区别 两者都是确保数据真实性的安全措施。
认证一般是基于收发双方共享的保密数据,以证实被鉴别对象的真实性;而用于验证签名的数据是公开的。 认证允许收发双方互相验证其真实性,数字签名则允许第三者验证。 对于数字签名来说,发送方不能抵赖、接收方不能伪造,并且可由仲裁进行调解,而认证却不一定具备这些特点。 认证技术的实现可能需要使用数字签名技术。

45 身份认证系统的特征 验证者正确识别合法客户的概率极大。 攻击者伪装示证者骗取验证者信任的成功率极小化。
通过重放认证信息进行欺骗和伪装的成功率极小。 计算有效性,实现身份认证的算法计算量足够小。 通信有效性,实现身份认证所需的通信量足够小。 秘密参数能够安全存储。 第三方的可信赖性。 可证明安全性。

46 基本的身份认证方法 主体特征认证 口令机制 智能卡 一次性口令
视网膜扫描、声音验证、指纹识别器。 口令机制 口令是约定的代码,假设只有用户和系统知道。 智能卡 访问不但需要口令,也需要使用物理智能卡。 一次性口令 用户每次使用不同的口令,需要口令发生器设备。 PAP 协议(Password Authentication Protocol,密码认证协议) 用于 PPP(点对点)协议的身份认证协议,明文口令传输。 CHAP 协议(Challenge Handshake Authentication Protocol,竞争握手认证协议) 不在网络上传送口令信息, 比 PAP 具有更强的安全性。

47 分布式环境中的身份认证 没有联网的单用户计算机系统:对计算机的控制 多用户计算机系统:基于用户身份的资源存取方式 分布式网络环境
由大量的客户工作站和分布在网络中的公共服务器组成; 服务器向网络用户提供各种网络应用的服务,是关键; 用户需要访问分布在网络不同位置上的服务。 服务器的安全 服务器需要通过授权来限制用户对资源的访问; 授权和访问限制建立用户身份认证基础上的。

48 网络系统的安全性可采用不同身份认证策略实现:
基于客户工作站的用户身份认证:由客户工作站负责用户身份的鉴别; 基于客户系统的身份认证:客户系统向服务器证实自己的身份; 基于服务的用户身份认证:对网络中每一项服务都需要证实用户的身份。 在小型封闭网络中,如能对网络和计算机进行统一管理,可采用第1,2种策略,但在开放的分布式环境中,由于服务的开放性和用户的流动性,则必须使用第三种认证方法。这通常需要一个集中式的服务器或服务器系统来完成对用户身份的认证和访问授权。如Kerberos和X.509协议。

49 数字证书的申请、颁发 个人数字证书的申请 可以利用个人数字证书来发送签名或加密的电子邮件。
个人数字证书介绍 可以利用个人数字证书来发送签名或加密的电子邮件。 个人数字证书分为二个级别 第一级数字证书,仅仅提供电子邮件的认证,不对个人的真实姓名等信息认证; 第二级个人数字证书提供对个人姓名、身份等信息的认证。 个人数字证书的获得 当个人数字证书申请后,认证中心对申请者的电子邮件地址、个人身份及信用卡号等信息进行核实,通常在三~五天内即可颁发数字证书。 49

50 Web服务器证书的作用:验证Web服务器的真实性。
服务器数字证书的申请 Web服务器证书的作用:验证Web服务器的真实性。 服务器数字证书的情况分析 服务器数字证书的可信度是建立在: 对管理和操作该服务器的组织或单位的进行必要的信用调查; 接受数字证书操作的严密规范; 强有力的技术支持,例如,难以破解的加密技术; 设备的高可靠性。 50

51 案例:数字证书在网上招标系统中的应用(1)
网上招标是指在公网上利用电子商务基础平台提供的安全通道进行招标项目中各种信息的传递和处理,包括招标信息的公布、标书的发放、应标书的收集、投标结果的通知以及项目合同或协议的签订等完整的过程。 网上招标有公开招标和邀请招标两种招标方式,对招标方提供发布招标公告、发布招标邀请、发布中标信息、电子标书管理、标箱管理等功能;对投标方提供招标信息查询、在线投标、在线购买标书等功能 51

52 数字证书在网上招标系统中的应用(2) 身份确定? 传输安全? 抵赖? 52

53 数字证书在网上招标系统中的应用(3) 招投标双方在CA中心获得客户端事务型证书,并在Web服务器上绑定服务器端证书,同时在服务器端和客户端建立SSL通道。 在网上招标系统中设置 服务器,并在 服务器上设定专门的用户帐号接收投标机构的附有标书的安全电子邮件。 投标用户将投标书利用安全电子邮件(签名/加密,S/MIME协议)发送给招标方设定的邮箱中 53


Download ppt "数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术."

Similar presentations


Ads by Google