第17章-网络安全_第1页
第17章-网络安全_第2页
第17章-网络安全_第3页
第17章-网络安全_第4页
第17章-网络安全_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络安全本章学习目标掌握虚拟专用网络(VPN)技术的基本原理理解VPN的关键性技术——隧道技术掌握PPP、PPTP、L2F、L2TP等隧道协议熟悉IPSec协议,掌握AH协议与ESP协议的结构特点掌握常用的安全技术,包括加密技术、密钥管理、认证技术等理解网络地址转换(NAT)技术的基本原理与类型17.1虚拟专用网VPN技术虚拟专用网(VPN)指的是依靠ISP(Internet服务提供商)和其他NSP(网络服务提供商),在公用网络中建立专用的数据通信网络的技术。从定义上看,VPN首先是虚拟的,也就是说VPN并不是某个公司专有的封闭线路或者是租用某个网络服务商提供的封闭线路。但VPN同时又具有专线的数据传输功能,虽然VPN通讯建立在公共互联网络的基础上,但是用户在使用VPN时感觉如同在使用专用网络进行通信,所以称为虚拟专用网络。VPN的模型由以下部分组成:(1)VPN客户:将VPN连接初始化为VPN服务器的计算机。(2)隧道:连接中封装数据的部分。(3)VPN连接:连接中加密数据的部分。(4)隧道协议:用来管理隧道及压缩专用数据的协议。包括PPTP和L2TP隧道协议。(5)隧道数据:数据经常在专用点对点的链接间发送。(6)传输互联网络:压缩数据所通过的共享的或公共的网络,通常是IP网络。基于建立的对象,VPN可分为企业内部VPN和企业外部VPN:(1)内部VPN:在敏感部门的网络和企业主网络之间建立的VPN连接,这种VPN在通过验证机制提供安全性的同时,还保证了连通性。该验证机制是在管理网络连接的VPN服务器上实现的。(2)企业外部VPN:企业外部VPN连接的是公司网络和商业伙伴,供应商或者客户所属的外部网络。基于建立通信的方法,VPN又可分为路由器到路由器VPN和远程访问VPN:(1)路由器到路由器VPN:客户端与一个路由器相连,而路由器再和VPN服务器相连。这种连接只有在客户端和服务器互相验证时才能建立。(2)远程访问VPN:VPN客户端不需要使用路由器就可以和远程访问VPN服务器直接建立一个连接,远程访问VPN服务器验证该客户端。客户端被验证后,才被允许访问网络以及远程访问服务器管理的资源。17.1虚拟专用网VPN技术17.2隧道技术隧道技术对于构建VPN来说,是一个关键性技术。它是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或数据报。它的基本过程是:在源局域网与公网的接口处,将这些协议的数据帧或数据报重新封装在新的报头中发送。新的报头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据报在隧道的两个端点之间通过公共互联网络进行路由。在目的局域网与公网的接口处将数据解封装,取出负载,并转发到最终目的地。注意隧道技术是指包括数据封装、传输和解包在内的全过程。被封装的数据报在公共互联网络上传递时所经过的逻辑路径称为“隧道”。17.2.1隧道类型1.自愿隧道(Voluntarytunnel)用户或客户端计算机可以通过发送VPN请求配置和创建一条自愿隧道。此时,用户端计算机作为隧道客户方成为隧道的一个端点。自愿隧道需要有一条IP连接(通过局域网或拨号线路),客户端计算机必须安装适当的隧道协议。使用拨号方式时,客户端必须在建立隧道之前创建与公共互联网络的拨号连接。2.强制隧道(Compulsorytunnel)由支持VPN的拨号接入服务器配置和创建一条强制隧道。此时,用户端的计算机不作为隧道端点,而是由位于客户计算机和隧道服务器之间的远程接入服务器作为隧道客户端,成为隧道的一个端点。自愿隧道技术为每个客户创建独立的隧道,而强制隧道和隧道服务器之间建立的隧道可以被多个拨号客户共享,不必为每个客户建立一条新的隧道。因此,一条隧道中可能会传递多个客户的数据信息,只有在最后一个隧道用户断开连接之后才终止整条隧道。17.2.2隧道协议为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。OSI模型划分,隧道技术可以分别以第2层或第3层隧道协议为基础:第2层隧道协议对应OSI模型中的数据链路层,使用帧作为数据交换单位。PPTP、L2TP和L2F(第2层转发)都属于第2层隧道协议,都是将数据封装在点对点协议(PPP)帧中通过互联网络发送。对于像PPTP和L2TP这样的第2层隧道协议,创建隧道的过程类似于在双方之间建立会话;隧道的两个端点必须同意创建隧道并协商隧道各种配置变量,如地址分配、加密或压缩等参数。绝大多数情况下,通过隧道传输的数据都使用基于数据报的协议发送。第3层隧道协议对应OSI模型中的网络层,使用包作为数据交换单位。IPSec隧道模式属于第3层隧道协议,是将IP包封装在附加的IP报头中通过IP网络传送。第3层隧道技术通常不对隧道进行维护,而第2层隧道协议(PPTP和L2TP)必须包括对隧道的创建、维护和终止。1.点对点协议(PPP)

