基于Sniffer的SSL与IPSec加密分析引言VPN技术作为一项重要的安全技术在信息安全领域已发挥着举足轻重的作用,在这里我们主要分析了SSL和IPSecVPN技术,首先阐述了它们的基本原理,随后我们通过Sniffer分析软件进行抓包分析,使我们对SSL和IPSec有了更深层次的了解。关键字VPNSnifferSSLIPSec随着网络技术的深入发展,信息安全日益受起人们的重视。VPN(虚拟专用网)技术作为网络安全的一门重要技术已经变的越来越重要,在网络的规划设计中占有重要地位。虚拟专用网(VPN)被定义为通过一个公用网络(通常是Internet)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。我们从VPN的工作层次来看,大致可以分为链路层VPN(PPTP、L2TP)、网络层VPN(IPSecVPNGRE隧道)、SSLVPN、MPLSVPN等。VPN技术主要用到了隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。为了更好的研究VPN,我们决定使用Sniffer抓包软件对SSL与IPSecVPN技术做一些分析。Sniffer是一款用于网络分析的软件,它的功能强大,已成为每个网络管理员的必备工具之一。为了能搞清楚VPN的数据交互流程。我们有必要对VPN的基本原理先做相应了解。我们先来看看SSLVPN。SSL(Securesocketlayer)称为安全套接层协议,最初由Netscape公司开发的,被广泛应用于Internet上的身份认证以及Web服务器的用户端浏览器之间的安全数据通信。SSL协议工作在TCP/IP协议与HTTP等应用层协议之间,对基于TCP/IP协议的应用服务是完全透明的。它提供的安全服务有客户和服务器双向身份验证(也可以进行服务器单方面的验证),数据加密保护和数据完整性保护三种安全性服务。SSL协议的主要特性包括保密性、身份认证和可靠性等。从协议组成上来看,SSL协议包括记录协议以及建立在记录协议之上的握手协议、警报协议、更改加密说明协议和应用数据协议等对会话和管理提供支持的子协议。我们再来看看IPSecVPN,IPSec(IPSecurity)是一套比较完整成体系的VPN技术,它规定了一系列的协议标准,它工作于TCP/IP的网络层。IPSec协议通过包封装技术,能够利用Internet可路由的地址,封装内部网络的IP地址,实现异地网络的互通。IPSecVPN主要包括传输模式(Transportmode)和隧道模式(Tunnelmode)两种模式,IPSec把IP通信过程分为协商和数据交互两个阶段。这两个阶段分别由IKE(InternetKeyExchange)、AH(AuthenticationHeader)、ESP(EncapsulatingSecurityPayload)协议来规定。在了解了SSL和IPSec的基本原理后,下面我们就对这两种VPN技术通过Sniffer抓包软件进行一些分析研究。我们首先来看SSL,为了能抓到SSL的包,我们可以用浏览器去访问使用https协议的网站,同时设置好Sniffer的过滤器进行抓包分析。在这里,我们以访问https://为例来演示:Google网站(SSL)Sniffer软件抓包解码界面实验环境:本地主机IP地址:112.3.59.116(客户端)远程主机(Google服务器)IP地址:74.125.71.99(服务器)整个通信过程由客户端发起,我们知道SSL协议是基于传输层的TCP协议的,所以它首先经过三次握手与服务器建立TCP连接,一旦连接建立成功,就进入SSL握手和数据传输阶段。下面我们就结合原理对数据交互流程做一些分析:(1)在1~3帧中,客户端与服务器先通过三次握手建立TCP连接,由于使用的是https协议,所以传输层的端口号为443。(2)第4帧开始,就进入SSL的握手阶段。客户端向服务器发送ClientHello消息,其中包含了客户端所支持的各种算法。从解码中我们可以看出主要包括RSA和DH两大类算法,由它们产生多种组合。同时产生了一个随机数,这个随机数随后将应用于各种密钥的推导,并可以防止重放攻击。(3)第5帧为对方发过来ACK确认帧,第6帧服务器发送ServerHello消息,其中包含了服务器选中的算法TLS_RSA_WITH_RC4_128_SHA,同时发来另一个随机数,这个随机数的功能与客户端发送的随机数功能相同。(4)第7帧服务器返回Certificate消息,其中包含了服务器的证书,以便客户端认证服务器的身份,并从中获取其公钥。同时服务器告诉客户端ServerHelloDown,指明本阶段的消息已经发送完成。(5)第8帧为本地客户端发送给服务器的ACK确认。第9帧开始客户端向服务器发送ClientKeyExchange消息,其中包含了客户端生成的预主密钥,并使用服务器的公钥进行加密处理。(6)此时,客户端和服务器各自以预主密钥和随机数作为输入,在本地计算所需要的4个密钥参数(其中包括2个加密密钥和2个MAC密钥),由于此过程并没有通过网络进行传输,所以也就没有在数据帧中体现出来。(7)在第9帧中客户端还向服务器发送ChangeCipherSpec消息,以通告启用协商好的各项参数。(8)第10帧服务器向客户端发送ChangeCipherSpec消息,第11帧客户端发来确认消息,协商阶段结束。(9)从第12帧到第24帧,都为服务器和客户端之间交互应用数据信息。它们都使用协商好的参数进行安全处理。(10)由于TCP协议是面向连接的,最后的几帧为拆除TCP连接,由客户端发出FIN位为置1的TCP段,对方发来ACK确认帧以及FIN位为置1的TCP段,客户端再发出ACK帧进行确认,至此TCP连接释放,传输结束。好了,再了解了SSL的传输流程后,我们再来看看IPSec,IPSec在当今的信息安全领域中已占有举足轻重的地位,并且IPSec这项安全技术现已集成到IPv6网络中,所以我们有必要对其做一些研究。为了研究的方便,我们可以构建了一个C/S模式的实验环境,具体实验环境如下:客户端WindowsXP操作系统IP地址192.168.68.1/24服务器端Windows2003(R2)操作系统IP地址192.168.68.2/24在服务器端装有FTP服务,采用用户名和密码进行登录验证。如图所示:FTP登录界面Sniffer软件抓包解码界面这次实验我们主要通过在客户端与服务器上定义新的IP安全策略,采用IPSec的Tunnel模式。通过客户端登录到FTP服务器读取文件来观察加密数据流的交互过程。从全局来看,所有的数据包都是经过ESP(封装安全载荷)加密的,我们可以来观察一下IPSec数据包结构。以太网帧头IP包头AHESP对于FTP协议,由于是基于TCP协议,所以建立连接时必须要进行三次握手,但是由于已经建立了IPSec安全隧道,我们此时已经无法发现三次握手的具体交互过程,因为网络层及以上的内容已经全部经过ESP加密封装(在隧道模式下),这样数据传输的安全性就很大程度上提高了。此外我们还可以从IP数据包首部字段发现AH协议的协议号为51。下面我们就针对AH和ESP协议做一些分析:AH(认证首部),AH提供三类安全服务:数据完整性、数据源认证、以及抗重放攻击。我们可以通过Sniffer软件的解码来看看AH数据包的结构。如图所示:078151631下一个首部长度保留(0)SPI序列号认证数据AH报文格式“下一个首部”字段指明了随后一个首部的类型,在这里我们可以发现字段值为ESP(0x32),说明下面的首部为ESP封装。“长度”字段指明了AH首部的长度,在这里我们的长度字段值为24bit“SPI”是IKE协商SA时指定的安全参数索引。“序列号”是报文的编号,可以防止重放攻击。我们可以发现AH的序列号从4333开始,每次递增1。“认证数据”即消息验证码,用以进行数据源认证并进行完整性校验。SA用三元组标识,即目标IP地址,SPI和协议。在发送报文时要把所用SA(安全关联)的SPI加入;接受报文时要提取上述3个信息以便在SAD(安全关联数据库)中查找还原该报文的SA。我们知道在应用AH时,可以有传输模式和隧道模式两种方式。在这里我们应用的是隧道模式,在这种模式下,加了一个新的IP头,AH头被插在新IP头和原IP头之间,如图所示:新IP头AH头原IP头高层协议头数据下面我们再来看一下封装安全载荷ESPESP提供五类安全服务:数据完整性,数据源认证、抗重放攻击、机密性以及有限的传输流机密性,其协议号是50,通过Sniffer解码,我们可以得到ESP报文格式:01516232431SPI序列号载荷(变长)填充填充长度下一个首部认证数据(变长)ESP报文格式ESP首部包含“SPI”和“序列号”两个字段,其含义及用途与AH相同。载荷字段则是受保护的数据区,应用模式不同,数据内容也不同。ESP尾部包括了“填充”和“填充长度”字段。在对数据进行加密处理时需要分组对齐。如果数据没有达到对齐要求,就要进行填充,并用填充长度指示填充的数据量。从我们的对数据包的解码来看,这里数据量已经达到要求,所以并没有设置填充和填充长度字段的值。“下一个首部”字段指明了受保护数据区中的第一个首部字段,由于我们的ESP下方已没有首部,所以该字段值也被设置为空。使用隧道模式的ESP报文封装如下图所示:新IP头ESP头IP头高层协议头数据ESP尾最后,经过数据包的四个交互过程,TCP连接释放。至此,传输结束。综上所述。我们通过Sniffer软件较为详尽地分析了SSL和IPSec的数据交互流程。从中我们可以发现Sniffer的确是一款功能强大的网络分析软件。对于我们研究各种网络协议起着重要的指导意义。通过本次实验,也使我们对于SSL和IPSecVPN技术有了新的了解。参考文献:《网络安全协议——原理、结构与应用》高等教育出版社百度百科VPNIPSecSSL互联网