第九讲信息安全协议李章兵目录一.概述二.Kerberos协议三.SSL协议四.SET协议五.IPSec协议9.1概述–在OSI(开放系统互连)标准中,网络协议被分为7层,常用的是其中的5层:物理层、数据链路层、网络层、传输层和应用层。一般的网络通信协议都没有考虑安全性需求,这就带来了互联网许多的攻击行为,导致了网络的不安全性,为了解决这一问题,出现了各种网络安全协议以增强网络协议的安全。9.1概述–常用的网络安全协议包括Kerberos认证协议,安全电子交易协议SET、SSL、SHTTP、S/MIME、SSH、IPSec等。这些安全协议属于不同的网络协议层次,提供不同的安全功能。特别是在IPv6当中强制采用IPSec来加强网络的安全性。根据OSI安全体系结构的定义,在不同的协议层次上适合提供的安全功能不尽相同,具体规定见表7.1。9.1概述–安全服务与协议层次的关系9.1概述–说明了各种网络安全协议与TCP/IP协议的层次对应关系。9.2Kerberos协议7.2.1Kerberos协议概述Kerberos协议最早由MIT作为解决网络安全问题的一个方案提出,由麻省理工学院的ProjectAthena创建,后者是20世纪80年代后期进行的企业范围计算的测试项目,可用于公共用途。Kerberos协议采用了强加密,因此客户能够在不安全的网络上向服务器(以及相反地)验证自己的身份,如图7.1所示。9.2Kerberos协议Kerberos是网络验证协议名字,同时也是用以表达实现了它的程序的形容词(例如Kerberostelnet)。目前最新的协议版本是5,在RFC1510中有所描述。该协议有许多免费的实现,这些实现涵盖了许多种不同的操作系统。最初研制Kerberos的麻省理工学院也仍然在继续开发的Kerberos软件包。在美国Kerberos被作为一种加密产品使用,因而历史上曾经受到美国出口管制。9.2.1概述•Kerberos是古希腊神话中守卫地狱入口狗,长着3个头。MIT之所以将其认证协议命名为Kerberos,是因为计划通过认证、清算和审计3个方面来建立完善的完全机制,但目前清算和审计功能的协议还没有实现。•Kerberos协议的基本应用环境为在一个分布式的客户端/服务器体系机构中采用一个或多个Kerberos服务器提供一个鉴别服务。客户端想请求应用服务器上的资源,首先客户端向Kerberos认证服务器请求一张身份证明,然后到将身份证明交给服务器进行验证,Server在验证通过后,即为客户端分配请求的资源。9.2.1概述•Kerberos协议本身并不是无限安全的,而且也不能自动地提供安全,它是建立在一些假定之上的,只有在满足这些假定的环境中它才能正常运行。•(1)不存在拒绝服务(DoS,Denialofservice)攻击。Kerberos协议不能解决拒绝服务攻击,在该协议的很多环节中,攻击者都可以阻断正常的认证步骤。这类攻击只能•由管理员和用户来检测和解决。9.2.1概述•(2)主体必须保证的私钥的安全。如果一个入侵者通过某种方法窃取了主体的私钥,他就能冒充身份。•(3)Kerberos协议无法应付口令猜测(PasswordGuessing)攻击。如果一个用户选择了弱口令,那么攻击都就有可能成功地用口令字典破解掉,继而获得那些由源自于用户口令加密(由用户口令形成的加密链)的所有消息。•(4)网络上每个主机的时钟必须是松散同步的(LooselySynchronized)。这种同步可以减少应用服务器进行重放攻击检测时所记录的数据。松散程度可以以一个服务器为准进行配置。时钟同步协议必须保证自身的安全,才能保证时钟在网上同步。9.1概述•(5)主体的标识不能频繁地循环使用。由于访问控制的典型模式是使用访问控制列表•(ACLs)来对主体进行授权。如果一个旧的ACL还保存着已被删除主体的入口,那么攻击者•可以重新使用这些被删除的用户标识,就会获得旧ACL中所说明的访问权限。9.2.2Kerberos协议内容•Kerberos可用来为网络上的各种服务器提供认证服务,使得口令不再是以明文方式在网络上传输,并且连接之间通信是加密的。它和PKI认证的原理不一样,PKI使用公钥体制(不对称密码体制),Kerberos基于私钥体制(对称密码体制)。Kerberos称为可信的第三方验证协议,意味着它运行在独立于任何客户机或服务器的服务器之上。•Kerberos服务器称为AS(AuthenticationServer,验证服务器)。当客户端需要访问某个服务器时,客户端访问Kerberos服务器以获取票证。拥有票证意味着具有访问权限。这一点首先假设客户端和服务器都信任“第三方”Kerberos验证服务器。9.2.2Kerberos协议内容•IETF管理Kerberos规范。Kerberos版本5(Kerberos5)身份验证协议提供了一种相互验证(通过服务器和客户端相互验证或者一台服务与其他服务器之间相互验证)的身份验证机制。•Kerberos5协议假设客户端和服务器之间的初始身份验证在一个开放式的网络进行,此时通过网络传输的数据包将能被监测以及随意修改。这是一个被虚拟的环境,可是换句话说,当今因特网上可能有许多这样的例子,一名攻击者能够伪装成其他的客户端或者服务器,偷听两台合法且正常在通信的服务器和客户端之间数据传输,甚至于篡改之间传输的数据。9.2.2Kerberos协议内容•Kerberos为远程登录提供安全性并可提供单个登录解决方案,以便用户不需要每次访问新服务器时都登录。•AS将所有用户的密码存储在中央数据库中。AS颁发凭据,而客户端使用凭据来访问AS领域内的服务器。适用领域包括AS服务器跟踪的所有用户和服务器,这一点下面将解释。AS服务器由一个管理人员在物理上进行保护和管理。由于它验证用户身份,因此应用程序服务器免除此任务,它们“信任”AS为特定客户颁发的凭据。9.2.2Kerberos协议内容•在需要加密的任何通信中,为所涉及的双方获取加密密钥时总是有安全风险。在转换过程中可能会危及密钥的安全。一个重要的Kerberos特性是由AS提供一种方法,可以安全地将加密密钥分发到需要参与安全事务的客户端和服务器。此共享密钥称为会话密钥。•AS在领域中进行操作,而领域是在其中设置特定安全策略的安全域。领域可以信任其他领域,意味着如果某个用户在一个领域中经过AS的验证,则信任领域不需要用户重新进行验证即可访问其领域中的服务器。换句话说,它相信另一个AS已正确地识别和验证了某个用户。9.2.2Kerberos协议内容•Kerberos提供3种安全等级:•(1)只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的,认证式网络文件系统(AuthenticatedNetworkFileSystem)使用此种安全等级;•(2)安全消息(SageMessages)传递,对每次消息都进行认证工作,但是不保证每条消息不被泄露;•(3)私有消息(PrivateMessages)传递,不仅对每条消息进行认证,而且对每条消息进行加密。Kerberos在发送密码时就采用私有消息模式。9.2.2Kerberos协议内容•下面是Kerberos的一些重要特性。•在此处的讨论中,客户端指代表用户操作的软件。•在客户端可访问服务器之前,必须从AS获得凭据。•客户端访问服务器时需要的凭据包括服务器票证。服务器票证具有特定的时间参数并只允许特定客户机上的特定用户访问特定服务器。一个用户可能同时拥有数个票证以访问多个服务器。9.2.2Kerberos协议内容•最初的目标是从AS获取TGT(票证授予票证)给予客户端。TGT(不要与服务器票证混淆)类似于许可或许可证。使用TGT,客户端即具有权力从TGS(票证授予服务器)获取服务器票证。TGS可能运行在AS计算机上。•TGT的目的是消除用户在每次希望访问新服务器时必须键入密码的需要。当TGS收到包含TGT的票证的请求时,它使用TGT中的信息验证用户,并且不需要用户重新输入密码。9.2.2Kerberos协议内容•TGT包含用户ID和网络地址,以及TGS的ID。它还包含时间戳,而时间戳提供一些保护来防范黑客。另外,它还包含首要的会话密钥(会话密钥最后分发给客户端和用户要访问的目标服务器)。使用只有AS和TGS知道的密钥加密TGT,从而在TGT从AS发送出去后只有TGS可以对TGT进行解密。•AS并不将TGT直接发送到目标服务器,而将它发送到客户端,在此处保存它,以用于将来的所有票证请求。当该用户试图访问服务器时,TGT被发送到TGS。TGS将TGT解密并将其内容与用户提供的信息进行比较,以确定真实性,然后返回目标服务器的票证给用户。9.2.2Kerberos协议内容•Kerberos验证和授权方案如图7.2所示。9.2.2Kerberos协议内容•(1)第一步是客户端获取TGT。本步骤还验证该用户。TGT的一个简单请求发送到AS。AS具有客户端密码的一个副本,它使用从用户密码导出的密钥加密TGT。•(2)当客户端收到此响应时,系统提示用户输入可解密此响应的密码。只有可信的用户才能输入可解密响应的密码,因此本方案可有效地验证用户。•(3)响应一旦解密,客户端即具有TGT的一个副本。为访问服务器,客户端发送请求(请求中包含目标服务器ID、用户ID和TGT)给TGS来证实用户的真实性。•(4)TGS解密TGT并查看其内容。如果所有内容都已检查出,则TGS生成目标服务器的服务器票证,并用与目标服务器一起共享的密钥加密它。服务器票证再次由TGS使用从用户密码导出的密钥加密,并返回到客户端。9.2.2Kerberos身份验证协议•(5)客户端解密响应以提取服务器票证和会话密钥。然后票证与用户ID一起转发到目标服务器。请注意,票证还包含加密形式的用户ID。•(6)目标服务器解密票证,并将随票证发送的用户ID与在票证中加密的用户ID进行比较。如果它们相符,则用户被授予服务器访问权限。9.2.3Kerberos协议的特点•1.Kerberos协议的优点•(1)Kerberos系统对用户的口令进行加密后作为用户的私钥,避免口令在信道的显式传输,实现较高的安全性;•(2)用户在使用中,仅在登录时要求输入口令,实现对合法用户的透明性;•(3)Kerberos可以较方便地实现用户数的动态改变。9.2.3Kerberos协议的特点•2.Kerberos协议的缺点•(1)Kerberos服务器与用户共享的秘密是用户的口令字,服务器在回应时不验证用户的真实性,假设只有合法用户拥有口令字。如攻击者记录申请回答报文,就易形成代码本攻击。•(2)AS和TGS是集中式管理,容易形成瓶颈,系统的性能和安全也严重依赖于AS和TGS的性能和安全。在AS和TGS前应该有访问控制,以增强AS和TGS的安全。•(3)随用户数增加,密钥管理较复杂。Kerberos拥有每个用户的口令字的散列值,AS与TGS负责户间通信密钥的分配。当N个用户想同时通信时,仍需要N(N-1)/2个密钥。9.3SSL协议•9.3.1SSL协议概述•随着计算机网络技术向整个经济社会各层次延伸,整个社会表现对因特网、企业内部网及企业外部网等使用的更大的依赖性。随着企业间信息交互的不断增加,任何一种网络应用和增值服务的使用程度将取决于所使用网络的信息安全有无保障,网络安全已成为现代计算机网络应用的最大障碍,也是急需解决的难题之一。9.3SSL协议•由于Web上有时要传输重要或敏感的数据,因此Netscape公司在推出Web浏览器首版的同时,提出了安全通信协议(SSL,SecureSocketLayer)。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持。目前,利用公开密钥技术的SSL协议,并已成为因特网上保密通信的工业标准。现行Web浏览器普遍将HTTP和SSL相结合,仅需安装数字证书,或服务器证书就可以激活服务器功能,从而实现安全通信。9.3SSL协