第2章 SDN/NFV环境中的安全问题
本章主要阐述SDN新型网络中存在的安全问题,如SDN本身的安全问题、虚拟化对传统网络安全机制带来的挑战,以及实现计算、存储和网络自动化运维后对安全解决方案带来的挑战。
2.1 架构安全
SDN强调了控制平面的集中化,从架构上颠覆了原有的网络管理,所以SDN的架构安全就是首先要解决的问题。例如,SDN实现中网络控制器相关的安全问题。
2.1.1 SDN架构的特点及安全综述
ONF对SDN的定义为:SDN架构解耦了控制和数据平面,将网络智能和状态进行逻辑集中,将底层网络基础设施从应用中抽象出来。根据这个定义,SDN架构的特点如下。
1)控制平面和数据平面相互分离。数据平面由完全受控的数据转发设备构成,数据的转发和相关业务逻辑由分离出去的控制平面进行控制。通过完全解耦数据和控制平面,分离的数据平面和控制平面可以独立演进。
2)智能和状态在逻辑上集中。控制平面通过逻辑集中的控制器来控制多个工作在数据平面的转发设备,因而拥有全局的网络状态。逻辑集中的控制器带来的全局观,使网络具有更强的管理和控制能力,使网络得以根据全局网络状态进行优化。
3)开放接口。SDN控制层在南向和北向分别提供开放的标准接口。南向的开放协议接口将网络资源能力抽象为有限数量的接口或命令,北向的开放应用程序编程接口为应用提供操作网络资源的API接口,从而降低了应用开发的技术瓶颈,加速了应用开发,并吸引更多的人加入网络应用的创新。
从网络安全的角度,SDN带来了网络架构的革新,也引入了新的安全威胁和挑战。从架构层面来看,新引入的SDN控制器由于逻辑集中的特点,自然易成为攻击的对象;开放的API接口也使应用层的安全威胁将扩散到控制层,进一步威胁到基础设施层承载的用户业务;SDN控制层和基础设施层之间新引入的协议,如OpenFlow协议及其实现,需要经过长期的安全评测;在基础设施层,SDN交换机在控制器的控制下完成流转发,SDN数据流也可能面临由南向协议、控制层相关的安全问题导致的威胁。
2.1.2 集中控制平面:SDN引入的新问题
在SDN网络中,集中控制平面的核心设备——SDN控制器——是高价值网元,它运行了SDN网络内从低到高各层次的协议和软件,包括南向协议、网络操作系统、北向开放接口和应用层软件,从而使得SDN控制器成为全网中具有最大攻击面的实体,必将受到攻击者最大的关注。
控制器承载着网络环境中的所有控制功能,其安全性直接关系着网络服务的可用性、可靠性和数据安全性。攻击者一旦成功实施了对控制器的攻击,将造成网络服务的大面积瘫痪,影响控制器覆盖的整个网络范围。同时,控制器具有全局视野,它从各交换机收集了全局拓扑,甚至全局流信息[1]。通过攻击控制器,攻击者可以获取最大收益。
脆弱的SDN控制器的具体安全风险如下。
1)由于安全设备和被保护节点/网络之间不再是物理连接,因此,可通过流的重定向使流绕过安全策略所要求的安全机制,从而使安全机制失效。
2)业务可用性被破坏,如DNS查询被破坏,使业务流无法建立;也不像传统网络需控制大规模的botnet节点,只通过SDN控制器就可改变流转发路径,将大量的数据流发往被攻击节点;等等。
3)中间人攻击,非安全的控制通道容易受到中间人攻击。
4)流的完整性被破坏,如插入恶意代码(内容)。
因此,控制平面的安全是SDN安全首先要解决的问题。下面从针对控制器的主要威胁入手,分析它们的威胁方式、影响及相应的解决对策。
1.攻击者利用控制器安全漏洞或南向协议(如OpenFlow)实施拒绝服务攻击
当数据包到达SDN交换机时,交换机对包的处理流程如图2-1所示。当包不匹配所有流表中的所有流表项时,交换机将包通过与控制器间的安全信道转发给控制器处理;当匹配了任一条流表项时,则检测流表项中的actions字段,根据该字段中指定的操作动作,对此包进行相应处理。这个处理流程,使得通过数据平面对控制平面的控制器进行攻击成为可能。
图2-1 OpenFlow交换机的包处理流程
那么,至少有如下两种攻击方式。
1)攻击方式一: 攻击者通过攻击交换机,让其将所有包转发给控制器处理,从而使控制器受到拒绝服务攻击,如图2-2所示。
SDN交换机的OpenFlow协议的流表中,每个表项包括3个域:头域(header field)、计数器(counters)和操作(actions)。当操作域值为CONTROLLER时,交换机需将数据包封装后通过类型为OFPT_PACKET_IN 的消息转发给控制器。
图2-2 针对控制器的拒绝服务攻击——OpenFlow洪泛
根据这一工作机制,攻击者可通过修改交换机流表中各表项的actions字段,使交换机将所有数据包都转发给控制器,从而导致控制器需处理大量的PACKET_IN消息。具体的攻击方法可以是攻击交换机,直接修改流表项;也可以是攻击控制器(或伪造控制器身份)向交换机下发配置指令,修改actions字段。
2)攻击方式二:根据OpenFlow协议,当交换机接收到一个数据包时,如果无法在流表中找到相应的转发端口,交换机将通过PACKET_IN 消息向控制器转发此包,请求控制器下发相应转发流规则。因此,攻击者可以伪造大量在交换机流表中不存在或无法处理的数据报文,由交换机提交这些报文给控制器进行处理,从而占用控制器资源,造成拒绝服务攻击。从终端发起传统的TCP/SYN、UDP、ICMP洪泛攻击就可以完成这种攻击。
PACKET_IN 消息消耗的控制器资源包括控制器查找、计算流路径所需的计算资源以及控制器南向接口的带宽资源。其中,计算资源的消耗正比于控制器接收的PACKET_IN 消息数(某厂家实践数据:Intel i7 4核处理器可达500k TPS (Transaction Per Second)性能[16]);南向接口带宽的消耗除了与消息数相关外,还与消息长度相关。控制器通过向交换机发送 OFPT_SET_CONFIG消息配置交换机参数,其中的miss_send_len参数用来指示当包在交换机中不匹配或者匹配结果是发到控制器时,该发送多少数据给控制器。如果该参数为0,则发送长度为 0 的PACKET_IN 消息到控制器,miss_send_len默认为128(单位为B)。但当交换机缓存满时,整个数据包都需要转发给控制器。当实施攻击方式二时,攻击包通常可占满交换机缓存,从而将整个数据包转发给控制器。当实施攻击方式一时,转发的字节数由 action_output中的 max_len 定义,攻击者可设定最大的值,以增强攻击效果。从攻击效率来说,快速发送小的随机数据包,消耗控制器的计算资源可达到最高的攻击效率,但为了绕过简单的基于包间隔门限的检测机制,攻击者实施大数据包攻击,消耗控制器的接口资源也是可行的攻击方法。
本质上,这类攻击方式是一种OpenFlow洪泛攻击,因此传统的防御思路仍可采用。
防御的第一步是流(或包)信息的收集。SDN是面向流的网络,在SDN网络中较易实现基于流的检测和防御,而较难实现基于包的安全机制。因此,这一步主要是对流统计信息的收集和计算,通常采用的方法是通过控制器周期性地读取交换机的流表信息。根据OpenFlow协议,控制器可通过OFPST_FLOW或OFPST_AGGREGATE消息向交换机询问一条、多条或全部流表项(设置要读取的流表ID参数Table_ID = 0xff)的流信息。从流表中直接可读取的流信息包括流的头域和计数器,头域包括流的源和目的地址、协议等,计数器可提供整个流表、一条流、一个端口和一个队列的较简单的统计信息。其中,关于流的统计有:接收的包数、字节数和流持续时长等3项,进行异常检测所需的特征则需进行进一步的计算得到。
流统计信息的收集常由控制器定期向交换机查询,异常检测也常由控制器上的应用完成。传统的异常检测方法也被应用于SDN控制器的抗DDoS攻击检测。例如,参考文献[2]提出计算到达控制器的新建流的目的地址的熵检测DDoS攻击,因为攻击者常进行地址伪造。其他常用方法还包括对短时间内频繁事件的检测等。Braga等[3]所用的特征为流的平均包数、平均字节数、平均生存时间、成对流比例、单位时间内的非成对流数目、单位时间内的端口数,采用SOM(Self-Organizing Map)无监督神经网络通过分类检测DDoS攻击,在检测算法的设计中,选取的特征值应便于测量。在本算法中,原理上前3个特征可以很容易从流表的计数器中得到,但实际上协议只强制要求交换机的计数器必须提供按秒计的流生存时间,而包数目和字节数是否统计是可选的。另外,后3个特征值需要成对流数目的计算以及端口数统计,这都需要控制器上的检测软件通过统计所有流表信息计算得到。
主要的防护机制包括流量控制和多控制器两种不同的思路。流量控制提供主动遏制手段。例如,通过限制控制器的访问频度,避免控制器在短时间内处理大量频繁事件(如未知流规则请求等)。多控制器结构中,可采用L7应用层负载均衡提高控制器在DDoS攻击下的生存性。参考文献[5]提出了一种基于安全多方计算思想的多控制器的SDN控制层结构设想,使得对任一物理控制器的入侵不会导致网络拓扑等敏感信息的泄露,同时网络的可用性也得到了提高。参考文献[6]设计了不同角色控制器在OpenFlow交换机之间的切换方式,实现了一种负载均衡的弹性控制平面。在协议方面,OpenFlow协议1.2版已经增加了对多控制器的支持,可为不同控制器设定不同角色,包括主控制器、从控制器和对等控制器,但是协议并未明确规定OpenFlow交换机的控制权如何在控制器之间切换。
以上讨论的多控制器间的切换都是由控制器主动发起的,并未考虑控制器自身发生故障的情况。故障恢复和备份不在本书的讨论范围内。但SDN的控制平面应具备控制器的备份和快速故障恢复能力,当一台控制器出现故障时,与其连接的网络设备应该能够迅速连接到其他控制器。从技术上说,这对控制器的状态监测、同步、调度等提出了要求。
2.非法接入控制器
攻击者可以通过传统的网络监听、蠕虫、注入恶意程序等方式窃取SDN网络管理员的账号和密码,伪造合法身份登录控制器并进行非法操作;也可以利用SDN控制器自身的软硬件漏洞,通过恶意应用进行渗透攻击提升操作权限,获取对控制器的非授权操作。一旦控制器被攻击者非法控制,则可以通过控制SDN数据平面的交换机等设备,进一步实施数据平面的攻击,或通过渗透终端设备建立僵尸网络。另外,假冒控制器也是一种SDN控制层的非法接入方式。
以下措施有助于应对上述安全威胁。
1)建立安全通道,执行严格的身份认证。强制通过加密信道访问控制器有助于防止窃听控制器管理员的账号和口令。引入认证中心对网络设备和控制器进行认证并颁发证书,且要求交换机和控制器之间通过TLS协议通信,可以防止假冒控制器非法控制交换机等设备。虽然OpenFlow 1.0强制使用TLS,但1.0版本后,由于厂家考虑认证成本,并不强制要求控制器和交换机之间通过TLS通信。
2)应用软件的安全测试、应用隔离和权限管理。SDN中的应用程序能够通过北向接口与控制层和底层资源交互,通过安全测试提高控制器上应用软件的安全性,或要求应用软件通过第三方安全评测,将有助于防止应用被植入恶意代码。理论上,模型检查和符号执行等技术可实现对软件预设的属性进行验证,从而对第三方应用进行安全检测。然而在工程应用中,这种验证无法进行运行态的即时检测。
在控制层提供应用隔离和权限管理机制,限制应用程序对底层资源的访问权限也是有效的安全措施。参考文献[7]在控制层上对不同用户的控制逻辑进行了切片分区,从而对不同用户之间的控制逻辑进行隔离。参考文献[8]在控制器上扩展出对应用程序的角色认证、规则冲突检测和安全规则转换等功能,构建了一个强制安全的控制器内核。参考文献[9]对应用层能够调用的相关命令进行了权限分配,实现了应用程序和控制层内核的隔离,从而保证了应用程序无法对底层网络进行破坏。
2.1.3 开放API:不安全的应用接口
控制平面和数据平面相互分离并不是SDN独有的特征。例如,MPLS也做到了将控制与数据转发分离,只是两个平面的功能仍在同一设备上实现,而且两个平面间的接口并不开放,两个平面本质上还是一个封闭协议栈中不可分割的部分,通过ASIC和复杂的软硬件实现了封闭的系统,支持新的高层协议、功能升级和更新都依赖于厂家。SDN控制平面和数据平面分离的独特之处在于,两个平面是通过开放接口连接的、完全独立的实体,控制平面通过标准的南向协议接口,可以对基础设施层进行编程,使网络具有可编程的能力,这种编程能力可使对网络的控制粒度达到一个数据流的粒度。从这个意义上来说,接口开放可能是SDN的几大特点中最显著的特点。
所以,从网络能力开放的角度理解,SDN最大的特点是将封闭的网络能力进行抽象,并通过接口进行开放。控制器的南向接口屏蔽了底层物理转发设备的差异,实现了资源的虚拟化,北向接口供上层业务按需调用网络资源,使网络资源可以与其他类型的资源一样,以抽象的资源能力的方式统一呈现给业务应用开发者。开发者无须理解底层网络复杂多样的协议、功能等,也不必针对底层网络的差异耗费大量开销,从事额外的适配工作,更不必因基础设施层的演进而被迫重新开发高层应用与业务。
开放接口也成为了各种软件定义架构SDx中的显著特征,如一些厂家提出了软件定义数据中心、软件定义安全等,其实质是将基础设施平面的能力(如安全设备等)通过接口开放,借助控制平面集中管控的能力进行统一的管理和调度,并通过控制层的北向开放接口将这些能力呈现给应用开发者,通过控制层的南向和北向开放接口实现了软件定义能力。
开放接口与其带来的软件可编程能力打破了传统网络封闭僵化的结构,使得基于基础设施平面可以快速开发新的控制平面应用,这种可编程能力使网络和应用的创新从硬件更新提高到只需通过软件更新,加快了创新速度。
无论是SDN还是软件定义安全,在南向接口方面,都可提供不同层次的接口开放。例如,直接在设备层面提供新的开放的API接口,包括基于XML/JSON结构化数据的RESTful API 接口,TCL/Python/JavaScript等基于脚本语言的接口,甚至直接开放更为底层的Java/C++/C语言接口,让用户可以深入到设备操作系统底层对硬件进行更深入的管理与操作,从而取得设备更大的控制权限。转发层的开放接口使网络的结构更扁平化,实现了更彻底的网络资源抽象,用户可以在业务应用中直接调用底层网络资源。
控制层上的应用程序则通过北向接口来管理网络,向用户提供业务,这是SDN可编程性的重要特征之一。因此,一个通用的控制层北向接口显得尤为必要,它的标准化能为应用层软件的可移植性、构件重用、快速开发提供技术基础,并为控制层和应用层的认证提供统一而有效的方法。当前,虽然各SDN平台并未形成统一的北向接口规范,将来可能也难以形成统一的标准,但RESTful API接口是目前在SDN网络中得到广泛应用的开放接口,以利用Web服务技术实现快速的业务开发和部署,这使得网络控制平面的应用开发更简单、更快捷、技术门槛更低。因此,充分了解RESTful API面临的主要安全挑战和对策将有助于提高SDN网络的安全性。
SDN网络中的底层资源通过北向RESTful API由控制层呈现给应用层或第三方开发者,SDN控制器提供的API可以让开发者开发和部署新的网络应用。当然,这也给攻击者以可乘之机。不安全的南/北向接口,可能使得整个网络的安全受到威胁。例如:
1)网络行为被修改。如果恶意攻击者通过注入等手段,使某应用发送的请求的参数与业务逻辑期望不符,可使该应用的网络行为被篡改,从而下发恶意指令。
2)网络通信被非法监听。如果接口是未加密的,攻击者就能监听整个调用过程,从而使敏感信息(如用户信息、调用token等)被窃取。
3)截获并修改数据包。攻击者可以采用中间人攻击,重放或修改后重发请求,达到伪造请求的目的。
4)引发DDoS攻击。如果应用接口没有检查机制,容易被攻击者反复调用,向网络设备下发大量无用的流表,可能影响数据平面效率;或者攻击者将大量流量引到某些性能较弱的节点,造成该节点被拒绝服务。
因此接口的安全设计非常重要,它应保证接口数据交互的完整性、机密性,保证接口的可用性,具有权限管理机制,以保证底层资源被合理调用,无越权操作。HTTP协议提供了多种认证机制。HTTP基本认证Basic Auth在每次请求中传送Base64编码的用户名和口令,会把用户的密码暴露在网络之中,使其存在被窃听的风险,因此需要采用HTTPs利用传输层安全机制提供安全防护;另一HTTP认证为摘要认证,采用质询/响应机制,不再在网络上明文传送口令,并通过随机数提供抗重发,安全性有所增强。还有的API采用OAuth认证,OAuth具有token管理和分发功能,主要应用于服务编排的场景。它的特点是当一个服务需要多个组合服务完成时,只需要提供一次用户的账户和密码,而且是在相对安全的服务商页面上提供。
但是这些措施并未能超越目前Web业务体系中API的安全机制。首先,和Web API相比,SDN应用通过开放接口可调用网络的控制能力直接操作底层网络资源,SDN应用层和开放接口的安全风险会导致更大的破坏力,因此,SDN的开放接口应有更高的安全等级要求。其次,SDN网络的应用层安全有其独特的特点,一方面,SDN应用层存在新形式的安全风险,如SDN应用需要利用底层网络资源或对底层网络下发不同的规则,因此每个应用下发的规则即使都是非恶意的,但多个应用下发的规则仍可能存在冲突,导致网络出现异常;另一方面,SDN网络中也可引入新的安全机制,如SDN在应用和底层基础设施之间有一个强大的集中控制器,对于SDN网络运营者来说,在其具有更强管控能力的控制层上采取必要的机制应对应用层和开放接口引入的安全风险是一种可行的方案。
可能的解决方法如下。
1)设置API权限。控制层可对不同应用的API调用设置不同的权限,对应不同级别的底层网络资源的不同操作等级,以防一般权限的应用程序调用高级别的接口命令。
2)策略检查。控制器可对通过API接口下发的应用层策略进行规则检查,检测下发的规则是否有冲突,是否符合安全策略、业务逻辑和行为特征,检测规则下发后是否可能导致网络发生异常,设计SDN网络编程语言和实现高层逻辑的策略语言有助于引入软件工程中的相应成果。
3)信任评级。对应用进行信任评级,根据应用层参数及应用的历史行为计算应用的信任度,每个应用对每个控制器的信任级别可以不同,各个控制器可以为不同级别的应用设置一个信任阈值,当应用的平均信任值大于该值时就执行相应权限的命令,否则不执行。
4)中间层检查。在控制层和基础设施层间定义一个中间层,用来检查来自控制层的信息,并下发给网络设备。
由于商业SDN控制器还在开发和原型验证阶段,业界在这方面成熟的安全接口设计实践并不多。在学术研究方面,Stanford Research Institute基于Floodlight提出了安全增强(Security Enhanced)SE-Floodligh。它是FortNOX的改进版安全增强内核SEK,提供应用层的规则冲突检测和授权管理,管理员为经过认证的北向接口提供签名,SEK在应用运行时验证签名,以决定应用是否允许访问或修改网络。Operation Checkpoint则提出了一种更细粒度的北向接口安全管理,如表2-1所示。它定义了北向接口上的权限集合。例如,对于读操作,定义的权限集包括读拓扑信息、读控制器信息、读流信息、读PACKET_IN包的载荷等,每个权限通过是否允许调用相关的方法来执行。Operation Checkpoint根据各应用的具体设计需求,决定应用在发出某个操作请求时是否应被授予相应的权限,但是细粒度的权限管理也意味着更复杂的管理。在Operation Checkpoint中,管理员需要通过命令行为每个应用设定各操作的权限集。参考文献[10] 针对控制器和应用之间可能存在的安全问题,提出了一个这样的网络Hypervisor层TOCP(Trust-Oriented Controller Proxy)——将SDN应用部署在多个控制器上,当这些应用下发命令时,由TOCP分析判断该命令是否是合理和安全的、这个应用是否为恶意应用,只有可信的命令才由TOCP下发给底层基础设施。
表2-1 Operation Checkpoint定义的权限集及相关的方法
2.1.4 数据平面:传统数据流的安全问题
数据平面的主要攻击对象是数据平面的关键节点——SDN交换机,可通过消耗流表资源对SDN交换机实施拒绝服务攻击。具体方式包括直接入侵交换机,用虚假信息填满流表,或通过向控制器发送大量数据包,致使控制器为每个数据包建立一条转发流规则,从而导致流表溢出。以POX模块转发为例,它采用数据链路层自学习交换,当控制器仅通过头字段进行配置时,只需变更数据包头部某些值(如UDP包的源地址与目的端口等),就能使控制器配置出一条新的转发流规则。拒绝服务攻击的效果表现在丢包和交换机产生“流表满”错误,增大流结束超时时间,可增加攻击成功的概率。以上攻击方法对交换机的输入缓存(Input Buffer)也有效,当前的OpenFlow协议对交换机输入缓存设置了最小速率控制,当包到达速率超过控制门限时,表现出的是输入缓存丢包。
应对这种拒绝服务攻击的方法如下
1)采用流控(Rate Limiting)、事件过滤、拥塞丢包和超时调整。流控能让控制器或交换机在DoS攻击过程中保持响应;事件过滤能让控制器选择性地处理事件,提高系统恢复能力;拥塞丢包机制能够丢掉异常的包,并在无法隔离攻击者的时候,通过 QoS机制与拥塞丢包机制共同起作用;超时调整机制可以减轻DoS攻击的危害。
2)流聚合。在控制器上将多条具有相同动作的流聚合成一条流,从而通过降低流操作的粒度降低控制器的负载,减小流表溢出的概率。
3)在交换机和控制器上实施攻击监测。
4)在控制器上实施严格的访问控制策略。
数据平面中节点的非法接入也是危害极大的安全威胁,防止恶意接入网络的有效方法是提供身份认证机制。当采用TLS安全协议时,可引入认证中心对网络设备和控制器进行认证并颁发证书。这种处理方式略显复杂,由于当前OpenFlow网络主要部署于私有云中,属于相对可信环境,因此几乎都不采用。网络设备的增加和退出是由网络管理员进行操作,使控制层能够获取各个网络设备的信息,从而阻止恶意节点的非法接入。在广域网或采用分布式控制平面的SDN网络中,需要考虑动态的节点加入,或本域内的网络设备需要向邻接域内的控制器发起连接,情况会复杂许多。
与传统网络相比,SDN交换机有更多的控制层交互,控制接口的功能更强大。因此,除直接渗透有脆弱性的交换机外,攻击者通过部署非法应用、入侵控制器都可实现对交换机流表的非法操作,完成以下对用户数据流的攻击。
1)改变流转发路径,实施中间人攻击,进行信息窃取和篡改。
2)修改对数据包的操作动作,改变交换机在转发流时对数据包的操作动作。例如,丢弃数据包实施拒绝服务攻击,非法复制数据包并通过另外的路径转发给攻击者窃取信息或实施中间人攻击。
3)设定非法信息的转发路径,从而占用某用户的转发端口等网络资源实施拒绝服务攻击,或通过注入精心设计的数据包进行会话劫持攻击。
SDN网络也为数据平面安全提供了传统网络不具备的能力。例如,利用SDN对网络基础设施层的软件定义能力实现MTD(Moving Target Defense),从而变换数据平面的攻击面,增加攻击成本和难度,利用SDN可实现从物理层到应用层的全协议栈的MTD[11];通过SDN提供数据的多路径传送,可提供L4负载均衡在网络不同路径间分割数据包,从而提高网络在DDoS攻击下的生存能力,并提高窃听难度,也可利用多路径提供不同等级的安全信道。
SDN提供的集中控制能力还可为数据平面提供类似于传统面向连接网络的信令功能。以下展示了可信通道应用[12]提供的安全策略是如何控制敏感数据在SDN网络中安全传送的。
1)要发送敏感数据的一方M1首先发送一个信令包到网络中,这个包中包含了敏感数据在网络中传输时的安全策略,如哪条链路或交换机是恶意的,尽量避开。
2)这条消息会通过PACKET_IN消息被控制器获取,并且这个包中有关于M1和控制器之间的认证信息,使得双方互相建立信任关系。
3)控制器把策略发送给TPA(Trusted Path Application)。
4)TPA会根据这个安全策略来指定合适的可信通道(结合安全策略和最小路径算法,将安全参数加入路径计算),并且TPA会下发OpenFlow命令给底层交换机,如生成流表项来建立敏感数据的可信通道。
5)M1会收到来自控制器发来的确认信息,告诉M1敏感数据的可信通道已经建好。
6)至此,M1就可以传送敏感数据给M2了。
利用类似思想,还可以设计更多的“信令包”,在数据通信前提交给控制层,以完成其他功能。例如,在“信令包”中提交用户信息,从而为流提供认证功能,网络只为经过授权的用户建立流。