PPP为基于点对点连接的,多协议自寻址数据包的传输提供了一个标准方法。PPP最初设计是为两个对等结构之间的IP流量的传输提供一种封装协议。在TCP/IP协议栈中它是一种关于同步调制连接的数据链路层(OSI模式中的第2层)协议。PPP主要由以下几部分组成:(1)封装:PPP封装提供了不同网络层协议同时通过统一链路的多路技术,可以封装多协议数据报。(2)链路控制协议(LCP):PPP提供的链路控制协议LCP用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测looped-back链路和其他普通的配置错误,以及终止链路。(3)网络控制协议(NCP):一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。17.2.2隧道协议17.2.2隧道协议为了建立点对点链路通信,PPP链路的每一端必须首先发送LCP包以便设定和测试数据链路。在链路建立之后,LCP可选设备才可以被认证。然后,PPP必须发送NCP包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在连路上发送了。链路将保持通信设定不变,直到外在的LCP和NCP关闭链路,或者是发生一些外部事件(如休止状态的定时器期满或者网络管理员干涉)的时候。

PPP协议结构:(1)Flag:表示帧的起始或结束,由二进制序列01111110构成。(2)Address:包括二进制序列11111111,标准广播地址(注意:PPP不分配个人栈地址)。(3)Control:二进制序列00000011,要求用户数据传输采用无序帧。(4)Protocol:识别帧的Information字段封装的协议。(5)Information:0或更多八位字节,包含Protocol字段中指定的协议数据报。(6)FCS:帧校验序列(FCS)字段,通常为16位。8162440bitsVariable16-32bitsFlagAddressControlProtocolInformationFCS2.点对点隧道协议(

PointtoPointTunnelingProtocol,PPTP)

PPTP是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过装有点对点协议的系统,安全访问公司网络,并能拨号连入本地ISP,通过Internet安全链接到公司网络。

PPTP协议将控制包与数据包分开。控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE(通用路由协议封装)V2协议中。

PPTP是点对点协议(PPP)的扩展,增强了PPP的身份验证、压缩和加密机制。PPTP协议允许对IP或IPX数据流进行加密,然后封装在IP包头中通过企业IP网络或公共互联网络发送。PPTP与路由和远程访问服务程序一起安装,通过使用路由和远程访问向导,可以为远程访问和请求拨号路由连接启用PPTP端口。17.2.2隧道协议PPTP提供了对专用数据封装和加密的VPN服务:(1)封装:使用通用路由封装头文件和IP头数据包装PPP帧。在IP头文件中是与VPN客户机和VPN服务器对应的源和目标IP地址。下图显示了PPP帧的PPTP封装:

(2)加密:通过使用从MS-CHAP或EAP-TLS身份验证过程中生成的密匙,PPTP帧以MPPE方式进行加密。17.2.2隧道协议17.2.2隧道协议PPTP协议结构:Length:该PPTP信息的八位总长,包括整个PPTP头。PPTPMessageType:信息类型。可能值有:控制信息、管理信息。MagicCookie:以连续的0x1A2B3C4D进行发送,目的是确保接收端与TCP数据流间的正确同步运行。ControlMessageType:可能值包括开始-控制-链接-请求,开始-控制-链接-答复,停止-控制-链接-请求,停止-控制-链接-答复,回音-请求,回音-答复。1632bitLengthPPTPMessageTypeMagicCookieControlMessageTypeReserved0ProtocolVersionReserved1FramingCapabilityBearingCapabilityMaximumChannelsFirmwareRevisionHostName(64Octets)VendorString(64Octets)CallManagement:可能值包括导出-呼叫-请求(Outgoing-Call-Request),导出-呼叫-答复(Outgoing-Call-Reply),导入-呼叫-请求(Incoming-Call-Request),导入-呼叫-答复(Incoming-Call-Reply),导入-呼叫-链接(Incoming-Call-Connected),呼叫-清除-请求(Call-Clear-Request),呼叫-断开链接-通告(Call-Disconnect-Notify),广域网-错误-通告(WAN-Error-Notify)。PPPSessionControl:设置-链路-信息(Set-Link-Info)。Reserved0&1:必须设置为0ProtocolVersion:PPTP版本号FramingCapabilities:指出帧类型,该信息发送方可以提供:异步帧支持(AsynchronousFramingSupported);同步帧支持(SynchronousFramingSupported)。BearerCapabilities:指出承载性能,该信息发送方可以提供:模拟访问支持(AnalogAccessSupported);数字访问支持(Digitalaccesssupported)。MaximumChannels:该PAC可以支持的个人PPP会话总数。FirmwareRevision:若由PAC出发,则包括发出PAC时的固件修订本编号;若由PNS出发,则包括PNSPPTP驱动版本。HostName:包括发行的PAC或PNS的DNS名称。VendorName:包括特定供应商字串,指当请求是由PNS提出时,使用的PAC类型或PNS软件类型。17.2.2隧道协议17.2.2隧道协议3.第二层转发协议(

Level2Forwardingprotocol,L2F)

