您好,欢迎访问三七文档
用户认证1用户认证通信双方在进行重要的数据交换前,常常需要验证对方的身份,这种技术称为用户认证。在实际操作中,除了认证对方的身份外,同时还要在双方间建立一个秘密的会话密钥。会话密钥用于对其后的会话进行加密。每次连接都使用一个新的随机选择的会话密钥,其目的在于减少用永久性密钥加密的数据量。以防止网络入侵者收集足够数量的密文进行破译当一个进程崩溃并且其内核落于他人之手时,最多只会是暴露本次的会话密钥。1.2基于共享秘密密钥的用户认证协议ABARBKAB(RB)RAKAB(RA)A和B之间有一个共享的秘密密钥KAB1.2过程详解A向B发送自己的身份标识。B为了证实确实是A发出的,选择一个随机大数RB,用明文发给AA收到后用共享的密钥KAB对RB进行加密,将密文发送到BB收到密文后确信对方就是A,因为险些以外无人知道KABA为了确认B的身份,也选择一个随机的大数RA发送给BB收到后用共享的密钥KAB对RA进行加密,将密文发送到A这时互相确认身份。如果A希望和B建立一个会话密钥,可以选择一个KS,用KAB加密后发送到B,此后双方即可使用KS进行会话。2使用密钥分发中心的用户认证协议要求通信的双方具有共享的秘密密钥有时是做不到的。比如两个陌生人之间;如果某个用户要和N个用户进行通信,就需要有N个不同的密钥,这给密钥的管理也带来很大麻烦。解决的办法是引进一个密钥分发中心KDC,KDC是可以依赖的,并且每个用户和KDC之间有一个共享的秘密密钥。2.1流程A和KDC共享密钥KA,B和KDC共享密钥KBA发送A的身份标识和用KA加密的通信目标B和希望使用的密钥KSKDC用和A共享的KA解密,得到B和KS,确认是AKDC用和B共享的密钥KB加密请求方A标识和会话密钥KSAKDCBA,KA(B,KS)KB(A,KS)2.1.2该协议存在问题假如C,为A提供了一定的服务后,希望A用银行转帐的方式支付他的酬金。A和B(银行)建立一个会话,指令B将一定数量的金额转到C的帐上。C将KDC发给B的密文和随便A发给B的报文复制下来,等会话结束后,C将这些报文依次重发给B,而B无法区别这是一个新的指令还是一个老指令的副本,于是重复转帐。解决办法:加上一次性的报文号和时间戳。3使用公开密钥算法的用户认证协议A选择一个随机数RA,用B的公开密钥EB,对A的标识符和RA进行加密,将密文发送给BB解开密文后不能确定密文是否真的来自A,它选择一个随机数RB和一个会话密钥KS,用A的公开密钥EA对RA,RB,KS进行加密,并发给AA解开密文,看到其中的RA正是自己刚才发给B的,于是知道该密文一定发自B,因为其他人不可能得到RA。A用KS对RB进行加密表示确定B解开密文,知道这一定是A发来的,因为其他人无法知道KS和RB。ABEB(A,RA)EA(RA,RB,KS)KS(RB)数字签名1数字签名的作用如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题:(1)该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制;(2)被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥作的签名,并得到验证,达到不可否认的目的;(3)接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。2使用秘密密钥算法的数字签名这种方式需要一个可以依赖的中央权威机构(centralAuthority,简称CA)每个用户事先选择一个与CA共享的秘密密钥并亲手交到CA办公室。除此之外,CA还有一个对所有用户都保密的秘密密钥KCA。2使用秘密密钥算法的数字签名A向B发送一个签名的报文P,先发给CA,内容有:RA报文的随机编号,t为时间戳,B为接收方,KA为A与CA共享的秘密密钥CA解密后,发送内容有:A发送方标识,RA,报文随机编号,t时间戳,P报文,KCA(A,t,P)用只有CA知道的密钥加密的内容。KB为CA与B共享的密钥。ACABA,KA(B,RA,t,P)KB(A,RA,t,p,KCA(A,t,p)2.2使用秘密密钥算法的数字签名若A否认发送过报文,B可以出示KCA(A,t,p)。因为B无法伪造出KCA(A,t,p)。它是由CA发来的,CA是可以信赖的。如果A没有给CA发过P,CA就不会将P发给B。若A或B要对发送的内容抵赖,则可以由CA解密KCA(A,t,p)。一旦解密,则真相大白。3使用公开密钥的数字签名使用秘密密钥算法的数字签名,需要一个大家共同信赖的中央权威机构,而在实际中,要找到这样一个机构比较困难所以多采用公开密钥算法。使用公开密钥算法的数字签名其加密算法E和解密算法D必须满P=D(E(P)),还必须满足E(D(P))=P这个假设是成立的,因为RSA就有这样的特性。3RSA的数字签名A向B发送签名的报文P时,向B发送EB(DA(P)),用自己的私人密钥DA加密P,B得到A的公开密钥EA,可以用来解密DA(P),A将DA(P)用B的公开密钥EB加密DA(P),只有B用自己的私人密钥EB才能解密。当A过后否认给B发送过P时,B可以出示DA(P),因为B没有DA,除非A发送过,否则B是不会有这样一份密文的。只要用A的公开密钥解开DA(P),就真相大白。A的私人密钥DAB的公开密钥EBA的私人密钥DAB的公开密钥EBDA(P)EB(DA(P))DA(P)3使用RSA的缺点存在问题与算法无关,而是与算法的环境有关。首先,只有DA仍然是秘密的,B才能证明A确实发送过DA(P),如果A试图否认这一点,只需公开他的私人密钥,并声称他的私人密钥被盗了,则任何人包括B都有可能发送DA(P)。其次,如果A改变了他的私人密钥,裁决人用新的EA去解老的DA(P),则B非常不利。因为在使用中,还需要有某种集中控制机制去记录所有密钥的变化情况和变化日期4报文摘要的数字签名有人对2,3的签名方法提出批评,认为它们将认证和保密两种功能混在一起,有些报文只需要签名,而不需要保密,将报文全部进行加密速度太慢也不必要。因此提出一个新的方案。该方案使用一个单向的哈希函数,将任意长的报文转换成一个固定长度的比特串,然后仅对该比特串加密。报文摘要(MessageDigests)必须符合以下三个条件:给定P,很容易计算出MD(P),给定MD(P),很难计算机出P任何人不可能产生出具有相同报文摘要的两个不同的报文。为满足条件3,MD(P)至少必须达到128位。4报文摘要ACABKB(A,RA,t,p,KCA(A,t,MD(P))A,KA(B,RA,t,P)A的私人密钥DAA的私人密钥DAB的公开密钥EBDA(P)EB(P,DA(MD(P)))DA(P)B的公开密钥EB数字证书1数字证书的概念也称公钥证书,是由称作证书机构的或实体签发的,用于绑定证书持有人的身份及其公钥的一个数据结构,是公钥密码体制进行密钥管理的基本方法。如个人银行证书,内含个人和银行之间共享的一套公开密钥,个人持有加密,银行存有解密,通信时使用这份证书可以证明个人身份及保证发送数据的安全。1。2数字证书的类型已经定义的几种数字证书标准有:X.509证书简单PKI证书PGP证书属性证书1.2证书的类型证书名称证书类型主要功能个人证书用于个人网上交易/网上支付/电子邮件等相关网络作业单位证书单位身份证书用于企事业单位网上交易/网上支付等E-mail证书用于企事业单位内安全电子邮件通讯部门证书用于企事业单位内某个部门的身份证书服务器证书用于服务器/安全Web站点认证代码签名证书个人证书用于个人软件开发者对其软件的签名企业证书用于软件开发企业对其软件的签名1.2.1证书的类型2证书的格式3证书的验证拆封数字证书证书是由证书颁发者的私钥签定的,证书拆封就是使用颁发者的公钥解密签字的过程,拆封过后就可得到证书拥有者的公钥。证书链的验证:验证证书的有效性。需要用到签发者的公钥。签发该证书者的公钥可以通过一些可靠的渠道获得也可由上一级CA颁发给该签发者的CA中获取。序列号的验证有效期的验证证书使用策略的验证证书的验证由CA来完成。对用户是透明的。4证书的申请个人证书:和一般申请帐号相似,但必须填写表格,并将表格和个人身份证明(身份证)交到其办理机构,经审核后证书才能生效。5证书的管理证书的备份证书的安装证书的删除证书的使用公钥基础设施简介1PKI的定义PublicKeyInfructructure又称公钥基础设施,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系.2PKI的内容完整的PKI系统必须具有权威认证机关(CA)/数字证书库,密钥备份及恢复系统,证书作废系统,应用接口等基本构成部分.组成PKI也围绕这五大系统来构建.1认证机关CA是一个基于服务器的应用,是PKI的核心组成部分,是数字证书的申请及签发机关.CA必须具有权威性.CA系统的结构RootCAPolicyCAOperationCA个人证书/代码证书/服务器证书/企业证书等第一层根CA,负责制定和审批CA的总政策.
本文标题:用户认证
链接地址:https://www.777doc.com/doc-3361564 .html