《计算机网络安全原理》第3章 认证与数字签名_第1页
《计算机网络安全原理》第3章 认证与数字签名_第2页
《计算机网络安全原理》第3章 认证与数字签名_第3页
《计算机网络安全原理》第3章 认证与数字签名_第4页
《计算机网络安全原理》第3章 认证与数字签名_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本PPT是电子工业出版社出版的教材《计算机网络安全原理》配套教学PPT(部分内容的深度和广度在教材的基础上有所扩展),作者:吴礼发本PPT可能直接或间接采用了网上资源、公开学术报告中的部分PPT页面、图片、文字,引用时我们力求在该PPT的备注栏或标题栏中注明出处,如果有疏漏之处,敬请谅解。同时对被引用资源或报告的作者表示诚挚的谢意!本PPT可免费使用、修改,使用时请保留此页。声明第三章认证与数字签名问题针对信息的被动攻击,如监听或截获加密的方法针对信息的主动攻击,比如:信息内容进行更改、删除、添加;改变信息的源点、目的点;改变信息的顺序;利用曾经发送过或存储过的信息(重放);…问题:如何来应对上述主动攻击呢??认证:概念(1/2)认证(Authentication,又称为鉴别、确认)是证实信息交换过程合法有效的一种手段,主要解决以下一些问题:信息的访问者是不是系统的合法用户?A和B在进行信息交换时,A和B都必须对对方的身份进行认证,以保证所收到的信息是由确定的实体发送的;A向B发送信息,B作为接收方,必须确定信息在A发出以后是否被修改过;认证:概念(2/2)认证主要解决的问题(Cont.):对收到的信息,B必须确定是过时的信息还是某种信息的重放;信息接收方不能否认它所收到的消息;发送方不能否认它所发送过的信息;认证是保证上述几种情况真实性的方法认证的类型一般可将认证分为以下几种身份认证数字签名报文认证(消息认证)内容提纲消息认证2数字签名3身份认证4散列函数1为什么要学习散列函数?问题登录时的口令是怎样传输的?问题Linux的口令是怎样存储的?问题杀毒软件是怎样检测病毒的?样本散列值样本散列值样本散列值基本样本散列值的检测基本样本散列值的检测我们该怎样检查从第三方下载的软件是否与官网一致?问题Windows操作系统以及一些安全软件是如何防止系统中的重要文件、升级包被攻击者替换、篡改?密钥是如何生成的?问题生成密钥SSL/TLS协议:生成主密钥生成密钥‘A’PMCRCS‘BB’PMCRCS‘CCC’PMCRCSSHA-1SHA-1SHA-1PM散列PM散列PM散列MD5MD5MD5散列散列散列PM:预备主密钥SR:服务器随机数CR:客户端随机数主密钥(48字节)SSL/TLS协议:密钥参数生成生成密钥‘A’MCRCS‘BB’MCRCS‘···’MCRCSSHA-1SHA-1SHA-1M散列M散列M散列MD5MD5MD5散列散列散列M:主密钥SR:服务器随机数CR:客户端随机数密钥参数······实际应用中,很多加密密钥产生算法与散列函数有关某智能门锁对称会话密钥产生方法:使用time函数得到当前的系统时间,然后对系统时间进行MD5计算得到生成密钥比特币的原理是什么?问题散列函数与比特币该怎样确保通信内容没有被篡改?问题问题安全消息消息安全消息消息秘密信息秘密信息安全相关变换安全相关变换发送方接收方可信第三方(如仲裁者、秘密信息的分配者)信息通道攻击者网络通信安全模型散列函数(hashfunction)是现代密码学的重要组成部分h=H(M):h称为散列值、散列码、报文摘要(MessageDigest)或消息摘要,对于特定的散列函数H,h的长度是固定的散列函数散列函数密码学上的散列函数(安全的散列函数)与数据结构中的散列函数两个重要特性唯一性:两个不同的输入产生不同的输出,如果输入不同但输出相同,则产生了“碰撞(collision)”雪崩效应(avalancheeffect):消息中的一个微小变化,甚至只是改变一个比特位,都可能会在输出中产生一个明显的变化散列函数散列函数H的安全性需求散列函数另一种安全属性的表述散列函数密码学Hash函数应用消息认证确保消息没有被修改、插入、删除或重放确保消息发送方声称的身份真实有效文件完整性校验:判断文件是否被修改数字签名保护消息完整性,验证消息发送方身份单向口令文件入侵检测和病毒检测区块链

