您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 现代密码学第十讲:身份鉴别协议
1身份鉴别协议《现代密码学》第十章2上章内容回顾密钥管理简介密钥分配密钥协商PKI及数字证书简介秘密共享3本章主要内容身份鉴别的定义口令认证协议挑战应答协议对身份识别协议的攻击和对策4身份鉴别的定义身份鉴别:又称为身份识别、实体认证。它是这样一个过程,即其中一方确信参与协议的第二方的身份,并确信第二方真正参与了该过程。用户的身份识别是许多应用系统的第一道防线,其目的在于识别用户的合法性,从而阻止非法用户访问系统。身份识别(认证)对确保系统和数据的安全保密是极其重要的。5身份鉴别的定义Alice?BobEveAlice?orEve?Bob?orEve??6身份鉴别的定义已知事物:口令、个人识别码(PIN)、挑战-响应协议中已被证实的秘密或私钥。已拥有的事物:通常是物理配件。如,磁卡、智能卡(或IC卡)、口令生成器固有事物(对某个人):利用人类物理特征和无意行为。如,手写签名、指纹、声音、视网膜模式、手的几何形状等。(非密码学的)7身份鉴别的定义身份鉴别的定义:1、在诚实的情况下,声称者A能向验证者B证明他确实是A;2、在声称者A向验证者B声称他的身份后,验证者B不能获得任何有用的信息,B也不能模仿A向其他第三方证明他就是A。3、任何不同于A的实体C以A的身份,让B相信C是A的概率可忽略不计8身份鉴别的定义用于实现身份识别的协议。协议:是一系列步骤,它包括两方和多方,设计它的目的是要完成一项任务。协议是从开始到结束的一个序列,每步必须依次执行完成协议至少需要两个人协议的目的是为了做一些事情9身份鉴别的定义分析和评价身份认证协议应考虑如下几个方面:(1)交互性:是单方还是双方的身份认证;(2)计算的有效性;(3)通信的有效性;(4)是否需要第三方的实时参与;(5)对第三方的可信度的要求;(6)安全保证(可证明安全、零知识证明);(7)用来存储共享秘密数据的地方和方法。10身份鉴别的定义①Passwords(weakauthentication):系统检查口令是否与系统拥有的相应用户数据相匹配,批准声明的身份访问资源用户ID是声称的身份口令是支持声称的证据:固定口令、PIN和通行密钥②Challenge-responseidentification(strongauthentication):通过向验证者展示与证明者实体有关的秘密知识来证明自己的身份,但在协议中并没有向验证者泄露秘密本身。身份鉴别技术分类11口令认证协议固定口令1)存储的口令文件以明文形式将用户口令存储在系统口令文件中口令文件需读保护和写保护2)“加密的”口令文件存储口令的单向函数值口令文件需写保护IDA,PWPassWordPWAB检查口令和身份窃听?存储安全?12口令认证协议服务器端的字典攻击:在这种攻击中,Eve只对找到口令有兴趣,并不关心用户的ID。例如,如果口令是六位数,Eve可以创建一个六位数(000000~999999)的列表,然后对每一个数使用散列函数,结果就是一个一百万个散列的列表。她就可以得到口令档案并搜索条目中的第二列,找出一个与之相匹配的。这可以被编程并且在Eve的个人计算机上脱机运行。找到匹配以后,伊夫就可以再上线,用口令来访问系统。13口令认证协议3)口令加盐(SaltingPasswords)第一环节:口令字段字符串的生成:s=Agen(Dsalt,Dpw)①给口令Dpw撒盐:Dpw=Asalt(Dsalt,Dpw);②用撒盐结果做密钥:K=Dpw;③用一个64位的全0位串构造一个数据块Dp;④设循环次数:i=0;⑤对数据块加密:Dc=Acrypt(K,Dp);⑥Dp=Dc,i=i+1;⑦如果i25,则回到第⑤步;⑧把数据块变换成字符串:s=Atrans(Dc);⑨返回s。14口令认证协议第二环节:口令字段信息维护:①接收用户提供的口令Dpw;②生成一个盐值:Dsalt=Arandom();③生成口令信息:s=Agen(Dsalt,Dpw);④把口令信息s和Dsalt存入数据库的口令字段中。15口令认证协议第三环节:身份认证过程:①接收用户提供的帐户名Dname和口令Dpw;②在帐户信息数据库中检查Dname的合法性,如果合法,则找出其对应的s和Dsalt;③生成临时口令信息:sr=Agen(Dsalt,Dpw);④如果sr与s相等,则认证成功,否则,认证失败。16口令认证协议盐处理使字典攻击更为困难。如果原口令是六位数,盐是四位数,那么散列处理的结果就超过十位数。这就意味着伊夫现在要制作一个有10,000,000个条目的列表,并为每一个条目创建一个散列。这个散列列表也有10,000,000个条目,比较这些条目要花费很长时间。如果盐是一个很长的随机数字,盐处理是非常有效的。UNIX操作系统运用的就是这种方法的变种。17口令认证协议4)PIN(PersonalIdentificationNumbers):属于固定(时不变)口令类,作为身份验证的证据,通常和磁卡(或芯片卡、门卡)等一起使用。通常很短,如4-8位数字限制PIN的输入尝试次数也可与通行码生成器一起使用:映射为通行密钥(如56bits的DES密钥),以保证用户和知道用户口令的系统间的安全通信防止用户使用弱口令造成危害18口令认证协议在第四种方法中,两种身份验证的技术是结合在一起的。该类验证的一个很好的例子就是带有PIN(个人身份号码)的自动取款机卡。这种卡属于拥有某事这一类,PIN属于知道某事这一类。PIN就是一个可以提高卡的安全性的口令。如果卡丢失了,不知道PIN的话,也不能使用。然而,PIN的数字通常是非常短的,这样持卡人才便于记忆。这就使得它容易受到猜测攻击。19口令认证协议加强固定口令安全性的措施避免“弱”口令口令加盐口令扩展为通行短语放慢口令映射定义口令生存期限制口令的尝试次数登录需输入指定图片中的随机数和字母的组合20口令认证协议对固定口令的攻击:从存储的数据库偷窃字典攻击窃听固定口令的重放(远程登录)21口令认证协议5)一次口令(向强口令的过渡)防止窃听和随后的口令重放(无时变参数)解决办法:每个口令只用一次变体:一次口令的共享列表顺序更新一次口令基于单向函数的一次口令序列:22口令认证协议一次口令的共享列表用户和系统都同意一个口令列表。列表中的每一个口令只能使用一次。首先,系统和用户都要保存一个长的口令列表。其次,如果用户不按次序使用口令,系统就要执行一个长的搜索才能找到匹配。这个方案就使窃听和口令的重复使用毫无用处了。存储保护不善,会导致所有口令泄露。顺序更新一次口令用户和系统都同意连续升级口令。用户和系统也都同意一个初始口令P1,这个口令仅在第一次访问时有效。在第一次访问的过程中,用户生成一个新的口令P2,并且用P1作为密钥对这个口令加密,P2是第二次访问的口令。在第二次访问的过程中,用户又生成了一个新的口令P3,用P2对它加密,P3在第三次访问中使用。也就是说,Pi是用来创建Pi+1的。如果Eve能够猜测出第一个口令(P1),她就可以找出所有这一系列的口令。基于单向函数的一次口令序列用户和系统运用这种方法中的散列函数,创建一个连续升级口令,这种方法是由莱斯利·莱姆波特设计的。用户和系统都同意这个初始口令w和一个计数器n。系统算出hn(w),这里hn表示n次使用一个hash函数:w,H(w),H(H(w)),…,hn(w)从后向前使用。需保持认证方和服务器方同步。23挑战-应答身份鉴别协议通过向验证者展示与证明者实体有关的秘密知识来证明自己的身份,但在协议中并没有向验证者泄露秘密(私钥)本身。包括:基于对称密钥技术的挑战-响应身份识别协议基于公钥技术的挑战-响应身份识别协议基于零知识概念的挑战-响应身份识别协议时变参数(临时值、惟一数或非重复值):用来抵抗重放和交织攻击随机数序列号时戳24随机数用户A向B发出一个一次性随机数作为询问,如果收到B发来的应答消息也包含一正确的一次性随机数,A就认为消息是新的并接受之。随机数中的生日重复随机数的生成:伪随机数生成器的种子有足够大的熵25序列号方法对交换的每一条消息加上序列号,序列号正确才被接收要求每个用户分别记录与其他每一用户交互的序列号,增加用户负担,因而很少使用26时戳法A收到的消息中包含时戳,且A看来这一时戳充分接近自己的当前时刻,A才认为收到的消息是新的并接收要求各方时间同步27挑战-应答身份鉴别协议1)基于对称密钥加密的挑战-应答每对用户可预先共享一个密钥通信的各方利用可信在线服务器来共享密钥基于(带密钥的)单向函数的挑战-响应使用手持通行码生成器的实现28挑战-应答身份鉴别协议单向认证,基于时戳:单向认证,用随机数:双向认证,用随机数:Ek为对称加密算法;tA为时戳;rA,rB为随机数;B*为与身份相关的消息基于对称加密的挑战-响应29挑战-应答身份鉴别协议hk为MAC算法;rA,rB为随机数;A,B为声称的身份基于消息认证码的挑战-响应单向认证A--B:rBA--B:hK(rB,A)双向认证30挑战-应答身份鉴别协议使用手持通行码生成器的实现A是用户的私钥;f是单向函数;312)使用公钥技术的挑战-应答声称者证明他知道私钥的方式有两种:声称者解密用它的公钥加密的挑战声称者数字签署一个挑战挑战-应答身份鉴别协议32挑战-应答身份鉴别协议单向认证:双向认证:r为随机数r1,r2为随机数基于公钥加密的挑战-响应33挑战-应答身份鉴别协议带时戳的单向认证:带随机数的单向认证:带随机数的双向认证:certA,certB为公钥证书;SA,SB为私钥;基于数字签名的挑战-响应34挑战-应答身份鉴别协议3)基于零知识证明的挑战-应答零知识(Zero-knowledge)(ZK)证明的起源Alice:我知道肯德基的土豆泥的配方以及做法。Bob:不,你不知道。Alice:我知道。Bob:你不知道。Alice:我确实知道!Bob:请你证实这一点!Alice:好吧,我告诉你!(她悄悄地说出了土豆泥的秘方)Bob:太有趣了!现在我也知道了。我要告诉《华盛顿邮报》Alice:啊呀!35挑战-应答身份鉴别协议不幸的是,Alice用常用的方法给Bob证明她知道的秘密。这样一来,Bob也知道了这些秘密了,现在Bob要告诉其他人,Alice对此毫无办法。问题:有没有一种有效的办法,让Alice能向Bob证明她知道这些秘密,使得Bob可以确信Alice的确知道这些,但Bob根本不能获得这些秘密的任何信息呢?36挑战-应答身份鉴别协议零知识证明的思想Alice要向Bob证明她知道某些秘密:Bob:问Alice一系列问题Alice:若知道那个秘密,她就能正确回答所有问题。如果她不知道,她仍有50%的机会回答每一个问题。但要猜对每个问题的机会实在太小了(几乎不可能)。大约10个问题之后Bob确信Alice是否知道那个秘密。然而所有回答都没有给Bob提供Alice所知道的秘密的任何信息。37挑战-应答身份鉴别协议设Alice知道咒语,可打开C和D之间的秘密门,不知道者都将走向死胡同中。ABCD38挑战-应答身份鉴别协议(1)Bob站在A点;(2)Alice进入洞中任一点C或D;(3)当Alice进洞之后,Bob走到B点;(4)Bob叫Alice:(a)从左边出来,或(b)从右边出来;(5)Alice按要求实现(以咒语,即解数学难题帮助);(6)Alice和Bob重复执行(1)~(5)共n次。39挑战-应答身份鉴别协议若Alice不知咒语,则在B点,只有50%的机会猜中Bob的要求,协议执行n次,则只有2-n的机会完全猜中,若n=16,则若每次均通过Bob的检验,B受骗机会仅为1/65536。如果Bob用摄像机记录下他所看到的一切,他把录像给Carol看,Carol会相信这是真的吗?Carol是不会相信这是真的。这说明了两件事情:其
本文标题:现代密码学第十讲:身份鉴别协议
链接地址:https://www.777doc.com/doc-3969183 .html