深度包检测

深度封包检测（deep packet inspection，缩写为 DPI），又称完全封包探测（complete packet inspection）或资讯萃取（information extraction，IX），是一种电脑网络封包过滤技术，用来检查通过检测点封包的资料部分（也可能包含其标头），以搜寻不符合规范的协议、病毒、垃圾邮件、入侵，或以预定准则来决定封包是否可通过或需被路由至其他不同目的地，或是为了收集统计资料。IP封包有许多个标头；正常运作下，网络设备只需要使用第一个标头（IP标头），而使用到第二个标头（TCP、UDP等）的技术则通常会称为浅度封包检测（一般称为状态防火墙），与深度封包检测相对。有多种方式可以用来获取深度封包检测的封包。较常见的方法有埠镜像（port mirroring，或称为 Span Port）及光纤分光器（optical splitter）。

深度封包检测允许进一步的网络管理、用户服务及安全功能，也可用于进行互联网资料探勘、窃听及互联网审查。虽然深度封包检测技术已被用于互联网管理许多年，一些支持网络中立性的人害怕此技术会被用于反竞争行为，或减少网络的开放性。寻求反制的技术也因而被提出来大规模讨论。由于深度封包检测的应用范围广泛，可分成企业（公司及大型机构）、电信服务业者及政府3个方面进行说明。

## 背景

深度封包检测结合了入侵检测系统（IDS）、入侵预防系统（IPS）及状态防火墙等功能。此一结合让深度封包检测可以检测到某些IDS、IPS或状态防火墙都无法发觉的攻击。状态防火墙能看到封包流的开始与结束，但不能发现超过特定应用范围的事件。IDS能检测入侵，但几乎没有阻挡此类攻击的能力。深度封包检测能用来快速阻挡来自病毒与蠕虫的攻击。更具体地说，深度封包检测可有效防止缓冲区溢出攻击、DDoS攻击、复杂入侵及少部分置于单一封包内的蠕虫。

具有深度封包检测的装置可以看到OSI模型的第2层及第3层之后。在某些情况下，深度封包检测可用来分析OSI模型的第2层至第7层。这包括了整个标头、资料协议架构及讯息的负载。深度封包检测功能在装置采取其他行动时，依据OSI模型第3层之后的资讯被引用。深度封包检测可以依据包含由封包资料部分摘取出之资讯的特征数据库，识别并分类讯务，从而允许比仅依据标头资讯分类有更精确的控制。在许多情况下，终端可使用加密及混淆技术来规避深度封包检测。

一个被分类的封包可能被重定向、标记/标签（见QoS）、封锁、速限，并且反馈给网络中的报告程序（reporting agent）。在此方式下，不同分类的HTTP错误会被识别，并被转交分析。许多具有深度封包检测的装置会识别封包流（而非逐个封包的分析），允许依据累积的流量资讯进行控制。

## 企业层面的深度封包检测

最初，企业层面的网络安全只是个外围的纪律，防止未经授权的使用者进入以及避免授权的使用者曝露于外部世界为其主导理念。最常用来完成此一理念的工具为状态防火墙。状态防火墙允许对外部世界进入内部网络上的预设目的进行精细的控制，并只在先前曾提过对外部世界的请求，才允取存取回其他的主机。

无论如何，当漏洞存在于网络层，该层不被状态防火墙所见。此外，企业内使用笔记型电脑的次数增加，让防止电脑病毒、蠕虫及间谍软件渗透入企业网络变得更加困难，因为许多使用者会将笔记型电脑连上家庭宽频连线或公共场所的无线网络等较不安全的网络。防火墙亦无法区分合法接取应用程序的允许与禁止之使用者。深度封包检测让资安人员可以在任何一层设定及执行政策，包括应用层及用户层，以协助对抗这些威胁。

深度封包检测可以检测出几种缓冲区溢出攻击。

