




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章消息认证与身份认证问题针对信息的被动攻击,如监听或截获加密的方法针对信息的主动攻击,比如:信息内容进行更改、删除、添加;改变信息的源点、目的点、信息的顺序;伪造消息;利用曾经发送过或存储过的信息(重放);…问题:如何来应对上述主动攻击呢??认证:概念(1/2)认证(Authentication,又称为鉴别、确认)是证实信息交换过程合法有效的一种手段,主要解决以下一些问题:信息的访问者是不是系统的合法用户?A和B在进行信息交换时,A和B都必须对对方的身份进行认证,以保证所收到的信息是由确定的实体发送的;A向B发送信息,B作为接收方,必须确定信息在A发出以后是否被修改过;认证:概念(2/2)认证主要解决的问题(Cont.):对收到的信息,B必须确定是过时的信息还是某种信息的重放,还是伪造的消息;发送方不能否认它所发送过的信息;认证是保证上述几种情况真实性的方法认证的类型一般可将认证分为以下几种身份认证报文认证(消息认证):内容认证(完整性检测)顺序认证发送方认证(数字签名)内容提纲消息认证2身份认证3散列函数1为什么要学习散列函数?问题登录时的口令是怎样传输的?问题Linux的口令是怎样存储的?问题杀毒软件是怎样检测病毒的?样本散列值样本散列值样本散列值基本样本散列值的检测基本样本散列值的检测我们该怎样检查从第三方下载的软件是否与官网一致?问题Windows操作系统以及一些安全软件是如何防止系统中的重要文件、升级包被攻击者替换、篡改?密钥是如何生成的?问题生成密钥SSL/TLS协议:生成主密钥(参见第7章)生成密钥‘A’PMCRSR‘BB’PMCRSR‘CCC’PMCRSRSHA-1SHA-1SHA-1PM散列PM散列PM散列MD5MD5MD5散列散列散列PM:预备主密钥SR:服务器随机数CR:客户端随机数主密钥(48字节)SSL/TLS协议:密钥参数生成(参见第7章)生成密钥‘A’MCRSR‘BB’MCRSR‘···’MCRSRSHA-1SHA-1SHA-1M散列M散列M散列MD5MD5MD5散列散列散列M:主密钥SR:服务器随机数CR:客户端随机数密钥参数······实际应用中,很多加密密钥产生算法与散列函数有关某智能门锁对称会话密钥产生方法:使用time函数得到当前的系统时间,然后对系统时间加上其它一些参数进行MD5计算得到生成密钥比特币的原理是什么?问题散列函数与比特币该怎样确保通信内容没有被篡改?问题问题安全消息消息安全消息消息秘密信息秘密信息安全相关变换安全相关变换发送方接收方可信第三方(如仲裁者、秘密信息的分配者)信息通道攻击者网络通信安全模型散列函数(hashfunction)是现代密码学的重要组成部分h=H(M):h称为散列值、散列码、报文摘要(MessageDigest)或消息摘要,对于特定的散列函数H,h的长度是固定的散列函数王小云院士在在2020中关村论坛上做“密码技术与区块链”主题演讲中提到::哈希函数支撑三大安全性散列函数散列函数密码学上的散列函数(安全的散列函数)与数据结构中的散列函数两个重要特性唯一性:两个不同的输入产生不同的输出,如果输入不同但输出相同,则产生了“碰撞(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,它们将始终参与运算并形成最终的散列结果MD5关于A,B,C,D初始化值MD5小端模式大端模式MD5的输入为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,完成一次循环MD5MD5MD5的输入为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-2与SHA-1类似,都使用了同样的迭代结构和同样的模算法运算与二元逻辑操作。SHA2/SHA256动画演示网站SHA-1的安全性2005年2月,王小云等人发表了对SHA-1的攻击,只需少于269的计算复杂度,就能找到一组碰撞,而此前的利用生日攻击法找到碰撞需要280的计算复杂度SHANIST在2007年公开征集新一代NIST的Hash函数标准,称为SHA-3,并于2012年10月公布了设计算法的优胜者,未来将逐渐取代SHA-2。SHA-3的设计者使用一种称为海绵结构的迭代结构方案SHA3SM3是我国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布,相关标准为“GM/T0004-2012《SM3密码杂凑算法》”SM3算法增加了多种新设计技术,从而在安全性和效率上具有优势。在保障安全性的前提下,SM3算法的综合性能指标与SHA-256在同条件下相当。SM3已经被认为不安全的散列算法MD5、HAVAL-128、MD4、RIPEMD、SHA-1一些标准已禁用不安全的散列算法,但还有很多应用在用,对网络安全会有什么影响吗?散列函数安全性讨论有人说“所有的散列函数都存在产生碰撞的问题,很不安全”,你认同这一观点吗?为什么?散列函数安全性讨论用对上述MD5值进行破解,有时很快就能出结果,是该网站找到了MD5算法的漏洞,还是采用了别的什么办法?散列函数安全性讨论内容提纲消息认证2身份认证3散列函数1问题的提出:消息可能是攻击者伪造身份发送的,消息在网络传输过程中可能遭受篡改,消息也可能是过时消息的重放或排序被打乱后的消息消息认证,也称为报文认证、消息鉴别,指的是通信双方对各自接收的消息进行验证,确定消息的一些属性是否真实的过程,如被验证的消息属性包括发送方的身份、内容的完整性以及消息的顺序等等消息认证一、消息内容认证消息内容的认证是指接收方在接收到消息以后对消息进行检查,确保自己接收的消息与发送方发送的消息相同(没有被篡改,也不是一条伪造的消息),即消息在传输过程中的完整性没有受到破坏,也称为“完整性检测”。消息内容认证如果直接对消息加密,则需要解决如何判断解密是否成功的问题?完整性检测:加密方法对完整消息进行加密的方法完整性检测:加密方法(b)用公开密码算法实现消息内容认证:机密性、完整性?(a)用对称密码算法实现消息内容认证:机密性、完整性MEKDKMA||C=E
(K,M||h)hMhCHh=H
(M)Hh
比较BMEDMA||C=E
(PKB,M||h)hMhCHh=H
(M)Hh
比较BPKBSKBMEDMA||C=E
(SKA,M||h)hMhCHh=H
(M)Hh
比较BSKAPKA(c)用公开密码算法实现消息内容认证:不可否认性、完整性1、方案(b)和(c)用公开密码算法对消息直接进行加密操作,有什么问题吗?2、方案(b)能保证完整性吗?只对消息散列值进行加密的方案只对散列值进行加密,既解决了消息是否被篡改的问题,又提高了性能完整性检测:加密方法(b)用公开密码算法实现消息内容认证:完整性?(a)用对称密码算法实现消息内容认证:完整性MEKDKMA||C
=E
(K,h)hMCHh=H
(M)Hh
比较B(c)用公开密码算法实现消息内容认证:不可否认性、完整性MCh
=D
(K,C)MEDSKBM||C
=E
(PKB,h)hMCHh=H
(M)Hh
比较BMCh
=D
(SKB,C)APKBMEDPKAM||C
=E
(SKA,h)hMCHh=H
(M)Hh
比较BMCh
=D
(PKA,C)ASKA讨论一:如果只是在消息后附加消息散列值发送给接收方,而不对消息或散列值加密保护,能保护消息的完整性吗?讨论二:除了散列码,使用通信中常用的检验和(Checksum,如CRC)是否也可以检测完整性?如果可以,与散列码相比,有什么优缺点?完整性检测:加密方法完整性检测:MAC消息认证码(MessageAuthenticationCode,MAC):通信双方需要共享一个密钥,以K来表示。同时,需要用于生成消息认证码的函数F。对于消息M,其消息认证码MACM与M和K相关,可以表示为:
MACM
=F(M,K)
不管消息的长短,都生成固定大小的数据块完整性检测:MAC基于MAC的完整性检测发送者接收者MACM=F(M,K)MKMACM′
=F(M′,K)KM||MACMMACM′相等丢弃MACMMACM比较不等能保障哪些安全属性?完整性检测:MAC基于MAC的完整性检测消息认证码(MAC)有很多方法可以生成MAC,NIST标准FIPSPUB113推荐使用DES。用DES生成密文,将密文的最后若干个比特用作MAC。典型的有16或32比特的MAC散列消息认证码(HMAC):F为散列函数完整性检测:MACHMAC完整性检测:MAC讨论:MAC与Hash的区别完整性检测讨论:MAC与加密的区别完整性检测二、消息顺序认证如何解决重放攻击?消息顺序的认证机制序列号时间戳挑战及响应(challenge/response)消息顺序的认证现时(Nonce)Nonce是Numberusedonce或Numberonce的缩写,是一个随时间而改变的参数,在密码学中通常是一个只被使用一次的任意或非重复的随机数值消息顺序的认证真随机数真随机数数列是不可预测的,因而也不可能重复产生两个相同的真随机数数列真随机数只能用某些随机物理过程来产生。例如:掷钱币、骰子、转轮、放射性衰变、电子设备的热噪音、宇宙射线的触发时间、量子力学等这样的随机数发生器叫做物理性随机数发生器计算机理论上可以产生统计意义上的真随机数。实现方法:简单的讲就是软硬结合,或者说,引入系统外的变量(把计算机想象成一个封闭的系统),如机器运行环境中产生的硬件噪音。真随机数伪随机数采用随机变化的种子产生伪随机数,得到的结果更随机些,但它还是伪随机数。因为如果重复这个过程(给同样值的种子),得到的结果是重复的“我只要知道伪随机数用的是哪种算法,就能准确的知道下一个数将是什么”是对的,例如用时间做种子,你只要给入同样的时间,就能得到同样的结果伪随机数因为种子一样,如果平台一样,下例每次运行生成的随机数就是一样的。伪随机数伪随机数安全问题在加密函数中使用不安全的随机数进行加密操作导致可预测的加密密钥,如果攻击者能够登录到系统的话,就可能计算出前一个和下一个加密密钥伪随机数安全问题从2018年1月至2019年3月,CVE中共有11条漏洞信息与随机数相关伪随机数安全问题示例代码伪随机数安全问题示例代码伪随机数安全问题修复代码DEFCON29:IoT设备的硬件随机数生成器存在漏洞,研究员称影响几乎每一台IoT设备IoT设备中的随机数安全问题现时(Nonce)的应用Nonce在很多加密方法的初始向量和加密散列函数中发挥着重要作用在各类认证协议中被用来确保认证信息不被重复使用以对抗重放攻击。Nonce也用于流密码加密过程中,如果需要使用相同的密钥加密一个以上的消息,就需要Nonce来确保不同的消息与该密钥加密的密钥流不同消息顺序的认证三、消息发送方认证(数字签名)消息内容和顺序认证可以保护信息交换双方不受第三方的攻击,但是它不能处理通信双方自己产生的攻击(伪造和否认)消息的发送方认证问题:1、B可以伪造一条消息,说是A发给自己的;2、A给B发了一条消息,但事后否认是自己发的MEKDKMA||C
=E
(K,h)hMCHh=H
(M)Hh
比较BMCh
=D
(K,C)签名签名是证明当事者的身份和数据真实性的一种信息,既然签名是一种信息,因此签名可以用不同的形式来表现:如传统的手印、手签、印章,现代的数字签名等。在传统的以书面文件为基础的事务处理中,采用书面签名的形式,对用户的身份进行认证,具有一定的法律意义。以计算机文件为基础的现代事务处理(电子商务、电子政务、电子金融)中,需要采用电子形式的签名进行用户身份认证,即数字签名(DigitalSignature)。法国是世界上第一个制定并通过数字签名法律的国家,美国也有一些州已经通过数字签名法,我国正在制定。
签名的基本要求一个完善的数字签名应满足以下条件:签名不能伪造:签名是签名者对文件内容合法性的认同、证明和标记,其他人的签名无效;签名不可抵赖:这是对签名者的约束,签名者的认同、证明、标记是不可否认的;签名不可改变:文件签名后是不可改变的,这保证了签名的真实性、可靠性;签名容易验证:对于签名的文件,一旦发生纠纷,任何第三方都可以准确、有效地进行验证数字签名要解决的问题设用户A要向用户B发送文件M,数字签名主要研究解决这一过程中的以下问题:A如何在文件M上签名?B如何验证A的签名的真伪?B如何阻止A签名后又抵赖?数字签名:基本原理数字签名利用密码技术进行,其安全性取决于密码体制的安全程度。签名体制包括两个方面:施加签名;验证签名。施加签名:设施加签名的算法为SIG,产生签名的密钥为K,被签名的数据为M,产生的签名的信息为S,则有:验证签名:算法为VER,对签名S进行验证:数字签名:要求在计算机中若也象书面文件那样简单地把签名信息附加在文件内容之后,则签名必须满足:当M′≠M时,有:
SIG(K
,M′)≠
SIG(K,M),即S≠S′
签名S只能签名者产生,否则别人便可伪造,于是签名者就可以抵赖;收信者可以验证签名S的真伪,使得当签名S为假时收信者不致上当,为真时又可阻止签名者的抵赖。(a)用公开密码算法实现数字签名(对整个消息签名)MESKAC=E
(SKA,M)DPKAM发送者(A)接收者(B)CMM
sHh
比较SKAME||Hh=H
(M)sDPKAhh
=D
(PKA,S)
s发送者(A)接收者(B)(b)用公开密码算法实现数字签名(对消息散列值签名)两种公开密码算法签名方式数字签名:实现算法有很多算法可以应用于数字签名:利用RSA密码实现数字签名利用EIGamal密码实现数字签名利用椭圆曲线密码实现数字签名利用RSA实现数字签名DSKAPKA用公开密钥核实签名
用秘密密钥进行签名M发送者A接收者BD(M,SKA)MEPKA={e,n},SKA={d}A对M的签名:
SA=D(M,SKA)=Mdmodn验证签名:
E(SA,PKA)=(Md)emodn=M利用EIGamal实现数字签名利用ECC实现数字签名实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护散列函数在数字签名中的作用实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护散列函数在数字签名中的作用实际应用中,为什么数字签名总是对信息、证书、文件等的散列值进行签名?性能上的考虑实现完整性保护散列函数在数字签名中的作用PGP中的数字签名补充:其它数字签名不可否认签名:在得不到签名者配合的情况下,其他人不能进行签名验证,从而防止非法复制和扩散签名者所签署的文件。对于保护软件等知识产权有积极意义。否认签名:签名者可以利用执行否认协议向公众证明某一个文件的签名是假的。盲签名:需要某个人对某数据签名,而又不能让他知道数据的内容。四、小结与讨论Windows操作系统以及一些安全软件是如何防止系统中的重要文件、升级包被攻击者替换、篡改?讨论数字签名除了保证不可否认性,还能保证什么安全属性?大部分应用场景下,数字签名的目的是保证真实性(发送方身份是真实的)、完整性(没有被篡改,与散列码结合)讨论除了对消息的散列码进行签名,还可以使用其他能反映消息特征的码进行签名吗?如果可以,这样的码要满足什么样的要求?讨论用公开密码算法实现加密与实现数字签名有什么区别?目的不同:加密是机密性,而签名则是真实性和完整性实现方式不同:发送方用接收方的公钥进行加密,接收方用自己的私钥解密;而签名是签名者用自己的私钥签名,接收方用签名者的公钥验证签名讨论:公钥算法加密与签名消息认证涉及安全性质:机密性、完整性、可鉴别性【保证信息的真实状态是可以鉴别的,即信息没有被篡改(完整性)、身份是真实的(真实性)、对信息的操作是不可抵赖的(不可抵赖性),重放的信息算什么属性?】,抗不同攻击:伪造、重放、篡改、否认等,要用到防护技术:加密(对称、公开)、签名、散列、MAC、现时(Nonce)等,组合太多,要根据用户的需求选择最佳方法消息认证小结内容提纲消息认证2身份认证3散列函数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改进的S/KEY协议核心思想:不在网络中传输一次性口令散列值。使用用户的口令散列对挑战进行散列,并将计算结果发送给服务器。服务器收到后,同样使用服务器保存的用户口令散列对挑战进行散列计算,并与客户端发来的应答进行比较,如果相同则认证通过,否则拒绝Windows2000及其之后版本中的NTLM认证所实现的挑战/响应机制就使用了这个改进的S/KEY协议S/KEY改进的S/KEY?WindowsNTLM改进的S/KEY(2)WindowsNTLM改进的S/KEY(1)(2)(3)(4)WindowsNTLM(另一张参考图)改进的S/KEY安全性分析:用户很容易求出正确的一次性口令,采用一次性口令的匹配通过服务器的身份认证;攻击者即使截获一次性口令,也不能破解出用户口令散列;攻击者不能预测下一次一次性口令,也不能重放成功。改进的S/KEY协议安全性分析:能够避免监听和重放,但不能防范拦截和修改数据包、会话劫持等攻击。
网络系统的安全仅等同于使用的最弱散列算法的安全强度。
没有完整性保护机制,也无法防范内部攻击。不能对服务器的身份进行认证。改进的S/KEY协议(二)其于共享密钥的认证Needham-Schroeder双向鉴别协议密钥分配中心KDC发起者A响应者B(2)E(Ka,[Ks||IDB||N1||E(Kb,[Ks||IDA])])(3)E(Kb,[Ks||IDA])(4)E(Ks,N2)(5)E(Ks,f(N2))(1)IDA||IDB||N1问题1:执行完上述三个步骤后,A和B已得到了由KDC分配的一次性会话密钥,可用于后续的保密通信,为什么还要增加后面两个步骤?问题2:第(5)步中,为什么要问个题f(N2),而不是直接用N2?Needham-Schroeder双向鉴别协议安全性分析及改进思路Needham-Schroeder双向鉴别协议Kerberos认证协议以N-S协议为基础,通过可信第三方进行客户和服务器间的相互认证,交换会话密钥,以建立客户和服务器间的信任和安全传输信道,由MIT首先提出并实现。共有5个主要版本,V1~V3主要在校内使用,V4在MIT校外得到了广泛应用。V5于1993年成为IETFRFC(RFC1510),后经多次修订(RFC1964,4120,4121,4757),最新是2012年7月颁布的RFC6649。Windows从Windows2000就开始支持基于Kerberos的认证协议。Kerberos认证协议Kerberos认证协议协议认证过程KerberosV5对V4做了多处改进,主要改进如下:第1步:V5中将V4中的生命期(Lifetime,8位长,每单位表示5分钟,因此最长1280分钟)修改为精确的起止时间,允许许可证拥有任意长的生命期。第2步:V4只使用IP地址,V5中用类型和长度标记网络地址,允许使用任何类型的网络地址第5步:V5对V4的客户与应用服务器间的认证交换进行了改进,增加了两个新的域:子密钥(Subkey)和序列号(seq#)。V4只支持DES,V5支持多种加密算法Kerberos认证协议Kerberos认证协议分布式认证安全性分析一旦用户获得过访问某个服务器的许可证,只要在许可证的有效期内,该服务器就可根据这个许可证对用户进行认证,而无需KDC的再次参与;实现了客户和服务器间的双向认证;支持跨域认证;应用广泛,互操作性好。Kerberos认证协议安全性分析Kerberos认证中使用的时间戳机制依赖于域内时钟同步,如果时间不同步存在较大的安全风险;Kerberos无法应付口令猜测攻击;主体必须保证他们的私钥的安全;Kerberos中AS和TGS采用集中式管理,容易形成瓶颈。Kerberos认证协议Windows2000Server中的KerberosKerberos认证协议Windows2000Server中的Kerberos1、如何获得“认购权证”Kerberos认证协议Windows2000Server中的Kerberos2、如何通过“认购权证”购买“入场券”?Kerberos认证协议Windows2000Server中的Kerberos3、凭票入场Kerberos认证协议参考讲解(来自谢希仁教授的《计算机网络》)Kerberos认证协议目前最出名的密钥分配协议是KerberosV5。Kerberos既是鉴别协议,同时也是KDC,它已经变得很普及,现在是互联网建议标准。Kerberos使用比DES更加安全的高级加密标准AES进行加密。KerberosKerberos认证协议ABKerberosA
ASTGSKTG
KAA,KSKS,Kerberos认证协议ABKerberosA
ASTGSKTG
KAA,KSKS,A并不保存密钥KA
。A需键入正确口令,利用适当的算法生成密钥KA
。这个口令随即被销毁。Kerberos认证协议ABKerberosA
ASTGSTKAB,
A,KABKBT+1KAB
A,KSTKS,B,KTGA,KABKB,
B,KABKSKTG
KAA,KSKS,Kerberos认证协议Kerberos密钥分配说明A用明文(包括登记的身份)向鉴别服务器AS表明自己的身份。AS向A发送用A的对称密钥KA
加密的报文,这个报文包含A和TGS通信的会话密钥KS,以及AS要发送给TGS的票据(这个票据是用TGS的对称密钥KTG
加密的)。Kerberos认证协议Kerberos密钥分配说明A向TGS发送三个项目:转发鉴别服务器AS发来的票据。服务器B的名字。这表明A请求B的服务。请注意,现在A向TGS证明自己的身份并非通过键入口令(因为入侵者能够从网上截获明文口令),而是通过转发AS发出的票据(只有A才能提取出)。票据是加密的,入侵者伪造不了。用
KS
加密的时间戳T。它用来防止入侵者的重放攻击。Kerberos认证协议Kerberos密钥分配说明TGS发送两个票据,每一个都包含A和B通信的会话密钥KAB。给A的票据用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钻石公司协议书范本
- 退休员工续签协议书
- 无偿提供土地协议书
- 展会保密协议书范本
- 收购芒果协议书范本
- 消防合作验收协议书
- 水电验收标准协议书
- 伪造老人赠予协议书
- 老公减肥协议书模板
- 全托饭堂承包协议书
- 2024年广州市天河区总工会招聘工会社会工作者考试真题
- 2025餐饮服务承包经营合同书
- 湖北省汉阳一中、江夏一中、洪山高中2024-2025学年高一下学期3月联考化学试卷 含解析
- 护理安全与护理质量管理课件
- 涉密和非涉密计算机保密管理制度
- DB32T 5061.1-2025中小学生健康管理技术规范 第1部分:心理健康
- 糖尿病酮症酸中毒患者的护理查房
- 网络周期窃取演变-洞察分析
- 《excel学习讲义》课件
- 医疗质量与安全管理和持续改进评价考核标准
- 2025年湖南常德烟机公司招聘笔试参考题库含答案解析
评论
0/150
提交评论