散列函数各种数据完整性应用中的散列函数安全性需求报文摘要(MessageDigest,MD)算法是由Rivest从20世纪80年代末所开发的系列散列算法的总称,历称MD2、MD3、MD4和最新的MD5MDMD5MD5是对MD4的改进输入:任意长的报文;输出:128位的报文摘要过程:对输入按512位进行分组,并以分组为单位进行处理:填充报文初始化缓冲区执行算法主循环(核心是压缩函数)输出MD5的输入为512位分组,输出是4个32位字的级联(128位散列值),过程如下:首先,消息被拆成若干个512位的分组,其中最后512位分组是“消息尾+填充字节(100…0)+64位消息长度”,以确保对于不同长度的消息,该分组不相同。而4个32位寄存器字初始化为A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,它们将始终参与运算并形成最终的散列结果MD5MD5的输入为512位分组,输出是4个32位字的级联(128位散列值),过程如下:接着,各个512位消息分组以16个32位字的形式进入算法的主循环,512位消息分组的个数决定了循环的次数。主循环有4轮,每轮分别用到的非线性函数如下:MD5MD5的输入为512位分组,输出是4个32位字的级联(128位散列值),过程如下:这4轮变换是对进入主循环的512位消息分组的16个32位字分别进行如下操作:将A、B、C、D的副本a、b、c、d中的3个经F、G、H、I运算后的结果与第4个相加,再加上32位字和一个32位字的加法常数,并将所得之值循环左移若干位,最后将所得结果加上a、b、c、d之一,并回送至ABCD,完成一次循环MD5MD5的输入为512位分组,输出是4个32位字的级联(128位散列值),过程如下:当所有512位分组都运算完毕后,ABCD的级联将被输出为MD5散列的结果MD5MD52004年国际密码学会议(Crypto’2004)上,王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,提出了密码哈希函数的碰撞攻击理论,即模差分比特分析法。王教授的相关研究成果提高了破解包括MD5、SHA-1在内的5个国际通用的哈希函数算法的概率,给出了系列消息认证码MD5-MAC等的子密钥恢复攻击和HMAC-MD5的区分攻击方法。MD5SHA(SecureHashAlgorithm)算法是使用最广泛的Hash函数,由美国国家标准与技术研究院(NIST)和美国国家安全局(NSA)设计,包括5个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四个算法有时并称为SHA-2。SHA-1在许多安全协议中广为使用,如TLS和SSL、PGP、SSH、S/MIME和IPsec等SHASHA算法建立在MD4算法之上,其基本框架与MD4类似。SHA-1算法产生160bit的散列值,因此它有5个参与运算的32位寄存器字,消息分组和填充方式与MD5相同,主循环也同样是4轮,但每轮进行20次操作,非线性运算、移位和加法运算也与MD5类似,但非线性函数、加法常数和循环左移操作的设计有一些区别。SHASHA算法建立在MD4算法之上,其基本框架与MD4类似。SHA-2与SHA-1类似,都使用了同样的迭代结构和同样的模算法运算与二元逻辑操作。SHASHA-1的安全性2005年2月,王小云等人发表了对SHA-1的攻击,只需少于269的计算复杂度,就能找到一组碰撞,而此前的利用生日攻击法找到碰撞需要280的计算复杂度SHASHA-1的安全性2019年10月,密码学家GaëtanLeurent和ThomasPeyrin宣布已经对SHA-1成功计算出第一个选择前缀冲突,并选择安全电子邮件PGP/GnuPG的信任网络来演示SHA-1的前缀冲突攻击SHASHA-1冲突SHA-1冲突SHA-1冲突SHA-1冲突SHA-1的安全性NIST在2007年公开征集新一代NIST的Hash函数标准,称为SHA-3,并于2012年10月公布了设计算法的优胜者,未来将逐渐取代SHA-2。SHA-3的设计者使用一种称为海绵结构的迭代结构方案SM3是我国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布,相关标准为“GM/T0004-2012《SM3密码杂凑算法》”,其安全性及效率与SHA-256相当SHASM3密码杂凑算法,国家密码管理局2010年公布的中国商用密码杂凑算法标准,相比于SHA-256,SM3算法增加了多种新设计技术,从而在安全性和效率上具有优势。在保障安全性的前提下,SM3算法的综合性能指标与SHA-256在同条件下相当。SM3有人说“所有的散列函数都存在产生碰撞的问题,很不安全”,你认同这一观点吗?为什么?散列函数安全性讨论已经被认为不安全的散列算法MD5、HAVAL-128、MD4、RIPEMD、SHA-1一些标准已禁用不安全的散列算法,但还有很多应用在用,对网络安全会有什么影响吗?散列函数安全性讨论用对上述MD5值进行破解,有时很快就能出结果,是该网站找到了MD5算法的漏洞,还是采用了别的什么办法?散列函数安全性讨论王小云院士在在2020中关村论坛上做“密码技术与区块链”主题演讲中提到::哈希函数支撑三大安全性讨论内容提纲消息认证2数字签名3身份认证4散列函数1问题的提出:消息可能是攻击者伪造身份发送的,消息在网络传输过程中可能遭受篡改,消息也可能是过时消息的重放或排序被打乱后的消息消息认证,也称为报文认证、消息鉴别,指的是通信双方对各自接收的消息进行验证,确定消息的一些属性是否真实的过程,如被验证的消息属性包括发送方的身份、接收方的身份、内容的完整性以及消息的顺序等等消息认证报文源认证(a)用公开密钥密码实现报文源认证(b)用对称密钥密码实现报文源认证MESKAC=E