深度封包检测可被企业作为数据外泄防护。当电子邮件的使用者试图发送一封受保护的文件时，该使用者可能会收到讯息，告知如何取得适当许可，以发送此一文件。

## 网络服务业者的深度封包检测

除了使用深度封包检测来保护其内部网络外，互联网服务供应商亦会运用此技术于提供给消费者的公众网络上。ISP业者使用深度封包检测的用途一般有通讯监察、网络安全政策、定向广告、服务品质、提供分层服务及著作权保护等。

### 通讯监察

几乎全世界所有的政府都会要求服务业者需具有通讯监察的功能。数十年前在传统电话的环境里，可透过建立一个讯务存取点（TAP），使用拦截代理服务器连至政府的监控设备来达成通讯监察的需求。这在现在的数位网络里不是不可能的。有许多种方法可在数位网络中提供通讯监察的功能，其中包括深度封包检测。

### 网络安全政策

服务业者与其用户签订服务级别协议，需提供一定的服务层级，并同时会执行可接收使用政策，如使用深度封包检测执行侵犯著作权、非法内容及不公平使用带宽之政策。在某些国家里，ISP业者需要依该国法律执行过滤。深度封包检测允许服务业者“轻易地知道其用户正在线上接收的资讯封包，包括电子邮件、网站、音乐与视讯分享及软件下载等讯务”。政策亦可被规定允许或不允许连接至某一IP地址、某些协议，或甚至可识别某一特定应用或行为。

### 定向广告

因为ISP业者能安排其所有用户之路由，他们能够以非常仔细的方式监控用户的网络浏览习惯，以获得有关其用户兴趣之资讯，提供给经营定向广告的公司使用。至少有10万位美国用户如此被监控，更有10%的美国用户曾经被如此监控过。NebuAd、Front Porch及Phorm等公司提供定向广告的技术。监控其用户之美国ISP业者则有Knology及Wide Open West等。此外，英国的ISP业者英国电信亦承认在其用户不知情或未同意之下，测试过Phorm所提供之技术。

### 服务品质

深度封包检测可以用来对抗网络中立性。

P2P等应用的流量对宽频服务业者来说，越来越是个问题。通常情况下，P2P的流量被应用程序用来做档案分享。档案可以是任何类型（如文档、音乐、视讯或应用程序）。由于多媒体档案的容量通常较大，P2P会导致流量的增加，需要额外的网络容量。服务业者表示，少数用户产生大量的P2P流量，并降低了大部分使用电子邮件或浏览网络等需要较少带宽之宽频用户的品质。差劲的网络品质会提升用户的不满，并导致服务收入的下滑。

深度封包检测允许业者卖出更多的有效带宽，同时确保公平分配宽频给所有用户，以避免网络壅塞。此外，可将更高的优先权分配给网络电话或视讯会议等需要低延迟的应用。这让服务业者能用来依据通过其网络之流量来动态配置带宽。

### 分层服务

行动通讯及宽频服务业者使用深度封包检测作用实作分层服务的方法，区分出“封闭平台”、“加值”、“吃到饱”及“一体适用”的数据服务。透过在“一体适用”的资费方案外，对“封闭平台”、各项应用、各项服务或“吃到饱”另外付费，业者可以为个别用户提供个人化的服务，并增加其ARPU。网络政策可以依每个用户或每个群组设定，而深度封包检测系统更能区分出不同的服务与应用。

### 著作权保护

ISP业者有时会应著作权人的请求、法院的要求或官方政策，协助保护着作权。2006年，丹麦其中一家最大的ISP业者Tele2被赋予法院禁令，并要求该公司封锁其用户拜访海盗湾这个存放BitTorrent种子的网站。与其数次地起诉分享档案的人，国际唱片业协会（IFPI）、EMI、Sony BMG、环球唱片及华纳音乐集团等公司开始指控Eircom等ISP业者没有为保护其著作权有足够多的努力。IFPI希望ISP业者能过滤流量，并移除在其网络上的违法上传与下载之著作权物，虽然欧盟2000/31/EC指令明确指出，不应赋予ISP业者监控其传输之资讯的一般义务，且2002/58/EC指令亦赋予欧盟公民有秘密通讯的权利。另一方面，美国电影协会（MPAA）为保护电影著作权，警告美国联邦通信委员会（FCC）对网络中立性的态度可能会伤害深度封包检测及其他过滤方式等反盗版技术。