L2F用于建立跨越公共网络(如Internet)的安全隧道,将ISPPOP连接到企业内部网关。这个隧道建立了一个用户与企业客户网络间的虚拟点对点连接。

L2F允许高层协议的链路层隧道技术。使用这样的隧道,使得把原始拨号服务器位置和拨号协议连接终止与提供的网络访问位置分离成为可能。L2F允许在L2F中封装PPP/SLIP包。ISPNAS与家庭网关都需要共同了解封装协议,这样才能在Internet上成功地传输或接收SLIP/PPP包。L2F协议结构:1111111111111162432bitFKPS00000000CVersionProtocolSequenceMultiplexIDClientIDLengthOffsetKeyVersion:用于创建数据包的L2F软件的主修版本。Protocol:协议字段,规定L2F数据包中传送的协议。Sequence:当L2F头部的S位设置为1时的当前序列号。MultiplexID:数据包MultiplexID用于识别一个隧道中的特殊链接。ClientID:ClientID(CLID)支持解除复用隧道中的终点。Length:整个数据包的长度大小(八位形式),包括头、所有字段以及有效负载。Offset:该字段规定通过L2F协议头的字节数,协议头是有效负载数据起始位置。如果L2F头部的F位设置为1时,就会有该字段出现。Key:Key字段出现在将K位设置在L2F协议头的情况。这属于认证过程。Checksum:数据包的校验和。Checksum字段出现在L2F协议头中的C位设置为1的情况。17.2.2隧道协议4.第二层隧道协议(Layer2TunnelingProtocol,L2TP)

L2TP是国际标准隧道协议,它结合了PPTP协议以及L2F协议的优点,能以隧道方式使PPP包通过各种网络协议(如ATM和帧中继等)。但L2TP没有任何加密措施,更多的是和IPSec协议结合使用,提供隧道验证。

PPP定义了多协议跨越第二层点对点链接的一个封装机制。特别地,用户通过使用众多技术之一(如ISDN、ADSL等)获得第二层连接到网络访问服务器(NAS),然后在此连接上运行PPP。在这样的配置中,第二层终端点和PPP会话终点处于相同的物理设备中(如:NAS)。L2TP扩展了PPP模型,允许第二层和PPP终点处于不同的由包交换网络相互连接的设备来。通过L2TP,用户在第二层连接到一个访问集中器(如调制解调器池、ADSLDSLAM等),然后这个集中器将单独从PPP帧隧道到NAS。这样,可以把PPP包的实际处理过程与L2连接的终点分离开来。对于这样的分离,其好处是L2连接可以在一个(本地)电路集中器上终止,然后通过共享网络如帧中继电路或因特网扩展逻辑PPP会话,而不用在NAS上终止。

17.2.2隧道协议L2TP使用两种信息类型:控制信息和数据信息。控制信息用于隧道和呼叫的建立、维持和清除;数据信息用于封装隧道所携带的PPP帧。控制信息利用L2TP中的一个可靠控制通道来确保发送,当发生包丢失时,不转发数据信息。L2TP依赖于加密服务的网际协议安全(IPSec),基于IPSec的L2TP提供专用数据的封装和加密的主要VPN服务:(1)封装:基于IPSec的L2TP数据包的封装由两层组成:①L2TP封装:将PPP框架(IP数据包、IPX数据包或NetBEUI框架)包装成L2TP。②IPSec封装:使用IPSec封装安全措施负载量(ESP)头文件和尾文件、提供消息完整性和身份验证的IPSec身份验证尾文件及最后的IP头数据包装L2TP结果消息。在IP头文件中有与VPN客户机和VPN服务器对应的源和目标IP地址。17.2.2隧道协议17.2.2隧道协议下图显示了PPP数据包的L2TP和IPSec封装:(2)加密:通过使用在IPSec身份验证过程中生成的密匙,使用IPSec加密机制加密L2TP消息。L2TP命令头:

