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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 数字签名与身份鉴别
5.1 5.2 5.3 5.4 5.5 数字签名 数字签名算法 鉴别技术 Kerberos鉴别服务 X.509证书及鉴别框架
5.1 数字签名
• 数字签名是网络中进行安全交易的基础,目前正逐 渐得到世界各国和地区在法律上的认可。数字签名 不仅可以保证信息的完整性和信息源的可靠性,而 且可以防止通信双方的欺骗和抵赖行为。 • 从传统概念上看,任何用于鉴别被标记文档的标记 都可以视为是签名。而数字签名被设计用于和传统 的手写签名相同的目的。数字签名可以用于:身份 的鉴别;保证被签内容的完整性;防止作者对交易 行为的抵赖。 • 第四章所涉及的报文鉴别主要用于保护通信双方免 受第三方的攻击。然而,它无法防止通信双方的相 互欺骗和攻击。
CHAP 算法要求秘密值长度至少为一个字节,最好 能和所选择的散列算法的散列值等长。若选用消息 摘要算法MD5,则秘密值长度最好为128位。 单向函数算法保证由已知的询问和响应不可能计算 出秘密值。 每个询问值应该是惟一的,而且是不可预测的。询 问值每次都不一样。响应值取决于所选用的散列算 法。 • CHAP具有以下优点:
5.3.2 双因素鉴别 在双因素鉴别系统中,用户除了拥有口令外,还拥 有系统颁发的令牌访问设备。当用户向系统登录时, 用户除了输入口令外,还要输入令牌访问设备所显 示的数字。该数字是不断变化的,而且与鉴别服务 器是同步的。 双因素鉴别比基于口令的鉴别方法增加了一个鉴别要 素,攻击者仅仅获取了用户口令或者仅仅拿到了用 户的令牌访问设备,都无法通过系统的鉴别。而且 令牌访问设备上所显示的数字不断地变化,这使得 攻击变得非常困难。因此,这种方法比基于口令的 鉴别方法具有更好的安全性。在一定程度上解决了 口令鉴别方法中的问题1、2和3。 另一种解决问题的方法是采用询问--响应(challengeresponse)方法。
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个)用 于数字签名的算法。算法提供了生成和验证签名 的能力。 • 生成数字签名时使用私有密钥,验证签名时使用 对应的公开密钥。只有私有密钥的所有者可以生 成签名。
– 通过不断地改变鉴别标识符和询问消息的值来防止重 放攻击。 – 利用周期性的询问防止通信双方在长期会话过程中被 攻击。 – 虽然CHAP进行的是单向鉴别,但在两个方Fra Baidu bibliotek上进行 CHAP协商,也能实现通信双方的相互鉴别。
• CHAP 的不足之处是: CHAP 鉴别的关键是秘密值, CHAP 的秘密值以明文形式存放和使用,不能利用 通常的不可逆算法加密口令数据库。 CHAP 的秘密 值是通信双方共享的,这一点类似于对称密钥体制, 因此给秘密值的分发和更新带来了麻烦,要求每个 通信对都有一个共享的秘密值,这不适合大规模的 系统。 用于远程拨号接入的点对点协议PPP给出了在点到 点链路上传输多协议数据报的一种标准方法。PPP 采用CHAP和口令鉴别协议PAP作为其可选的两个 鉴别协议。PPP定义了一个可扩充的链路控制协议 (LCP),该协议可以使通信双方对鉴别协议进行协 商。
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)。
5.3.3 询问握手鉴别协议CHAP 询 问 -- 握 手 鉴 别 协 议 CHAP(Challenge Handshake Authentication Protocol)采用的是询问--响应方法,它 通过三次握手(3-way handshake)方式对被鉴别方的身 份进行周期性的鉴别。第一步,在通信双方链路建 立阶段完成后,鉴别方(authenticator)向被鉴别方(peer) 发送一个询问 (challenge)消息;第二步,被鉴别方向 鉴别方发回一个响应 (response) ,该响应由单向散列 函数计算得出,单向散列函数的输入参数为本次鉴 别的标识符、秘密值 (secret) 和询问构成;第三步, 鉴别方将收到的响应与它自己根据鉴别标识符、秘 密值和询问计算出的散列函数值进行比较,若相符 则鉴别通过,向被鉴别方发送“成功”消息,否则, 发送“失败”消息,断开连接。在双方通信过程中 系统将以随机的时间间隔重复上述三步鉴别过程。
5.3.1 基于口令的鉴别方法 传统的鉴别技术主要采用基于口令的鉴别方法。当被 鉴别对象要求访问提供服务的系统时,提供服务鉴 别方提示被鉴别对象提交该对象的口令,鉴别方收 到口令后将其与系统中存储的用户口令进行比较, 以确认被鉴别对象是否为合法访问者。 • 这种鉴别方法的优点在于一般的系统都提供了对口 令鉴别的支持,对于封闭的小型系统来说不失为一 种简单可行的方法。 • 基于口令的鉴别方法存在下面几点不足: 1)用户每次访问系统时都要以明文方式输入口令,这 时很容易泄密(如被肩部冲浪者看见)。 2)口令在传输过程中可能被截获。
• 数字签名的生成和验证过程如图所示。 • 生成签名时首先用散列函数求得输入信息的消息 摘要,然后再用数字签名算法对消息摘要进行处 理,生成数字签名。 • 验证签名时使用相同的散列函数。该散列函数是 由标准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。
• 如果两个域之间共享一个域间密钥,则称这两个域 之间可以直接通信,否则,就要经过中间域互连, 进行间接通信。Kerberos版本5协议中定义Kerberos域 是层次化组织的,每个域只与它的父结点和子结点 共享密钥。如果两个域之间没有直接互连,则允许 根据域的层次结构关系在两个域之间构造一条经过 多个域的鉴别路径。为了使得通信更加有效,两个 域也可以通过一条绕过中间域的路径进行跨域鉴别。 • Kerberos服务器KDC上维护着一个数据库,该数据库 存放所有用户、应用服务器的注册信息。 • KDC 从功能上可分为鉴别服务器 AS 和许可证颁发服 务器 TGS 。 AS 用于初始鉴别用户是否具有合法的口 令,只有合法用户才能从 AS 获得访问 TGS 的许可证 tgt(ticket granting ticket)。
Return
5.3 鉴别技术
• 网络鉴别(认证)技术是网络安全技术的重要 组成部分之一。鉴别是证实被鉴别对象是 否属实和是否有效的一个过程。其基本思 想是通过对被鉴别对象的属性的验证来达 到确认被鉴别对象是否真实有效的目的。 用于鉴别的属性应该是被鉴别对象惟一的、 区别于其它实体的属性。被鉴别对象的属 性可以是口令、数字签名或者象指纹、声 音、视网膜这样的生理特征。鉴别常常被 用于通信双方相互确认身份,以保证通信 的安全。
引理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的定义,
鉴于上述发送方和接收方之间存在欺骗或抵 赖的情况,必须引入防止通信双方欺骗或 抵赖的签名机制。为了保证数字签名的效 果,数字签名必须满足下列要求:
1) 发送者在签名时必须能对信息内容进行鉴别。 2) 签名必须是发送者所惟一拥有的标记,攻击者伪 造一个数字签名在计算上不可行。 3) 作者的签名和签名时间必须能被验证。 4) 数字签名的产生、识别和证实必须相对简单。 5) 签名必须与被签名的报文的位模式相关,当签名 后的数据发生改变时,该签名将成为无效签名。 6) 签名必须能被第三方验证以便解决争端。
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 协议提供 了不同域之间的鉴别机制,即跨域鉴别。两个域之间实现 相互鉴别,必须共享一个域间密钥。
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’
3)系统中所有用户的口令以文件形式存储在鉴别方,攻 击者可能获取系统的口令文件。 4)用户在访问多个不同安全级别的系统时,都要求用户 提供口令,用户为了记忆的方便,往往采用相同的 口令。而低安全级别系统的口令更容易被攻击者获 得,从而用来对高安全级别系统进行攻击。 5)只能进行单向鉴别,即系统可以鉴别用户,而用户无 法对系统进行鉴别。攻击者可能伪装成系统骗取用 户的口令。 对于第2点,系统可以对口令进行加密传输。对于第 3点,系统可以对口令文件进行不可逆加密。尽管如 此,攻击者还是可以利用一些工具很容易地将口令 和口令文件解密。
验证签名时,先计算签名值 v ,然后将 v 与发 送方发来的签名值 r 进行比较,相符则签名 有效,否则签名无效。v值的计算步骤如下: w=(s’)-1 mod q u1=[H(M’)w] mod q u2=(r’)w mod q v=[(gu1yu2) mod p] mod q 式中,M’、s’和r’是接收方收到的报文和签名 信息。接收方验证:若 M’=M、s’=s、r’=r, 则v应等于r。
相关文档
最新文档