当前位置:文档之家› 第五章 数字签名与身份鉴别

第五章 数字签名与身份鉴别


Return
5.3 Байду номын сангаас别技术
• 网络鉴别(认证)技术是网络安全技术的重要 组成部分之一。鉴别是证实被鉴别对象是 否属实和是否有效的一个过程。其基本思 想是通过对被鉴别对象的属性的验证来达 到确认被鉴别对象是否真实有效的目的。 用于鉴别的属性应该是被鉴别对象惟一的、 区别于其它实体的属性。被鉴别对象的属 性可以是口令、数字签名或者象指纹、声 音、视网膜这样的生理特征。鉴别常常被 用于通信双方相互确认身份,以保证通信 的安全。
Return
5.2 数字签名算法
• 美国国家标准技术研究所 NIST 于 1994 年 5 月 19 日 公布了联邦信息处理标准FIPS PUB 186,该标准 描述了一个用于数字签名的产生和验证的数字签 名算法DSA(Digital Signature Algorithm)。2000年1 月27日又公布了联邦信息处理标准FIPS PUB 1862,该标准补充了两个数字签名算法:RSA数字签 名算法和椭圆曲线数字签名算法ECDSA。 5.2.1 数字签名标准DSS • 数字签名标准FIPS PUB 186-2定义了一组(3个)用 于数字签名的算法。算法提供了生成和验证签名 的能力。 • 生成数字签名时使用私有密钥,验证签名时使用 对应的公开密钥。只有私有密钥的所有者可以生 成签名。
鉴于上述发送方和接收方之间存在欺骗或抵 赖的情况,必须引入防止通信双方欺骗或 抵赖的签名机制。为了保证数字签名的效 果,数字签名必须满足下列要求:
1) 发送者在签名时必须能对信息内容进行鉴别。 2) 签名必须是发送者所惟一拥有的标记,攻击者伪 造一个数字签名在计算上不可行。 3) 作者的签名和签名时间必须能被验证。 4) 数字签名的产生、识别和证实必须相对简单。 5) 签名必须与被签名的报文的位模式相关,当签名 后的数据发生改变时,该签名将成为无效签名。 6) 签名必须能被第三方验证以便解决争端。
引理1. 对于非负整数a和b,g(a mod q+b mod q) mod p=g(a+b) mod q mod p。 引理2. y(rw) mod q mod p=g(xrw) mod q mod p 定理:若签名中的M’=M,s’=s,r’=r,那么,v= r’。 证明:根据w,u1,u2的定义,
3)一个密值 为每个要签名的报文M产生一个密值k,k是一个 位于 0 到 q 之间的随机或伪随机整数 (1≤k≤q-1) 。 k和私有密钥x一样需要保密。 DSA算法由生成签名和验证签名两部分构成。 生成签名时,算法根据p、q、g、x、k和报文的 散列码H(M)计算签名值r和s。 r=(gk mod p) mod q s=(k-1(H(M)+xr)) mod q 式中,k-1是k的模q乘法逆元,即k-1· k=1(mod q)。
3)系统中所有用户的口令以文件形式存储在鉴别方,攻 击者可能获取系统的口令文件。 4)用户在访问多个不同安全级别的系统时,都要求用户 提供口令,用户为了记忆的方便,往往采用相同的 口令。而低安全级别系统的口令更容易被攻击者获 得,从而用来对高安全级别系统进行攻击。 5)只能进行单向鉴别,即系统可以鉴别用户,而用户无 法对系统进行鉴别。攻击者可能伪装成系统骗取用 户的口令。 对于第2点,系统可以对口令进行加密传输。对于第 3点,系统可以对口令文件进行不可逆加密。尽管如 此,攻击者还是可以利用一些工具很容易地将口令 和口令文件解密。
CHAP 算法要求秘密值长度至少为一个字节,最好 能和所选择的散列算法的散列值等长。若选用消息 摘要算法MD5,则秘密值长度最好为128位。 单向函数算法保证由已知的询问和响应不可能计算 出秘密值。 每个询问值应该是惟一的,而且是不可预测的。询 问值每次都不一样。响应值取决于所选用的散列算 法。 • CHAP具有以下优点:
5.3.1 基于口令的鉴别方法 传统的鉴别技术主要采用基于口令的鉴别方法。当被 鉴别对象要求访问提供服务的系统时,提供服务鉴 别方提示被鉴别对象提交该对象的口令,鉴别方收 到口令后将其与系统中存储的用户口令进行比较, 以确认被鉴别对象是否为合法访问者。 • 这种鉴别方法的优点在于一般的系统都提供了对口 令鉴别的支持,对于封闭的小型系统来说不失为一 种简单可行的方法。 • 基于口令的鉴别方法存在下面几点不足: 1)用户每次访问系统时都要以明文方式输入口令,这 时很容易泄密(如被肩部冲浪者看见)。 2)口令在传输过程中可能被截获。
5.3.3 询问握手鉴别协议CHAP 询 问 -- 握 手 鉴 别 协 议 CHAP(Challenge Handshake Authentication Protocol)采用的是询问--响应方法,它 通过三次握手(3-way handshake)方式对被鉴别方的身 份进行周期性的鉴别。第一步,在通信双方链路建 立阶段完成后,鉴别方(authenticator)向被鉴别方(peer) 发送一个询问 (challenge)消息;第二步,被鉴别方向 鉴别方发回一个响应 (response) ,该响应由单向散列 函数计算得出,单向散列函数的输入参数为本次鉴 别的标识符、秘密值 (secret) 和询问构成;第三步, 鉴别方将收到的响应与它自己根据鉴别标识符、秘 密值和询问计算出的散列函数值进行比较,若相符 则鉴别通过,向被鉴别方发送“成功”消息,否则, 发送“失败”消息,断开连接。在双方通信过程中 系统将以随机的时间间隔重复上述三步鉴别过程。
Return
5.4 Kerberos鉴别服务
• Kerberos是美国麻省理工学院上世纪 80年代的雅典娜 项目开发的基于可信赖的第三方的鉴别系统。 • Kerberos具有以下特点:
1) Kerberos建立在可信的第三方鉴别协议基础上 密钥分配中心 KDC ,又称 Kerberos 服务器。 KDC 负责向用 户颁发用于证明用户身份的许可证(Ticket)和与网络资源安 全通信的会话密钥。 KDC由鉴别服务器AS和许可证颁发服务器TGS构成。 2) Kerberos是基于常规密码体制的鉴别 3) Kerberos跨域鉴别 在庞大的 Internet 上仅采用一个 Kerberos 服务器是不合适的。 Kerberos将网络划分为多个安全域(Realm),每个域有自己 的鉴别服务器并实施自己的安全策略。 Kerberos 协议提供 了不同域之间的鉴别机制,即跨域鉴别。两个域之间实现 相互鉴别,必须共享一个域间密钥。
第五章 数字签名与身份鉴别
5.1 5.2 5.3 5.4 5.5 数字签名 数字签名算法 鉴别技术 Kerberos鉴别服务 X.509证书及鉴别框架
5.1 数字签名
• 数字签名是网络中进行安全交易的基础,目前正逐 渐得到世界各国和地区在法律上的认可。数字签名 不仅可以保证信息的完整性和信息源的可靠性,而 且可以防止通信双方的欺骗和抵赖行为。 • 从传统概念上看,任何用于鉴别被标记文档的标记 都可以视为是签名。而数字签名被设计用于和传统 的手写签名相同的目的。数字签名可以用于:身份 的鉴别;保证被签内容的完整性;防止作者对交易 行为的抵赖。 • 第四章所涉及的报文鉴别主要用于保护通信双方免 受第三方的攻击。然而,它无法防止通信双方的相 互欺骗和攻击。
v=((gu1yu2) mod p) mod q =((g(H(M)w) mod qy(rw) mod q) mod p) mod q =((g(H(M)w) mod qg(xrw) mod q) mod p) mod q 据引理2 =((g(H(M)w) mod q+(xrw) mod q) mod p) mod q =((g(H(M)w+xrw) mod q) mod p) mod q 据引理1 =((g((H(M)+xr)w) mod q) mod p) mod q ∵ s=(k-1(H(M)+xr)) mod q ∴ w=(s)-1 mod q=(k(H(M)+xr)-1) mod q (H(M)+xr)w mod q =k mod q =k (k<q) v=(gk mod p) mod q=r=r’
– 通过不断地改变鉴别标识符和询问消息的值来防止重 放攻击。 – 利用周期性的询问防止通信双方在长期会话过程中被 攻击。 – 虽然CHAP进行的是单向鉴别,但在两个方向上进行 CHAP协商,也能实现通信双方的相互鉴别。
• CHAP 的不足之处是: CHAP 鉴别的关键是秘密值, CHAP 的秘密值以明文形式存放和使用,不能利用 通常的不可逆算法加密口令数据库。 CHAP 的秘密 值是通信双方共享的,这一点类似于对称密钥体制, 因此给秘密值的分发和更新带来了麻烦,要求每个 通信对都有一个共享的秘密值,这不适合大规模的 系统。 用于远程拨号接入的点对点协议PPP给出了在点到 点链路上传输多协议数据报的一种标准方法。PPP 采用CHAP和口令鉴别协议PAP作为其可选的两个 鉴别协议。PPP定义了一个可扩充的链路控制协议 (LCP),该协议可以使通信双方对鉴别协议进行协 商。
• 数字签名的生成和验证过程如图所示。 • 生成签名时首先用散列函数求得输入信息的消息 摘要,然后再用数字签名算法对消息摘要进行处 理,生成数字签名。 • 验证签名时使用相同的散列函数。该散列函数是 由标准FIPS 180-1定义的SHA-1。
5.2.2 数字签名算法DSA 与 DSA 算法相关的数据由三个公开参数 (p,q,g) 、两个 密钥(x,y)、一个密值(k)和报文散列码(H(M))构成。 1)三个公开参数 DSA 使用三个公开密钥参数: p 、 q 和 g 。参数 p 是 一个长度在512bit和1024bit之间的素数,并且长度是 64 的整数倍。 q 是 p-1 的素因子,其长度为 160bit 。 g=h(p-1)/q mod p,其中,h为一任意整数,1<h<p-1且 满足h(p-1)/q mod p>1。上述参数可以对一组用户公开。 2)两个密钥 确定了三个参数后,每个用户选择一个私有密钥 x , x 为0到q之间的随机或伪随机整数(0<x<q)。 用户根据私有密钥x计算公开密钥y,y=gx mod p。
相关主题