(SKA,

M)DPKAM发送者(A)接收者(B)CMEKDKM发送者(A)接收者(B)||IDAC=E

(K,M

||IDA)IDAMIDAC如何判断解密成功?问题:可对重放攻击吗?能保障哪些安全属性?报文源认证报文宿认证(a)用公开密钥密码实现报文宿认证(b)用对称密钥密码实现报文源认证MEPKBC=E

(PKB,M)DSKBM发送者(A)接收者(B)CMEKDKM发送者(A)接收者(B)||IDBC=E

(K,M

||IDB)IDBMIDBC问题:能保障哪些安全属性?报文宿认证用加密的方法实现报文内容认证报文内容的认证(a)用对称密钥密码实现报文内容认证:机密性、完整性MEKDKMA||C=E

(K,M

||h)hMhCHh=H

(M)Hh

比较B用加密的方法实现报文内容认证报文内容的认证(b)用公开密钥密码实现报文内容认证:机密性、完整性MEDMA||C=E

(PKB,M

||h)hMhCHh=H

(M)Hh

比较BPKBSKB用加密的方法实现报文内容认证报文内容的认证MEDMA||C=E

(SKA,M

||h)hMhCHh=H

(M)Hh

比较BSKAPKA(c)用公开密钥密码实现报文内容认证:不可否认性、完整性用加密散列值的方法实现报文内容认证报文内容的认证(a)用对称密钥密码实现报文内容认证:完整性MEKDKMA||C

=E

(K,h)hMCHh=H

(M)Hh

比较BMCh

=D

(K,C)用加密散列值的方法实现报文内容认证报文内容的认证(b)用公开密钥密码实现报文内容认证:完整性?MEDSKBM||C

=E

(PKB,h)hMCHh=H

(M)Hh

比较BMCh

=D

(SKB,C)APKB用加密散列值的方法实现报文内容认证报文内容的认证(c)用公开密钥密码实现报文内容认证:完整性MEDPKAM||C

=E

(SKA,h)hMCHh=H

(M)Hh

比较BMCh

=D

(PKA,C)ASKA消息认证码(MessageAuthenticationCode,MAC)报文内容的认证发送者接收者MACM=F(M,K)MKMACM′

=F(M′,K)KM

