




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章网络安全协议网络安全协议概述IPSec协议SSL协议Kerberos协议6.1网络安全协议概述1.基本概念1.通信协议通信协议是指通信各方关于通信如何进行所达成的一致性规则,即由参与通信的各方按确定的步骤做出一系列通信动作,是定义通信实体之间交换信息的格式及意义的一组规则。2.安全协议安全协议是指通过信息的安全交换来实现某种安全目的所共同约定的逻辑操作规则。简单来说,安全协议指实现某种安全目的的通信协议,又称安全通信协议。因为安全协议通常涉及到密码技术,又称为密码协议。1.基本概念3.网络安全通信协议网络安全通信协议属于安全协议,是指在计算机网络中使用的具有安全功能的通信协议。网络安全通信协议的目标是提供数据的机密性、完整性及通信双方的认证。所以,应具备以下基本要素:(1)保证信息交换的安全,其目的是完成某种安全任务。(2)使用密码技术。密码技术是安全协议保证通信安全所采用的核心技术,如信息交换的机密性、完整性、抗否认性等都依赖于密码技术。(3)具有严密的公共约定的逻辑交换规则。协议的安全交换过程是否严密非常重要,安全协议的分析往往针对这一部分来进行。(4)使用访问控制等安全机制。必要时应使用访问控制机制等安全机制,IPSec协议在进行安全通信时就使用了访问控制机制。2.TCP/IP安全架构由于TCP/IP协议簇在早期设计时是以面向应用为根本目的的,因此未能充分考虑到安全性及协议自身的脆弱性、不完备性,导致网络中存在着许多可能遭受攻击的漏洞。这些潜在的隐患使得攻击者可以利用存在的漏洞来对攻击目标进行恶意的连接、操作,从而可以达到获取重要信息、提升控制权限等非授权目的。如SYNFlood攻击、TCP序列号猜测、IP地址欺骗、TCP会话劫持、路由欺骗、DNS欺骗、ARP欺骗、UDPFlood攻击以及PingofDeath攻击,都是利用TCP/IP协议簇的安全漏洞来实施。2.TCP/IP安全架构2.TCP/IP安全架构由于TCP/IP各层协议提供的功能不同,面向各层提供的安全保证也不同,人们在协议的不同层次设计了相应的安全通信协议,用来保障网络各个层次的安全。目前,在TCP/IP的安全体系结构中,从链路层、网络层、传输层到应用层,已经出现了一系列相应的安全通信协议。安全协议是在原有网络协议的各个层面增加安全机制,或在原有网络层之间加入一个中间层安全协议。6.2IPSec协议1.IP协议的缺陷在TCP/IP协议栈中,网络层最重要的协议就是IP协议,主要用来实现网络中的多个计算机和网络互联设备正常通信。(1)IP数据包的源地址不可信。因为IP协议没有为通信提供良好的数据源认证机制,只简单的采用了IP地址。IP协议不能保障一个数据包的真正的源地址,IP地址假冒成为IP协议的主要安全问题。(2)IP协议没有为数据提供强的完整性保护机制。只是提供了IP头的校验,且校验和可伪造(3)IP协议没有为数据提供任何形式的机密性保护。(4)入侵者可利用IP协议中的源路由选项进行攻击。源路由指定了IP数据包必须经过的路径,可以测试某一特定网络路径的吞吐量,或使IP数据包选择一条更安全可靠的路由。源路由选项使得入侵者能绕开某些网络安全措施而通过对方没有防备的路径攻击目标主机。(5)IP协议还存在重组IP分片包的威胁。IP首部的长度字段限制了包长度最大为65535字节,但对于多个分片包组合起来的长度可能大于65535字节,IP协议并没有相应的检查机制,从而会造成溢出。典型的安全隐患有著名的Ping攻击。2.IPSec协议概述为了改善现有IPv4协议在安全等方面的不足,IETF(InternetEngineeringTaskForce)的下一代网络协议(IPng)工作组于1995年底确定了IPng协议规范,称为IP版本6(IPv6)。IPsec(IPSecurity)产生于IPv6的制定之中,用于提供IP层的安全性。IETF的IPsec工作组于1998年制定了一组基于密码学的安全的开放网络安全协议,总称IP安全体系结构,简称IPsec。IPv6利用新的网络安全体系结构IPsec(InternetProtocolSecurity,Internet协议安全),通过:AH(AuthenticationHeader,验证报头)ESP(EncapsulatingSecurityPayload,封装安全有效负载)2.IPSec协议概述两个安全协议分别为IP协议提供数据完整性和数据保密性,加强了IP协议的安全,克服了原有IPv4协议安全的不足。IPsec在传输层之下,对应用和最终用户透明。不必改变用户或服务器系统上的软件;不必培训用户。在防火墙或路由器中实现时,可以对所有跨越周界的流量实施强安全性。而公司内部或工作组内部不必招致与安全相关处理的负担。同时,实际应用中IPSec可以提供个人安全性。鉴于IPv4的应用仍然很广泛,所以后来在IPSec的制定中也增添了对IPv4的支持。IPSec提供既可用于IPv4也可用于IPv6的安全性机制,是IPv6的一个组成部分,也是IPv4的一个可选扩展协议。3.IPSec的体系结构IPSec是因特网工程任务组(IETF)定义的一种协议套件,由一系列协议组成,验证头(AH)、封装安全载荷(ESP)、Internet安全关联和密钥管理协议ISAKMP的InternetIP安全解释域(DOI)、ISAKMP、Internet密钥交换(IKE)、IP安全文档指南、OAKLEY密钥确定协议等,它们分别发布在RFC2401~RFC2412的相关文档中。图6-3显示了IPSec的体系结构、组件及各组件间的相互关系。3.IPSec的体系结构1.SA(安全关联)一套专门将安全服务/密钥和需要保护的通信数据联系起来的方案。它保证了IPSec数据报封装及提取的正确性,同时将远程通信实体和要求交换密钥的IPSec数据传输联系起来。SA是两个应用IPsec实体(主机、路由器)间的一个单向逻辑连接,决定保护什么、如何保护以及谁来保护通信数据。它规定了用来保护数据包安全的IPsec协议、转换方式、密钥以及密钥的有效存在时间等等。SA是单向的,要么对数据包进行“进入”保护,要么进行“外出”保护。具体采用什么方式,要由三方面的因素决定:第一个是安全参数索引(SPI),该索引存在于IPSec协议头内;第二个是IPSec协议值:AH或ESP;第三个是要向其应用SA的目标地址。通常,SA是以成对的形式存在的,每个朝一个方向。既可人工创建它,亦可采用动态创建方式。SA驻留在安全关联数据库(SAD)内。如果需要一个对等关系,即双向安全交换,则需要两个SA。3.IPSec的体系结构1.SA(安全关联)SA与IPSec系统中实现的两个数据库有关:(1)安全策略数据库(SPD)。该数据库定义了对所有出入业务应采取的安全策略,它指明了为IP数据包提供什么服务以及以什么方式提供。对所有进入或离开IP协议栈的数据包都必须检索SPD数据库。对一个SPD条目来说,它对出入IP数据包处理定义了三种可能选择:丢弃、绕过或应用。例如:可在一个安全网关上制定IPSec策略。对在本地保护的子网与远程网关的子网间通信的所有数据,全部采用DES加密,并用HMAC-MD5进行鉴别;对于需要加密的、发送另一个服务器的所有Web通信均用3DES加密,同时用HMAC-SHA鉴别。每一个SPD条目通过一组IP和更高层协议字段值(称为SA选择器)来定义。选择器确定的SPD条目有:目的IP地址、源地址、UserID(操作系统的用户标识)、数据敏感级别、传输层协议、IPSec协议(AH,ESP,AH/ESP)、源/目的端口和服务类型(TOS)。3.IPSec的体系结构1.SA(安全关联)SA与IPSec系统中实现的两个数据库有关:(2)安全关联数据库(SAD)。SAD为进入和外出包处理维持一个活动的SA列表。SAD定义了SA的参数,包括:序号计数器:一个32位值,用于生成AH或者ESP头中的序号字段;计数器溢出位:一个标志位,表明该序数计数器是否溢出,如果是,将生成一个审计事件,并禁止本SA的分组继续传递;反重放窗口:用于确定一个入站的AH或ESP包是否重放;AH信息:鉴别算法、密钥、密钥生存期及相关参数;ESP信息:加密和鉴别算法、密钥、初始值、密钥生存期及相关参数;SA生存期:一个时间间隔或字节计数,到时间后,一个SA必须用一个新的SA替换或终止,并指示哪个操作发生的指示;IPSec协议模式:隧道、传输;路径MTU:不经分片可传送的分组的最大长度。注:SA管理主要有创建和更新。创建时,先协商SA参数,再用SA更新SAD;更新时,IPSec本身没提供更新密钥的能力,必须先删除现有的SA,再协商建立一个新的SA。3.IPSec的体系结构2.Internet安全关联和密钥管理协议(ISAKMP)ISAKMP是与IPSec密切相关的一个协议,为Inertnet环境下安全协议使用的安全关联和密钥的创建定义了一个标准通用框架,定义了密钥管理表达语言通用规则及要求。3.IPSec的体系结构3.解释域DOIDOI包括一些参数,批准的加密和鉴别算法标识以及运行参数等,是Internet编号分配机构IANA给出的一个命名空间。解释域为使用ISAKMP进行安全关联协商的协议统一分配标识符。使用相同DOI的协议对该DOI下的载荷数据内容做统一的解释。为了通信两端相互交互,IPSec载荷(AH载荷或ESP载荷)中各字段的取值应该对双方都可理解,因此通信双方必须保持对通信信息相同的解释规则,即应持有相同的解释域DOI。IPSec至少给出两个解释域:IPSecDOI、ISAKMPDOI。3.IPSec的体系结构4.IPSec的处理IPSec处理分两类:外出处理和进入处理3.IPSec的体系结构4.IPSec的处理(1)外出处理在外出处理的过程中,数据包从传输层流进IP层。IP层首先取出IP头的有关参数,检索SPD数据库,判断应为这个包提供那些安全服务。输入SPD的是传送报头中的源地址和目的地址的“选择符”。SPD输出的是根据“选择符”查询的策略结果,有可能出现以下几种情况:丢弃这个包。此时包不会得以处理,只是简单地丢掉。绕过安全服务。在这种情况下,这个IP包不作任何处理,按照一个普通的IP包发送出去。应用安全服务。在这种情况下,需要继续进行下面的处理。如果SPD的策略输出中指明该数据包需要安全保护,那么接着就是查询SAD来验证与该连接相关联的SA是否已经建立,查询的结果可能是下面的两种情况之一:如果相应的SA已存在,对SAD的查询就会返回指向该SA的指针;如果查询不到相应的SA,说明该数据包所属的安全通信连接尚未建立,就会调用IKE进行协商,将所需要的SA建立起来。如果所需要的SA已经存在,那么SPD结构中包含指向SA或SA集束的一个指针(具体由策略决定)。如果SPD的查询输出规定必须将IPSec应用于数据包,那么在SA成功创建完成之前,数据包是不被允许传送出去的3.IPSec的体系结构4.IPSec的处理(1)外出处理对于从SAD中查询得到的SA还必须进行处理,处理过程如下:如果SA的软生存期已满,就调用IKE建立一个新的SA。如果SA的硬生存期已满,就将这个SA删除。如果序列号溢出,就调用IKE来协商一个新的SA。SA处理完成后,IPSec的下一步处理是添加适当的AH或ESP报头,开始对数据包进行处理。其中涉及到对负载数据的加密、计算校验等在下面的内容中会给予详细的介绍。SA中包含所有必要的信息,并已排好顺序,使IPSec报头能够按正确的顺序加以构建。在完成IPSec的报头构建后,将生成的数据报传送给原始IP层进行处理,然后进行数据报的发送。3.IPSec的体系结构4.IPSec的处理(2)进入处理进入处理中,在收到IP包后,假如包内根本没有包含IPSec报头,那么IPSec就会查阅SPD,并根据为之提供的安全服务判断该如何对这个包进行处理。因为如果特定通信要求IPSec安全保护,任何不能与IPSec保护的那个通信的SPD定义相匹配的进入包就应该被丢弃。它会用“选择符”字段来检索SPD数据库。策略的输出可能是以下三种情况:丢弃、绕过或应用。如果IP包中包含了IPSec报头,就会由IPSec层对这个包进行处理。IPSec从数据包中提取出SPI、源地址和目的地址组织成<SPI,目的地址,协议>三元组对SAD数据库进行检索(另外还可以加上源地址,具体由实施方案决定)。根据协议值,这个包的处理选择相应的协议(AH协议或者ESP协议)来处理。在协议处理前,先对重放攻击和SA的生存期进行检查,把重放的报文或SA生存期已到的包简单丢弃而不作任何处理。协议载荷处理完成之后,需要查询SPD对载荷进行校验,“选择符”用来作为获取策略的依据。验证过程包括:检查SA中的源和目的地址是否与策略相对应,以及SA保护的传输层协议是否和要求的相符合。IPSec完成了对策略的校验后,会将IPSec报头剥离下来,并将包传递到下一层。4.IPSec的组成1.AH协议AH协议提供无连接的完整性、数据源认证和反重播攻击服务。然而,AH不提供任何保密性服务,不加密所保护的数据包。AH的作用是为IP数据流提供高强度的密码认证,以确保被修改过的数据包可以被检查出来。AH使用消息认证码(MAC)对IP进行认证。由于生成IP数据包的消息摘要需要密钥,所以IPSec的通信双方需要共享一个同样的认证密钥。这个密钥就是由双方的SA信息来提供的(DH算法)。AH只用于保证收到的数据包在传输过程中不被修改,保证由要求发送它的当事人将它发送出去,以及保证它是一个新的非重播的数据包。4.IPSec的组成1.AH协议(1)下一个头(8bit):指示下一个负载的协议类型。(2)载荷长度(8bit):AH的负载长度。(3)保留(8bit):供将来使用。(4)安全参数索引SPI(32bit)。(5)序列号(32bit)。(6)认证数据。4.IPSec的组成2.ESP协议ESP为IP报文以无连接的方式(以包为单位)提供完整性校验、认证和加密服务,同时还可能提供防重放攻击保护。在建立SA时可选择所期望得到的安全服务,建议遵守以下约定:完整性校验和身份认证建议同时使用。使用防重放攻击时建议同时使用完整性校验和身份认证。防重放攻击保护的使用建议由接收端选择。加密独立于其他的安全服务,但建议使用加密时同时使用完整性校验和身份认证。4.IPSec的组成2.ESP协议(1)安全参数索引(SPI)。(2)序列号。(3)载荷数据。(4)填充项。(5)填充项长度。(6)下一个头。(7)认证数据。5.IPSec的工作模式IPSec协议(包括AH和ESP)既可以用来保护一个完整的IP载荷,也可以用来保护某个IP载荷的上层协议。这两个方面的保护分别由IPSec两种不同的“模式”来提供:传输模式和隧道模式。1.传输模式在传输模式中,IP头与上层协议头之间需插入一个特殊的IPSec头。传输模式保护的是IP包的有效载荷或者说保护的是上层协议(如TCP、UDP和ICMP)在通常情况下(如图6-8),传输模式只用于两台主机之间的安全通信。5.IPSec的工作模式2.隧道模式隧道模式为整个IP包提供保护。要保护的整个IP包都需封装到另一个IP数据报中,同时在外部与内部IP头之间插入一个IPSec头。所有原始的或内部包通过这个隧道从IP网的一端传递到另一端,沿途的路由器只检查最外面的IP报头,不检查内部原来的IP报头。由于增加了一个新的IP报头,因此,新IP报文的目的地址可能与原来的不一致。5.IPSec的工作模式3.综合使用ESP和AH单独的SA可以实现AH或ESP协议,但不能同时实现两者。有时候,特定的通信量要同时调用AH和ESP的服务。鉴别与机密性的组合,如图所示。使用两个捆绑的传输SA,内部是ESPSA(没有带认证),外部是AHSA。5.IPSec的工作模式3.综合使用ESP和AH与简单使用带鉴别的ESP相比,优势在于鉴别覆盖了更多的字段,包括了源和目的IP地址;缺点在于使用了两个SA的开支。显示AH和ESP隧道模式下的应用,其中包含了内容的AH传输SA和外部的ESP隧道SA。采用这种加密之前进行认证的方式更可取。6.IPSec的应用目前IPsec最主要的应用就是构建安全的虚拟专用网。虚拟专用网(VirtualPrivateNetwork,VPN)是一条穿过公用网络的安全、稳定的隧道。通过对网络数据的封包和加密传输,在一个公用网络(通常是因特网)建立一个临时的、安全的连接,从而实现在公网上传输私有数据,达到私有网络的安全级别。IPSecVPN的应用场景分为3种:(1)Site-to-Site(站点到站点或者网关到网关):如弯曲评论的3个机构分布在互联网的3个不同的地方,各使用一个商务领航网关相互建立VPN隧道,企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联。(2)End-to-End(端到端或者PC到PC):两个PC之间的通信由两个PC之间的IPSec会话保护,而不是网关。(3)End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护。VPN只是IPSec的一种应用方式,它的目的是为IP提供高安全性特性,VPN则是在实现这种安全特性的方式下产生的解决方案。6.IPSec的应用一个典型的基于IPSec隧道的VPN,如图所示。目前,市场上有很多VPN产品,支持各种安全协议(如PPTP、L2TP、IPSec、SSL),尤其以IPSec协议为基础的VPN产品应用成熟和广泛。对于以IPSec技术实现的VPN产品,应具备以下功能:(1)VNP产品支持ESP和AH格式。(2)IKE提供与安全相关的管理。IKE鉴别IPSec通信事务中的每个对等实体,协商安全策略并处理会话密钥的交换。(3)证书管理。VPN产品要支持用于设备认证的X.509v3的证书系统。6.3SSL协议1.基本概念SSL(SecureSocketLayer)最早是netscape公司设计的用于HTTP协议加密的安全传输协议,SSL工作于TCP协议的传输层(TCP层)和应用程序之间。浏览器与WEB服务器之间在SSL的基础上建立应用层会话,通信协议为HTTPS。作为一个中间层,应用程序只要采用SSL提供的一套SSL套接字API来替换标准的Socket套接字,就可以把程序转换为SSL化的安全网络程序,在传输过程中将由SSL协议实现数据机密性和完整性的保证。SSL协议的当前版本为3.0,当SSL取得大规模成功后,IETF将SSL作了标准化,规范为RFC2246,并将其称为TLS(TransportLayerSecurity)。从技术上讲,TLS1.0与SSL3.0的差别非常微小,SSL由于其历史应用的原因在当前的商业应用程序之中使用得更多一些。1.基本概念目标:SSL被设计用来使用TCP提供一个可靠的端到端安全服务,为两个通讯实体(客户和服务器)之间提供保密性和完整性(身份鉴别)。SSL/TLS的使用:(1)SSL/TLS可以作为基本协议族的一个部分提供,因而对于应用程序是透明的。(2)将SSL/TLS嵌入到专门的软件包中。目前,几乎所有操作平台上的Web浏览器(IE、Netscape)以及流行的Web服务器(IIS、NetscapeEnterpriseServer等)都支持SSL协议。使用该协议便宜且开发成本小1.基本概念SSL/TLS的使用2.SSL的体系结构SSL是使用TCP提供一个可靠的端对端的安全服务。SSL并不是单一的协议,而是由二层协议组成。SSL协议具有两层结构,其底层是SSL记录协议层(SSLRecordProtocolLayer),简称记录层。其高层是SSL握手协议层(SSLHandshakeProtocolLayer),简称握手层。握手层允许通信实体在应用SSL协议传送数据前相互认证身份、协商加密算法、生成密钥等。记录层则封装各种高层协议,具体实施压缩与解压缩、加密与解密、计算与验证消息认证码(MAC)等与安全有关的操作。2.SSL的体系结构SSL协议有两个重要的概念是SSL连接和SSL会话。它们分别被定义如下:(1)SSL会话SSL会话建立客户与服务器之间的一个关联(Association)。每一组客户端与服务器之间就是一个SSLsession。这些会话定义一组以密码为基础的安全性参数,这些参数能够由多个连接来共同使用。SSL会话状态参数:Sessionidentifier(会话标识符):服务器选择的一个任意字节序列,用以标识一个活动的或可激活的会话状态。Peercertificate(对方认证):客户和服务器的X509.v3格式证书。Compressionmethod(压缩算法):加密前进行数据压缩的算法。Mastersecret(主密钥):48位秘密,在client与server之间共享。Cipherspec(密码规格):指握手协议协商的一套加密参数,包括数据加密算法以及计算消息认证码(MAC)所使用杂凑算法(如MD5或SHA-1)。Isresumable:一个标志,指明该会话是否能用于产生一个新连接。2.SSL的体系结构(2)SSL连接SSL连接是一个在传输层协议上的传输媒介,它提供一个适当的服务。连接建立在会话的基础上,每个连接与一个会话相关联,并对应到一个会话。多个连接可以共用一个会话,避免每次有新的连接时,都得重新协调安全性参数的过程,从而大大减少开销。SSL连接状态参数:Serverandclientrandom:server和client为每一个连接所选择的字节序列。ServerwriteMACsecret:一个密钥,用来对server送出的数据进行MAC操作。ClientwriteMACsecret:一个密钥,用来对client送出的数据进行MAC操作。Serverwritekey:用于server进行数据加密,client进行数据解密的对称保密密钥。Clientwitekey:用于client进行数据加密,server进行数据解密的对称保密密钥。Initializationvectors:当数据加密采用CBC方式时,每一个密钥保持一个IV。该字段首先由SSLHandshakeProtocol,以后保留每次最后的密文数据块作为IV。Sequencenumber:每一方为每一个连接的数据发送与接收维护单独的顺序号。当一方发送或接收一个改变的cipherspecmessage时,序号置为0。3.SSL握手层SSL握手层包含SSL握手协议、SSL修改密文规约协议和SSL警告协议。1.修改密文规约协议(SSLChangeCipherSpecProtocol)修改密文规约协议由单个字节组成,告知记录层按照当前密码规范中所指定的方式进行加密和压缩。SSL修改密文规约协议用来发送修改密文规约协议信息。任何时候客户都能请求修改密码参数,比如握手密钥交换。在修改密文规约的通告发出以后,客户方就发出一个握手密钥交换信息(如果可得到的话),鉴定认证信息,服务器则在处理了密钥交换信息之后发送一个修改密文规约信息。此后,新的双方约定的密钥就将一直使用到下次提出修改密钥规约请求为止。3.SSL握手层2.告警协议(SSLAlertProtocol)告警协议将告警信息以及严重程度传递给TLS会话中的主体。每个消息由两个字节组成。告警级别1为告警,告警级别2为致命的告警。若一方检测到一个错误,就向另一方发送消息。若是致命的,双方关闭连接。致命告警代码:unexpected_message:收到意外消息bad_record_mac:收到不正确的mac.decomression_failure:解压缩函数受到不适当的输入(例如不能解压缩或解压缩成大于最多允许的长度)handshake_failure:指定的选项可用时,发送者不能协商可接受的安全参数集合。其余告警代码:Close_notify:通知接收方不再通过该连接发送任何消息No_certificate:没有适当的证书可用。Unsupported_certificate:收到证书类型不支持3.SSL握手层3.SSL握手协议Handshake协议用来让客户端及服务器确认彼此的身份。协助双方选择连接时所使用的加密算法、MAC算法、及相关密钥。Handshake由一些客户与服务器交换的消息所构成,每一个消息都含有以下三个字段:类型(Type),1个字节:表示消息的类型,总共有十种。长度(Length),3个字节:消息的位组长度。内容(Content),大于或等于1个字节,与此消息有关的参数。3.SSL握手层3.SSL握手层客户端与服务器产生一条新连接所要进行的初始交换过程包括四个阶段,即建立安全能力、服务器认证与密钥交换、客户端认证与密钥交换、完成。第一阶段:建立起安全协商客户发送一个client_hello消息,包括以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法列表客户等待服务器的server_hello消息服务器发送server_hello消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户建议的密码算法中挑出一套、服务器从客户建议的压缩方法中挑出一个3.SSL握手层第二阶段:服务器认证和密钥交换服务器发送自己的证书,消息包含一个X.509证书,或者一条证书链(除了匿名DH之外的密钥交换方法都需要)服务器发送server_key_exchange消息可选的,有些情况下可以不需要。只有当服务器的证书没有包含必需的数据的时候才发送此消息消息包含签名,被签名的内容包括两个随机数以及服务器参数服务器发送certificate_request消息非匿名server可以向客户请求一个证书包含证书类型和Cas服务器发送server_hello_done,然后等待应答3.SSL握手层第三阶段:客户端认证和密钥交换客户收到server_done消息后,它根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型最后,客户发送一个certificate_verify消息,其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名3.SSL握手层第四阶段:结束客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中然后,客户用新的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。服务器同样发送change_cipher_spec消息和finished消息。握手过程完成,客户和服务器可以交换应用层数据。4.SSL记录层SSL记录层为SSL连接提供两种服务(1)保密性。握手协议定义一个共享的保密密钥用于对SSL有效载荷加密。(2)消息完整性。握手协议定义一个共享的保密密钥用于形成MAC。4.SSL记录层SSL从应用层取得的数据需要重定格式(分片、可选的压缩、应用MAC、加密等)后才能传给传输层进行发送。同样,当SSL协议从传输层接收到数据后需要对其进行解密等操作后才能交给上层的应用层。这个工作是由SSL记录协议完成的。(1)fragmentation:上层消息的数据被分片成214(16384)字节大小的块,或者更小(2)compression(可选):必须是无损压缩,如果数据增加的话,则增加部分的长度不超过1024字节(3)MAC计算:使用共享的密钥MAC_write_secrethash(MAC_write_secret||pad_2||hash(MAC_write_secret||pad_1||seq_num||SSLCompressed.type||SSLCompressed.length||SSLCompressed.fragment))其中:MAC_write_secret:
共享的保密密钥;hash:密码散列函数(MD5或SHA-1);pad_1:0x36重复48次(MD5);或40次(SHA-1);pad_2:0x5C重复48次(MD5);或40次(SHA-1);seq_num:
该消息的序列号;SSLCompressed.type:更高层协议用于处理本分段;SSLCompressed.length:压缩分段的长度;SSLCompressed.fragment:压缩的分段(无压缩时为明文段)4.SSL记录层SSL从应用层取得的数据需要重定格式(分片、可选的压缩、应用MAC、加密等)后才能传给传输层进行发送。同样,当SSL协议从传输层接收到数据后需要对其进行解密等操作后才能交给上层的应用层。这个工作是由SSL记录协议完成的。(1)fragmentation:上层消息的数据被分片成214(16384)字节大小的块,或者更小(2)compression(可选):必须是无损压缩,如果数据增加的话,则增加部分的长度不超过1024字节(3)MAC计算:使用共享的密钥MAC_write_secrethash(MAC_write_secret||pad_2||hash(MAC_write_secret||pad_1||seq_num||SSLCompressed.type||SSLCompressed.length||SSLCompressed.fragment))4.SSL记录层(4)加密采用CBC,算法由cipherspec指定数据长度不超过214+2048字节,包括填充值IV,初始协商指定,以后,前后记录连接起来说明:如果是流密码算法,则不需要padding4.SSL记录层(5)加SSL记录协议头SSL记录协议最后的步骤是准备一个记录协议报头,包含以下字段:ContentType:8位;上层协议类型:Majorversion;Minnorversion:16位,主次版本;压缩长度:16位;加密后数据的长度,不超过214+2048字节;EncryptedDatafragment:密文数据。5.SSL使用中的问题当IE通过点击图像或者在帧中连接到一个服务器时,IE只检查SSL证书是否是由可信的根服务商提供的,而没有验证证书有效期以及其他内容。另外,在同一个IE会话中,一旦成功地建立了SSL连接,对于新的SSL连接,IE将不再对证书进行任何的检查。对于当前这个页面而言,其实不危险,问题在于IE会把这个证书缓存起来,并标记为可信任的,一直到浏览器的会话结束。这意味着,假如说,IE客户在访问一个HTTP页面时,如果该页面被插入一个包含指向有问题的SSLserver的HTTPS对象(比如说一个image)的话,IE不会警告遇到一个非法的证书,只要这个证书确实是被可信CA签名的。一个恶意web站点可以使用一个伪造的证书冒充是另外的可信站点来与IE客户端建立连接,欺骗用户。6.4Kerberos协议1.Kerberos协议概述在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够认证对服务的请求。工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。Kerberos是一种网络认证协议。Kerberos是美国麻省理工学院(MIT)开发的一种身份鉴别服务。Kerberos提供了一个集中式的认证服务器结构。公开发布的Kerberos版本包括版本4和版本5。2.Kerberos设计思路Kerberos系统应满足的要求:(1)安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。(2)可靠。Kerberos应高度可靠,并且应借助于一个分布式服务器体系结构,使得一个系统能够备份另一个系统。(3)透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。(4)可伸缩。系统应能够支持大数量的客户和服务器。2.Kerberos设计思路1.一个简单鉴别对话(1)C→AS:IDC||PC||IDv(2)AS→C:Ticket(3)C→V:IDC||TicketTicket=EKv[IDC,ADC,IDv]IDC:用户C的标识PC:用户口令IDv:服务器标识ADC:用户网络地址2.Kerberos设计思路1.一个简单鉴别对话上述协议的问题:(1)口令明文传送(2)票据的有效性(多次使用)(3)访问多个服务器则需多次申请票据(即口令多次使用)解决办法:(1)票据重用(ticketreusable)。(2)引入票据许可服务器(TGS-ticket-grantingserver) 用于向用户分发服务器的访问票据; 认证服务器AS并不直接向客户发放访问应用服务器的票据,而是由TGS服务器来向客户发放。2.Kerberos设计思路2.改进后的假想的会话上述协议的问题:(1)C→AS:IDC||IDtgs(2)AS→C:EKC[Tickettgs](3)C→TGS:IDC||IDv||Tickettgs(4)TGS→C:TicketV(5)C→V:IDC||TicketVTickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]TicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]用户先向AS请求一张票据许可票(Tickettgs),用户工作站中的客户模块将保存这张票据。每当用户需要访问新的服务时,客户便使用这张能鉴别自己的票据向TGS发出请求。TGS则发回一张针对请求的特定服务的许可票据。AS发回的票据是加密的,加密密钥是由用户口令导出的。当相应到达客户端时,客户端提示用户输入口令,产生密钥,若口令正确,票据就能正确恢复。2.Kerberos设计思路2.改进后的假想的会话上述协议的问题:仍然存在的问题:(1)票据许可票据(Tickettgs)的生存期。若太短,用户总被要求输入口令。若太长,敌手就有更多重放的机会。可以窃听网络,获得票据许可票据,等待合法用户退出登录,伪造合法用户的地址。必须能证明使用票据的人就是申请票据的人。(2)需要服务器向客户鉴别。敌手可能破坏系统配置,使发往服务器的报文转送到另一个位置,假的服务器来接收来自用户的任何消息。解决方案:使用会话密钥。让AS以安全的方式向客户和TGS各自提供会话密钥,然后客户在与TGS交互过程中,用此会话密钥处理,以证明自己的身份。2.Kerberos设计思路3.Kerberosv4认证认证服务交换:获得TGT(1)C→AS:IDc||IDtgs||TS1(2)AS→C:E(Kc,[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs])Tickettgs=E(Ktgs,[Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])Message(1):Client请求ticket-grantingticketIDC:告诉AS本client端的用户标识;
IDtgs:告诉AS用户请求访问TGS;
TS1:让AS验证client端的时钟是与AS的时钟同步的;2.Kerberos设计思路3.Kerberosv4认证Message(2):AS返回ticket-grantingticketEKC:基于用户口令的加密,使得AS和client可以验证口令,并保护该信息。
Kc,tgs:sessionkey的副本,由AS产生,client可用于在AS与client之间信息的安全交换,而不必共用一个永久的key。
IDtgs:确认这个ticket是为TGS制作的。
TS2:告诉client该ticket签发的时间。
Lifetime2: 告诉client该ticket的有效期;
Tickettgs: client用来访问TGS的ticket。2.Kerberos设计思路3.Kerberosv4认证Message(2):AS返回ticket-grantingticket票据许可服务交换:获得服务许可票据(3)C→TGS:IDv||Tickettgs||Authenticatorc(4)TGS→C:E(Kc,tgs,[Kc,v||IDv||TS4||Ticketv])Tickettgs=E(Ktgs,[Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])Ticketv=E(Kv,[Kc,v||IDC||ADC||IDv||TS4||Lifetime4])Authenticatorc=E(Kc,tgs,[IDC||ADC||TS3])2.Kerberos设计思路3.Kerberosv4认证Message(3):client请求service-grantingticketIDv:告诉TGS用户要访问服务器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年春季第6周教师业务学习《有效教学的三种途径》资料参考
- 集团公司财务部工作总结范文(9篇)
- 小学四年级数学三位数乘两位数水平测试试题带答案
- 二年级数学几千几百数加减整百数水平监控试题
- 运动广播稿(集合15篇)
- 货运公司年终总结
- 采购个人年终总结
- 酒店交叉培训课件
- 人教河南 九年级 下册 语文 第六单元《 出师表》习题课 课件
- 人教陕西 九年级 下册 语文 第四单元《 驱遣我们的想象》习题课课件
- 2025中国远洋海运集团校园招聘1484人笔试参考题库附带答案详解
- 2025年江苏无锡市江阴新国联创业投资有限公司招聘笔试参考题库附带答案详解
- 2025年安徽商贸职业技术学院单招职业技能考试题库一套
- 2025年皖西卫生职业学院单招职业技能测试题库审定版
- 2025年河南应用技术职业学院单招职业技能测试题库审定版
- 2025年河南经贸职业学院单招职业适应性测试题库带答案
- unctad -全球投资趋势监测 第 48 期 Global Investment Trends Monitor,No. 48
- 初中物理命题双向细目表(人教版)
- 专业技术人员年度(任期)考核登记表
- 腰椎小关节综合征.ppt
- 浅谈血液常规检查的风险控制
评论
0/150
提交评论