121632bitTLXXSXOPXXXXVERLengthTunnelIDSessionIDNs(opt)Nr(opt)OffsetSize(opt)OffsetPad(opt)T:T位表示信息类型。若是数据信息,该值为0;若是控制信息,该值为1。L:当设置该字段时,说明Length字段存在,表示接收数据包的总长。对于控制信息,必须设置该值。X:X位为将来扩张预留使用。在导出信息中所有预留位被设置为0,导入信息中该值忽略。S:如果设置S位,那么Nr字段和Ns字段都存在。对于控制信息,S位必须设置。当设置该字段时,表示在有效负载信息中存在OffsetSize字段。对于控制信息,该字段值设为0。P:如果Priority(P)位值为1,表示该数据信息在其本地排队和传输中将会得到优先处理。Ver:Ver位的值总为002。它表示一个版本1L2TP信息。Length:信息总长,包括头、信息类型AVP以及另外的与特定控制信息类型相关的AVPs。17.2.2隧道协议TunnelID:识别控制信息应用的Tunnel。如果对等结构还没有接收到分配的TunnelID,那么TunnelID必须设置为0。一旦接收到分配的TunnelID,所有更远的数据包必须和TunnelID一起被发送。CallID:识别控制信息应用的Tunnel中的用户会话。如果控制信息在Tunnel中不应用单用户会话(例如,一个Stop-Control-Connection-Notification信息),CallID必须设置为0。Nr:期望在下一个控制信息中接收到的序列号。Ns:数据或控制信息的序列号。OffsetSize&Pad:该字段规定通过L2TP协议头的字节数,协议头是有效负载数据起始位置。OffsetPadding中的实际数据并没有定义。如果Offset字段当前存在,那么L2TP头OffsetPadding的最后八位字节后结束。17.2.2隧道协议PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同:(1)PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP)、帧中继永久虚拟电路(PVCs)、X.25虚拟电路(VCs)或ATMVCs网络上使用。(2)PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。(3)L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。(4)L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSec共同使用时,可以由IPSec提供隧道验证,不需在第2层协议上验证隧道。17.2.2隧道协议17.3.1IPSec协议IPSec协议是一种由IETF设计的端到端的、确保基于IP通讯的数据安全性的机制。它支持对数据加密,为网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,同时确保数据的完整性。其基本工作原理是:发送方在数据传输前对数据实施加密,在整个传输过程中,报文都是以密文方式传输,直到数据到达目的节点,才由接收端对其进行解密。IPSec对数据的加密以数据包而不是整个数据流为单位,这不仅更灵活,也有助于进一步提高IP数据包的安全性。通过提供强有力的加密保护,IPSec可以有效防范网络攻击,保证专用数据在公共网络环境下的安全性。

IPSec给出了应用于IP层上网络数据安全的一整套体系结构,它包括网络安全协议AH(AuthenticationHeader)协议和ESP(EncapsulatingSecurityPayload)协议、密钥管理协议IKE(InternetKeyExchange)协议等。IPSec规定了如何选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源验证、数据加密等网络安全服务。可以把IPSec想像成是位于TCP/IP协议栈的下层协议,该层由每台计算机上的安全策略和发送、接收方协商的安全关联(securityassociation,SA)进行控制。安全策略由一套过滤机制和关联的安全行为组成。如果一个数据包的IP地址、协议和端口号都满足一个过滤机制,那么这个数据包将要遵守关联的安全行为。协商安全关联(NegotiatedSecurityAssociation):第一个满足过滤机制的数据包将会引发发送和接收方对安全关联进行协商。ISAKMP/OAKLEY是这种协商采用的标准协议。在一个ISAKMP/OAKLEY交换过程中,两台机器对验证和数据安全方式达成一致,进行相互验证,然后生成一个用于随后的数据加密的共享密钥。17.3.1IPSec协议验证报头(AH):通过一个位于IP报头和传输报头之间的验证报头可以提供IP负载数据的完整性和数据验证。验证报头包括验证数据和一个序列号,共同用来验证发送方身份,确保数据在传输过程中没有被改动,防止受到第三方的攻击。IPSec验证报头不提供数据加密;信息将以明文方式发送。封装安全负载(ESP):为了保证数据的保密性并防止数据被第三方窃取,封装安全负载提供了一种对IP负载进行加密的机制。另外,ESP还可以提供数据验证和数据完整性服务。IPSec是第三层的协议标准,支持IP网络上数据的安全传输。除了对IP数据流的加密机制进行了规定之外,IPSec还制定了隧道模式的数据包格式,一般被称作IPSec隧道模式。一个IPSec隧道由一个隧道客户和隧道服务器组成,两端都配置使用IPSec隧道技术,采用协商加密机制。17.3.1IPSec协议IPSec实现在专用或公共IP网络上的安全传输,IPSec隧道模式使用安全方式封装和加密整个IP包,然后将加密的负载再次封装在明文IP包头内,通过网络发送到隧道服务器端。隧道服务器对收到的数据报进行处理,在去除明文IP包头,对内容进行解密之后,获得最初的负载IP包。负载IP包在经过正常处理之后被路由到位于目标网络的目的地。17.3.1IPSec协议IPSec隧道模式具有以下功能和局限:(1)只能支持IP数据流。(2)工作在IP栈(IPstack)的底层,因此,应用程序和高层协议可以继承IPSec的行为。(3)由一个安全策略(一整套过滤机制)进行控制。安全策略按照优先级的先后顺序创建可供使用的加密和隧道机制以及验证方式。当需要建立通信时,双方机器执行相互验证,然后协商使用何种加密方式。此后的所有数据流都将使用双方协商的加密机制进行加密,然后封装在隧道报头内。17.3.1IPSec协议

17.3.2IPSec协议类型

IPSec协议提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。IPSec协议组包含AH协议、ESP协议和IKE协议。AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供可靠性保证。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。

17.3.2IPSec协议类型

1.验证报头(AuthenticationHeader,AH)协议结构