||MACMMACM′相等丢弃MACMMACM比较不等能保障哪些安全属性?消息认证码(MAC)有很多方法可以生成MAC,NIST标准FIPSPUB113推荐使用DES。用DES生成密文,将密文的最后若干个比特用作MAC。典型的有16或32比特的MAC散列消息认证码(HMAC)报文内容的认证HMAC报文内容的认证讨论:MAC与加密的区别报文内容的认证报文顺序的认证机制序列号时间戳挑战及响应(challenge/response)报文顺序的认证现时(Nonce)Nonce是Numberusedonce或Numberonce的缩写,是一个随时间而改变的参数,在密码学中通常是一个只被使用一次的任意或非重复的随机数值报文顺序的认证真随机数真随机数数列是不可预测的,因而也不可能重复产生两个相同的真随机数数列真随机数只能用某些随机物理过程来产生。例如:掷钱币、骰子、转轮、放射性衰变、电子设备的热噪音、宇宙射线的触发时间、量子力学等这样的随机数发生器叫做物理性随机数发生器计算机理论上可以产生统计意义上的真随机数。实现方法:简单的讲就是软硬结合,或者说,引入系统外的变量(把计算机想象成一个封闭的系统),如机器运行环境中产生的硬件噪音。真随机数伪随机数采用随机变化的种子产生伪随机数,得到的结果更随机些,但它还是伪随机数。因为如果重复这个过程(给同样值的种子),得到的结果是重复的“我只要知道伪随机数用的是哪种算法,就能准确的知道下一个数将是什么”是对的,例如用时间做种子,你只要给入同样的时间,就能得到同样的结果伪随机数因为种子一样,如果平台一样,下例每次运行生成的随机数就是一样的。伪随机数伪随机数安全问题在加密函数中使用不安全的随机数进行加密操作导致可预测的加密密钥,如果攻击者能够登录到系统的话,就可能计算出前一个和下一个加密密钥伪随机数安全问题从2018年1月至2019年3月,CVE中共有11条漏洞信息与随机数相关伪随机数安全问题示例代码伪随机数安全问题示例代码伪随机数安全问题修复代码现时(Nonce)的应用Nonce在很多加密方法的初始向量和加密散列函数中发挥着重要作用在各类认证协议中被用来确保认证信息不被重复使用以对抗重放攻击。Nonce也用于流密码加密过程中,如果需要使用相同的密钥加密一个以上的消息,就需要Nonce来确保不同的消息与该密钥加密的密钥流不同报文顺序的认证消息认证讨论消息认证是为了对付那些攻击?消息认证或数字签名有哪两层功能?产生消息认证有哪些方法?MAC和Hash函数之间的区别是什么?为了攻击MAC算法,需要恢复密码吗?安全的Hash函数需要的特性是什么?抗弱碰撞和抗强碰撞之间的区别是什么?消息认证涉及安全性质:机密性、完整性、可鉴别性【保证信息的真实状态是可以鉴别的,即信息没有被篡改(完整性)、身份是真实的(真实性)、对信息的操作是不可抵赖的(不可抵赖性),重放的信息算什么属性?】,抗不同攻击:伪造、重放、篡改、否认等,要用到防护技术:加密(对称、公开)、签名、散列、MAC、现时(Nonce)等,组合太多,要根据用户的需求选择最佳方法消息认证小结OpenSSL加解密实验:对于较长的文本使用AES-CBCbase64编码加密,生成密文文件(使用–outcihper.txt参数),打开密文cipher.txt,分别修改(不要删除或增加,只是修改)密文最开始的1个字符、中间任意1个字符、最后1个字符,再进行解密。分别看看三次解密会有什么问题,截图比较。讨论用加密的方式是否可以实现消息的完整性检测功能?如果修改了密文的前面部分解密时通常会报错,修改了中间部分通常会出现乱码,为什么?如何理解“乱码”讨论用加密的方式是否可以实现消息的完整性检测功能?从实验中可以看出,修改密文是可以检测出来的,也就是可以检测完整性,问题:这种方法是否可靠呢(或是不是对所有加密算法有效)?是加密算法本身具有的完整性检测功能还是软件(应用)实现的完整性检测功能呢?讨论用加密的方式是否可以实现消息的完整性检测功能?即使密文真的能做为消息认证码来用,与散列码(如果要用作完整性检测,需要对散列码加密或签名)、消息认证码(MAC)相比,用密文来进行完整性检测有什么不足呢?注意区分:“将密文的一部分放在明文后面进行完整性检测”与“用密文进行完整性检测”讨论内容提纲消息认证2数字签名3身份认证4散列函数1签名签名是证明当事者的身份和数据真实性的一种信息,既然签名是一种信息,因此签名可以用不同的形式来表现:如传统的手印、手签、印章,现代的数字签名等。在传统的以书面文件为基础的事务处理中,采用书面签名的形式,对用户的身份进行认证,具有一定的法律意义。以计算机文件为基础的现代事务处理(电子商务、电子政务、电子金融)中,需要采用电子形式的签名进行用户身份认证,即数字签名(DigitalSignature)。法国是世界上第一个制定并通过数字签名法律的国家,美国也有一些州已经通过数字签名法,我国正在制定。