### 统计

深度封包检测让ISP业者能搜集其用户群使用图像之资讯。例如，业者可能对使用2Mbit/s连线速率的用户是否会与使用5Mbit/s连线速率的用户有不同的网络使用方式觉到兴趣。获得这些趋势资料亦能协助进行网络规划。

## 政府的深度封包检测

除了为其网络之安全而使用深度封包检测外，美洲、欧洲及亚洲的政府亦会为监听及审查等不同目标使用深度封包检测。

### 美国

美国联邦通信委员会（FCC）依据美国国会的授权，并在符合全球大多数国家的政策之下，要求所有的电信业者（包括互联网服务）须能支援执行法院命令的能力，以提供特定用户的即时通讯监察。2006年，FCC采取了新的通信协助执法法，要求互联网接取业者须符合其要求。深度封包检测为符合其需求之必要平台之一，并已为此目标部署于全美国境内。

美国国家安全局（NSA）与AT&T合作，使用深度封包检测技术，让互联网讯务监控、排序及导向能更有智慧。深度封包检测被用来寻找传输电子邮件或网络电话（VoIP）的封包。与AT&T的共同骨干网络（Common Backbone）有关的讯务都会“拆分”给两条光纤，每条光纤分得50%的讯号强度。其中一条光纤会被转移至一被严密保护的房间，另一条光纤则继续将讯务传输至AT&T的交换设备。该房间内有Narus的讯务分析仪及逻辑服务器；Narus表示，这些设备可以作即时的资料收集（记录大量资料）并可达每秒10GB的处理速率。特定讯务会被筛选出来，并以专线传输至一“中心位置”作后续分析。据前FCC顾问J. Scott Marcus所述，分流的讯务“代表全部，或几乎全部AT&T在旧金山湾区对等互连之讯务”，且因此，“其设计师......的配置没有试图依据光纤拆分的地区或位置排除comprised大部分由家庭资料组成之资料来源。”Narus的语意讯务分析软件使用深度封包检测技术，运作于IBM或Dell的Linux服务器上，以10Gbit/s的处理速率排序IP讯务，筛选出具有指定电子邮件位址、IP地址或网络电话之号码的特定讯息。前美国总统乔治·华克·布希与前司法部长阿尔韦托·冈萨雷斯曾表示，他们认为总统有权不需取得外国情报通讯监察法之授权，下令秘密监控美国境内的人民之间，以及他们与国外之间的电话与电子邮件交换。

美国国防资讯系统局已开发出一套使用深度封包检测的感测器平台。

### 中国

中国政府使用深度封包检测来监控及审查网络讯务及那些政府声称有害于中国民众与国家利益的内容。这些内容包括色情、宗教讯息及政治异议等。在中国的网络里，ISP业者使用深度封包检测查看是否有敏感的关键字通过其网络。若有，则其连线可能会被切断。在中国境内的人们时常会在访问内容含有台湾与西藏独立、法轮功、达赖喇嘛、天安门事件等网站时，会无法连接。反对共产党统治的政治团体及各种反共产党的行动都已被登录入深度封包检测中的关键字。中国亦阻挡流入或流出该国的网络电话讯务。Skype的语音讯务虽不受影响，但其简讯仍会受到深度封包检测监控，如内容含有如脏话之类的敏感字眼，不通知通讯的任何一方，直接不予传送。

### 伊朗

