《信息安全引论》课件Chapter6

上传人:考试不挂****2941... 文档编号:242975462 上传时间:2024-09-13 格式:PPT 页数:88 大小:895KB
返回 下载 相关 举报
《信息安全引论》课件Chapter6_第1页
第1页 / 共88页
《信息安全引论》课件Chapter6_第2页
第2页 / 共88页
《信息安全引论》课件Chapter6_第3页
第3页 / 共88页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,第,6,章,Kerberos and PKI,本章讲述应用层网络安全技术的工业标准:,应用层认证与数字签名。这包括基于对称密码学的标准与基于公开密码学的标准。对称密码学的标准有,Kerberos,,公开密码学的标准有,PKI,和,X.509,。,第,1,节,Kerberos V4,概述,第,2,节,Kerberos V4,设计思想与要求,第,3,节 基本安全需求的解决方案,第,4,节,Kerberos V4,实际执行过程,第,5,节,Kerberos V4,域间访问,第,6,节,公钥基础设施,PKI,第,7,节,X.509,本章内容,第,1,节,Kerberos V4,解决的问题,Kerberos,是,MIT,开发的一种认证服务标准,开发,Kerberos,的目的是要解决这样的问题:在开放的环境中,使用工作站的用户希望访问服务器上所提供的服务,我们希望服务器能够只为授权访问的用户提供服务并认证服务要求。在这样的环境中,不能依靠工作站来正确地识别网络服务的用户。具体地说在这样的环境中存在三种威胁:,三种威胁,(1),一个用户可能会访问一个工作站,并声称是另一个用户,对工作站进行某些操作。,(2),一个用户可能会修改工作站的网络地址,从而使工作站所发出的请求看上去好像是另外一个工作站发出的。,(3),一个用户可能窃听通信,并利用重放攻击得到服务器的访问权限,或者破坏服务器的服务。,Kerberos Version 4,这三种威胁都可能导致一个未授权用户,访问他不应该访问的数据或者服务。,Kerberos,是一种基于对称密钥、在网络上实施认证的服务。主要是用于两个不熟悉的实体之间的认证。,大家可以想象在现实中两个不熟悉的实体之间如何实现认证的,,然后再来看网络中,Kerberos,的认证过程,就非常容易理解。,网络中的认证,在网络认证中,情况也是一样的,需要有一个比较权威的开介绍信,(,证明信,),、发身份证、工作证等的机构,这个机构就是,KDC,。现实世界中这样的权威机构是根据什么来为一个人开介绍信、发身份证、工作证的呢,(,名单与照片,),。网络中,KDC,这样做有什么问题。现实世界有公章和公章的保存问题,在网络中有,KDC,的数据库与数据库的保护问题。,第,2,节,Kerberos,的设计思想,目前的网络环境主要有两种体系结构,B/S,结构和,C/S,结构。,Kerberos,是专为,C/S,的体系结构设计的安全标准,主要针对上面的三种威胁。采用下面的三种设计思想:,(1) Rely on client workstation to assure the identity of its user or users and rely on server to enforce a security policy based on user identification;,Kerberos,的设计思想,(2) Require that client systems authenticate themselves to server, but trust the client system concerning the identity of its users;,(3) Require the user to provide,Identity for each service invoked. Also require that servers prove their identity to clients.,Kerberos,的设计思想,在一个封闭的小的环境中,所有的系统都是由单个的机构所拥有并负责,前一个或者两个策略就可以了,但在大的开放的环境中,需要能够支持网络互连,这样第,3,个策略就是必不可少的。,Kerberos,支持第,3,项策略,,Kerberos,适用于分布式,C/S,体系结构,运用一个或多个,Kerberos,服务器提供认证服务。,Kerberos,的设计要求,(1),安全:网络窃听者无法得到能够冒充一个用户的必要的信息。更一般地说,Kerberos,应该是是强大的,潜在攻击者不能从,Kerberos,中发现连接的弱点。,(2),可靠:对于那些依靠,Kerberos,提供访问控制的服务来讲,没有,Kerberos,的服务,就没有相应的服务,所以,Kerberos,应当是高度可靠的,为此需要采用分布式服务器结构,使得一个系统能够备份另外一个系统。,Kerberos,的设计要求,(3),透明:理想情况下,除了要求用户输入口令以外,用户应当不知道发生了认证。,(4),可扩展性:系统应该能够支持大量的用户与服务器,这就要求采用分布式的、模块化的计算模式或体系结构,(Architecture),Kerberos,要求的实现机制,为了满足上述要求,,Kerberos,采用了可信的第三方认证服务机制。即客户与服务器都相信第三者能够作为它们互相认证的媒介。假设,Kerberos,协议的设计没有漏洞,,if the design of Kerberos server is secure,,,so is the authentication services that are based on Kerberos,。,Kerberos,在,C/S,计算模式下,当,Alice,第,1,次登录到工作站时,需要输入自己的帐号和口令。从登录到登出这一段时间称为一个登录会话,在某个登录会话中可能需要访问远程资源,这些远程资源需要认证她的身份才允许访问。,Kerberos,就是一种基于对称密码学的、在网络上实施这样认证的服务。,Kerberos,有两个版本,V4,和,V5,。,V4,用户量较大、结构较简单、性能较好,所以我们主要讲述,V4,,理解了,V4,,,V5,就很好理解了。,Kerberos,细节,对于网络安全工业标准协议,如果从整体上看,根本无法理解为什么需要设计这样繁琐的协议,而且给人的印象往往是无法分清主次。因此本章开始我们将采用不同的顺序来研究网络安全的标准。首先一步一步讲清楚设计每一步是为了实现什么安全功能,对协议的每个步骤都解释清楚之后,我们再从总体结构上来看协议,从而全面理解协议。达到既见树木,也见森林的效果。,第,3,节 最基本的安全需求,在一个不设防的网络环境中,任何用户都可以向任何服务器请求服务。这里面明显的安全问题就是假冒。一个攻击者可能冒充是另一个用户,从而获得另一个用户访问服务器的特权。甚至利用另一个用户的名义做一些坏事,栽脏陷害另一个用户。为了防止出现这样的问题,服务器必须能够确认请求服务的用户身份。当然可以要求各个服务器在与用户的交互过程中完成这项任务,但在网络环境中可能给服务器造成实际负担。,基本安全需求的解决,另一个选择是安装一个,Authentication Server-AS,(,认证服务器,),,该,AS,知道所有用户的口令,并将这些口令存储到一个中央数据库中。此外,AS,还需要与每个服务器共享一个单独的对称密钥,这些密钥已经通过某种物理的方法或者某种安全的方式完成了分配。当需要认证时,执行下面的协议。,基本安全需求的解决,基本安全需求的解决,用户对服务器的访问,在这个对话过程中,Alice,登录工作站要求访问服务器,要求,Alice,输入口令然后发送一个消息给,AS,,如上述第,1,步。,AS,检查数据库,根据,ID,看,Alice,输入的口令是否正确,是否允许访问相应的资源。如果都没有问题,,AS,认为,Alice,是可信的,并说服,S,,,Alice,是可信的。为此,AS,需要给,Alice,一个证明,(Ticket),,证明清楚地表明,Alice,的,ID,、网络地址、以及,S,的,ID,。将此信息用,AS,与,S,共享的,对称密钥加密,(?),后发给,Alice,的工作站,C,。,用户对服务器的访问,现在,C,能够向,S,申请服务,,C,将,Alice,的,ID,与证明发给,S,,,S,用密钥解密证明票据,然后验证,Alice,的,ID,与解密出来的票据中,ID,是否相同,如果相同,S,就认为,C,是可信的,并向其提供相应的服务。,举一个简单的例子。,上述第三步中的每个信息都很重要,,各个信息的用处。,上述会话过程的分析,上述会话过程协议解决了开放网络中的认证问题,但又有一些问题。,(1),如果每个证明只能一次性使用,,Alice,想在一天内多次访问同样的资源,就需要重复申请证明,效率将会非常低。如果设计一种允许证明重用的机制,那么就可以解决这样的问题。,Kerberos,采用允许,C,保存证明的方法,在一个登录会话过程中重复使用同一个证明。,上述会话过程的分析,(2),第,2,个问题是上述会话过程的第,1,个消息中传递的是明文信息,窃听者能够捕捉到,Alice,的口令,并获得与,Alice,相同的访问有关资源的权限。为解决上述两个问题,Kerberos,引入了一个新的方案,该方案采用了一个提供票据的服务器,(Ticket granting server- TGS),,并避免了明文传输。新方案如下:,会话过程分析,这个协议的大概过程是这样的:,Alice,首先向,AS,请求认证与访问票据提供服务器的,Ticket,, 并保存这个,Ticket,。每次需要访问某种资源时,就出示该,Ticket,,用该,Ticket,实现,TGS,对她的认证。通过认证后,,TGS,就为她签发一个访问某种服务的服务,Ticket,。,Alice,就可以用这个,Ticket,向相应的服务器实现认证,并要求提供相应的服务。,会话过程分析,(1),省略;,(2),中所用的加密密钥是由,Alice,的口令产生的,工作站收到这个消息后提示,Alice,输入口令,生成密钥、尝试解密信息,如果口令正确,,Ticket,将被成功解密。因为只有,Alice,知道它的口令,从而解密,Ticket,,因此,Kerberos,通过口令获得了机密性,而不需要以明文方式传递口令,从而解决了第二个问题。而,Alice,从,AS,获得的,Ticket,,可以重复运用于申请服务,Ticket,,这决了第,1,个问题。但我们希望攻击者不能得到,Ticket,并使用它。,会话过程分析,如果我们不采取进一步的措施,攻击者可能捕捉到这个,Ticket,,并等到,Alice,离开工作站之后,它就可以访问,Alice,工作站,或者将它自己的工作站的网络地址,修改成,Alice,的工作站的网络地址。从而利用这个,Ticket,冒充,Alice,欺骗,TGS,,获得自己的不当利益。,会话过程分析,为防止这种情况出现,,Kerberos,在,Ticket,中设计了时标,timestamp,表明,Ticket,的发放日期、时间、寿命、有效期等。,Alice,的工作站从,AS,得到的,Ticket,是用,AS,和,TGS,共享的对称密钥加密的,这就防止了任何人修改,Ticket,。同时因为,TGT,是用基于用户的口令产生的密钥加密的,这保证只有正确的用户才能恢复出,TGT,,这也提供了一种认证机制。,会话过程分析,现在,Alice,有了,AS,所签发的,TGT (Ticket granting Ticket),,就可以通过下面的步骤访问任何服务器。,(3),工作站将自己的身份、希望访问的服务器以及前面得到的,TGT,告诉,TGS,,从,TGS,申请一个,Service Granting Ticket-SGT,。,TGS,解密,TGT,,通过,ID,tgs,来检验是否正确解密。验证,Lifetime,是否失效,比较,TGT,中的用户,ID,,网络地址与实际发送信息的用户,ID,、网络地址是否相同,如果都没有问题。,TGS,就给,Alice,前发一个,SGT,,用于请求相应的服务。,会话过程分析,SGT,与,TGT,具有相同的结构,不同的是,SGT,需要用,TGS,与,S,共享的对称密钥加密。有了,SGT,,,Alice,就可以通过下面的步骤访问相应的服务器,获得相应的服务。,(5),工作站将,Alice,的,ID,,,SGT,发送给服务器,服务器通过,SGT,的内容实现对,Alice,的认证。这种方案对于一个会话只要求,Alice,输入一次口令,并能保护她的口令。,第,4,节,Kerberos,的实际情况,前面的协议解决了主要的问题,但又出现两个问题:第,1,个是关于,TGT,寿命的问题,如果寿命太短,,Alice,可能仍然需要重复申请,如果寿命太长,攻击者仍然有机会进行重放攻击。攻击者可以通过窃听捕捉到,TGT,或者,SGT,,然后实施攻击。这样,Kerberos,需要满足一个新的要求:网络服务必须能够证明使用,TGT,与,SGT,的人,就是,TGT,或,SGT,的受益人或者说合法持有人。,Kerberos,的实际情况,第二个问题是我们只考虑了服务器如何认证一个用户,而没有考虑用户如何认证一个服务器。而没有这样的认证,攻击者可能设计一个假服务器,引诱客户输入自己的机密信息,并不提供任何服务。实际的,Kerberos,还必须解决这两个问题。那么实际的,Kerberos,是如何解决这两个问题的呢?,为了解决第,1,个问题,,Kerberos,要求,AS,以一种安全的方式向,Alice,和,TGS,提供一个机密信息。然后,Alice,可以再以安全的方式向,TGS,出示,Kerberos,的实际情况,该机密信息以证明自己的身份。一种有效的方法就是用一个密钥加密这个机密消息,这个秘密就是,AS,为,Alice,和,TGS,创造一个共享的对称密钥,在,Kerberos,中称为会话密钥,(Session Key),。安全的方式就是用,Alice,的口令所产生的对称密钥加密。有了会话密钥和,Ticket,,,Alice,就可以访问,TGS,。,认证信息交换过程,认证信息交换过程,消息,(1),增加了时标,TS,1,,让,AS,能够确定该消息是一个新消息,而不是过去某个消息的重放。消息,(2),增加了一个秘密,K,c,tgs,、 一个时标、一个,Ticket,寿命,这些消息,Alice,和,TGS,可以分别看到,并使得,Alice,能够确信该,TGT,是为访问,TGS,而产生的,且能够知道,TGT,的有效期。,Ticket,tgs,用,AS,与,TGS,共享的密钥加密,,Alice,不能看到其中的内容,但是可以发给,TGS,,,TGS,能解密其中的内容,并认证,Alice,的身份。,TGS,信息交换过程,这个过程增加了一个认证信息,该认证信息只使用一次,而且寿命很短。,TGS,解密,Ticket,tgs,与,Authenticator,c,,并比较两者的身份与网络地址,如果匹配,,TGS,知道发送,Ticket,tgs,的人就是,Ticket,tgs,的拥有者。事实上,Ticket,tgs,等于告诉,TGS,,任何使用,K,c,tgs,的用户就是,Alice,。,Ticket,tgs,并不是证明身份的方法,而是一种密钥分配方法。,TGS,信息交换过程,证明用户的身份靠的是,Authenticator,c,因为认证信息只能用一次,而且寿命很短,攻击者能够在,Ticket,tgs,和,Authenticator,c,的有效期内同时使用这两者进行攻击的可能性大大降低。,TGS,反馈给,Alice,的信息为,Alice,和服务器建立一个共享的对称密钥。现在,Alice,有了可重复使用的访问,S,的,SGT,。,认证信息交换过程,当,Alice,访问,S,时,需要出示她的,SGT,,并同时发送一个,Authenticator,c,,,S,能够解密,SGT,,恢复会话密钥,并解密,Authenticator,c,。,如果需要互认证,服务器还要出示自己的认证信息,在,Kerberos,中,该信息为用会话密钥加密的,Alice,的时标,1,。因为只有,Alice,和服务器知道会话密钥,K,c,s,所以如果,Alice,能够用这样的密钥解密,说明这个信息是服务器所产生的,而不是某个消息的重放。,认证信息交换过程,这样,在最后阶段,,Alice,与服务器之间获得了一个共享的对称密钥,这个密钥可以用来加密他们之间的通信信息,或者用于产生新的随机数。到此为止,我们讲述了一个一个的局部细节,现在,我们跳出局部看整体,看一看,Kerberos,的全貌。,Kerberos,整体过程,各个信息的作用,消息,(1),:,Alice,请求一个,TGT,。,ID,c,: 工作站告诉,AS Alice,的身份。,ID,tgs,: 工作站告诉,AS Alice,希望访问的,TGS,。,TS,1,: 让,AS,验证,Alice,时钟与,AS,的时,钟同步。,消息,(2): AS,颁发一个,TGT,K,c,:,利用,Alice,的口令产生的对称密钥,使得,Alice,和,AS,能够验证口令,并保护信息的内容。,K,c,tgs,: AS,临时产生的,Alice,和,TGS,的共享对称密钥。,ID,tgs,:,确认,TGT,是为,TGS,所产生的。,TS,2,:告诉,Alice TGT,的颁发时间。,Lifetime,:规定了,TGT,的有效时间。,Ticket,tgs,:,Alice,访问,TGS,的,Ticket,。,消息,(3),:,Alice,请求一个,SGT,。,Alice,告诉,TGS,,她想访问的服务器,S,ID,s,。,Ticket,tgs,表明,Alice,已经过,AS,的认证。,Authenticator,c,Alice,产生的用于验证有效性的认证信息。,消息,(4): TGS,反馈的,SGT,。,Ticket,s,: Alice,用于访问,S,的门票。,Ticket,tgs,:,可重用的,Ticket,,免得,Alice,重复输入口令。,第,5,节,Kerberos,域与多,Kerberos,一个由,Kerberos,服务器、一定数量的用户与一些应用服务器所组成的,Kerberos,环境的运行条件:,(1) Kerberos,服务器的数据库中必须拥有所有用户的,ID,与经散列的口令。所有用户都必须在,Kerberos,服务器注册。,(2) Kerberos,服务器必须与每一个服务器共享一个密钥,所有服务器必须在,Kerberos,服务器注册。,Kerberos,域与多,Kerberos,上述的一个运行环境构成一个,Kerberos,域,不同管理机构服务器与客户组成不同的域,要一个域中有其他管理域中注册的服务器或用户一般是不切实际的,或者不符合管理的策略。然而一个域中的用户可能需要访问其他域中的服务器,如果通过认证,一个域中的服务器也许乐意为其他域中的用户提供服务。,域间访问,Kerberos,提供了一种支持域间认证访问的机制,对于支持域间访问机制的,Kerberos,服务器,需要增加一个新的要求:两个互操作域的,Kerberos,服务器之间需要共享一个对称密钥,两个服务器需要相互注册。还要求两个域中的,Kerberos,服务器相互信任对方的认证结果。,第,6,节,PKI,前面我们在讲述所有的安全机制时,都有一个前提:通信的双方共享一个对称密钥,或者他们能够协商一个对称密钥。但却没有说明他们如何能够共享一个密钥或者协商一个密钥。在讲公开密钥加密算法时,我们说公钥加密算法的主要用处就是密钥分配、数字签名、认证。,Alice,和,Bob,之间要建立保密通信,,Alice,必须知道,Bob,的公开密钥,或者,Bob,知道,Alice,的公开密钥。但我们没有说明,Alice,如何能够得到,Bob,的公开密钥。,公开密钥的获得,一般来说,Alice,要获得,Bob,的公开密钥可以有三种方法,:,(1),直接向,Bob,索要他的公开密钥;,(2),可以从公开密钥数据库中获得;,(3),从某个第三者,Carol,处获得。但这三种方法都存在问题。比如第一种方法可能受到中间人攻击,这样中间人就可以读懂他们之间传递的信息;第二种方法中,Bush,可能用自己的公开密钥替代数据库中,Bob,的公开密钥,这样所有发给,Bob,的消息,,Bush,都可以解密;第三种方法,Carol,的可信性是一个关键问题。,解决方法,直观上可以采用下面比较简单的解决方案:,(1),物理方法获得。比如,Bob,可以当面写给,Alice,或者,Bob,将他的公开密钥存到一个软盘上,将该软盘当面交给,Alice,。这种方式非常安全,但有明显的局限。,(2) Bob,可以用电邮将公开密钥告诉,Alice,,并通过电话告诉公开密钥的单向散列函数值,,Alice,验证单向散列函数值是否正确,从而确保得到,Bob,的正确公钥。,解决方法,(3),从一个双方都信任的第三者处得到,Bob,的公开密钥;如果双方互不认识,就很难找到双方相信的第三者。,(4),从一个可信的中间机构得到,Bob,的公开密钥。这类似于公证机构。,公钥基础设施,Public Key Infrastructure,就是为了确保,Alice,能够准确地获得,Bob,的真正公开密钥而建立的一系列基础设施,采用的是建立具有公信力的中间机构的方式。通过这样的方式还可以实现认证。,PKI,的基本结构,证书是一种经过签名的消息,用来确定某个实体与某个公开密钥的绑定关系。,PKI,的基本结构包括,证书的申请、证书的签发、证书的获取、证书的撤销、证书的验证五个环节,(,举例,),。,需要建立签发证书的权威的、有公信力的机构。确立标准的证书内容格式。建立保存证书的数据库。建立证书的验证机制,-,证书链。制定证书的撤销机制。这就是,PKI,研究的内容。,证书的签发机构,CA,证书的签发机构应该是具有公信力的权威机构,那么在实际中我们应该相信谁呢?关于应该信任谁的问题,人们提出了各种各样的信任模型,比如有垄断模型、垄断加注册模型、受托,CA,模型、寡头模型、无政府模型、自顶向下模型、自底向上模型、名称约束模型、相对名称模型等。,证书的签发机构,CA,一个实体相信什么样的实体是有随意性的,不同的人可能相信不同的实体,而同一个实体对于不同的人也表现出不同的可信度。这个问题是一个非常复杂非技术问题。我们不研究应该谁相信谁的问题,我们假设在任何组织内都存在一个大家都相信的机构,在更大的组织内也有一个大家都相信的机构。这样的大家信任的机构,我们称为,Certificate Authority,,简称,CA,。这就解决了谁签发证书的问题。,证书的申请,证书的申请是比较简单的事情,用户提供自己的姓名、公钥,证明自己拥有相应的私钥,希望使用的有效期,是用于签名还是用密钥交换、还是两者都用。并提供有关自己的某些特定信息。然后在这些信息上数字签名,并将整个数据包发给,CA,。,CA,做一些努力来验证用户提供的信息是正确的。就会签发一份证书给申请人。,第,7,节,X.509,PKI,通常用一种分布式的层次化数据库作为辅助工具,这种数据库以层次结构的名称为索引,与某个名称相关联的是该名称所对应的各种信息,我们把这种系统同称为目录服务。,DNS,就是一种被广泛应用的目录服务,正是由于,DNS,的广泛应用才使,Internet,能够流行。,X.509,是一种目录服务标准,其中包括用于查询目录服务的语言,LDAP (Lightweight Directory Access Protocol,),。,DNS,提供了目录服务中低端的、但足以满足需求的功能,它除了提供基于名称进行查找的功能之外,没有提供其他的功能。,证书的内容,X.509,X.509,能提供许多比,DNS,应用复杂得多的目录服务。,X.509,是一种比较难用的证书格式,但是看起来它会成为所有,PKI,的基础。因此,在许多网络安全的应用中,我们常常听说某某应用支持,X.509,证书的发放,这表明该系统功能强大,因此学习网络安全,必须要认识,X.509,的真面目。,证书的内容,X.509,X.509,是国际电信联盟推荐的用于目录服务的一部分内容。目录服务事实上是一个维护用户信息数据库的服务器的集合。这里的信息包括用户名称与网络地址的对应关系以及用户的其他一些属性。,X.509,定义了,X.509,目录向其用户提供认证服务的框架规定。这个目录可以作为公钥证书的数据库,供用户查询。每个证书包括用,CA,的私有密钥签名的用户的公开密钥。此外,还定义了基于公钥认证的不同的认证协议。,证书的内容,X.509,X.509,有三个版本,V1(1988,、,1990),、,V2(1993),、,V3(1995,、,2000),。,X.509,默认的算法为公开密钥的,RSA,算法,在签名之前需要对消息进行散列运算,但并没有规定采用哪一个单向散列算法。,X.509,的核心思想是将公开密钥与一个用户关联起来。假设证书由一个,CA,签发,并存放在,CA,或者用户的目录服务器中,目录服务器为用户提供访问目录、获得公开密钥的服务。下面是,X.509,规定的证书格式。,证书的内容,X.509,版本号:用来区分,X.509,的不同版本号,(?),序列号:由,CA,给予每一个证书的分配唯一的数字型编号,当证书被取消时,实际上是将此证书的序列号放入由,CA,签发的,CRL,中;这也是序列号唯一的原因。,签名算法标识符:用来指定用,CA,签发证书时所使用的签名算法,HASH,算法及参数。因为后面有重复,所以这一部分信息实际上没有多少用处。,证书的内容,X.509,有效期限:证书有效的时间包括两个日期:证书开始生效和证书失效的日期和时间。,2006.10.18.00:00 2008.12.30.23:59,唯一标示符的应用:区分相同名称的不同主体。,签名:,CA,对上述所有的信息进行散列运算,并用,CA,的私有密钥加密从而实现签名。,扩展:扩展是只有第,3,版才有的一种机制,这种机制的目的是使使用更加灵活,比,证书的内容,X.509,如用户有分别用于验证数字签名与密钥分配的公钥,在这里就可以注明用途。或者将该证书与用户的,Email,地址联系起来等。,X.509,用下面的记号来定义一份证书:,CA=,CAV,SN,AI,CA,TA,A,Ap,其中,,Y,表示由,Y,签发给,X,的证书,,YA,表示,Y,对,A,的签名,其中包含证书内容的散列函数值。,获得证书,由,CA,生成的用户证书具有下面的特点:任何能够获得,CA,公钥的人都可以验证该,CA,签发的用户的证书;除了,CA,以外,没有人能够修改证书而不被发现。这样因为证书不可伪造、不可修改,证书就可以存放在目录中而不需要采取特殊的措施加以保护。如果所有用户都是从同一个,CA,获取证书,说明他们相信同一个,CA,。所有用户的证书可以存在同一个目录中供所有用户访问。,Alice,也可以将它的证书直接发送给,Bob,。不管哪种情况,,Bob,都可以获得,Alice,的证书,证书链,因为每个用户的公钥证书都要用,CA,的公开密钥进行验证。,CA,的公钥的完整性与真实性就非常重要。如果用户很多,范围很大,,CA,本身的公钥的保证与可信性就成问题。一个可行的办法就是将用户群缩小到一个能够控制的范围内。这样就出现了这样的情况:,Alice,和,Bob,的,CA,不同。那么这种情况下,,Alice,如何得到,Bob,的证书呢?,假设,Alice,有一个,CA1,签发的证书,,Bob,有一,证书链,个,CA2,签发的证书,那么可以用下面的程序获得,Bob,的证书,:,(1) Alice,登录目录,获得,CA1,签发的,CA2,的证书,因为,Alice,知道,CA1,的公钥,所以能够验证,CA2,的证书,获得,CA2,的公钥;,(2),因为,Alice,已经知道了,CA2,的公钥,就可以利用该公钥验证,Bob,的公钥证书,现在她可以从目录中或者要求,Bob,给她发送,Bob,的公钥证书,然后用,CA2,的公钥进行验证。这样的过程通常称为获得证书的证书链。,证书链,用,X.509,的记号可以表示如下,:,CA,1,CA,2,同样,,Bob,可以以相反的证书链获得,Alice,的公钥,CA,2,CA,1,这种获得公钥的证书链方式不局限于两个证书,任意长的证书可以连接在一起构成一个证书链,具有,N,个元素的证书链可以表示如下:,CA,1,CA,2,.,CA,N,证书链,在这种情况下,证书链中的每一对,CA (,CA,i, CA,i+1,),之间必须互相拥有证书。所有这些由一个,CA,为另一个,CA,所签发的证书,必须放到一个目录中,用户需要知道这些证书之间的连接关系,从而能够建立一个获得其它用户证书的路径。,X.509,建议,CA,以层次结构进行安排,以便于,CA,之间的导航非常直接。下面是从,X.509,中所选取的一个层次化,CA,的例子。,X.509,层次结构示意图,证书链,这里面有两个重要的概念:前向证书与后向证书。所谓前向证书就是由其它,CA,为,X,所颁发证书。所谓后向证书就是,X,为其它,CA,所颁发的证书。在上述例子中,A,可以通过下面的路径获得,B,的证书:,XWVYZ,。而,A,则可以通过相反的路径得到,A,的证书,ZYVWX,证书的撤销,就好比我们使用的信用卡,每一个证书都有一个有效期。因此证书自然有失效问题,过期的证书自然就失效了。而证书的撤销是在证书过期之前使证书失效,这样做的原因可能有以下几种:,(1),用户的私有密钥丢失或者泄漏。,(2) CA,不再为这个用户担保其公钥的正确性。,(3) CA,的证书丢失或者泄露。,因此,每个,CA,都必须维护一个在有效期之内,但被撤销的证书的列表,列表中要包含它为用户签发的证书以及为其他,CA,所签发的证,证书的撤销,书。这个列表也必须放到目录中去。目录中的每一个证书撤销列表,(CRL),应当包括:列表创建时间、下一次更新时间、各个撤销的证书条目,(,每个条目包括证书序列号、撤销日期,),、证书签发者,并经证书签发者签名。用户在接受信息时,收到一个证书,不要忘了,一定要查看一下该证书是否被撤销。应当在每次收到证书时,都检查最新的,CRL,。,单向认证过程,X.509,还包括各种应用之间的认证程序。所有认证程序都采用公钥签名进行。假设,Alice,和,Bob,都能通过目录或对方的信息得到对方的公钥,认证过程如图。,双向认证过程,上述认证过程中的时标应当包括产生时间和有效期,防止信息推迟提交。随机数用于防止重放攻击。,时钟不同步的认证,本章小结,本章讲述了基于对称密钥加密算法的网络安全标准,Kerberos,与基于公开密钥加密算法的网络安全标准,PKI,,,Kerberos,的主要目的是为了保证局域网的安全而设计的基于对称加密算法的认证机制。,PKI,主要是用于大范围的网络安全而设计的密钥分发与用户身份认证机制。讲了它们各自的组成与运行原理,保证安全的机制。它们在网络安全方面有重要的意义。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!