签名的基本要求一个完善的数字签名应满足以下条件:签名不能伪造:签名是签名者对文件内容合法性的认同、证明和标记,其他人的签名无效;签名不可抵赖:这是对签名者的约束,签名者的认同、证明、标记是不可否认的;签名不可改变:文件签名后是不可改变的,这保证了签名的真实性、可靠性;签名容易验证:对于签名的文件,一旦发生纠纷,任何第三方都可以准确、有效地进行验证数字签名要解决的问题设用户A要向用户B发送文件M,数字签名主要研究解决这一过程中的以下问题:A如何在文件M上签名?B如何验证A的签名的真伪?B如何阻止A签名后又抵赖?数字签名:基本原理数字签名利用密码技术进行,其安全性取决于密码体制的安全程度。签名体制包括两个方面:施加签名;验证签名。施加签名:设施加签名的算法为SIG,产生签名的密钥为K,被签名的数据为M,产生的签名的信息为S,则有:验证签名:算法为VER,对签名S进行验证:数字签名:要求在计算机中若也象书面文件那样简单地把签名信息附加在文件内容之后,则签名必须满足:当M′≠M时,有:

SIG(M′

,K)≠

SIG(M,K),即S≠S′

签名S只能签名者产生,否则别人便可伪造,于是签名者就可以抵赖;收信者可以验证签名S的真伪,使得当签名S为假时收信者不致上当,为真时又可阻止签名者的抵赖。数字签名:实现算法有很多算法可以应用于数字签名:利用RSA密码实现数字签名利用EIGamal密码实现数字签名利用椭圆曲线密码实现数字签名利用RSA实现普通的数字签名DSKAPKA用公开密钥核实签名

用秘密密钥进行签名M发送者A接收者BD(M,SKA)ME除了A之外,没有其他人知道A的私钥;能用A的公钥解密的内容,必定是利用A的私钥所加密的。因此,可以推断信息内容来源于A。PKA={e,n},SKA={d}A对M的签名:

SA=D(M,SKA)=Mdmodn验证签名:

E(SA,PKA)=(Md)emodn=M这种签名有什么问题吗?保证了不可抵赖性,但不能满足保密性:有公钥的人均可看到签名利用RSA实现保密的数字签名DSKAPKA用公开密钥核实签名用秘密密钥签名M发送者A接收者BD(M,SKA)MEEPKB用公开密钥加密E(D(M,SKA),PKB)DSKB用秘密密钥解密D(M,SKA)

密文先签名后加密先解密后核实签名这种方法不仅可以确保数据的真实性和保密性,还可以抵抗对数字签名的攻击。如果先加密后签名能不能行?其它数字签名不可否认签名:在得不到签名者配合的情况下,其他人不能进行签名验证,从而防止非法复制和扩散签名者所签署的文件。对于保护软件等知识产权有积极意义。否认签名:签名者可以利用执行否认协议向公众证明某一个文件的签名是假的。盲签名:需要某个人对某数据签名,而又不能让他知道数据的内容。Windows操作系统以及一些安全软件是如何防止系统中的重要文件、升级包被攻击者替换、篡改?讨论实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护讨论实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护讨论实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护讨论数字签名除了保证不可否认性,还能保证什么安全属性?大部分应用场景下,数字签名的目的是保证真实性(或可认证性,也就是身份鉴别功能),防止假冒(伪造)、篡改(与散列结合)讨论王小云院士在在2020中关村论坛上做“密码技术与区块链”主题演讲中提到::哈希函数支撑三大安全性讨论内容提纲消息认证2数字签名3身份认证4散列函数1身份认证一个系统的安全性常常依赖于对终端用户身份的正确识别与检查。对计算机系统的访问必须根据访问者的身份施加一定的限制,这些是最基本的安全问题。身份认证一般涉及两方面的内容:识别和验证。识别:识别是指要明确访问者是谁,即必须对系统中的每个合法用户都有识别能力。要保证识别的有效性,必须保证任意两个不同的用户都不能具有相同的识别符。验证:验证是指在访问者声称自己的身份后(向系统输入它的识别符),系统还必须对它所声称的身份进行验证,以防假冒。身份认证个人身份验证方法可以分成四种类型:所知:验证他知道什么,如密码、口令所有:验证他拥有什么,如身份证、护照、信用卡、智能门卡所在:验证他在什么位置,如IP、办公室地址用户特征:验证他的生物特征(如指纹、虹膜、DNA等)、行为特征(如击键、笔迹)四种方式:口令认证信物认证地址认证用户特征认证密码学认证身份认证汪定2015:口令认证汪定2015:口令认证汪定2015:口令认证汪定2015:口令认证汪定2015:口令认证口令有什么科学规律吗?著名口令安全研究专家汪定教授所在团队的研究成果口令规律312每年5月的第一个星期四世界口令(密码)日(WorldPasswordDay)一、口令认证用户在注册阶段生成用户名和初始口令,系统在其用户文件或数据库中保存用户的信息(用户名和口令)。当用户登录认证时,将自己的用户名和口令上传给服务器,服务器通过查询其保存的用户信息来验证用户上传的认证信息是否和保存的用户信息相匹配。如果匹配则认为用户是合法用户,否则拒绝服务,并将认证结果回传给客户端。用户定期改变口令,以保证安全性。这种口令因其实现简单、使用方便,得到了广泛的应用。静态口令动态口令也称为一次性口令,其基本原理:在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,所得的结果作为认证数据提交给认证服务器。认证服务器接收到用户的认证数据后,把用户的认证数据和自己用同样的散列算法计算出的数值进行比对,从而实现对用户身份的认证。动态口令按生成原理可分为非同步和同步两种认证技术。非同步认证技术生成的动态口令主要是依据挑战-响应原理来实现。同步认证技术包括与时间有关的时钟同步认证技术和与时间无关的事件同步认证技术。动态口令分类动态口令认证过程挑战—响应机制图形口令图形口令图形口令二、密码学认证常用的密码学认证协议有一次性口令认证、基于共享密钥的认证、基于公钥证书的认证、零知识证明和标识认证等密码学认证(一)一次性口令认证一次性口令(One-TimePassword,OTP),一般使用双运算因子来实现固定因子,即用户的口令或口令散列值动态因子,每次不一样的因子,如时间,事件序列,挑战/应答(challenge/response)。每种各有优缺点一次性口令认证一次性口令认证协议S/KEY:1991年贝尔通信研究中心研制S/KEY迭代值(IC)

