《计算机网络安全技术》由会员分享,可在线阅读,更多相关《计算机网络安全技术(30页珍藏版)》请在金锄头文库上搜索。
1、计计 算算 机机 网网 络络 安安 全全 技技 术术第第10章认证技术章认证技术1计计 算算 机机 网网 络络 安安 全全 技技 术术本章学习目标l身份认证的作用、分类,身份认证系统的组成l身份认证协议l利用MAC进行消息认证的过程、将散列函数用于消息认证的基本过程l数字签名的原理2计计 算算 机机 网网 络络 安安 全全 技技 术术定义定义l认证(Authentication)是证实实体身份的过程,对传输内容进行审计、确认的过程,是保证计算机网络系统安全的重要措施之一。l身份认证是计算机网络系统的用户在进入系统或访问不同保护级别的系统资源时,系统确认该用户的身份是否真实、合法和唯一的过程。数
2、据完整性可以通过消息认证来保证。而数字签名则可用来证明消息发送者的身份、消息的真实性及抗否认。密码技术一直在认证技术中起到非常关键的作用。3计计 算算 机机 网网 络络 安安 全全 技技 术术10.1身份认证 10.1.1 身份认证概述l身份认证的作用身份认证就是为了确保用户身份的真实、合法和唯一。这样,就可以防止非法人员进入系统,防止非法人员通过违法操作获取不正当利益、访问受控信息、恶意破坏系统数据的完整性的情况的发生l身份认证的分类从身份认证所用到的物理介质来分从身份认证所应用的系统来分从身份认证的基本原理分类从身份认证所用的认证协议来分按照认证协议所使用的密码技术来分l身份认证系统的组成
3、认证服务器(Authentication Server)认证系统用户端软件(Authentication Client Software)认证设备(Authenticator)4计计 算算 机机 网网 络络 安安 全全 技技 术术10.1.2 物理认证l口令认证用户帐号+口令=某人的身份l智能卡一般由微处理器、存储器及输入/输出设施构成。微处理器中有一个惟一的用户标识(ID)、私钥和数字证书l生物特征认证通过自动化技术利用人体的生理特征或行为特征进行身份鉴定。目前利用生理特征进行生物识别的主要方法有指纹鉴定、虹膜识别、手掌识别、视网膜识别和脸相识别;利用行为特征进行识别的主要方法有声音识别、笔
4、迹识别和击键识别等。5计计 算算 机机 网网 络络 安安 全全 技技 术术l指纹鉴定独特性稳定性方便性l手掌识别l视网膜l虹膜l面孔l声音l笔迹l步态识别lDNA6计计 算算 机机 网网 络络 安安 全全 技技 术术10.1.3 身份认证协议l分为双向认证协议和单向认证协议分为双向认证协议和单向认证协议 l双向认证协议:使通信双方确认对方的身份,适用于通信双方同时在线的情况 .l基于对称密钥技术的双向认证协议Denning 认证过程l基于公开密钥技术的双向认证协议WOO92b协议7计计 算算 机机 网网 络络 安安 全全 技技 术术基于对称密钥技术的双向认证基于对称密钥技术的双向认证lAKDC
5、:IDAIDBN1;/ A向KDC申请要和B通信。明文消息中包含一个大的随机数N1。lKDCA:EKaKSIDBN1EKbKSIDA; /KDC发送一个使用A和KDC之间共享的密钥Ka加密的消息,消息包括:由KDC分发的、A与B的会话密钥Ks;B的名字IDB(保证了第一条明文消息中的B未被更改,即确认A是与B通信);A的随机数N1(保证了该消息是新的而不是攻击者重放的);一个只有B能看懂的许可证EKbKSIDA(因为使用了B和KDC之间共享的密钥Kb加密)。lAB:EKbKSIDA;/ A将许可证EKbKSIDA发给B。lBA:EKsN2;/B解密许可证EKbKSIDA获得会话密钥Ks,从而认
6、证了B的身份(因为只有B才能对使用了密钥Kb加密的消息进行正确的解密);然后产生随机数N2,B向A发送消息EKsN2。lAB:EKsf(N2)。 / A向B发送消息EKsf(N2)以证明是真正的A与B通信,从而认证了A的身份(因为只有A也知道KS)。8计计 算算 机机 网网 络络 安安 全全 技技 术术Denning 认证过程认证过程lAKDC:IDAIDB;lKDCA:EKaKSIDBTEKbKSIDATlAB:EKbKSIDAT;lBA:EKsN1;lAB:EKsf(N1)lClock-Tt1+t2 l其中,T是时间戳,记录了KDC发送消息时的时间;t1是KDC时钟与本地时钟(A或B)之间
7、差异的估计值;t2是预期的网络延迟时间。9计计 算算 机机 网网 络络 安安 全全 技技 术术WOO92b协议协议lAKDC:IDAIDB; /A向KDC提出和B通信。lKDCA:EKRkdcIDBKUb; /A得到B的公钥。lAB:EKUbNaIDA;/A向B提出通信要求,包含一个随机数NalBKDC:IDBIDAEKUkdcNa;/B向KDC询问A的公钥。lKDCB:EKRkdcIDAKUaEKUbEKRkdcNaKSIDAIDB;/B得到A的公钥和一段KDC签名的消息。lBA:EKUaEKRkdcNaKSIDAIDBNb; /B将这段消息和随机数Nb发给A,A在KDC签名的消息中找到Na
8、,知道这不是一个重放。lAB:EKsNb。 /A使用刚得到的会话密钥回答B l其中,KUa是A的公钥;KRa是A的私钥;KUkdc是KDC的公钥;KRkdc是KDC的私钥 10计计 算算 机机 网网 络络 安安 全全 技技 术术l单向认证协议许多单向认证的应用(比如E-mail)不需要双方同时在线。一方在向对方证明自己身份的同时,即可发送数据;另一方收到后,首先验证发送方的身份,如果身份有效,就可以接受数据。l单向认证协议工作过程AKDC:IDAIDBN1;/A向KDC要求和B通信,同时发给KDC一个随机数N1。KDCA:EKaKSIDBN1EKbKSIDA;/KDC发给A一个用A的密钥加密的
9、消息,包括一个会话密钥、A发的随机数N1、一段用B的密钥加密的消息;同时A解密得到KS。AB:EKbKSIDAEKsM。 /A将用B的密钥加密的那段消息和用KS加密的数据M一起发给B;B收到后首先解密得到A的身份标识和KS,然后就可以解密A发来的数据M了。11计计 算算 机机 网网 络络 安安 全全 技技 术术10.1.4 零知识身份认证l零知识证明的思想是:在不将知识的任何内容泄露给验证者的前提下,使用某种有效的数学方法证明自己拥有该知识。假设P是证明者,V是验证者,P试图向V证明自己知道某知识。一种方法是P说出该知识使得V相信,这样V也知道了该知识,这是基于知识的证明;另一种方法是P使用零
10、知识证明。l零知识证明可以分为两大类:最小泄露证明(Minimum Disclosure Proof)和零知识证明(Zero Knowledge Proof)。12计计 算算 机机 网网 络络 安安 全全 技技 术术l最小泄露证明需要满足的条件P几乎不可能欺骗V V几乎不可能知道证明的知识,特别是他不可能向别人重复证明过程 l零知识证明除了要满足以上两个条件之外,还要满足V无法从P那里得到任何有关证明的知识 lFeige-Fiat-shamir零知识身份认证协议13计计 算算 机机 网网 络络 安安 全全 技技 术术零知识问题零知识问题14计计 算算 机机 网网 络络 安安 全全 技技 术术F
11、eige-Fiat-shamirl用户P取随机数r,这里rm,计算x=r2 mod m,把x送给V;lV把一位随机数b送给P;l若b=0,则P将r送给V;若b=l,则P将y=rs送给V;l若b=0,则V验证x= r2 mod m,从而证实P知道sqrt(x);若b=1,则V验证x=y2v mod m,从而证实P知道s。15计计 算算 机机 网网 络络 安安 全全 技技 术术10.2 消息认证l消息加密将明文加密后以密文作为认证符;l消息认证码(MAC)用一个密钥控制的公开函数作用后,产生固定长度的数值作为认证符,也称为密码校验和。l散列函数定义一个函数将任意长度的消息映射为定长的散列值,以散列
12、值作为认证符。消息认证与数字签名通常都需要与散列函数结合起来使用。16计计 算算 机机 网网 络络 安安 全全 技技 术术10.2.1 消息认证方案l消息认证就是验证消息的完整性验证消息的发送者是真正的而不是冒充的,即数据起源认证验证消息在传送过程中未被篡改、重放或延迟等l消息认证码MAC发送方A要发送消息M时,使用一个双方共享的密钥k产生一个短小的定长数据块;将MAC附加在消息的后面发送给接收方B。 接收方对收到的消息使用相同的密钥k执行相同的计算,得到新的MAC 接收方将收到的MAC与计算得到的MAC进行比较,如果相匹配,那么可以保证报文在传输过程中维持了完整性17计计 算算 机机 网网
13、络络 安安 全全 技技 术术10.2.2 散列函数l散列函数的特性一致性:相同的输入产生相同的输出;随机性:消息摘要外观是随机的,以防被猜出源消息;惟一性:几乎不可能找到两个消息产生相同的消息摘要;单向性:即如果给出输出,则很难确定出输入消息。l散列函数应满足的基本要求 输入x可以为任意长度,输出数据串长度固定(最小128位)正向计算容易;反向计算困难抗冲突性(抗碰撞性),包括两个含义:一是给出一消息x,找出一消息y使H(x)=H(y)是计算上不可行的(弱抗冲突);二是找出任意两条消息x、y,使H(x)=H(y)也是计算上不可行的(强抗冲突)。l散列函数用于消息认证 发送者将消息M作为单向散列
14、函数H的输入,得到消息摘要,记作h=H(M)或MD= H(M)。A将消息摘要H(M)连消息M一齐发送给B。B将消息和消息摘要分离,并利用消息生成消息摘要。比较两消息摘要,如果相同,则消息在传送期间没被更改 。18计计 算算 机机 网网 络络 安安 全全 技技 术术使用散列函数提供消息鉴别的常用方式使用散列函数提供消息鉴别的常用方式l使用对称加密方法对附加消息摘要的报文进行加密(提供保密与鉴别);AB:Ek(MH(M)l使用对称加密方法对消息摘要进行加密(提供鉴别);AB:MEk(H(M)l使用发方的私有密钥对消息摘要进行加密(提供鉴别和数字签名);AB:MEka(H(M)l在(3)的基础上,使
15、用对称密钥加密方法进行加密(提供鉴别和数字签名、保密);AB:Ek(MEka(H(M)l假定双方共享一个秘密值S,使用散列函数提供鉴别;AB:MH(MS)l假定双方共享一个秘密值S,使用散列函数、对称加密方法提供鉴别、数字签名、保密。AB:Ek(MH(M)S) 19计计 算算 机机 网网 络络 安安 全全 技技 术术10.2.3 MD5算法lMD5算法原理MD5算法是按512位进行处理的,经过填充后的信息长度为512的倍数。首先它对信息进行填充,用首位为1,后面全为0的填充信息填充,填充的信息长度为l512位,使信息的长度等于K*512+448,再填充64位的原始信息的长度(以字节计)然后对消
16、息依次每次处理512位,每次进行4轮,每轮16步总共64步的消息变换处理,每次输出结果为128位,然后把前一次的输出作为下一次消息变换的输入初始值(第一次初始值算法已经固定),这样最后输出一个128位的杂凑结果 20计计 算算 机机 网网 络络 安安 全全 技技 术术lMD5举例MD5算法是对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。补数据长度 初始化MD5参数 处理位操作函数 主要变换过程 输出结果 lMD5的安全性问题对MD5的普通直接攻击对MD5的生日攻击其他对MD5的攻击21计计 算算 机机 网网 络络 安安 全全 技技 术术
17、10.3 数字签名l采用加密技术进行通信,可保证信息的安全传输,即使被第三方非法窃取,也无法了解信息的内容。但加密并不能解决所有的信息安全问题,特别是收、发双方的争执。例如,网络中的用户A向用户B发送一份报文,则可能出现如下问题:用户A不承认发送过这份报文;用户B伪造一份来自用户A的报文;用户B对用户A的报文进行篡改;B重复使用签名后的文件(如签名后的文件是一张电子支票,B多次使用该电子支票兑换现金);网络中的另一用户冒充用户A或用户B。l为防止出现类似问题,一般公文常采用签字或盖章的方法来解决。但在网络环境下无法使用手写签名,既使可传送手写签名,也有伪造、模仿等问题。为解决这类问题,出现了一
18、种数据认证方法数字签名。22计计 算算 机机 网网 络络 安安 全全 技技 术术10.3.1 数字签名原理l数字签名与传统的手写签名的不同点签名:手写签名是被签文件的物理组成部分;而数字签名不是被签消息的物理部分,因而需要将签名连接到被签消息上。验证:手写签名是通过将它与真实的签名进行比较来验证;而数字签名是利用已经公开的验证算法来验证。数字签名消息的复制品与其本身是一样的;而手写签名纸质文件的复制品与原品是不同的。l数字签名须满足的3个基本条件 签名者不能否认自己的签名;接收者能够验证签名,而其他任何人都不能伪造签名;当关于签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执。23计计
19、 算算 机机 网网 络络 安安 全全 技技 术术直接数字签名直接数字签名 24计计 算算 机机 网网 络络 安安 全全 技技 术术需仲裁的数字签名需仲裁的数字签名 l需要仲裁的数字签名体制一般流程如下:发送方A对消息签名后,将附有签名的消息发送给仲裁者C,C对其验证后,连同一个通过验证的证明发送给接收方B。在这个方案中,A无法对自己发出的消息予以否认,但仲裁者必须是得到所有用户信任的负责任者。25计计 算算 机机 网网 络络 安安 全全 技技 术术l采用对称密钥加密方法的数字签名l采用公开密钥加密技术的数字签名26计计 算算 机机 网网 络络 安安 全全 技技 术术10.3.2 数字签名标准D
20、SSlDSS(Disital Signature Standard)数字签名标准由美国国家标准技术研究所(NIST)于1991年提出,在1994年公布的联邦消息处理标准FIPS PUB 186中采用为数字签名标准,它利用了安全散列算法(SHA)并提出了一种新的数字签名技术,即数字签名算法(DSA)。27计计 算算 机机 网网 络络 安安 全全 技技 术术设计一个设计一个DSA算法的步骤算法的步骤l全局公钥的选择:首先选择一个160位(比特)的素数q,接着选择一个长度在512到1024位之间的素数p,使得p-1能被q整除,最后选择g=h(p-1)/q mod p,其中h是大于1小于p-1的整数,
21、从而使g大于1。l选择用户私钥公钥对:选择1到p-1之间的随机数或者伪随机数x作为用户私钥,计算y=gx mod p作为公钥。l生成签名:用户选择随机整数k,对消息M,计算两个分量r与s产生签名(r,s):r=f2(k,p,q,g)=(gk mod p) mod qs=f1(H(M),k,x,r,q)=(k-1(H(M)+xr) mod ql验证签名:接收方先根据收到的消息M、签名(r,s)、公钥y、p、q、g等值计算:w=f3(s,q)=(s)-1 mod qv=f4(y,q,g,H(M),w,r)=(g(H(M)w) mod q yrw mod q) mod p)mod q将v与r进行比较
22、,若相等则接受签名。28计计 算算 机机 网网 络络 安安 全全 技技 术术 DSS签名和验证签名和验证29计计 算算 机机 网网 络络 安安 全全 技技 术术习题十l名词解释:认证、身份认证、时间戳、零知识证明、消息认证、散列函数、数字签名、DSS。l简述身份认证的作用、分类及身份认证系统的组成。l简述物理认证的方法有哪些?lNeedham/Schroeder认证协议中,攻击者即使不知道会话密钥,也可以假冒接收方B与发送方A建立会话,给出这种攻击的过程。l分别描述基于对称密钥技术的双向认证协议、基于公开密钥技术的双向认证协议过程。l简述散列函数的特性及其应满足的基本要求。l试描述将散列函数用于消息认证的基本过程。l画图并描述直接数字签名原理。l论述需仲裁的数字签名方案(对采用对称密钥加密方法、公开密钥加密技术的数字签名分开论述)。30