主动网络安全保护结构探析
2009-06-17宫明
宫 明
摘要:安全性是一个网络系统必须要考虑的问题,文章首先介绍了现有的网络安全技术,然后分析了主动网络面临的安全威胁,提出了主动网络的保护机制,最后给出了适用于主动网络的安全传输方案。
关键词:主动网络;网络安全;网络传输方案;主动代码
中图分类号:TP393 文献标识码:A文章编号:1009-2374(2009)05-0124-02
主动网络是一种可编程的分组交换网络,通过各种主动技术和移动计算技术,使传统网络从被动的字节传送模式向更一般化的网络计算模式转换,提高网络传输速度、动态定制及网络新服务的能力。
一、主动网络介绍
主动网络的基本思想是将程序注入数据包,使程序和数据一起随数据包在网络上传输;网络的中间节点运行数据包中的程序,利用中间节点的计算能力,对数据包中的数据进行一定的处理;从而将传统网络中“存储——转发”的处理模式改变为“存储——计算——转发”的处理模式。
主动网络中能够携带程序代码的分组称为主动分组,能够处理主动分组并执行主动分组中所带程序的中间节点称为主动节点,如主动路由器和主动交换机。网络节点不仅具有分组路由的处理能力而且能够对分组内容进行计算,使分组在传送过程中可以被修改、存储或重定向。主动网络允许用户向网络节点插入自己定制的程序,网络节点在处理数据包时将程序载入并执行,以此来修改或者扩展网络的基础配置,从而实现快速、动态的部署新协议、提供新服务,使网络更具灵活性和可扩展性。
二、主动网络的安全威胁
(一)主动节点面临的安全威胁
主动节点希望保护自己的资源,不希望未经过授权的主动分组使用自己的节点资源,确保自己所提供的服务具有可获得性,保护自己节点状态的完整性和保护自己状态反对未授权暴露。主动节点可能感觉受到的威胁来自执行环境,因为执行环境会消耗主动节点资源或更改节点状态参数等。作为主动节点必须能够安全有效地管理自己资源,以便分配给经过授权的主动代码使用,为主动应用提供服务此外主动节点必须能够识别邻居节点,这样能够确保将主动报文传送到可信任的相邻主动节点上。为了满足以上这些安全要求,主动网络应当采用下面方式来保障主动节点安全:(1)主动网络应当采用有效的安全机制保证主动节点安全;(2)主动节点执行主动代码时候必须能够对其发行者进行身份认证,并执行一种存取控制来实现其资源操作和安全控制;(3)由于主动节点中的执行环境需要安装主动代码、执行主动代码等操作,因此主动节点应当有安全审计功能来实时监视主动节点系统以及主动应用程序的运行状态,发现威胁时,能够及时终止主动代码的执行并且保留不可抵赖和不可磨灭的记录。
(二)执行环境面临的安全威胁
执行环境感觉其受到的威胁可能来自其它的执行环境、来自主动分组或者来自主动代码。因为在一个主动节点中可能存在着多个执行环境,如果其中一个执行环境过多的消耗主动节点资源,那么必然对其它执行环境的运行造成损害。同样一个恶意的主动代码在执行环境中运行的时候,该恶意主动代码可能更改执行环境参数、超额消耗执行环境所授权使用的资源、进行执行环境所未授权的存取控制操作,导致执行环境不能有效的或正确的为其它主动代码提供服务。
(三)主动分组面临的安全威胁
主动代码可能向主动节点发出存取控制操作请求,其目的是为了处理和传送;主动代码可能向主动节点发出存取请求,其目的是为了取得服务;主动代码也可能请求存取一个主动分组,其目的是为了处理或删除和更改这个分组,这些意味着主动代码应当能够识别它所想处理的主动分组。一个主动节点可能对主动代码进行存取、检索更改或终止;主动分组需要保护自己数据没有经过未授权而被窃取或更改,保护自己的服务防止未授权使用,保护自己的资源防止未授权使用。主动代码感觉受到的威胁主要来自其它主动分组、其它主动代码、来自执行环境和节点,它能保护自己防止其它主动代码对其造成的安全危害,但是它不能保护自己防止受到执行环境和主动节点的安全威胁,因为主动代码不得不在执行环境和主动节点中运行。主动代码所能做的是保护自己确保它没有被传送到不信任的节点和执行环境上。主动分组应当不相互干涉,一些分组将基于下面几个标准安装新的代码和进行存取控制:(1)授权分组创始人允许安装新的代码;(2)代码被证明非干涉;(3)代码仅允许执行通过认证的创始动作;(4)代码被证明有边际影响,但仅影响信任使用者的代码。
(四)用户面临的安全威胁
用户或源节点希望保护自己主动分组中的传输数据和代码,确保主动分组中数据和代码的完整性和机密性。因为其它非法或恶意的用户主动代码可能通过在主动节点上运行来查看其主动分组的数据、代码和运行状态等,所以主动应用用户会感觉威胁来自其它用户的主动代码或主动分组:主动应用用户还把执行环境和节点看作威胁源,因为防止未授权的主动节点查看和修改其主动分组的数据、代码和运行的状态。
三、主动网络的保护策略
(一)主动节点的保护
(1)主动分组的认证:任何主动分组都具有一份证书,该证书由一个可信任的证书中心发布。证书用来保证对该证书签名的持有者为主动分组负责;(2)监视和控制:可以通过设定访问监视器,它可以根据策略数据库中的安全决策来决定访问是否被授权,通过安全策略来允许主动分组访问和使用主动节点资源和服务;(3)限制技术:时间限制、范围限制以及复制限制,这些限制在阻止主动分组过度占用节点资源方面是必要的。
(二)主动分组的保护
(1)在主动网络中,主动分组可能会导致一些在现有的传统网络中不易经常出现的一些问题,如毁坏节点资源、拒绝服务、窃取信息等。为了保护主动分组的安全,可以采用加密、容错、数字签名技术等安全技术;(2)加密指主动分组不含有明文代码和数据,防止在传输过程中代码和数据被破坏;(3)容错技术就是备份、持续和重定向。备份意味着在每个节点都进行复制。持续是指分组临时被存储以防节点失效,这样即使节点崩溃,分组仍然存在存储器中。由于备份和持续会消耗大量的内存和带宽,对大部分分组来说是不可接受的,所以只有非常重要的分组才这样做;(4)数字签名技术对于主动分组进行完备性检测常采用公钥签名或X.509证书形式。接收方收到主动分组后,利用CA公钥验证CA数字签名以保证证书的完整性,然后从证书中获得主动分组发送者的公钥,验证主体的身份。
四、主动网络安全传输方案的设计
(一)合法节点之间的安全传输
在主动网络中,传输过程中,路径上的主动节点要执行主动分组中含有的代码,对主动分组进行计算处理,主动分组在完成传输之前,究竟会有多少个节点参与到通信中来,以及这些节点究竟是哪些节点,它们分布在什么位置,这些信息是无法事先确定的。这就导致发送节点、中间节点以及终端节点都无法确定自己会与多少个节点通信,也无法知道这些节点的所属者以及它们的地理位置。这就给主动节点之间的认证带来了困难,所以引入认证中心(CA)是完成主动节点通信过程中进行身份鉴别的必然选择。让所有可信节点都向CA注册,获得认证,并获取一张由CA签发的用以证明其合法身份的数字证书,从而使可信节点之间能够通过数字证书来完成彼此的身份鉴别。
(二)有不可信节点参与的安全通信
笔者认为可行的方案就是:由认证中心CA给每一个合法节点签发一个不含该节点公钥的数字证书,另外由认证中心保管各个合法节点的公钥。当主动节点A要和节点B通信时,只要用自己的私钥将数据包m进行加密,然后附上自己的证书,一起封装起来传送给B;节点B接收到传来的加密数据包,若B是未经认证的节点,只需按照该数据包的目的地址直接将其转发给下一节点;若B是经过认证的合法节点,则B首先根据数据包中的数字证书鉴别发送节点A的身份信息,然后向认证中心请求主动节点A的公钥,CA对B的身份进行鉴别,通过验证后将A的公钥安全的传给B,B用该公钥对A传来的加密包进行解密,完成对主动分组的处理。
通信过程如下:(1)A对要发送的分组m应用一个散列函数H得到报文摘要;(2)用A的私钥K-A对得到的报文摘要签名,从而得到数字签名;(3)把原分组m(未加密)和数字签名级联到一起生成一个新的数据包M;(4)随机选择一个对称密钥Ks,用这个密钥对M进行加密Ks(M);(5)用主动节点A的公钥K-a对这个对称密钥进行加密K-A(Ks);(6)级联该加密的报文Ks(M)和加密的对称密钥K A(Ks),附带CA签发给主动节点A的数字证书,形成一个新的包,传送给主动节点B;(7)节点B收到分组后,首先取出主动节点A的证书,确认其身份;然后B向CA发出请求,要求获得A的公钥;CA再收到B的请求时,要验证B是否是合法节点,验证成功后将A的公钥安全的发送给B;B用A的公钥K认将报文解密,得到对称密钥Ks,对加密报文Ks(M)进行解密,得到原始数据包,计算该数据包的散列值;并与解密得到的散列值进行比较,若一致,说明通信过程安全完整;(8)若B是非法节点,则CA不会将A的公钥发送给B,B只需将加密的分组根据路由表向下一节点转发即可,或者B是普通节点,也只需对加密的主动分组做传统的转发。