种子(seed)

秘密口令散列函数f

64位OTP6个单词(每个11位)2位检验和编码基本原理S/KEY中,服务器产生挑战(challenge)信息。挑战信息由迭代值(IterationCount,IC)和种子(seed)组成。迭代值,指定散列计算的迭代次数,为1~100之间的数,每执行一次挑战/响应过程,IC减1(当IC为1时,则必须重新进行初始化)。种子由两个字母和5个数字组成。例如,挑战信息“05xa13783”表示迭代值为05,种子为“xa13783”。客户端收到挑战后,要将秘密口令与种子“xa13783”拼接后,做5次散列运算。S/KEY基本原理S/KEY中支持三种散列函数,即MD4,MD5和SHA。OTP服务器将散列函数的固定输出折叠成64位(OTP的长度)。64位OTP可以被转换为一个由6个英文单词组成的短语,每个单词由1~4个字母组成,被编码成11位,6个单词共66位,其中最后2位(11*6-64=2)用于存储校验和。S/KEY基本原理S/KEY安全性分析用户的秘密口令没有在网络上传输,传输的只是一次性口令,并且一次性口令即使在传输过程中被窃取,也不能再次使用;客户端和服务器存储的是用户秘密口令的散列值,即使客户端和服务器被攻陷导致口令散列值被窃取,也需破解口令散列才能获得明文口令S/KEY安全性分析用户登录一定次数后,客户和服务器必须重新初始化口令序列;为了防止重放攻击,系统认证服务器具有唯一性,不适合分布式认证单向认证(即服务器对客户端进行认证),不能保证认证服务器的真实性S/KEY使用的种子和迭代值采用明文传输,攻击者可以利用小数攻击来获取一系列口令冒充合法用户S/KEY改进的S/KEY协议核心思想:不在网络中传输一次性口令散列值。使用用户的口令散列对挑战进行散列,并将计算结果发送给服务器。服务器收到后,同样使用服务器保存的用户口令散列对挑战进行散列计算,并与客户端发来的应答进行比较,如果相同则认证通过,否则拒绝Windows2000及其之后版本中的NTLM认证所实现的挑战/响应机制就使用了这个改进的S/KEY协议S/KEY(二)其于共享密钥的认证Needham-Schroeder双向鉴别协议问题1:执行完上述三个步骤后,A和B已得到了由KDC分配的一次性会话密钥,可用于后续的保密通信,为什么还要增加后面两个步骤?问题2:第(5)步中,为什么要问个题f(N2),而不是直接用N2?Needham-Schroeder双向鉴别协议安全性分析及改进思路Needham-Schroeder双向鉴别协议Kerb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论