赵宁
【摘要】 随着经济与科技的不断进步与迅猛发展,网络应用越来越广泛,随之而来的安全问题不断涌现,数据包捕获是网络安全的重要措施,文章讲述了数据包捕获的机制与特点,对SIP协议及其结构特点做了简要的概述,并对SIP通信的数据包捕获技术做了一系列研究,设计了数据包的捕获及其还原步骤。
【关键字】 数据包 捕获SIP 安全
一、数据包捕获
1.1数据包捕获的机制
数据包捕获就是对数据包的完整收集,系统搜集某一网络设备所接收的数据包,不论此数据包发送至哪个端口或地址。收集数据包以后,再进行还原以及审计等处理,发送到上一层进而对其实行应用处理。可以通过专用的数据采集卡对网络实行相应采集,也可根据以太网卡的混杂模式通过其广播特性或者交换机监测口对数据报文进行监听。
数据包的捕获通常有3个阶段:首先,设置网卡为“混杂”的工作模式;其次,捕获链路层的数据帧;最后,提取数据包的首部,便于分析和处理。
1.2数据包捕获的意义
网络不仅仅为人们带来越来越多的方便与快捷,也给人们带来诸如网络病毒、机密泄漏、黑客入侵等安全问题,信息安全成为我们关注的一大焦点。数据包捕获是信息保护的一种重要方法,因此对其技术的研究有着重要意义。
1.3特点
数据包捕获是关乎网络与财产安全的一项重要措施,该技术有较高的要求,因此有以下特点:1. 响应快。对于许多安全应用,在数据报文上需要很快的响应速度,以便于迅速捕获以及即时反应,同时不允许误判或丢包。2. 适应能力强。数据包捕获针对流经此网络的所有数据报文,其类型和源目的地址都不统一,即数据包的种类繁多且来源复杂,因此该技术对各种数据包应有较强的适应能力。3. 直接由上层处理。数据包的处理能够不经操作系统协议栈,直接通过上一层的应用实行处理。4. 不需严格校验。大部分数据报的处理是通过应用程序操作的,在该应用中能够实行部分校验;数据报在某些网卡中的硬件芯片上进行了固化的校验,因此在捕获过程中可以略去一些严格校验。
二、SIP通信
2.1 SIP协议所支持的功能
SIP作为信令协议,可提供多媒体通信的5项功能。
2.2 SIP网络系统
SIP协议的网络系统结构包括用户代理(UA)和网络服务器(NS)。应用代理是SIP的终端,用于和用户之间的交互,可发送呼叫请求和响应呼叫请求。
网络服务器主要解析地址以及定位用户,分为3种:代理服务器,用于路由选择,将用户请求及响应发送至下一跳;重定向服务器,用于地址解析,类似于DNS,把目的地址映射成为0个或者多个新地址;注册服务器,接收来自终端的注册请求,并记录其地址。因此,基于SIP协议,有直接呼叫、代理服务以及重定向服务等3种通信方式。
2.3 SIP协议的特点
SIP协议参照了其它的Internet标准,有其简练、兼容以及可扩展的作风。SIP协议是基于文本,其词法、语法都较为简单;SIP在会话请求时,同时实行媒体协商,因此建立呼叫所需时间大大缩短;SIP只要对头域做简单地扩展便可进行补充、智能等业务;SIP协议能够分布式多播。
三、SIP通信数据包捕获
数据包的捕获系统包含硬件与软件,硬件主要是对数据包进行捕获以及过滤,软件主要对数据包进行分析与处理。因此捕获系统需满足实时、灵活、扩展方便和数据包无遗漏等性能。
3.1 SIP通信捕获思想
SIP通信捕获包含通信消息及其媒体数据2个部分的捕获。通信消息的捕获能够获得呼叫方和被呼叫方的通信状态——通信步骤与通信状态,通信媒体参数的信息;依据通信的状态判断获取数据的开始或停止,依据参数信息筛选及还原双方数据。
1. 捕获流程
一个完整SIP通信应包含的消息有INVITE,180Ringing,200OK,ACK,BYE,200OK等,双方的媒体参数信息能够在INVITE及其响应的200OK获得,由此可设计以下捕获流程:INVITE消息获取,从SDP的o字段获取源IP地址,并将该SDP部分的媒体参数作为邀请端(A)的媒体信息;从INVITE的起始行获得被邀请端(B)的IP地址。等待180Ringing,若B至A的180Ringing消息得以捕获,系统会将该信息显现出。等待200OK响应消息的捕获,若判断为B到A的INVITE响应,将该SDP的通信媒体信息获取并作为B的媒体信息。等待A至B的ACK消息的捕获。ACK不经过代理、重定向服务器,而是直接通过双方接收、发送,因此能够通过ACK的源地址和目的地址判断会话双方是即将通信双方与否。根据ACK确定双方IP地址,捕获双向数据,同时筛选、还原双方通信媒体信息。BYE消息捕获,一方发送至另一方时便停止捕获。200OK响应消息捕获,判断为BYE的响应消息时终止通信。
2. 捕获改进
上述流程是必备的,因SIP的复杂性,数据包捕获可能出现乱序,所以需做改进:
SIP通信除了上述消息外,还有其他请求、响应消息,某会话的其他SIP消息,可选用的处理方式为收到便显示。
因网络上的数据有着庞大的传输量,需要建立合理、有效的筛选机制,可依据IP地址对双方信令、数据进行筛选。
因数据在网络上传输不稳定,捕获完整SIP通信较为困难,所以可将捕获流程缩减为4步:处理INVITE消息;处理对INVITE响应的200OK消息;依据媒体参数信息,对数据捕获、还原与确认;依据BYE或对BYE响应200OK消息终止。
3.2媒体数据还原
SIP通信通过RTP数据包进行媒体数据传输,还原方案是基于RTP协议展开的。对实时通信与离线数据设计以下两种不同方案:
1. 实时通信的还原。根据请求消息进行分析,获得媒体的源地址、目的地址和载荷、端口等信息,然后经过滤器对数据实行捕捉。具体步骤如图1所示。将通信信令捕获,同时对相关数据流的信息进行记录;依据发送、接收双方的通信信令对RTP数据包进行捕获;判断捕获是否结束,可根据SIP通信中BYE或对BYE响应的200OK确认停止;重组RTP数据,同时解压缩以获取原始数据。
2. 离线数据的还原。首先储存捕获到的所有数据包,进而还原数据流,再通过流信息获取媒体的参数信息,后通过此信息将原始数据还原。具体流程如图2所示。打开网卡,将IP数据包完整捕获并储存;依据RTP流判别的原则,在上述所储存的数据中将所有的RTP流信息提取出来;根据RTP包中Sequence Number字段,重组并还原RTP数据;依照双方IP地址获得通信消息,并得知其编码信息,若流的信令不全,可以用RTP默认类型的方式进行处理;最后解压缩获取原始的数据。
四、总结与展望
数据包捕获是对数据包的完整收集,SIP是不断完善且应用广泛的信令协议,SIP通信的数据包捕获是双方通信信息的获取,基于SIP协议做了数据包捕获及还原的流程设计,在今后的工作中,应不断改进与完善此机制,使捕獲能够更加清晰、有条理。
参 考 文 献
[1] 钟诚, 等. SIP通信数据包捕获与分析[J]. 电脑知识与技术, 2010, 6(34): 9739-9740, 9743
[2] 林洪周. 万兆网络数据包捕获系统的研究与开发[D]. 武汉: 华中科技大学, 2008: 1-56