网络安全认证技术身份认证的概念身份认证是计算机及网络系统识别操作者身份的过程计算机网络是一个虚拟的数字世界,用户的身份信息是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份保证操作者的物理身份与数字身份相对应身份认证的功能信息安全体系的目的是保证系统中的数据只能被有权限的“人”访问,未经授权的“人”无法访问身份认证是整个信息安全体系的基础用于解决访问者的物理身份和数字身份的一致性问题,给其他安全技术提供权限管理的依据防火墙、入侵检测、VPN、安全网关等安全技术建立在身份认证之上针对数字身份进行权限管理,解决数字身份能干什么的问题身份认证的分类用户与主机之间的认证–认证人的身份单机状态下的身份认证计算机验证人的身份:你是否是你声称的那个人?人的存储和计算能力有限记忆高数量的密码密钥困难执行密码运算能力有限主机与主机之间的认证–通信的初始认证握手网络环境下的身份认证计算机验证计算机计算机存储和计算能力强大能存储高数量的密码和密钥能够快速地进行密码运算认证人的身份认证人的身份所知(whatyouknow)密码、口令所有(whatyouhave)身份证、护照、智能卡等所是(whoyouare)指纹、DNA等用户名/密码方式用户设定密码,计算机验证易泄露用户经常用有意义的字符串作为密码用户经常把密码抄在一个自己认为安全的地方密码是静态的数据,每次验证过程使用的验证信息都是相同的,易被监听设备截获用户名/密码方式一种是极不安全的身份认证方式可以说基本上没有任何安全性可言IC卡认证IC卡是一种内置集成电路的卡片,卡片中存有与用户身份相关的数据,可以认为是不可复制的硬件IC卡由合法用户随身携带,登录时必须将IC卡插入专用的读卡器读取其中的信息,以验证用户的身份IC卡硬件的不可复制可以保证用户身份不会被仿冒IC卡中读取的数据还是静态的通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息动态口令1是一种让用户的密码按照时间或使用次数不断动态变化,每个密码只使用一次的技术。专用硬件:动态令牌内置电源、密码生成芯片和显示屏密码生成芯片运行专门的密码算法,根据当前时间或使用次数生成当前密码并显示在显示屏上认证服务器采用相同的算法计算当前的有效密码用户使用时只需要将动态令牌上显示的当前密码输入客户端计算机,即可实现身份的确认动态口令2优点每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件一次一密,每次登录过程中传送的信息都不相同,以提高登录过程安全性缺点动态令牌与服务器端程序的时间或次数必须保持良好的同步使用不便生物特征认证采用每个人独一无二的生物特征来验证用户身份指纹识别、虹膜识别等生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份受到现在的生物特征识别技术成熟度的影响USBKey认证近几年发展起来的一种方便、安全、经济的身份认证技术软硬件相结合一次一密USBKey是一种USB接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USBKey内置的密码学算法实现对用户身份的认证可使用以上几种技术保护USBKey本身的安全特点比较特点应用主要产品用户名/密码方式简单易行保护非关键性的系统,不能保护敏感信息嵌入在各种应用软件中IC卡认证简单易行很容易被内存扫描或网络监听等黑客技术窃取IC加密卡等动态口令一次一密,较高安全性使用烦琐,有可能造成新的安全漏洞动态令牌等生物特征认证安全性最高技术不成熟,准确性和稳定性有待提高指纹认证系统等USBKey认证安全可靠,成本低廉依赖硬件的安全性USB接口的设备安全握手协议的基本思想网络环境中的认证分布式的网络环境大量客户工作站和分布在网络中的服务器服务器向用户提供各种网络应用和服务用户需要访问分布在网络不同位置上的服务服务器的安全服务器需要通过授权来限制用户对资源的访问授权和访问控制是建立在用户身份认证基础上的通信安全都要求有初始认证握手的要求单向认证只有通信的一方认证另一方的身份,而没有反向的认证过程电子邮件不要求发送方和接收方同时在线邮件接收方对发送方进行认证单向认证不是完善的安全措施,可以非常容易地冒充验证方,以欺骗被验证方原始的单向认证技术发送方接收方用户名/密码1、发送方的用户名和密码通过明文方式传送,易窃听2、接收方检验用户名和密码,然后进行通信,通信中没有保密基于密码技术的单向认证不再发送明文的用户名和密码,而是基于“挑战–响应”方式符号f(KAlice-Bob,R):使用Alice和Bob的共享秘密、按照某种规则对R做密码变换KAlice-Bob{R}:使用KAlice-Bob作为共享密钥,基于秘密密钥算法对R进行加密h(KAlice-Bob,R):计算R和KAlice-Bob的哈希值[R]Alice:Alice使用私钥对数据R签名{R}Alice:使用Alice的公钥对数据R加密基于共享秘密的单向认证技术-1AliceBobIamAlice挑战Rf(KAlice-Bob,R)1、侦听者可以看到R和f(KAlice-Bob,R),但是不能计算出KAlice-Bob2、不要求f可逆,因此f可以是一个哈希函数3、侦听者掌握R和f(KAlice-Bob,R)后,可以进行离线口令猜解4、攻取Bob的数据库,则可以冒充Alice基于共享秘密的单向认证技术-2AliceBobIamAliceKAlice-Bob{R}R1、侦听者可以看到R和f(KAlice-Bob,R),但是不能计算出KAlice-Bob2、如果R是一个有格式的数据且具有有限时效,则Alice可以认证Bob,防止假冒3、要求可逆的密码算法4、侦听者掌握R和f(KAlice-Bob,R)后,可以进行离线口令猜解5、攻取Bob的数据库,则可以冒充Alice基于共享秘密的单向认证技术-3AliceBobIamAlice,KAlice-Bob{timestamp}1、timestamp是时戳(当前时间)。Bob解密结果,当结果在一定时差内,则Alice通过认证2、高效:只需要一条消息3、要求Alice和Bob有同步的时钟4、攻击者若能够调整Bob的时间,则可以重新使用以前侦听到的加密时戳5、动作迅速的攻击者可以利用侦听的加密时戳在另一台机器上冒充Alice6、攻取Bob的数据库,则可以冒充Alice基于公钥体制的单向认证技术-1AliceBobIamAliceR[R]Alice1、Alice对数据R用自己的私钥签名,Bob用Alice的公钥检验签名2、侦听者无法冒充Alice,即使他攻取了Bob的数据库3、可以诱骗Alice对特定数据的签名基于公钥体制的单向认证技术-2AliceBobIamAlice{R}Alice1、Bob用Alice的公钥加密数据R,并要求Alice解密2、侦听者无法冒充Alice,即使他攻取了Bob的数据库3、如果想知道其他人发送给Alice的加密信息,可以诱骗Alice解密R双向认证用于通信双方的相互认证认证的同时可以协商会话密钥基于共享秘密的双向认证-1AliceBobIamAliceR1f(KAlice-Bob,R1)1、基于“挑战–响应”方式2、双方使用共享的秘密对数据进行密码变换,实现对通信对方的认证3、效率不高:消息过多R2f(KAlice-Bob,R2)基于共享秘密的双向认证-2AliceBobIamAlice,R2R1,f(KAlice-Bob,R2)1、基于“挑战–响应”方式2、双方使用共享的秘密对数据进行密码变换,实现对通信对方的认证3、效率提高:消息减少为三条f(KAlice-Bob,R1)基于共享秘密的双向认证-3AliceBobIamAlice,f(KAlice-Bob,timestamp)1、基于“挑战–响应”方式,使用时戳(timestamp)作为挑战2、双方使用共享的秘密对挑战进行密码变换,实现对通信对方的认证3、效率提高:消息减少为二条f(KAlice-Bob,timestamp+1)基于公钥技术的双向认证AliceBobIamAlice,{R2}BobR2,{R1}Alice1、基于“挑战–响应”方式2、双方使用对方的公钥加密数据,要求对方加密,实现对通信对方的认证R1使用KDC的认证-1问题:假设基于秘密密钥技术实现认证如果网络上有n个节点,则每个节点都必须知道n-1个密钥。每增加一个节点,就必须生成n个新的密钥。密钥分发非常困难解决方法:使用密钥分发中心KDCKDC是一个可靠的节点,知道每个节点的密钥,即KDC和每一个节点都共享一个密钥。每个节点希望和其它节点通信,则首先和KDC联系,由KDC分配一个临时的会话密钥。使用KDC的认证-2AliceBobAlicewantsbobKAlice{useKABforBob},TickettoBob=KBob{useKABforAlice}1、KDC是一个存储所有用户密钥的数据库。用户可以和KDC进行安全通信2、Alice请求KDC分配一个会话密钥,以与Bob通信3、KDC生成一个会话密钥KAB,并用Alice的密钥加密发给Alice。同时,KDC还用Bob的密钥加密KAB,交给Alice转发。4、Alice解密得到KAB,并把用Bob的密钥加密的KAB发送给Bob5、Alice和Bob可以基于KAB实现双向认证f(KAlice-Bob,R2)KDC生成密钥KABKerberos认证协议网络环境的认证需求分布式网络环境服务器+工作站服务器向用户提供各种网络应用的服务用户需要访问分布在网络上的、不同位置的服务(或资源)服务器的安全服务器需要授权技术来限制用户对资源的访问授权和访问控制建立在对用户身份认证的基础之上Kerberos认证服务Kerberos:一种基于对称密钥、在网络上实施身份认证的服务身份认证作为网络上一种标准的安全服务来提供能够实现用户和服务器之间的双向认证集中式的认证服务通过运行在网络中某个安全节点的密钥分发中心(KDC,又称为认证服务器)提供认证服务用户能够用用户名和口令登录工作站,工作站使用用户名和密码与KDC联系,代替用户获得使用远程资源所需要的信息Kerberosv4andKerberosv5相互竞争市场,v4用户量大Kerberos特征提供一种基于可信第三方的认证服务KDC作为第三方,若用户与服务器都信任KDC,则Kerberos就可以实现用户与服务器之间的双向鉴别。如果KDC是安全的,并且协议没有漏洞,则认证是安全的。安全性能够有效防止攻击者假冒合法用户可靠性Kerberos服务自身可采用分布式结构,KDC之间互相备份透明性用户只需要提供用户名和口令,工作站代替用户实施认证的过程可伸缩性能够支持大量用户和服务器Kerberos背景在MIT的Athena项目中开发的一种认证服务试图解决如下问题在公用网络中,用户通过工作站访问网络服务,这些服务是由分布在网络中的服务器提供的服务器能够对用户的每一项服务请求进行认证仅仅依赖工作站对用户的认证是不够的用户访问每一种网络服务,都需要向服务器证明其身份安全威胁:工作站无法保证用户的身份真实性非法用户访问某个工作站,并假冒另一个合法用户非法用户更改工作站网络地址,假冒另一个工作站非法用户窃听消息交换过程,并实施重放攻击目标:在各种情况下,都能防止用户对服务的非授权访问Kerberos的几个概念-1主密钥每个实体(使用Kerberos的用户和资源)和KDC之间共享一个秘密密钥,称为实体的主密钥门票用户需要访问远程服务或资源,其工作站代替用户向KDC提出申请。KDC为双方生成一个共享密钥,并分别用用户和远程服务的主密钥加密这个会话密钥,再将这