据华尔街日报2009年6月引述诺基亚通信（德国企业集团西门子与芬兰手机公司诺基亚的合资企业）发言人Ben Roome的一篇报导所述，伊朗政府于2008年向该公司购买了一套系统，据传为深度封包检测。据该报导不愿具名的专家所述，该系统“能让政府当局封锁通讯，并监控并搜集个人资料，以及为散布不实谣言而更改资料。”

该系统由伊朗政府独占经营的电信基础设施公司所卖下。据华尔街日报所载，Roome表示，诺基亚通信“去年在‘合法监听’此一国际公认的理念下，提供设备给伊朗。这涉及到为了打击恐怖主义、儿童色情、毒品走私及其他网络上之犯罪行为而截取的资料，即使不是全部，也是大多数电信公司会有的能力......”诺基亚通信卖给伊朗的监控中心在公司宣传手册内将其形容为能够“监控与截取所有网络上所有类型的语音与数据通讯。”该合资企业于2009年3月底退出包含监控设备，称为“智能解决方案”之业务，将其卖慕尼黑投资公司 Perusa。Roome表示，该公司决定不再将其作为该公司核心业务之一部分。

在诺基亚卖出其系统的十年前，Secure Computing Corp. 曾与伊朗有过交易，卖给该国可用来封锁互联网之设备。

有人对华尔街日报这篇由华盛顿独立分析师暨卡托研究所兼职学者David Isenberg所写的报导之可信性提出质疑，并特别指出，Roome拒绝承认报导中的言论出自于他，且Isenberg在华尔街日报一篇较早之前所写的报导中亦曾被提出类似的质疑。诺基亚通信并发出下述否认声明：诺基亚通信“没有提供过任何具深度封包检测、网络审查或互联网过滤等能力之设备给伊朗。”纽约时报同一时期的报导写道，诺基亚通信的业务已被“（2009年）4月一连串的新闻报导（包括华盛顿时报）”，以及这个国家对互联网与其他媒体审查之检视所掩埋，但没有提到深度封包检测。

据规避互联网审查之开发商Alkasir的Walid Al-Saqaf所述，伊朗于2012年2月使用深度封包检测，让整个国家的互联网速率几乎陷入停顿。这简单地排除掉了Tor与Alkasir等工具的使用。

### 新加坡

新加坡据说设置了深度封包检测，以监控互联网讯务。

### 马来西亚

由国民阵线领导的马来西亚政府据传于2013年5月5日举办之第13届大选期间使用深度封包检测监控其政治对手。

在此例中，深度封包检测被用来封锁及/或妨碍特定网站，如Facebook账户、部落格与新闻入口网站。

### 俄罗斯

深度包检测在俄罗斯没有获得法律授权。俄罗斯互联网限制法案要求使用IP地址过滤屏蔽禁止网站统一登记表中的目标，但并未允许分析数据包的载荷部分。然而，一些ISP仍然使用各种深度包检测方案来实施过滤。

2019年，政府机构Roskomnadzor在几个地区的试点结束之后，计划在全国范围内推行深度包检测技术，据称这将花费200亿俄罗斯卢布。

## 深度封包检测与网络中立性

关注隐私或网络中立性的人或组织发觉检测互联网内容层之行为极具攻击性，并表示，“网络曾是建立在封包的开放存取与无差别待遇之上！”同时，网络中立性规则的批评者则称之为“寻找问题中的答案”（a solution in search of a problem），并表示网络中立性规则会减少升级网络及推动次世代网络服务之诱因。

封包检测被许多人认为会破坏互联网的基础设备，亦被认为违反美国宪法。

## 基础设施安全

传统上，ISP业者一般只经营OSI模型第4层以下。这是因为仅决定封包去向与路由相对上较容易安全地处理。传统模型仍允许ISP业者安全地完成所需任务，如依使用带宽（第4层以下）而非应用类型之协议（第7层）限制带宽。这是个非常强烈，但常被忽略的论点，ISP业者在OSI模型第4层以上的行为会提供在资安社群里称之为“垫脚石”的风险，亦即让人可透过中间人攻击入侵其网络。这个问题是因为ISP业者通常会安全追纵纪录不佳的便宜硬件，难以或几乎不可能确保深度封包检测之安全性。

