制作人:代春艳2007年8月电子商务信息安全技术主讲人:代春艳daichunyan@ctbu.edu.cn制作人:代春艳2007年8月第四章电子商务的安全认证体系第四章电子商务的安全认证体系4.1身份认证与认证体系4.2身份认证协议4.3数字证书与认证机构4.4安全认证体系及其实施标准制作人:代春艳2007年8月4.1身份认证与认证体系认证是为了防止敌方的主动攻击,包括验证信息真伪及防止信息在通信过程中被篡改、删除、插入、伪造、延迟及重放等。认证主要包括三个方面:消息认证、身份认证和数字签名。制作人:代春艳2007年8月4.1.1身份认证的概念•身份认证的定义:证实客户的真实身份与其所声称的身份是否相符的过程.制作人:代春艳2007年8月无所不在的身份认证相信大家都记得这样一幅漫画,一条狗在计算机面前一边打字,一边对另一条狗说:“在互联网上,没有人知道你是一个人还是一条狗!”这个漫画说明了在互联网上很难进行身份识别。制作人:代春艳2007年8月•身份认证一般是通过对被认证对象(人或事)的一个或多个参数进行验证,从而确定被认证对象是否名实相符或有效。•这要求要验证的参数与被认证对象之间应存在严格的对应关系,最好是唯一对应的。制作人:代春艳2007年8月•身份认证是安全系统中的第一道关卡,如图4-1所示制作人:代春艳2007年8月用户在访问安全系统之前,首先经过身份认证系统进行身份识别,然后访问监控器根据用户的身份和授权数据库决定用户能否对某个资源进行访问。授权数据库由安全管理员按照需要进行配置。审计系统根据审计设置记录用户的请求和行为,同时入侵检测系统检测是否有入侵行为。访问控制和审计系统都要依赖于身份认证系统提供的“信息”——用户的身份。可见,身份认证在安全系统中的地位是极其重要的,是最基本的安全服务,其他的安全服务都依赖于它。一旦身份认证系统被攻破,那么系统的所有安全措施将会受到严峻挑战。制作人:代春艳2007年8月•身份认证包括几个重要概念:认证、授权和审计。•(1)认证(Authentication):在进行任何操作之前必须有有效的方法来识别操作执行者的真实身份。认证又称为鉴别、确认。身份认证主要是通过表示和鉴别用户的身份,防止攻击者假冒合法用户获取访问权限。•(2)授权(Authorization):授权是指当用户身份被确认合法后(即通过认证),赋予该用户操作文件和数据等的权限。赋予的权限包括读、写、执行及从属权。•(3)审计(Auditing):每一个人都应该为自己所作的操作负责,所以在事情完成后都应该有记录,以便核查责任。制作人:代春艳2007年8月制作人:代春艳2007年8月4.1.2身份认证的分类•基于个人生物特征的身份认证•基于个人拥有物的身份认证•基于个人身份标识码的身份认证制作人:代春艳2007年8月基于个人生物特征的身份认证•对用户固有的某些特征进行测量,如指纹、声音或签字。优点:1.绝对无法仿冒的使用者认证技术。缺点:1.较昂贵。2.不够稳定(辩识失败率高)。制作人:代春艳2007年8月基于个人拥有物的身份认证•个人拥有物可以是身份证、护照、军官证、驾驶证、图章、IC卡或其他有效证件。身份证是目前我国应用最广发的身份识别证件,每个人唯一对应一个数字。当然其他的证件也在不同行业和部门起着身份识别的作用。制作人:代春艳2007年8月基于个人身份标识码的身份认证•个人身份标识码可以是注册的口令、账号、身份证号码或移动电话号码等。一般来说,某人的身份可以用用户帐号加上口令进行识别。用户账号代表计算机网络信息系统中某人的身份,口令则是用来验证是否真的是计算机网络系统所允许的用户。制作人:代春艳2007年8月4.1.3身份认证体系•(一)数字证书•数字证书就是在互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证用户身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。制作人:代春艳2007年8月•数字证书与传输密钥和签名密钥对的产生相对应。•对每一个公钥做一张数字证书,私钥用最安全的方式交给用户或用户自己生产密钥对。•数字证书的内容包括用户的公钥、用户姓名、发证机构的数字签名及用户的其他一些身份认证的有用信息。•公钥的拥有者是身份的象征。对方可以据此验证身份。对于密钥的丢失情况、则采用恢复密钥、密切托管等方法。另外对于证书的有效期在政策上加以规定、已过期的证书应重新签发,对于私钥丢失或被非法使用应废止。制作人:代春艳2007年8月(二)电子商务认证中心CA(CertificateAuthority)•认证中心是公正的第三方,它为建立身份认证过程的权威性框架奠定了基础,为交易的参与方提供了安全保障。它为网上交易构筑了一个互相信任的环境,解决了网上身份认证、公钥分发及信息安全等一系列问题。•由此可见,认证中心是保证电子商务安全的关键。•认证中心对含有公钥的证书进行数字签名,使证书无法伪造。每个用户可以获得认证中心的公开密钥(认证中心根证书),验证任何一张数字证书的数字签名,从而确定证书是否是认证中心签发、数字证书是否合法。制作人:代春艳2007年8月4.2身份认证协议•认证协议用来对被验证方(通常是指客户端系统)和验证方(服务器系统)之间的与验证有关的数据通信进行管理。认证协议一般都是建立在通信协议环境之上的,如网络层协议或应用层协议。制作人:代春艳2007年8月•从使用的角度来看,一个安全的身份识别协议至少应该满足以下两个条件:•①识别者A能向验证者B证明他的确是A;•②在识别者A向验证者B证明他的身份后,验证者B不能获得A的任何有用信息,B不能模仿A向第三方证明他是A。制作人:代春艳2007年8月•认证协议按照认证的方向可以分为双向认证协议和单向认证协议.•按照使用的密码技术可以分为基于对称密码的认证协议和基于公钥密码的认证协议。制作人:代春艳2007年8月•双向认证协议是最常用的协议,它使得通信双方互相认证对方的身份。•单向认证协议是通信的一方认证另一方的身份,比如服务器在提供用户申请的服务之前,先要认证用户是否是这项服务的合法用户,但是不需要向用户证明自己的身份。•基于对称密钥的认证协议往往需要双方事先已经通过其他方式(比如电话、信函或传递等物理方法)拥有共同的密钥。•基于公钥的认证协议的双方一般需要知道对方的公钥。制作人:代春艳2007年8月•公钥的获得相对于对称密钥要简便,比如通过CA获得对方的数字证书,这是基于公钥认证协议的优势。•但是,公钥的缺点是加/解密速度慢、代价大,所以认证协议的最后,双方要协商出一个对称密钥作为下一步通信的会话密钥。•产生会话密钥有助于增加系统的安全性。一旦会话密钥泄漏,则只会泄漏本次通信的内容,而不会带来更大的损失,而且通信者一旦发现会话密钥泄漏后,就可以用原有的密钥协商出新的会话密钥,重新开始新的会话。所以,无论是基于公钥还是基于对称密钥的认证协议,都要经常产生对称会话密钥。制作人:代春艳2007年8月•(1)基于对称密码的双向认证协议•Needham/Schroeder是一个基于对称加密算法的协议,它要求有可信任的第三方KDC参与,采用challenge/Response的方式,使得A、B互相认证对方的身份。协议过程是:①A→KDC:IDA||IDB||N1;②KDC→A:EKa[Ks||IDB||N1||EKb[Ks||IDA]];③A→B:EKb[Ks||IDA];④B→A:EKs[N2];⑤A→B:EKs[f(N2)]。制作人:代春艳2007年8月•其中,•KDC是密钥分发中心;•IDA表示A身份的唯一标识;•密钥Ka和Kb分别是A和KDC、B和KDC之间共享的密钥;•N1和N2是两个nonce;•f(N)是对N进行一个运算,比如,f(N)=N+1。•本协议的目的是认证A和B的身份后,安全地分发一个会话密钥Ks给A和B。制作人:代春艳2007年8月•第(1)步,A向KDC申请要和B通信。•第(2)步,A安全地得到了一个新的会话密钥。•第(3)步,只能由B解密并理解,B也获得会话密钥。•第(4)步,B告诉A已知道正确的Ks了,从而证明了B的身份。•第(5)步,表明B相信A也知道Ks,从而认证了A的身份。•第(4)、第(5)步的目的是为了防止某种类型的重放攻击,特别是如果攻击方能够在第(3)步捕获该消息并重放之,这将在某种程度上干扰破坏B方的运行操作。由于除了KDC之外只有A知道Ka,也只有B知道Kb,所以双方都可以向对方证明自己的身份。制作人:代春艳2007年8月•但是,这个协议仍然有漏洞。•假定攻击方C已经掌握A和B之间通信的一个老的会话密钥,C可以在第(3)步冒充A,利用老的会话密钥欺骗B。除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。然后,如果C可以中途阻止第(4)步的握手信息则可以冒充A在第(5)步响应。从这一点起C就可以向B发送伪造的消息,而B认为是在与A进行正常的通信。制作人:代春艳2007年8月•Denning结合了时间戳的方法,进行了改进:•(1)A→KDC:IDA||IDB;•(2)KDC→A:EKa[Ks||IDB||T||EKb[Ks||IDA||T]];•(3)A→B:EKb[Ks||IDA||T];•(4)B→A:EKs[N1];•(5)A→B:EKs[f(N1)]。•|Clock–T|△t1+△t2制作人:代春艳2007年8月•其中,T是时间戳;△t1是KDC时钟与本地时钟(A或B)之间差异的估计值;△t2是预期的网络延迟时间。制作人:代春艳2007年8月•Denning协议比Needham/schroeder协议在安全性方面增强了一步,然而这又提出了新的问题,即必须依靠时钟同步。•如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者处窃听消息,并等待时间戳对接收者来说成为当前时刻时重放给接收者,这种重放将会得到意想不到的后果。这类攻击称为抑制重放攻击。制作人:代春艳2007年8月•(2)基于公钥密码的双向认证协议•使用公钥密码算法,可以克服基于对称密码的认证协议中的一些问题。但同样需要有可信的第三方参与,现以WOO92b协议为例来说明:制作人:代春艳2007年8月①A→KDC:IDA||IDB;②KDC→A:EKRauth[IDB||KUb];③A→B:EKUb[Na||IDA];④B→KDC:IDB||IDA||EKUauth[Na];⑤KDC→B:EKRauth[IDA||KUa]||EKUb[EKRauth[Na||Ks||IDA||IDB];⑥B→A:EKUa[EKRauth[Na||Ks||IDA||IDB]||Nb];⑦A→B:EKs[Nb]。制作人:代春艳2007年8月•其中,KUa是A的公钥;KRa是A的私钥;KUauth是KDC的公钥;KRauth是KDC的私钥。•第(1)步,A向KDC提出和B通信。•第(2)步,A得到B的公钥。•第(3)步,A向B提出通信要求,包含一个现时Na。第(4)步,B向KDC询问A的公钥。•第(5)步,B得到A的公钥和一段KDC签名的消息。•第(6)步,B将这段消息和现时Nb发给A,A在KDC签名的消息中找到Na,知道这不是一个重放。•第(7)步,A使用刚得到的会话密钥回答B。•协议中,A和B都向KDC索取对方的公钥,如果对方能正确解密用其公钥加密的消息,就能够证明对方的身份。制作人:代春艳2007年8月•(3)单向认证协议•单向认证协议中只有一方向另一方证明自己的身份,因此过程一般都相对简单。下面是一个不需要第三方的基于对称密码的单向认证协议,要求A和B事先拥有共享密钥。①A→B:IDA||N1;②B→A:EKab[Ks||IDB||f(N1)||N2];③A→B:EKs[f(N2)],即f(x)=x+1。制作人:代春艳2007年8月•第(1)步,A将自己的身份和一个nonce发给B,希望和B通信。•第(2)步,B生成一个会话密钥Ks,连同对A的nonce的应答和一个新的nonce,一起用两人的共享密钥