使用Sniffer软件透视TCP/IP协议的安全
1 基于TCP/IP协议网络安全问题
TCP/IP协议是当前Internet(广域网)和以太网(局域网)普遍使用的基本的通信协议簇,TCP/IP协议不是一个协议,而是由一系列协议(包括TCP和IP协议)组成的协议簇,正是因为有了TCP/IP协议,Internet才得以迅速发展成为世界上最大的、开放的计算机通信网络。
在使用Windows操作系统的主机中,系统会自动为主机中的网卡绑定TCP/IP协议,简单配置一下该协议,主机就可以使用该网卡与其它主机进行通信了。
TCP/IP协议是美国国防部(DoD)基于战争的需要,在寻求把分散的计算机互联成网络的过程,随着第一个计算机网络ARPA网的出现而出现的。由于TCP/IP协议最初只是在一个小范围内应用,缺少安全性方面的考虑,随着计算机网络的普及,TCP/IP逐渐成为一种开放的网络标准协议,其安全性缺陷也逐渐显现,主要表现在以下几个方面:
1) TCP/IP协议使用明文传输数据,不对数据进行加密处理。如果传输的数据被截获,就会有泄密的风险。
2) TCP/IP协议没有认证机制。发送者无法确认接受方是不是合法的接收者,同样,接收者也无法确认数据的发送方是不是合法的发送者。
3) TCP/IP协议没有数据完整性检测机制。即使要传输的数据在传输的过程中被第三方篡改过,接收者也无从知晓。
2 Sniffer软件的数据捕获与解码
Sniffer是一款可以对计算机网络上发生的不同的数据传送进行跟踪、分析从而对网络行为进行统计、管理的软件。Sniffer提供了丰富的图形工具,可以非常直观地呈现当前网络的连接情况。
Sniffer软件还可以对发生在本网络内的数据传送进行捕获,并进而在网络模型的数据链路层、网络层、传输层等各层进行解码分析,从而找出数据传送的规律或问题。从这一点上看,Sniffer就像是一个外科医生,它可以深入到网络通信的内部,获取网络通信的数据。
当前所广泛使用的以太网(局域网)或者是Internet(广域网)都是使用TCP/IP协议进行工作的,TCP/IP协议是明文传输的,没有采取加密措施,这种明文传输的数据一旦被拦截、捕获,就会发生信息泄露,给正常的数据通信造成威胁。该文就是利用Sniffer软件可以对网络内的数据传送进行捕获这一功能,获取网络内的数据通信的一些样本,再对这些样本进行分析,从而更加清楚地看出TCP/IP协议缺乏安全机制这一特点。
3 TCP/IP数据通信实例的Sniffer分析
在使用TCP/IP协议的网络中,可以进行多种类型的数据通信服务,其中Telnet是一种应用较广泛的服务,它是一个通过创建虚拟终端提供连接到远程主机从而可以实现终端仿真的TCP/IP应用。Telnet远程登录服务通常需要通过用户名和口令进行认证,其实现过程一般分为以下几个步骤:
1) 本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名。
2) 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包。
3) 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果。
4) 最后,本地终端撤消与远程主机之间的连接。
本文就以Telnet服务为实例,使用SnifferPro 4.70,抓取其通信过程中的数据,获取其用以建立TCP连接的用户和密码以及在连接建立完成后所发送的通信数据。
首先,确定好用以进行Telnet远程连接的主机其Telnet服务已经开启。在本实例中,远程主机IP地址为192.168.0.106,本地主机IP地址为192.168.0.100,在捕获数据前,可以先进行Telnet远程登录测试,以确保实验可以正常进行。
在确定远程主机可以正常Telnet登录后,打开Sniffer Pro软件,点击工具栏上的开始捕获按钮,Sniffer就开始对网络内的数据通信进行捕获数据了。此时,打开本地主机的命令提示符窗口,在命令提示符下输入telnet 192.168.0.106,回车后输入远程登录的用户名和administrator,密码345678,就可以Telnet到远程主机。
Telnet登录成功后,就可以操作远程主机了,比如,要查看远程主机当前的文件目录,可以在命令提示符下输入dir命令,该命令返回远程主机当前目录的文件列表。
从以上捕获结果可以看出,使用TCP/IP协议进行数据通信的Telnet服务,从初始TCP连接的建立到用户认证,以及通过用户认证后在远程主机上所执行的命令,都可以被Sniffer捕获并分析出来。这种数据通信过程如果被截获,用户名和密码就会被第三方所掌握,远程主机上的资料也会泄露,由此会带来很大的安全问题。
4 基于TCP/IP协议的数据通信安全
通过对网络内数据通信的Sniffer捕获并解码,可以清楚地看出,TCP/IP协议并没有提供数据通信的安全机制,从这一点上说,TCP/IP协议是存在安全缺陷的。但这并不能否认TCP/IP在网络通信中的作用,正是有了TCP/IP协议,才有了今天Internet的蓬勃发展,其在网络通信中基础性作用和地位至今无法憾动,更没有哪一种协议能够取代TCP/IP协议。
人们要做的是在TCP/IP协议的基础上,增加安全性的措施,对TCP/IP加以弥补和完善。从TCP/IP网络模型上看,可以从应用层、传输层或者网际层入手,增加安全性的措施和机制,提高TCP/IP网络的通信安全。
从应用层来看,可以对要传输的数据加密,这样加密后的数据,即使被第三方所捕获,也无从获知其内容,避免数据泄露。在应用层上还可以对要传数据进行哈希运算,以防止要传输的数据被篡改。
SSL(Secure Sockets Layer安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
参考文献:
[1] Tanen baum A.S,潘爱民译.计算机网络第4版[M].北京:清华大学出版社,2005.
[2] 张保江.组网技术与配置[M].北京:清华大学出版社,2013.