OpenBSD的封包过滤特别避开深度封包检测，即是因为该软件没有信心能安全地完成过滤任务。

这意味着，与深度封包检测有关之服务，如TalkTalk的HomeSafe，实际上是贩卖少量的安全性（可以且经常已经使用其他更有效之方式保护），其代价却是牺牲所有用户之安全性，且其用户几乎不可能减轻其风险。HomeSafe服务主要系透过封锁来选择进来的流量，但其深度封包检测无法选择出去的流量，即使是企业用户。

## 软件

nDPI （OpenDPI的一分支）是用来检测非模糊协议的开源版本。PACE则包含了模糊与加密协议，与Skype或加密BitTorrent所使用的协议相关。OpenDPI已不再维护，取而代之的是nDPI，现仍积极维护与扩充包含Skype、Webex、Citrix与其他软件在内的新协议。

L7-Filter是用于Linux的Netfilter识别应用层之封包的分类器。L7-Filter可分类Kazza、HTTP、Jabber、Citrix、BitTorrent、FTP、Gnucleus、eDonkey2000与其他软件。L7-Filter亦可分类串流、电子邮件、P2P、网络电话、协议及游戏等应用。

Hippie（高性能协议识别引擎）是一项开源计划，被开发作为Linux的核心模组。Hippie为Josh Ballard所开发。Hippie支援深度封包检测与防火墙功能。

SPID（统计协议识别）计划透过识别应用程序的讯务，进行网络流量的统计分析。SPID算法可透过分析pcap档的流量（封包大小等）与负载统计（位元值等），检测应用层协议（第7层）。SPID只是个概念验证程式，目前支援大约15个应用及协议，如eDonkey混淆讯务、Skype的UDP与TCP、BitTorrent、IMAP、IRC、MSN等。

Tstat（TCP统计与分析工具）提供流量图像的概观，并给出许多应用与协议的细节与统计。

Libprotoident引入轻度封包检测（LPI），只检查每个方向之负载的头4个字节。这可减轻对隐私的疑虑，降低为分类而需储存封包纪录的硬盘空间。Libprotoident支援200个不同的协议，且其分类使用负载模式匹配、负载大小、埠号与IP匹配等混合而成的方法。

法国公司Amesys设计并出售给格达费一套侵入型与大规模互联网监控系统，被称为Eagle。

### 比较

各种使用了深度封包检测的网络流量分类器（PACE、OpenDPI、L7-filter的4种设定、NDPI、Libprotoident及Cisco NBAR）的整体比较，可见《流量分类常见DPI工具的独立比较》（Independent Comparison of Popular DPI Tools for Traffic Classification）一文。

## 硬件

在禁止网络盗版法案与保护知识产权法案被否决之后，深度封包检测得到了更多的重视。许多现行的深度封包检测方法既慢又昂贵，特别是对于高带宽的应用。更有效的深度封包检测方法被开发出来。专用路由器现在已可以执行深度封包检测；具备程式字典的路由器将能协助识别内网与互联网讯务之目的。Cisco Systems已开发出具有深度封包检测功能的第二代路由器，称之为CISCO ISR G2。

## 外部链接

- Test Methodology - registration required
- Subverting Deep Packet Inspection the Right Way
- What is "Deep Inspection"?
- A collection of essays from industry experts
- What Is Deep Packet Inspection and Why the Controversy
- White Paper "Deep Packet Inspection – Technology, Applications & Net Neutrality"
- Egypt's cyber-crackdown aided by US Company - DPI technology used by Egyptian government in recent internet crackdown
- http://www.savetheinternet.com/
- Deep Packet Inspection puts its stamp on an evolving Internet
- Validate DPI policy using real applications
- Hand-held packet capture device with PCAP storage