AH协议为IP通信提供数据源认证、数据完整性和反重播保证,但是不能提供数据的保密性(即没有加密数据)传输。AH包含一个带密钥的Hash散列,此Hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效,从而提供了完整性保护。下图为AH在IP格式中的位置以及AH字段的结构:8位8位16位下一报头有效载荷长度保留安全参数索引(SPI)序号认证数据(可变)AH报头各字段含义:(1)下一个报头:规定了下一个要传输IP数据报的类型。例如,下一个报头值等于“6”,表示紧接其后的是TCP报头。下一个报头字段的值用一个8位的二进制值表示。(2)有效载荷长度:用一个8位的二进制值表示AH报头长度。(3)保留字段:该字段的值为0,它被保留下来留待将来使用。该字段长度为8位。(4)安全参数索引(SecurityParametersIndex,SPI):这是一个为数据报识别安全关联的32位伪随机值。SPI值0被保留来表明没有安全关联存在。(5)序列号:从1开始的32位单增序列号,不允许重复,惟一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。(6)认证数据:包含进行完整性校验和。接收端接收到分组后,首先执行Hash计算,再与发送端填充的该字段值比较,若两者相等,表示数据完整,反之,表示在传输过程中数据已经被修改,则丢弃该分组。

17.3.2IPSec协议类型

增加AH报头需要以下几个步骤:

1.AH报头加到有效载荷上,但认证数据字段要置为0。

2.对AH报头和有效载荷进行散列,以便产生认证数据。

3.认证数据被插入到AH报头中。

4.加入到IP报头,但要把协议字段值改变为51。2.封装安全有效载荷(ESP)协议结构数据报在传输的过程中需要经过多个路由器,只验证在网络中传输的数据报的可靠性和完整性还是不够的。因为数据报的内容对于它所途径的中间设备来说是可见的。这就需要另一种类型的IP安全报头,即封装安全有效载荷(ESP)。尽管ESP提供的安全特性和AH类似,但AH不提供保密,它只提供完整性和报文身份验证。ESP为IP数据包提供完整性检查、认证和加密,加密使发送计算机通过修改数据报的内容,使之变成中间设备不能理解的一种格式,可防止篡改。一般ESP不对整个数据包加密,而是只加密IP包的有效载荷部分,不包括IP头。但在端对端的隧道通信中,ESP需要对整个数据包加密。

17.3.2IPSec协议类型

当实现ESP时,IP数据报中增添了三个附加组件,它们是ESP报头,ESP报尾(Tailer)和ESP验证(Auth)。在IP数据报中,ESP紧随IP报头之后,ESP报尾和ESP验证在数据组件后面。下图为ESP在IP数据报格式中的位置,以及ESP字段的结构:

17.3.2IPSec协议类型

ESP报头由两个32位字组成,分别是SecurityParametersIndex(SPI,安全参数索引)和SequenceNumber(序列号)。这同AH报头的SPI、SN是相同的。而且,如同AH一样,ESP提供了HMAC完整性检查,只不过检查字段置于整个分组的最后。这是因为不需要缓存分组就可以计算出整个分组的散列值,然后直接填充到HMAC(HashedMessageAuthenticationCode,散列的信息认证码)域,提高了传输速率。ESP过程的步骤如下:(1)有效载荷增加ESP报尾。(2)有效载荷和报尾要进行加密。(3)增加ESP报头。(4)ESP报头、有效载荷以及ESP报尾都用来生成身份验证数据。(5)身份验证数据加到ESP报尾的末端。(6)加上IP报头,但要把协议字段值改变为50。

17.3.2IPSec协议类型

3.ESP隧道模式和AH隧道模式

IPSec支持两种工作模式:一种为传输模式,在这种模式下,IPSec报头直接插在IP报头的后面,同时IP报头的协议域指明了插放的IPSec报头类型。另一种模式是隧道模式,在隧道模式下,整个原数据包被当作有效载荷封装了起来,外面附上新的IP报头。其中内部IP报头(原IP报头)指定最终的信源和信宿地址,而外部IP报头(新IP报头)中包含的常常是做中间处理的安全网关地址。与传输模式不同,在隧道模式中,原IP地址被当作有效载荷的一部分受到IPSec的安全保护,另外,通过对数据加密,还可以将数据包目的地址隐藏起来,这样更有助于保护端对端隧道通信中数据的安全性。

17.3.2IPSec协议类型

在传输模式下,AH在每一个数据包的IP层与上层之间插入一个身份验证报头,并且在这个数据包的IP分组头的协议字段用数字51指明了紧跟在IP报头后面的是AH协议。而在隧道模式下,AH头在新的IP报头后面,然后才是原始的IP分组。AH在TCP/IP协议体系中的位置如下:AH头格式如下:AH对包括IP报头的整个分组进行完整性检查,但是对于IP报头随着路由器转发而改变的值如TTL(TimetoLive)和协议域等不在完整性检查范围之内。IP报头AH头TCP/UDP报头数据新的IP报头AH头原始IP报头TCP/UDP报头数据

17.3.2IPSec协议类型

