黄 兴,秦晓娜,许光利
(中国电子科技集团公司第三十研究所,四川 成都 610041)
随着信息技术的不断进步,信息系统面临的网络安全威胁愈发复杂。防火墙、入侵检测、漏洞扫描以及防病毒等网络安全设备协同配合,共同组成了网络安全风险的防护屏障。为了对不同安全设备进行统一管理,安全管理系统应运而生。安全管理系统为使用者提供了安全设备数据统一采集和呈现平台,通过不同设备的统一调度构建有效的防御手段。本文分析安全运维管理的需求,探讨设备管理协议中的关键技术,提出了数据交换格式模型。
业界普遍认为,网络安全由技术、管理和运维3部分组成,且其长期效能主要取决于安全运维管理水平[1]。安全运维管理的好坏对网络安全体系的整体效能具有重要影响。
在网络安全体系中,不同安全设备各司其职,协作实现安全防护。安全管理系统通过高效的管理运维,起到协调调度的作用。管理运维需求主要包括设备状态的统一监控、安全风险的及时呈现、安全威胁的高效处置以及安全策略的迅速调整[2]。
安全运维过程中,安全管理系统与安全设备间存在大量的数据交换需求。不同安全设备形态各异、技术体制不一,形成了异构的数据环境。安全管理系统对各种安全设备进行统一运维管理,必须设计跨平台的通用传输协议,以降低系统间耦合度,实现安全防护数据的互联互通,从而为运维人员进行决策提供更好的支撑。为了保证管理协议的平台的无关性和可扩展性,需要定义通用的安全信息描述机制和数据格式。
安全运维管理过程中,为了防止外部攻击者获取敏感信息,使用的传输协议必须通过加密等手段进行安全性保护。
可扩展标记语言(eXtensible Markup Language,XML)是一种用于标记电子文件使其具有结构性的标记语言。它遵循W3C规范的语法要求,形式与内容分离,具有良好的自描述性,同时易于扩展,拥有丰富的第三方开发库,非常适合在不同架构的系统之间进行信息传输使用。随着XML的应用越来越广泛,在众多应用场景下,XML凭借其优点已经成为事实上的数据交换标准。
Web Service是一种跨编程语言、跨操作系统平台的远程调用技术。Web Service技术的典型特点是平台无关性和开放性。运行在不同系统上的异构应用无须借助专门的第三方软硬件,就可相互交换数据或实现集成。不同应用之间只要共同遵循了Web Service规范,无论它们所使用的语言、平台或内部协议是什么,都可以实现数据的相互交换。
简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于XML的轻量数据交换协议规范,能够在不同信息系统之间交换结构化数据,是Web Service的一种主流实现形式。
SOAP基于HTTP协议定义了一个框架,描述消息中的内容是什么、是谁发送的、谁应当接受并处理它以及如何处理它们。它通过定义SOAP信封(Envelop)实现数据格式的标准化,将XML数据封装于信封之中进行信息交互,使得异构的系统间能够进行互操作。
国际数据加密算法(International Data Encryption Algorithm,IDEA)是一种对称加密算法,由中国学者来学嘉和密码专家Massey共同设计[3]。它的原理为来自不同代数群的混合运算。加密过程由8圈迭代和1次输出变换组成,密钥长度为128位,对计算资源要求不高,能够在不同平台上实现高速加解密。
IDEA的工作流程如图1所示,其加密和解密使用同样的密钥K。发送方将明文P使用密钥K进行加密后得到密文C,然后通过网络将密文C传输给接收方。接收方使用同样的密钥K进行逆运算,解密后得到明文P,以实现信息传递时的安全性保护。
与其他传统加密算法相比,IDEA在混淆性、扩散性、安全性以及加解密效率等方面具有较为明显的优势,目前已经在各种有加密需要的信息交换场景下得到了广泛应用。
安全管理系统和安全设备分别通过发布Web服务描述语言(Web Services Description Language,WSDL),对外提供基于SOAP的Web Service。双方基于该WSDL实现对方发布的Web Service的客户端,通过互相访问实现信息的上行/下行传输。
信息数据报文作为安全管理信息的载体,是安全管理系统和安全设备进行信息交互的核心。数据交换格式是系统间信息交换的编码规范,是保证安全防护体系中各系统实现互连互通的基础[4]。
为了信息数据报文的通用性和可扩展性,在安全管理协议中,所有数据报文都以XML的格式描述。XML具有高可扩展性[5]。使用XML对安全信息进行描述既能满足基础管理需求,也便于根据需要进行扩展,以实现管理协议的高效、通用,同时能满足灵活、易扩展等需求。
如表1所示,根据报文作用的不同,将安全管理系统与安全设备之间的数据报文分为以下几类。
表1 数据报文分类
针对报文类型的不同,安全管理系统和安全设备在进行信息传输时调用不同的接口方法,实现数据的分类处理。通过报文分类,方便安全设备的快速适配,同时便于后续扩展。
在设计管理协议时,需要充分考虑不同安全设备的相同点与差异性,同时协议设计需要有可扩展性,为后续新安全设备的加入留出空间。数据报文分为所有设备都应遵循的通用数据格式(如设备运行状态视图)和针对某类设备的专用数据格式(如防火墙的网络访问控制策略)。所有数据报文均以语义化的方式进行描述,便于理解,也易于程序进行处理。
XML Schema定 义(XML Schema Definition,XSD)是一种对XML文件的构造进行定义的规范,能够检查给定的XML文件是否符合XSD的定义。安全管理协议对所有数据报文定义均通过XSD进行格式限制,以实现信息的规范化描述,同时便于接收方验证信息的合法性,防止格式不正确的非法报文对系统性能造成影响。
设备管理协议的交互流程如图2所示。通过服务探测与配置信息发布,安全管理系统与安全设备建立管理关系。
步骤(1)安全管理系统访问安全设备对外发布的Web Service地址,确认服务正常;
步骤(2)安全管理系统向安全设备发送参数配置报文,告诉安全设备与安全管理系统进行信息交互时需要的必要信息;安全设备收到报文后,根据其中内容将相关信息进行持久化保存,并向安全管理系统回复接收成功;
步骤(3)完成步骤(2)后,设备根据参数配置报文中定义的各类数据上报模式和时间间隔,定期向安全管理系统上报数据。当参数配置、安全策略有变化时,安全管理系统主动向安全设备下发,安全设备根据报文进行解析执行。
为了确保管理数据在信息交换时的安全性,安全管理协议要求通信双方在发送数据前,通过IDEA算法对数据报文进行加密,并使用加密后的密文进行信息交互。
安全管理系统会为每个设备分配唯一的加解密密钥。即使单个设备的密钥泄露,攻击者在不知道其他设备密钥的情况下,无法对其他设备的通信报文进行解密。
安全管理系统和安全设备分别部署安全管理Web Service通信服务,通过互相访问实现安全设备视图、策略、事件、日志上报和参数、策略下发等功能。一个典型的Web Service接口描述如下:
int reportInfo(String devID,String dataType,String xml).
该接口由安全管理系统发布,供安全设备调用,主要包含3个参数[6]。第1个参数为安全设备的唯一标识。安全管理系统通过该参数区分来自不同设备的数据,并以此为依据生成IDEA加解密使用的密钥。第2个参数为加密后的数据报文标识,用以区分上报数据的具体类型,供接收方判断应该通过哪种方法对数据进行针对性处理。第3个参数为加密后的报文数据,包含安全管理业务的真正数据。接口的返回值为int型数据,根据不同的返回值,可以判断接口调用是否成功或具体的错误类型。
下面是一个“通信参数配置”报文的具体实现,以此为例说明数据格式的结构与含义。
报文以XML格式封装:第1行表示数据报文由UTF-8编码方式进行编码;第2行表示本报文的类型属于配置报文,需要接收者按照配置报文的解析方式进行解析;第3行表示本报文具体类型属通信参数配置,主要用于约束安全管理系统与安全设备间如何进行通信;第4行表示安全管理系统的IP地址是192.168.11.250;第5行表示安全管理系统开放的端口是8080;第6行表示安全管理系统给安全设备分配了一个唯一的设备ID,在后续通信中,安全设备需要将该设备ID作为自身的标识信息。安全设备收到该报文后进行解析,即可得知安全管理系统的IP地址、端口与分配给自己的身份标识。后续可利用该身份标识与安全管理系统进行通信。
通过以上对报文各字段的分析可知,管理协议报文基于应用层,以语义化的方式,通过定义不同字段名与该字段含义来表示不同的内容。因此,可以针对不同安全设备特点定义不同的数据格式,实现安全管理信息的上传和下发,不存在系统平台适配或转换问题。
本文设计的网络安全设备管理协议已经在某大型安全防护系统中应用,供安全管理系统和安全设备进行信息交互时使用。该安全防护系统广泛部署于国内各点位,多年来稳定运行。经过验证,它能够支撑安全管理系统与安全设备之间的通信需要,保障运维人员对整个网络空间的统一安全管理。
安全运维管理的核心是安全数据的交互。本文从安全运维管理的现状及需求出发,提出了一种网络安全设备管理协议,分析涉及的关键技术,设计数据交换格式模型,能够解决安全管理系统和网络安全设备的数据交互问题。后续的工作主要包括进行数据压缩优化设计、提升编码效率和传输性能等。