(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf_第1页
(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf_第2页
(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf_第3页
(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf_第4页
(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(通信与信息系统专业论文)sip电话合法监听系统研究及其iap的实现.pdf.pdf 免费下载

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

文档简介

ii 摘摘 要要 voip 已经成为如今语音通信发展的趋势,但是随着其商用范围的不断扩大,一系 列安全管理问题随之而生,其中就包括 voip 合法监听问题。本文主要针对 voip 合法 监听问题进行深入研究,并给出了具体解决方案,实现了其关键实体监听接入点 iap(interception access point)。 论文介绍了 voip 的基本原理及实现方式,以及会话初始化协议 sip(session initiation protacol)和 sip 基本呼叫流程,并详细探讨了网络监听关键技术,包括监听 原理、 包过滤技术和协议分析技术。 针对网络监听问题, 引入欧洲电信标准委员会(etsi) 提出的软交换系统监听模型,详细讨论了该模型中各实体的功能及接口。在此基础上 结合会话边缘控制器 sbc(session border controller)接入组网的 voip 部署方式,给 出了分别基于业务逻辑、旁路媒体流、设置监听器和信令中转的四种监听系统部署方 案,通过对比分析监听需求、设计原则和系统性能要求,选取设置监听器为最佳部署 方案。 其次,在对 sbc 工作机制深入分析的基础上,结合监听数据需求以及监听系统部 署方案,提出了 iap 的总体设计,详细描述了 iap 的功能结构和工作机制,并通过使 用 libpcap 函数库给出了 iap 的关键模块捕获分析模块的具体实现。 iap 的主要设计思想是通过 invite 消息中携带的电话号码触发监听,通过分析 sip 消息,得到信道信息,更新过滤规则,从而完整获得该通话的所有呼叫相关信息 和通话内容。它有三个特点:第一能够捕获会话中动态分配的媒体端口和信令端口; 第二依据端口,快速更新过滤器规则,缩短过滤时间;第三是通过构造状态机准确把 握呼叫相关信息对应的会话状态。 最后对模式匹配算法进行了研究, 改进了 boyer-moore-horspool(bmh)算法, 通过 采用多线程处理和线程池技术,减少了线程开销,提高了 iap 监听效率。 关键词: ip 电话;会话初始化协议;合法侦听;侦听接入点;数据包过滤器 iii abstract voip has already been the trend of voice communication. yet, along with the expending of its business scope, a series of security and management problems occurs, including the lawful interception (li) problem. this paper mainly researches in the lawful interception of voip, and proposes a concrete solution of it as well as implementation of its interception access point (iap). this paper introduces the basic theory of voip and its deployment, as well as the session initiation protocol (sip) and its basic callflow. it discusses the key technology of the network interception, including the interception theorem, packet filtering and protocol analyzing technology. then, it introduces a li model which was designed by ietf for the softswitch system, in addition, it introduces the function of each functional entity and the interfaces between them. then, it raises four solutions of the li systems deployment on the basis of the network involving the session border controller (sbc). the four solutions are making use of conference service, changing the route of media stream, setting packet filter and forwarding the signals.whereafter, the advantages and disadvantages of each solution are discussed, and the setting packet filter method is chosen as the best li network deployment solution according to the acquirement of interception and the principles of designing. after the analyzing of the sbcs mechanism, this paper designs the iap on the basis of the requirement of interception data and the deployment of the li system, and describes its architecture and mechanism in detail. then it uses the libpcap functions and gives the implementation of the filtering and analyzing module which is the key inner module of iap. according to the main design consideration of iap, the interception is triggered by the invite message with the phone number, the filters rule code is refreshed with the message type and the call related information which is derived from the sip message. there are three features of the implementation, the first one is that, the media stream ports and the signal ports can be captured during the session, the second one is the filters rule code is refreshed with the ports captured, which results in the reduction of the time of filtering. the last feature is that, it can correlate the sessions state and the interception infomaion with the help of the state machine. iv at the end, the string pattern matching is researched, and a new algorithm derived from boyer-moore-horspool(bmh) algorithm is raised. in addition, muti-thread processing and thread-pool technology are introduced in the system to increase the efficiency of the iap. key words: voip;sip;li;iap;bpf i 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中 以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 1 绪论 本章阐述 voip 合法侦听的概念和意义,对其国内外研究现状进行了综述,最后简要介绍本文 研究的主要内容和章节安排。 1.1 voip 合法监听的概念和意义 合法监听 li 即在经相应的授权机关批准的前提下,由执法机构 lea(law enforcement agency) 向 nwo/ap/svp(网络运营商/接入提供商/服务提供商) 发出监 听请求命令, 由 nwo/ap/svp 将公众电信网 ptn(public telecommunication network) 用户通信内容 cc(communication content)以及呼叫相关信息 cii(call identifying information)进行复制并发送给 lea 的一项信息安全技术 1。通信服务提供商 tsp(telecommunication service provider) 向主管部门申请运营牌照时,必须承诺有能 力提供该业务,而且国家需要为此向 tsp 提供适当的经费支持。 在安全管理领域,合法监听占有及其重要的作用:它可以增强国家安全的保障, 加强对进出口关键话路的监控,满足类似反恐以及其他政治上的需要;其次各式犯罪 行为也越来越频繁地利用电话通信来进行,合法监听可以帮助未来侦察与取证这些犯 罪行为;合法监听可以对呼叫中心的坐席实行有效监督,提升座席员的工作效率和客 户服务质量,同时也提升了运营企业的形象,为企业带来了利润;合法监听提供了有 效的故障分析数据,方便用户快速定位网络故障。 在传统电话网中, 所有通话过程中的语音和信令都通过一个固定的物理信道承载, 所以合法监听很容易实现。如果他们从电话业务提供商那里得到了授权,这些合法代 理就可以在当地交换局通过固定的信道实现监听,并且不会被电话用户发现。而在基 于 ip 的下一代网络 ngn(next generation network)中,情况有很大不同2。voip 是来 源于 cti(computer telephony integration)技术,是 ip 网与公用电话网相结合的产物。 它具有成本低、利润高、价格便宜、易推出新业务等很多优势,因此逐渐成为语音通 信的发展方向3。在 voip 应用推广过程中,很多实际问题会出现,其中就包括对其的 合法监听。在 voip 中数据包的路由是不可预知的,监听者要获得通话信令的难度增 加了4。所以合法监听是目前 voip 中急需解决的关键问题之一。可以预计,多媒体通 信的高速发展期正在来临,而若想把这项业务推向大众,voip 的合法监听技术就必须 2 得到重视。 1.2 国内外研究现状 我国对于通信网的合法侦听基础标准和技术规范的制定工作在高校和企业的协作 下已经开展起来5。国际上现致力于合法监听课题研究的组织主要有 etsi,ipcc(国 际分组通信论坛),美国 tia(电信工业委员会) 和有线电视工业标准组织下的 cablelab、packetcable 等。etsi 下设的合法监听工作委员会专门负责 li 标准的制定 工作,已经制定了 li 的基础标准,包括 li 的需求、网络体系结构、转接接口规范等 6。在此基础上,制定了电路交换网 li 的技术标准规范,如公众电话交换网,智能网, gsm 网络等 错误!未找到引用源。错误!未找到引用源。目前,etsi 正着重研究 ip 网络和第三代移动通信网络的 li 标准。在美国,tia 已制定了电路交换网络合法监听标准 j-std-025 及其增强版 j-std-025a,支持分组网络 li 的规范 j-std-025b 也已经公布7。tia 所制定的 li 标准不针对具体的受控网络,而是着眼于 tsp 和 lea 网络之间标准化接口的定义。 ipcc 参照 tia 所定义的合法监听参考模型和消息结构,提出了软交换网络 li 的技术 建议, 但还不成熟, 有待改进和完善。 cablelab 和 packetcable 在其定义的 packetcable 网络框架基础上制定的 li 规范与 tia 制定的 li 规范保持一致8。 1.3 本文主要内容及章节安排 voip 的合法监听系统的内容涉及 voip 网络及其协议,合法监听理论,监 听模型及接口标准,网络监听技术,协议分析,网络安全等各方面内容。本文 首先从引入 etsi 提出的 ngn 的监听参考模型入手,通过分析各功能模块、相 关接口及数据需求,结合目前广泛被采用的 sbc 接入组网的 voip 部署方式, 将给出 ngn 合法监听系统的部署方案, 同时在重点研究实现监听的关键技术和 要点基础上,将给出基于部署方案的 iap 的设计和实现以及提高 iap 系统性能 和安全性的具体措施。 本文对从事 ngn 合法监听研究的研发人员有一定的帮助, 对相关产品的开 发能起到一定的指导作用。各章节内容组织如下: 第一章简介 voip 合法监听的概念及其意义,并综述了其国内外研究现状, 最后给出本文研究的内容和各章节内容安排。 第二章对 etsi 提出的合法监听模型进行了研究, 并进一步对监听的关键技 3 术进行了探讨。 第三章首先介绍了 voip 基本原理和相关技术,研究了典型的 sbc 接入组 网方式。并进一步分析 sip 协议相关内容和 sip 协议栈,然后结合监听模型给 出了分别基于业务逻辑、旁路媒体流、信令中转、设置监听器等四种实现方案 并根据监听系统设计原则和系统需求对比分析,选取了设置监听器的方案,同 时描述了各监听设备交互过程。 第四章结合部署方案和监听系统需求对 iap 提出了总体设计,并在 lipcap 函数库基础上给出了 iap 的详细实现,接着采用优化模式匹配算法以及多线程 和线程池的方法提高了 iap 系统性能,最后采用 ipsec 封装监听数据增强了数 据安全性。 第五章总结全文,指出不足并展望今后的研究方向。 4 2 ngn 监听模型与监听关键技术 国际上现已有若干致力于合法监听课题研究的组织,本章将引入 etsi 合法监听模型,为实际 监听系统的研究提供参考,并对监听的关键技术数据包过滤和协议分析原理进行分析。 2.1 ngn 合法监听模型 由于电话监听的特殊性,监听系统必须是在法律授权的范围之内进行,所以监听 系统应该跨越执法部门的管理域以及电信运营商的管理域。所以要实现监听至少需要 如下关键部件:监听信息的获取设备,监听信息的传送设备,执法部门的监听信息储 存设备以及分别管理控制两个领域设备的设备。下文将介绍 etsi 专门针对软交换提 出的监听参考模型。 2.1.1 监听数据分类 需要监听的数据按照性质的不同应分为以下几类:呼叫识别信息 cii,指用来识 别呼叫的主叫方、方向、被叫方以及通信终端信令的信息。如:主叫号码、被叫号码、 用户摘机和挂机事件等;呼叫内容 cc,通信各方之间传送的关于通信实质、主题、 含义的信息,即各通信方之间的通话内容;非呼叫识别信息(non cii),包括所有对呼 叫不是必需的,但是 tsp 有能力提供且对 lea 有用的信息。比如:事件发生的时间、 各种侦听标识符等9。 侦听标识符的分配是为了以便 tsp 侧区分监听对象,以及关联相对应 cc 和 cii。 这些标识符至少应包括合法侦听标识符liid, 网络组成标识符nid以及相关符号cid。 其中 liid 必须分配给 tsp 与 lea 协商后的每一侦听对象。它使得在授权范围内更容 易找到并保持对监听对象的控制。 它也是 cc 和 cii 记录的组成部分, 必须出现在 hi2 和 hi3 接口交换的信息中以达到识别标志目的。liid 由字母组成,它可以由合法认证 的相关数据,监听起始日期等等组成。而且 tsp 侧应该给每一监听对象颁发唯一的 liid,或者给属于监听对象的多个实体(如一号多机的用户)颁发同一个 liid。同样 网络标识符(nid)在整个网络中也必须是唯一的。它由以下两个部分组成: now/ap/svpid,唯一的标识网络营运商,网络提供商以及服务提供商;网络组成标 识符(neid),在侦听接口中,用于唯一识别一个相关网络组成。相关符号 cid 是为了 确定 cii 和 cc 两者的对应关系,但也并非必要,比如在没有对 cc 的需求的监听中。 5 2.1.2 etsi 参考模型 美国 tia 在 j-std-025 中提出的合法监听参考模型如图 2-1 所示,它由以下 5 个 功能实体组成:接入功能 af(access function),负责识别和监听对象相关的呼叫,包 括呼叫数据 cd(call data)和呼叫内容 cc(call content) ,由 tsp 提供,传送功能 df(delivery function)将监听到的呼叫信息和呼叫内容传送给 lea;采集功能 cf(collection function)用来接收和分析监听到的 cc 和 cd,位于 lea 侧。服务商管 理功能 admf(administration management function)控制接入和传送功能,负责提供呼 叫数据信道 cdc(call data channel) ,呼叫内容信道 ccc(call content channel)信 息和处理 lea 信息,并对 tsp 域的各设备进行管理,由 tsp 提供。执法管理功能 lemf(law enforcement administration function)控制 cf, 由 lea 负责。 该体系结构包 含 a,b,c,d,e 等 5 个接口,规范仅标准化了 e 接口的内容。该接口用于把监听 信息传送到 lea,分别通过两个信道:即 ccc 和 cdc。 dfcf admf lemf tsp域lea域 af a接口c接口 d接口 e接口 b接口 图 2-1 tia 合法监听参考模型 传统电信网络是基于电路交换的封闭系统,其呼叫和承载控制合一的,拥有相同 路由。所以传统电路交换的电话网的合法监听相对容易,只需要将监听设备设在交换 机机房。不像传统的电话系统,ip 电话的合法监听是一个很复杂的问题。软交换网络 遵循的是业务与呼叫控制的分离, 呼叫与承载的分离的基本原则。 每一个 voip 的呼叫 都可以在终端之间建立不同的路由。所以,不同的网络体系结构决定了合法监听模型 会有所不同。 图 2-2 是 etsi 专门针对软交换网络提出的合法监听参考模型,它沿袭了 tia 的 合法监听参考模型。 合法授权是所有有权对合法监听行为授权的国家法律机构的总称。 在我国,包括法院、检察院等部门9。没有授权机关的法律授权不能进行监听。 6 dfcf admf lemf tsp域lea域 cciap ciiiap hi1 hi2 hi3 合法授权 ini1 ini3 ini4 ini2 ini5 图 2-2 etsi 合法监听参考模型 对比这两个模型可以发现最大不同之处在于:在 etsi 模型中,原 tia 模型的 af 功 能 被 分 离 成 呼 叫 相 关 信 息 监 听 接 入 点 ciiiap(call interrelated information interception acess point)和呼叫内容监听接入点 cciap(call content interception acess point),原因是软交换网络体系结构遵循呼叫与承载分离的原则,ciiiap 需要部署在 呼叫信令通路上, 而 cciap 需要部署在各媒体通路上, 而软交换网络中呼叫信令通路 和媒体通路是并不一致的,所以 ciiiap 和 cciap 逻辑上是两个实体,物理上也可分 布在不同软交换设备上。而在 tia 模型中,接入功能 af 包括了各种类型的 iap,原 因是电路交换网络中,呼叫内容和呼叫识别信息都经过电路交换机,因此,可以直接 在电路交换网络的核心设备电路交换机上部署该功能。 2.1.3 模块功能描述 esti 监听模型中监听信息的获取设备包括呼叫相关信息监听接入点 ciiiap 和呼 叫内容监听接入点 cciap。ciiiap 功能是按照 admf 的要求,从监听对象所使用的 通信系统中获得所需的呼叫识别信息 cii(即 cd),同时传送给 df。cciap 的功能是 按照 admf 的要求,从监听对象所使用的通信系统中获得所需的呼叫内容 cc,同时 传送给 df10。 负责将监听信息传给执法部门设备称为传送功能 df,主要接收 ciiiap 和 cciap 监听的信息,并根据监听传单对需要传送的 cii 和 cc 按照标准格式封装,然后发送 7 给执法部门的一个或多个采集功能 cf。 负责接收来自网络侧监听信息的执法部门的设备称为采集功能 cf, 采集传送监听 结果(包括 cc 和 cii), 并对监听结果按照侦听传单的要求和标准格式解码按要求存储, 并提供给 lemf 实时播放、搜索、回放等功能接口。 服务商管理功能 admf 负责管理和控制 tsp 域内的监听设备。如:提供监听所 需的信息,启动和关闭监听,对监听参数进行修改等。admf 需要维护 li 系统中各 个设备的信息,支持设备信息库的添加删除等功能。这些设备信息应该包括每个 df 设备的 ip 地址、端口信息。admf 应在监听开始时通知 df 欲接收监听信息的 cf 的 信息包括它的地址和端口。 执法管理功能 lemf 负责管理和控制 lea 侧的合法监听设备。如:启动采集功 能,管理和命令 cf 检索回放监听结果等。 2.1.4 接口描述 侦听系统接口从总体上应分为三个接口:管理信息接口、侦听识别信息接口、呼 叫内容接口。 如图 2-2, 管理信息接口包括: ini1 接口, 它实现了 ciiiap 与管理服务器的连通。 采用 tcp 方式,默认端口号设定,接口传送 admf 的管理配置信息11。ini2 接口用 于传送监听对象特征如 ip、端口或号码。还有 ini5 接口,它也可采用 tcp 连接方式、 默认端口号设定。接口传送 admf 的管理配置信息。还包括 lea 域 lemf 对 tsp 域 的 admf 的 hi1 接口,负责传送 lea 域和 tsp 域各种管理参数信息12,包括受控对 象标识、监听开始/结束时间、监听类型、cf 地址等。值得注意的是:hi1 接口传送 的是重要的 li 过程控制和管理信息,一定要有安全和可靠机制做保证。 侦听识别信息接口包括 ini3 接口,可采用 tcp 连接方式、默认端口号设定。接 口上传送监听到的呼叫识别信息。还包括连接 lea 域和 tsp 域的 hi2 接口,负责传 送携带呼叫相关信息 cii 的监听消息。 此监听消息用来向 lea 报告受控对象有关的离 散动作事件。需要监控的事件包括呼叫建立、呼叫管理、功能使用、功能管理、通信 内容事件以及监控状态等事件。 为了保证数据的可用性, cii 数据应该及时传送给 cf, 如果传送过程中出现堵塞,那么可以暂时将这些信息进行缓存,然后重发。为了保证 可靠性,该接口可以采用 tcp 连接。该接口对可靠性要求比较高。 呼叫内容接口包括 ini4 接口,它可采用 udp 连接方式、默认端口号设定。接口 上传送监听到的呼叫内容。还包括 hi3 接口,负责传送受控对象及其同伙间的通话内 容信息。该接口需要定义呼叫内容数据包的封装格式,它对实时性要求比较高,可靠 8 性要求相对较低。如果侦听失败,呼叫内容将会丢失。网络不提供任何记录和存储功 能13。 值得注意的是, 合法监听跨越两个不同的网络域, tsp 和 lea 网络之间的划分点 hi 接口采用统一的标准格式。一方面,lea 和 tsp 协商确定 hi 接口的内容和过程, 有助于从技术的角度理解国家法律需求, 保证 li 过程的规范性和可操作性; 另一方面, 有统一开放的 hi 接口做基础,tsp 和 lea 采用不同的电信设备制造商所提供的 li 设备,多厂商竞争有利于提高 li 产品的性价比。 2.2 网络监听技术 voip 的监听仍然是对网络数据包的监听,所以它的实现也离不开现有 ip 网络监 听技术。本节将对网络监听原理以及数据包截获分析等做详细探讨。 2.2.1 tcp/ip 协议栈 tcp/ip 不是单个协议, 而如表 2-1 是一组专业化的协议14。 它包括 tcp, ip, udp, arp,icmp 以及其他的一些被称为子协议的协议。一般习惯性的把这一组协议称为 tcp/ip。它遵守一个四层的模型概念:应用层、传输层、网络层和网络接口层。 表 2-1 tcp/ip 协议族及其分层结构 应用层 简单邮件 传输协议 (smtp) 超文本传 输协议 (http) 文 本 传 输协议 (ftp) 域 名 服 务协议 (dns) 简单网络 管理协议 (snmp) 传输层 tcp udp 网络层 ip,icmp,arp,rarp 网络接口层 令牌环网 以太网 其他 1) 网络接口层:整个模型的最底层,负责数据帧的发送和接收。通过以太网的 比特流称作帧(frame)。 2) 网络层:互联协议将数据包封装成 intenet 数据报,并运行必要的路由算法。 这里有四个互联协议。 网际协议 ip:负责在主机和网络之间寻址和路由数据包。 地址解析协议 arp:获得同一物理网络中的硬件主机地址。 网际控制消息协议 icmp:发送消息,并报告有关数据包的传送错误。 互联组管理协议 igmp:被 ip 主机拿来向本地多路广播路由器报告主机组成 9 员。 3) 传输层:传输协议在计算机之间提供通信会话,为两台主机上的应用程序提 供端到端的通道。传输协议的选择根据数据传输方式而定,有两个不同的传 输协议:tcp(传输控制协议)和 udp(用户数据报协议)。 tcp 为两台主机提供高可靠的数据通信,是一种面向连接的协议。要发送 的字节流分成若干个块顺序传递到 ip 层, 到达目的地后再由对方的 tcp 层按 照顺序重新组装起来。如果数据包在这一过程中丢失,发送方的 tcp 层还负 责重发丢失的数据。tcp 还进行流量控制,防止发送速度大于接收速度而出 现数据包丢失现象。 它适合于一次传输大批数据的情况。 并适用于要求得到响 应的应用程序。tcp 传给 ip 的数据单元称作 tcp 报文段。 udp 是不可靠的非连接协议, 它仅仅负责把数据打包发送出去, 不保证数 据包一定到达接受方,同时接受方 udp 也不会调整所接受数据包的顺序。这 一协议主要用于强调数据传送的速度而不是可靠性的场合,如语音和视颇数 据,可靠性则由应用层来负责。 4) 应用层:应用层负责处理特定的应用程序细节。几乎各种不同的 tcp/ip 实现 都会提供下面这些通用的应用程序:telnet,ftp,smtp,snmp。 为了在这样一个分层次的网络上传输数据, 数据从应用程序传送到一个协议栈上, 在栈上一层一层地向下传送时,每一层的相应协议将把上一层传送下来的数据封装为 自己的格式,举一个最普通的数据传递过程,即应用-tcp-ip-以太网流程,如图 2-3 所示: 用户数据 用户数据应用层首部 应用数据tcp首部 应用数据 tcp首部 ip首部 应用数据tcp首部ip首部以太网首部以太网尾部 应用程序 tcp段 ip数据报 以太网帧 图 2-3 数据包封装过程 当应用程序将应用数据 (包括用户数据和应用首部) 向网络传送, 它首先到达 tcp 层,tcp 协议根据应用层的要求在 tcp 首部填写好各个字段,然后将包括 tcp 首部 10 的报文段向协议栈的下一层即 ip 层传送;ip 层则与 tcp 层一样,填写 ip 首部的各个 字段,比如地址、协议类型等等,然后将在头部包括 ip 首部和 tcp 首部的整个数据 报向下传送; 最后以太网驱动程序将以太网首部和以太网尾部添加到从 ip 层传下来的 数据报上。 为了取得有效的监听数据包就要对数据包进行逐层的分析,对每一层的数据包进 行对应协议格式的解析。下文中将对各典型包头的格式描述: 1) 以太网帧首部 以太网帧的首部的组成是: 6 字节的目的硬件地址、 6 字节的源硬件地址和 2 字节 的类型字段。如表 2-2 示。 表 2-2 以太网的封装格式 目的地址(6) 源地址(6) 类型(2)数据(46-1500) 循环校验码(4) 本文主要使用类型字段判断网络层的协议类型,ip 类型为 0800h。 2) ip 首部 图 2-4 ip 报首字段 如图 2-4 为 ip 报首字段,对本文有意义的字段有:ip 地址、协议类型、总长度。 其中 8 位协议类型表示传输层何种协议进行的传输,有 tcp,udp 等,分别对应数字 6,17。 3) tcp 首部 tcp 数据封装在 ip 数据包中, 其中 tcp 首部的数据格式如图 2-5 所示。 每个 tcp 段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上 ip 首 部中的源端 ip 地址和目的端 ip 地址唯一确定一个 tcp 连接。 11 图 2-5 tcp 数据封装格式 4) udp 首部 16位源端口号16位目的端口号 16位udp长度16位udp校验和 数据 填充字节 图 2-6 udp 数据封装格式 如图 2-6udp 的首部比 tcp 首部要简单得多, 这是因为 udp 是无连接的, 比 tcp 的有连接中双方复杂的交互要简单,它并不保证数据传输的质量,但是可以在更高层 的应用中进行质量保证。 2.2.2 网络监听原理 使用集线器的共享网段中,发送出去的信号到达集线器,由集线器再发向连接在 集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器 上的每个主机了15。当数字信号到达一台主机的网络接口时,正常状态下网络接口对 读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地 址,那么就会将数据祯交给 ip 层软件。对于每个到达网络接口的数据祯都要进行这个 过程的。但是当主机工作在监听模式下的话,所有的数据祯都将被交给上层协议软件 12 处理。同时,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候, 那么要是有一台主机处于监听模式, 它还将可以接收到发向与自己不在同一个子网(使 用了不同的掩码、 ip 地址和网关)的主机的数据包, 在同一个物理信道上传输的所有信 息都可以被接收到16。当然一般的应用程序是不能轻易设置网卡的工作模式的,不过 借助 2.2.5 节所述的 libpcap 函数库就可以将网卡设置模式设置为混杂模式以接收所有 的数据包。 网络监听时,常常要保存大量的信息,监听程序在运行的时候需要消耗大量的处 理器时间,而大数据量常常会造成许多包就会来不及接收而被漏走。所以监听程序很 多时候就会设置好过滤规则,只有满足规则的数据包才被接收。 2.2.3 协议分析研究 对捕获的数据包要进行协议分析处理,以判断是否含有需要的信息。根据网络协 议可以知道包的结构和包中每个字段的值,而包中每个字节都严格遵守网络协议所规 定的广泛和详细的规则集。监听正是利用这点对截获的数据包进行协议分析。具体说 来,就是对网络中的每个数据包根据协议规则进行解码,然后再去根据监听对象特征 对内容字段进行匹配。如果发现存在匹配,则缓存并作进一步处理。基于协议分析所 构造的监听设备中, 数据包将按照 tcp/ip 协议族的层次结构被解析。 总的说来协议分 析的功能是辨别数据包的协议类型,以便使用相应的解析程序来解析数据包。 网络数据包是一组高度规则的数据, 数据包中的字节符合一套广泛而详细的规则。 基于此原理,可以把所有的协议构成一棵协议树, 一个特定的协议是树结构中的一个节 点17。在程序中动态地维护和配置协议树结构即可实现非常灵活的协议分析功能。如 图 2-7 代表的意义是 sip 协议下层是 tcp 或 udp 协议,rtp 协议下层是 udp 协议, tcp、 udp 下层协议是 ip 协议。 协议分析的过程就是从该协议树的根查询到到该叶子 节点的路径。 ip tcpudp rtpsip 图 2-7 协议树 13 举例来说明数据包在协议树中的解析过程,如图 2-8 是一个实际监听到的包(在 此只截取了包括包头在内的此包的前半段作分析) : 图 2-8 某数据包十六进制表示 首先是以太帧首,前 12 字节为 mac 的源地址和目的地址,接着的是协议类型 0 x0800,代表其上网络层的协议是 ip。接下来是 ip 头,根据 ip 头的结构分析可知此 包版本 4 即此包是 ipv4,ip 头长 5 个四字节即头长 20 字节,总长度 0 x039c 即整个 ip 包长 924 字节,协议类型是 0 x11 为 udp 类型,接下来 64 位分别是是源 ip 地址和目 的 ip 地址,接下来 8 字节是 udp 报头,根据 udp 的格式可以得到源端口 0 x0ab4 即 2740,目的端口 0 x13c4 即 5060,如果应用层协议按照绑定端口对应的方式判断,此 包即为一条 sip 消息。 跨越这 8 字节的 udp 头就可以发现文本的 sip 头字段 method: invite,由此判断一条 invite 的 sip 消息。 2.2.4 bpf 模型 bsd(berkeley software distribution)是由加州大学伯克利分校的 csrg(computer system research group)开发的。 unix的system v和版本9都在很大程度上受到了bsd 的影响,而 4.4bsd 是早在 1994 年就发布的版本,4.4bsd 的网络通信设施支持多种 14 通信协议,它还有 iso/osi 等。以 tcp/ip 协议数据包来说,用户程序可以通过 socket 来访问 tcp/ip 模块,而如果要访问数据链路层,查看原始的网络封包,则需要操作系 统内核提供的另一个设施,在 bsd unix 中,这个设施就是 bsd packet filter (bpf)。 它使用的是一个重新设计过的,基于寄存器的过滤机制,因而在现代基于寄存器的 cpu 上实现起来富有效率,另外,bpf 采用了一个简单的,非共享的 bufer 模式,这 也符合现代大的地址空间,由此,在相同的硬件和网络流量的条件下它的速度比原来 方法快了二十倍18。图 2-9 给出 bpf 在操作系统中所处的位置及扮演的角色: 缓存器 过滤器 缓存器 过滤器 协议栈 数据链路层 应用程序应用程序 进程 内核 bpf 图 2-9 bpf 捕获数据包 bpf 主要由两部分组成:网络分接头(network tap)和包过滤器(packet filter)19。网 络分接头主要是从网卡上利用网卡驱动程序获得网络包。而包过滤器则判断此网络数 据包该不该接收,接收后怎么提交系统用户层。当 bpf 在网络接口监听时,一个本来 会被设备驱动程序送到上层协议栈的数据包则会被内核过滤器分发到每个应用程序定 制的过滤器进行过滤及处理,然后链路层驱动重新取得控制权,将数据包提交上层协 议栈处理20。 15 网络监听可能只关心网络流量数据的一个子集,因此包的过滤将大大提高系统的 性能。为了减少内存操作,以尽量避开瓶颈,包过滤应该在包的原始位置进行过滤, 而不是首先进行数据包的拷贝。包过滤函数一般可用布尔函数表示,如函数返回为 true 则将包拷贝到上层;反之则忽略该包。通常有两种方法可以实现该函数:如图 2-10 布尔表达树方式和可控制流图 cfg(control flow graph)方式。 or tcp数据包 udp数据包 布尔表达树方式图 tcp数据包 truefalse udp数据包 no no yesyes cfg模型图 图 2-10 布尔表达树和 cfg 模型图 在布尔表达树方式中,每一节点代表一个布尔关系如 and 和 or,每个叶子代表 一个谓词断语,如 type=ip,边表示布尔操作和操作数的关系。在 cfg 模型中,每个 节点代表一个谓词断语,而边代表控制转换。每个 cfg 图有两个终结节点,表示返回 true 或者 false。以上两个模型的计算能力大致相同,用一个模型可以表示的函数用另 一个模型也同样可以表示,但是在实现的时候却大不相同,树型图的操作往往基于数 堆栈操作,因此这种方式效率较低,而 cfg 模型可以基于寄存器操作,效率较高,所 以 bpf 采用 cfg 过滤模型而非布尔表达树模型。 2.2.5 libpcap 函数库 libpcap 函数是 unix 下非常著名的用于访问数据链路层进行包捕捉的函数库。它 拥有高效的 bpf 过滤器,利用它可以较容易的开发出网络嗅探程序。它提供了一系列 的函数接口,为上层应用程序捕捉、记录、分析数据包提供了有力的支持21。本文的 监听设备的过滤模块即在此工具的基础上进行的开发。 libpcap函数库中的pcap_compile()函数把由它的第三个参数str指向的字符串编译 成一个过滤器规则,程序员接着就可以调用 pcap_setfilter()函数来设置这个过滤程序, 使操作系统内核中的 bpf 按照这个过滤程序进行数据包的过滤。这个由参数 str 指向 16 的字符串称为过滤命令。 如果过滤命令为空串,表示接受所有的数据包;如果不为空,则只有那些使过滤 命令为“真”的数据包才被接受。过滤命令由一个或多个原语构成。原语则通常由一 个 id(字符或数字)前面加上一个或多个修饰符组成。有三种修饰符:类型参数符,指 明的是 id 的类型 host,net 或 port,如果没有类型修饰符,就默认为是 host;方向修饰 符,指明的是 id 的传输方向。方向有四种:src,dst,src or dst,src and dst,如果没有方向 修饰符,就认为是“src or dst;协议修饰符,指明 id 所在的网络协议层,协议修饰符 共有这些种 ip,ip6,arp 等,例如“tcp port 21” 。可以用 and, or,not 把多于一个 的原语组成一个更复杂的过滤命令。例如“host foo and not port ftp”。 2.3 本章小结 本章首先引入 etsi 合法监听模型,为实际监听系统的研究设计提供参考,并对 监听的关键技术数据包过滤和协议分析原理进行分析,并选择采用基于高效包捕 获模型 bpf 所开发的 libpcap 函数库作为本文监听部件的开发工具。 17 3 voip 的监听系统方案研究 上一章介绍了 etsi 专门针对软交换提出的监听参考模型,本章将在对 voip 及其 sip 协议进 行深入研究的基础上,结合实际网络提出数种监听系统的部署方案,并在充分考虑各种性能需求 和监听要素之后选择出最佳解决方案,以供后文的具体设计和实现。 3.1 voip 基本原理及实现方式 voip 即透过 ip 网络传输语音或视频信号。简单地说,它是借由一连串的转码、 编码、压缩、打包等程序,让语音数据可以在 ip 网络上传输到目的端,然后再经由相 反的程序,还原成原来的语音信号以供接听者接收。进一步来说,voip 大致透过五道 程序来互传语音信号,首先是将发话端的模拟语音进行编码,第二道程序则是将语音 封包加以压缩,同时并添加地址及控制信息,如此便可以在第三阶段中,也就是传输 ip 封包阶段,在 ip 网络中寻找到传送的目的端。到了目的端,ip 封包会进行译码还 原的工作,最后形成模拟声音。 voip 的控制信令即会话初始协议 sip。sip 是 ietf 为在 internet 上提供音频和视 频信息的传送而建立的。它是一个应用层控制协议,用于创建、修改和终止与一个或 多个参与者的会话。sip 的特点是简单、便于扩展和扩充,而且重要的是 sip 概念与 internet 的出发点一致,借鉴了许多已有的 internet 协议,具有很好的发展潜力22。sip 能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性, 如会话带宽要求、传输的媒体类型(语音、视频和数据等) 、媒体的编解码格式等。 sip 在设计上充分考虑了对其他协议的扩展适应性。它支持许多种地址描述和寻址, 包括: 用户名主机地址和如 tel这样普通电话号码的描述等。sip 的最强大之处就是用户定位功能。sip 本身含有向注册服务器注册的功能,用户话机 接入网络时候就会用注册消息注册自己的 ip 地址和相关信息。 sip 中有客户机和服务器之分。客户机是指

温馨提示

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

评论

0/150

提交评论