在传输模式下,ESP在每一个数据包的IP层与上层之间插入一个身份验证报头,并且在这个数据包的IP分组头的协议域用数字“50”指明了紧跟在IP报头后面的是ESP协议。而在隧道模式下,ESP头在新的IP报头后面,然后才是原始的IP分组。ESP在TCP/IP协议体系中的位置:ESP头格式:与AH不同的是,ESP认证完整性检查部分(HMAC)包括ESP报头、传输层协议报头,应用数据和但不包括IP报头,因此ESP不能保证IP报头不被篡改。ESP加密部分包括上层传输协议信息、数据。新的IP报头ESP头原始IP报头TCP/UDP报头数据认证(HMAC)IP报头ESP头TCP/UDP报头数据认证(HMAC)

17.3.2IPSec协议类型

17.4.1安全技术—加密技术VPN常常在不安全的Internet中通信,通信的内容可能涉及企业的机密数据,因此需要建立强大的安全功能以确保企业内部网络不受到外来攻击,确保通过公共网络传送的企业数据的安全。VPN中的安全技术通常由加密技术、密钥管理和认证技术组成。认证和加密是信息安全的两大部分,加密是为了不让传送的信息泄漏出去,防止如窃听等的第三方的被动攻击;而认证是防止第三方对传送的文件进行主动攻击,如篡改、伪造。可见,加密和认证是两个独立的过程。对需要发送的消息加密,这样没有经过授权的用户是不能提取真正的内容的。我们把发送方要发送的数据看成是明文,明文通过加密后就叫密文。相应的,有加密算法和解密算法,分别是使用在加密过程中的规则、解密过程的规则。而加密算法和解密算法都是在一组密钥的控制下进行的,称之为加密密钥和解密密钥。

1.对称加密技术下图显示了对称加密技术的基本思想:

最著名的对称加密算法是数据加密标准(DES),其基本思想是二进制的明文分成每64bits一组,再用一个64bits密钥(其中有56bits参与加密运算,其余八位是用于错误检测的)对分组的明文序列进行16轮代换和换位加密,形成密文。DES算法简单,除了顺序输入密钥以外,其加密和解密的过程完全相同(解密过程是加密的逆过程),这样非常利于算法的标准化和通用化。17.4.1安全技术—加密技术右图为DES加密流程:对称加密算法虽然加密的速度很快,但是必须通过双方共享密钥才能实现加解密。所以,如何安全的共享密钥,就引发了密钥的安全管理问题。还有一个问题,如果不只是两个通信实体之间进行加密解密的安全保护,而是两个以上的实体,这就需要多个密钥。为每两个实体分配一个密钥。比如,三个实体就该有三个密钥,四个实体就需要6个密钥。可以看出,在多个实体之间进行交流就产生了多个密钥的麻烦。正是由于对称加密算法的这些缺陷,人们进一步开发了以下的公钥体制。17.4.1安全技术—加密技术3.公钥加密技术公钥加密算法摒弃了对称加密中的基本工具:置换和代换,使用数学函数来设计密钥算法。它是以非对称的思想来设计的,使用了两个密钥:公钥和私钥,不需要额外的传送密钥,这对密钥的保密、分配都有深刻的作用,而这两方面是对称加密算法中最为头痛的问题。同时也给认证带来了深刻的影响。公钥体制的加解密算法,每个用户都有一对密钥:一个是用户加密的公钥,一个是用来解密的私钥。公钥是对外公开的,私钥是用户自己拥有的。公钥体制的一个非常重要的特点就是知道加密算法和公钥,是不能推断出用户的私钥的。而想要对密文进行解密,必须使用用户的私钥才可以解密。17.4.1安全技术—加密技术公钥体制的加密解密:接收者拥有一对用来加密的公钥和解密的私钥。他把公钥放在一个公开的寄存器或者文件中。私钥为自己保密。当发送者想要给接收者发送加密的信息时,找到接收者的公钥,用这个公钥来加密文件,发送给接收者。虽然可能途中密文会遭受密码分析员的窃取并分析,但是没有接收者的私钥是无法打开密文的。接收者接收到加密的文件,用自己保密的私钥解密,得到明文。下图为公钥体制下的加密过程:17.4.1安全技术—加密技术公钥体制还可以使用在数字认证中:发送方拥有自己的一对密钥,她/他用自己的私钥来对自己要发送的消息进行加密,得到的密文被接收方接收到后,接收方想要对这个消息验证是不是那个发送者发送的,就利用公布的那个发送者的公钥来进行解密。其实,发送者用自己的私钥对消息进行加密后得到的密文就等于对该明文的签字,明确该明文就是他/她发送的。即使有密码分析员在传送的过程中截取到该密文,并解密看到明文的内容,想要篡改其中的内容都是不行的,因为密码分析员没有该发送者的私钥,是无法再次加密并冒充发送者发送给接收者的。下图为公钥体制下的认证:17.4.1安全技术—加密技术在计算机网络通讯中,密钥的产生、分配、存储、保护都是非常重要的,它直接影响到系统的保密性。密钥管理主要分为单钥体制的密钥管理和公钥体制的密钥管理。1.单钥体制的密钥管理单钥体制加密算法中通信双方必须共享一个密钥,该密钥如何安全的传送不为攻击者获取,并且如何适当的更新,这些问题都是密钥分配所面临的问题。简单来说,单钥体制的密钥管理主要是共享密钥的安全性是否足够高。共享密钥的方法主要有以下几种:

