主动网络
主动网络的介绍
主动网络的基本思想是将程序注入数据包,使程序和数据一起随数据包在网络上传输;网络的中间节点运行数据包中的程序,利用中间节点的计算能力,对数据包中的数据进行一定的处理;从而将传统网络中“存储——转发”的处理模式改变为“存储——计算——转发”的处理模式。
主动网络中能够携带程序代码的分组称为主动分组,能够处理主动分组并执行主动分组中所带程序的中间节点称为主动节点,如主动路由器和主动交换机。网络节点不仅具有分组路由的处理能力而且能够对分组内容进行计算,使分组在传送过程中可以被修改、存储或重定向。主动网络允许用户向网络节点插入自己定制的程序,网络节点在处理数据包时将程序载入并执行,以此来修改或者扩展网络的基础配置,从而实现快速、动态的部署新协议、提供新服务,使网络更具灵活性和可扩展性。
主动网络的安全体系模型
主动网络中包含许多由各种可能的网络技术连接起来的网络节点,这些网络节点并不一定都是主动节点。体系结构从宏观上分为三层,由节点操作系统(Node OS)执行环境和主动应用主要构件组成,Node OS的功能是主动节点中的通信带宽处理机能Node OS力,以及存储空间等本地资源向其上层的EE提供可供调用的接口,包括输入输出信道软状态存储、安全策略数据库以及安全强制引擎Security Enforcement Engine,EE EE利用Node OS向其提供节点资源的调用接口,再向AA提供相对独立的执行环境的编程接口,一个Node OS中可以有多个EE类似于Java的接口。语言的虚拟机这些EE相对隔离构成一个个相对安全的执行环境,这样既可以限制每个EE对节点资源的使用,从而保证多个节点资源可以公平地使用节点资源又能隔离每个EE的处理防范。由于某个主动分组无意或恶意地过多使用网络节点资源而妨碍主动节点的正常运行。
(一)ANSA安全体系
ANSA是IETF安全工作小组建议的主动网络安全体系结构。在ANSA体系结构中定义了一个基本的安全角色—主体。它泛指任何网络操作行为的发起者,如:某个人某个团体或团体中的某个成员等。ANSA将主动网络中的安全问题分为两类:端到端(End-to-End)安全和逐跳(Hop-by-Hop)安全,ANSA建议所有的逐跳安全和绝大部分端到端安全在节点操作系统层实现。其优点是所有的EE操作都经过统一的安全检查;其缺点是在目前基于类UNIX通用操作系统的主动网实验平台上加载安全机制,并需要修改操作系统内核,这显然大大增加了主动网安全机制开发的难度。
(二)ABone安全体系
ABone是由DARPA资助的在Internet上供研究用的一个主动网实验平台。在功能上对等于IPv6网络的实验平台6Bone。有了ABone人们就可以在全球范围内借助Internet开展主动网的研究工作。ABone支持两种可执行环境EE:ANTS和ASP。目前加入ABone的节点己遍布于世界各地,基于Abone的主动网安全性研究非常活跃。绝大多数Abone的节点操作系统都为类UNIX操作系统, Abone将主动网中的安全问题主要划分为以下两类:
1、非法的主动分组对主动节点上合法的AA带来的安全隐患。
2、恶意的AA对主动节点上的EE和节点操作系统的危害。Abone建议逐跳安全可以在EE中实现也可以在网络守护进程(netiod)中实现,端到端安全则在EE中实现。其优点是实施安全机制不需修改操作系统内核;缺点是需要在每个EE中分别实现安全机制。
总之,主动网络与传统网络相比,具有无法比拟的灵活性和开放性,但这些优势也使得主动网络的安全问题变得更加棘手。本文在对主动网络定义阐述的基础上,提出了主动网络安全体系结构模型,并对模型的功能进行了描述,设计了系列基于AN的网络故障管理技术的基本实现方法。
主动网络的安全威胁
(一)主动节点面临的安全威胁
主动节点希望保护自己的资源,不希望未经过授权的主动分组使用自己的节点资源,确保自己所提供的服务具有可获得性,保护自己节点状态的完整性和保护自己状态反对未授权暴露。主动节点可能感觉受到的威胁来自执行环境,因为执行环境会消耗主动节点资源或更改节点状态参数等。作为主动节点必须能够安全有效地管理自己资源,以便分配给经过授权的主动代码使用,为主动应用提供服务此外主动节点必须能够识别邻居节点,这样能够确保将主动报文传送到可信任的相邻主动节点上。为了满足以上这些安全要求,主动网络应当采用下面方式来保障主动节点安全:(1)主动网络应当采用有效的安全机制保证主动节点安全;(2)主动节点执行主动代码时候必须能够对其发行者进行身份认证,并执行一种存取控制来实现其资源操作和安全控制;(3)由于主动节点中的执行环境需要安装主动代码、执行主动代码等操作,因此主动节点应当有安全审计功能来实时监视主动节点系统以及主动应用程序的运行状态,发现威胁时,能够及时终止主动代码的执行并且保留不可抵赖和不可磨灭的记录。
(二)执行环境面临的安全威胁
执行环境感觉其受到的威胁可能来自其它的执行环境、来自主动分组或者来自主动代码。因为在一个主动节点中可能存在着多个执行环境,如果其中一个执行环境过多的消耗主动节点资源,那么必然对其它执行环境的运行造成损害。同样一个恶意的主动代码在执行环境中运行的时候,该恶意主动代码可能更改执行环境参数、超额消耗执行环境所授权使用的资源、进行执行环境所未授权的存取控制操作,导致执行环境不能有效的或正确的为其它主动代码提供服务。
(三)主动分组面临的安全威胁
主动代码可能向主动节点发出存取控制操作请求,其目的是为了处理和传送;主动代码可能向主动节点发出存取请求,其目的是为了取得服务;主动代码也可能请求存取一个主动分组,其目的是为了处理或删除和更改这个分组,这些意味着主动代码应当能够识别它所想处理的主动分组。一个主动节点可能对主动代码进行存取、检索更改或终止;主动分组需要保护自己数据没有经过未授权而被窃取或更改,保护自己的服务防止未授权使用,保护自己的资源防止未授权使用。主动代码感觉受到的威胁主要来自其它主动分组、其它主动代码、来自执行环境和节点,它能保护自己防止其它主动代码对其造成的安全危害,但是它不能保护自己防止受到执行环境和主动节点的安全威胁,因为主动代码不得不在执行环境和主动节点中运行。主动代码所能做的是保护自己确保它没有被传送到不信任的节点和执行环境上。主动分组应当不相互干涉,一些分组将基于下面几个标准安装新的代码和进行存取控制:(1)授权分组创始人允许安装新的代码;(2)代码被证明非干涉;(3)代码仅允许执行通过认证的创始动作;(4)代码被证明有边际影响,但仅影响信任使用者的代码。
(四)用户面临的安全威胁
用户或源节点希望保护自己主动分组中的传输数据和代码,确保主动分组中数据和代码的完整性和机密性。因为其它非法或恶意的用户主动代码可能通过在主动节点上运行来查看其主动分组的数据、代码和运行状态等,所以主动应用用户会感觉威胁来自其它用户的主动代码或主动分组:主动应用用户还把执行环境和节点看作威胁源,因为防止未授权的主动节点查看和修改其主动分组的数据、代码和运行的状态。
主动网络的保护策略
(一)主动节点的保护
(1)主动分组的认证:任何主动分组都具有一份证书,该证书由一个可信任的证书中心发布。证书用来保证对该证书签名的持有者为主动分组负责;(2)监视和控制:可以通过设定访问监视器,它可以根据策略数据库中的安全决策来决定访问是否被授权,通过安全策略来允许主动分组访问和使用主动节点资源和服务;(3)限制技术:时间限制、范围限制以及复制限制,这些限制在阻止主动分组过度占用节点资源方面是必要的。
(二)主动分组的保护
(1)在主动网络中,主动分组可能会导致一些在现有的传统网络中不易经常出现的一些问题,如毁坏节点资源、拒绝服务、窃取信息等。为了保护主动分组的安全,可以采用加密、容错、数字签名技术等安全技术;(2)加密指主动分组不含有明文代码和数据,防止在传输过程中代码和数据被破坏;(3)容错技术就是备份、持续和重定向。备份意味着在每个节点都进行复制。持续是指分组临时被存储以防节点失效,这样即使节点崩溃,分组仍然存在存储器中。由于备份和持续会消耗大量的内存和带宽,对大部分分组来说是不可接受的,所以只有非常重要的分组才这样做;(4)数字签名技术对于主动分组进行完备性检测常采用公钥签名或X.509证书形式。接收方收到主动分组后,利用CA公钥验证CA数字签名以保证证书的完整性,然后从证书中获得主动分组发送者的公钥,验证主体的身份。
主动网络的研究背景
主动网络由于允许用户对网络的中间节点编程,到达主动节点的主动代码,在执行的过程中需要请求相关的服务,访问所需要的节点资源,因此其安全性面临更大的威胁。如果安全性得不到更好的解决,该网络就不存在真正的实用价值。IETF(互联网工程任务组)的主动网络安全工作组已经提出了一个主动网络的安全规范,但该规范只提出了一个安全框架,许多细节和实现在该规范中并没有得到具体的体现。国外主动网络系统中考虑了一些安全方面的问题,方法大致有以下几种:
(一)使用强类型语言限制资源访问:如BBN公司的SmartPacket系统采用了Sprocket语言,宾夕法尼亚大学的Switchware系统采用了PLAN语言。这种方法虽然能够保证一定的安全,但与他们所采用的语言有着密切的关系,不具有通用性。
(二)直接限定最大值:直接在主动信包中限定AC的最大跳数,从而避免耗费过多的资源。由于不同AC所访问的资源量不同以及节点环境的动态性,所以在实现过程中该最大值最终难以确定。
(三)使用硬件:如Switchware在安全方面做的研究工作并取得了一定的研究成果,通过在底层使用硬件AEGIS来安全地引导主动节点操作系统。但是这种基于硬件的安全策略使其通用性方面受到了影响。
(四)使用认证和授权:如SmartPacket采用了认证技术对信包的创建者进行身份认证,采用访问控制列表来仲裁主动信包的访问权限和可访问的资源,但该方法需要修改主动网络封装协议。由此可见,国外研究的一些主动网络系统因其侧重点不同而对安全性考虑得很少。即使有所考虑,但采用了特殊技术使得其安全机制不具有通用性。