1.通信双方A和B,密钥由A用物理方法发送给B。

2.密钥由第三方用物理方法发送给通信的A和B。

3.在A或者B事先已经有一密钥的情况下,有一方要更新密钥,要用原有的密钥加密新的密钥发送给另外一方。

4.通信双方A和B,同时与第三方C有秘密信道,C为两者选取并分别发送密钥给通信的A和B。17.4.2安全技术—密钥管理前两种方法是人工手段来共享密钥。在网络的链路加密的情况下这种人工手段是可行的,但在端对端的加密方式中人工方法就不可靠。第三种方法在网络的链路加密和网络的端对端的情况下都是可行的,但如果攻击者获取一个密钥之后整个系统就无任何保护而言。第四种方法被广泛地使用在端对端的加密方式中,第三方是一个专门分配密钥的密钥分配中心。单钥体制的密钥管理是基于共同保守秘密来实现的。采用单钥加密技术的贸易双方必须要保证采用的是相同的密钥,要保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。这样,对称密钥的管理和分发工作将变成一件潜在危险的和繁琐的过程。通过公开密钥加密技术实现对称密钥的管理使相应的管理变得简单和更加安全,同时还解决了纯对称密钥模式中存在的可靠性问题和鉴别问题。17.4.2安全技术—密钥管理2.公钥体制的密钥管理公钥体制的密钥管理主要是公钥的分配问题。公钥分配有以下几种方法:(1)公开发布。用户将自己的公钥公开发布给其他人。许多用户就是将自己的公钥附在消息上,发布到因特网邮件列表中的。当然,这种方法有一个很大的弊端就是任何人都可以制造自己的公钥公开发布,可信度不够。(2)公用目录表。这是指建立一个公钥的公钥动态目录表,建立和维护的工作是由一个可信的机构来完成。这个机构的管理员为用户和用户的公钥建立一个动态的数据库―目录表。这种方法要比上面的公开发布要安全得多。但这种方法也有缺陷,因为管理员的密钥是否得到妥善的保护就是一个最大的隐患。如果攻击者获取了管理员的密钥,自行建立一个新的目录表,这样的危害程度就很可怕了。17.4.2安全技术—密钥管理(3)公钥管理机构。公钥管理机构要比公用目录表要先进一点,它也是一个为用户动态建立目录表的机构,但同时它让每个用户都可靠地知道管理机构的公钥,当然,管理机构本身知道自己的密钥。这等于用户和管理机构之间有认证的色彩。但它的缺点也很明显。因为每个用户和其他用户的通信都要经过这个公钥管理机构,公钥管理机构总会存在一个瓶颈,而且,攻击者可以利用这一点来干扰公钥管理机构的服务。(4)公钥证书。用户通过公钥证书(数字证书)相互之间交换自己的公钥而无需和公钥管理机构进行联系。这个公钥证书是由证书管理机构(CA)―认证中心来为用户建立的,其中就有用户的密钥和与密钥相匹配的公钥以及用户的身份和时戳,这些数据通过认证中心的密钥签字后就形成了用户的数字证书。用户可以用自己的公钥通过数字证书发送给其他的用户,接收方可以用认证中心提供的公钥来对该证书加以验证。因为只有认证中心的公钥才能解读证书,从而接收方也就知道了这是由认证中心发放的数字证书,同时也获取了发送方的身份和发送方的公钥。17.4.2安全技术—密钥管理认证技术防止数据的伪造和被篡改,主要包括数字签名、身份识别和信息的完整性校验等技术。1.消息认证消息认证用于保证信息的完整性与不可否认性,是使消息接收者能够检验收到的消息是否真实的方法。这种认证只在相应通信的双方之间进行,而不允许第三者进行上述认证。检验内容应包括:(1)证实报文的源和宿。(2)报文内容是否曾受到偶然的或有意的篡改。(3)报文的序号和时间栏。消息认证的工作原理:通信双方A和B之间建立共享密钥k。A在向B发送消息m时,用k将m转换为密文c,并将m和c一同发给B。B收到报文后,用k和m计算密文,如果与c相同,证明消息确实发自知道密钥k的人,并且中途未被修改。17.4.2安全技术—认证技术2.身份认证根据被认证方赖以证明身份的秘密的不同,身份认证可以分为两大类:基于秘密信息的身份认证方法和基于物理安全性的身份认证方法。基于秘密信息的身份认证方法:1)口令核对这种方法有如下缺点:其安全性仅仅基于用户口令的保密性,而用户口令一般较短且容易猜测,因此这种方案不能抵御口令猜测攻击;另外,攻击者可能窃听通信信道或进行网络窥探(sniffing),口令的明文传输使得攻击者只要能在口令传输过程中获得用户口令,系统就会被攻破。2)单向核对如果通信的双方只需要一方被另一方鉴别身份,这样的认证过程就是一种单向认证。与密钥分发相结合的单向认证主要有两类方案:一类采用对称密钥加密体制,需要一个可信赖的第三方——通常称为KDC(密钥分发中心)或AS(认证服务器),由这个第三方来实现通信双方的身份认证和密钥分发;另一类采用非对称密钥加密体制,无需第三方参与。17.4.2安全技术—认证技术3)相互认证在双向认证过程中,通信双方需要互相认证鉴别各自的身份,然后交换会话密钥。为了防止会话密钥的伪造和泄漏,会话密钥应该用密文形式来传送。而且,实时性对防止信息的重放攻击很重要,实现实时性的一种方法是对交换的信息加上序列号,只有正确的序列号才表示接收的信息是没有重放的。但这增加了用户记录序列号的麻烦。保证信息的实时性的常用方法是时戳和询问-应答。前者不适用在面向连接的环境,后者不适应在无连接的应用环境。基于物理安全性的身份认证方法是依赖于用户特有的某些生物学信息或用户持有的硬件:(1)基于生物学信息的方案包括基于指纹识别的身份认证、基于声音识别的身份认证以及近来流行的基于虹膜识别的身份认证等。(2)基于智能卡的身份认证机制在认证时认证方要求一个硬件——智能卡(智能卡中存有秘密信息,通常是一个随机数),只有持卡人才能被认证。这样可以有效地防止口令猜测,。17.4.2安全技术—认证技术3.数字签名数字签名技术有两种形式:对整个文档签字,或对文档的摘要(压缩的版本)签字。1)对整个文档签字公钥加密可以用来对文档签字。在数字签名中,公钥和私钥的作用不同。私钥用来进行加密,而公钥用来进行解密。发送者使用其私钥对报文加密(签字),另一方面,接收者使用发送者的公钥进行解密2)对摘要签名如果报文很短,那么公钥加密就很有效。如果报文很长,那么用公钥对整个报文加密就非常低效。解决这种问题的方法是让发送者对文档的摘要签名,而不是对整个文档签字。发送者生成文档的一个微型版本,即报文摘要,用发送者的私钥进行加密(签名);加密后的摘要附加在原始报文后面,并发送给接收者;接收者收到原始报文和已加密的摘要并检查这个微型版本上的签名。17.4.2安全技术—认证技术17.5.1网络地址转换(NAT)网络地址转换(NAT)是为了解决IP地址短缺而提出的一种方案。NAT可以将多个内部地址映射成少数几个甚至一个合法的公网IP地址,让内部网中使用私有IP地址的设备通过“伪IP”访问Internet等外部资源,从而更好地解决地址空间枯竭的问题。同时,NAT对内部IP地址进行隐藏也增强了网络的安全性。NAT将网络分成了内部网和外部Internet两部分,位于边界处的NAT路由器,在发送和接收数据报时执行着地址转换的操作。来自Internet的每一个传入数据报的目标地址(这个NAT路由器的公共IP地址)都被NAT转换成适当的专用地址。所有从内部网传出的数据报源地址也被转换成惟一有效的公共IP地址,而不是内部计算机的实际网络地址。就这样,内部资源被从Internet上封装起来。NAT是用地址转换表维护网络地址条目。一个内部计算机发数据报给外部服务器,在数据报到达NAT路由器之后,发送到下一跳之前,NAT取出被指定为数据报源IP地址的那个主机地址,并将这个数据作为一个条目插入到NAT转换表中。另外,NAT用公共IP地址取代那个源IP地址。就这样,所有传出数据报的IP地址都被记录下来,实际的源IP地址被封装起来。所有的传入数据报被直接引导到NAT的公共IP地址,这是因为该地址是惟一可用的目标IP地址。如果没有相应的NAT表条目,也就不可能将一个传入数据报传输到正确的本地计算机中,因为所有的传入数据报包含同样的目标IP地址,即NAT路由器的公共IP地址。外部服务器通过运行域命名服务(DomainNamingService,DNS)来解决这个难题。DNS用它自己的域名来标识内部计算机的IP地址。当外部DNS请求IP信息时,位于NAT上的DNS盒将内部计算机的名称转换为正确的IP地址,然后在把NAT的公共IP地址作为对外部DNS查询的响应发送出去之前,把IP地址输入到NAT转换表中。当传入数据报到达NAT时,它的源IP被识别出来,并被链接到发送的DNS响应上。于是,NAT就知道对于从某个外部服务器收到的数据报来说,某一特定内部计算机的网络地址就是正确的目标地址。使用这种方法,传入数据报被传送到正确的本地地址,条目被插入到NAT表中,并且内部网络地址在探测DNS查询(ProbingDNSQuery)中被封装起来。17.5网络地址转换(NAT)17.5.2NAT技术的类型1.静态NAT

静态NAT是将内部地址和外部地址进行一对一的转换,即将内部网络中的某个地址永久地映射成外部网络中的某个合法地址。在这种地址转换类型中,网络地址不是在表中维护的,相反,每个传入或传出的数据报都被分配一个新的IP地址。由于采用静态NAT的主机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论