APP下载

基于USB KEY网络安全系统的研究*

2010-04-26胡巧玲

舰船电子工程 2010年4期
关键词:加解密数据包客户端

胡巧玲

(中国舰船研究设计中心 武汉 430064)

1 引言

某局域网是一个信息点较为密集的千兆局域网络系统,大致可以划分为三个主要的区域:Internet区域、内部网络、公开服务器区域。内部网络又可按照所属的部门、职能、安全的重要程度分为若干子网,包括:财务子网、领导子网、办公子网、中心服务器子网等。所联接的现有上千个信息点为在整个企业内办公的各部门提供了一个快速、方便的信息交流平台。通过专线与Internet的连接,各个部门可以直接与互联网用户进行交流、查询资料等。通过公开服务器,企业可以直接对外发布信息或者发送电子邮件。高速交换技术的采用、灵活的网络互连方案设计为用户提供快速、方便、灵活通信平台的同时,也为网络的安全带来了更大的风险。因此,在原有网络上实施一套完整、可操作的安全解决方案不仅是可行的,而且是必需的。

身份认证是网络安全技术的一个重要方面,身份认证[1~4]机制限制非法用户访问网络资源,是其他安全机制的基础。本文研究的目的是在不影响局域网当前业务的前提下,实现对局域网全面的安全管理。从而保证无论是在本单位的内网或是公网的合法用户在与单位内资源服务器进行信息交互时,都能确保系统与数据的安全保密,亦即建立所谓的网络安全系统。本文所采用的身份认证技术是实现网络安全管理的一种重要手段,对于网络应用的安全起着非常重要的作用。通过对身份认证技术的理论分析和系统设计等方面的研究,可以增强现有认证系统的安全性、可用性和易管理性,提高系统的效率,为网络安全系统应用提供高效实用的解决方案。

2 网络安全系统的设计

2.1 系统概述

基于PKI[5~7]的网络安全系统,可实现内部网络用户和公共网络用户访问内部网络资源服务器的身份认证功能。它主要由四部分组成:认证服务器、认证客户端、资源服务器及控制服务器。

图1是一个实际的应用环境中,网络安全系统的拓扑结构。其中:

控制服务器主要完成截获用户发向资源服务器认证的请求连接,将其转发到认证服务器进行用户的身份认证,它是实现客户端和认证服务器认证连接转发的中间环节,当用户认证成功后为用户建立访问资源服务器的透明代理。认证服务器主要完成与客户端的认证工作,它存放各种用户的身份认证信息和本地的一些安全参数信息。同时,为保护用户与认证服务器之间的通信,以及实现用户对服务器的身份认证,认证服务器拥有RSA公私密钥对。认证服务器和控制服务器在实际使用环境中将放置于企事业单位网络的内部网络,受到防火墙的访问控制保护。

认证客户端位于内部网络和公共网络任何待认证的用户主机。认证客户端主要包括一个USB KEY[8~10]作为用户资源访问认证的物理设备,还包括读取和操作USB KEY的驱动程序。在用户入网认证之前首先在认证服务器端进行注册,管理员在用户的 USB KEY中写入标识KEY的唯一ID号、用户客户端认证信息,以及认证服务器的公钥,同时认证服务器在本地的数据库中为用户生成注册信息,这样用户就成为了网络资源服务器的合法用户。

图1 网络安全系统拓扑结构

2.2 认证客户端的设计

认证系统的客户端主要包括两部分:一部分是客户端认证服务程序,除对USB的驱动程序应用接口进行访问,读取客户端的用户认证信息外,还提供客户端上层认证代理;另一部分是底层的客户端网络驱动程序的设计,主要完成根据规则定义对客户端所发数据包的截获、分析、记录和过滤,并把认证服务器发送过来的随机数认证数据包转发到客户端上层认证代理。

客户端系统认证结构模式的设计可以采用代理模式和监听模式。客户端的认证服务程序主要包括两部分:一部分是对USB的驱动程序应用接口的访问,包括USB KEY的打开,用户数据和认证信息的读出和写入;另一部分是提供客户应用程序的认证代理程序。认证代理主要负责接收客户端底层网络驱动程序转发上来的认证通知包(随机数Random);采用RSA算法对生成的认证消息包(EKUas(ID,M1,N2,Random))进行加密和发送;接收认证结果(N3)并且更新USB KEY的用户认证信息。认证代理还包括客户端认证结果信息界面显示。客户端认证代理程序是采用并发若干个认证线程来处理接收到的多个认证服务连接,这样可以实现客户端并发访问多个资源服务时的认证需要。客户端认证代理程序支持常用的Windows系列操作系统。

客户端网络驱动程序主要完成根据规则定义对客户端所发送的数据包的截获、分析和过滤,记录需要认证的资源服务器的请求连接端口地址。这样当认证请求返回时,可以查找客户端的访问连接请求记录,防止客户伪造。为了接收认证通知数据包,系统底层首先截获网络数据包,然后判断其标识。若为认证通知包Random,则将此数据包交给上层的认证代理进程,由认证代理进程和服务器进行后续的交互认证。因此,这就需要用到现有的一些网络数据包拦截技术,我们分别针对Win98和Win2000各设计了一套流程。

2.3 认证服务器的设计

认证服务器主要包括两部分:控制服务器和认证服务器。其中,控制服务器主要对客户的请求进行访问控制和数据包的转发;认证服务器主要完成与客户端认证代理的认证交互过程。

控制服务器主要完成对客户的请求进行访问控制。接受客户端的请求,判断此请求是否需要认证。如果需要则激活该认证过程,并且转发符合要求的数据包到目的地,这样可以减轻认证服务器的认证压力,提高认证效率。控制服务器的功能模块有:资源定义、接收和转发数据包、激活认证过程、获取认证结果。控制服务器的转发机制采用的是iptables(也可以使用netfilter编程实现)。控制服务器转发包括客户端和认证服务器的消息。其转发过程如下:

1)客户端和资源服务器的所有连接通过控制服务器转发。对于每一资源(RIP:RPORT),控制服务器通过资源规则文件取出此定义,使用iptables设置转发规则:(XIP:XPORT)和(RIP:RPORT)之间互相转发,即把客户端发向资源服务器的连接请求都转发到控制服务器启动的监听线程,这样起到控制客户端资源访问的作用。同时设置当客户端认证成功后,把控制服务器发向客户端的资源代理连接的源地址和端口改为资源服务的地址和端口,以保证客户端开始发起的资源请求连接,能够接受到控制服务器返回的资源请求。

2)客户端认证代理和认证服务器的连接与上述过程相似。对于客户端的认证请求,控制服务器向认证服务器转发认证请求,认证服务器回送自己的外部地址(AS_ADDR:AS_PORT)给客户端,客户端向(AS_ADDR:AS_PORT)发起认证过程。网关把(AS_ADDR:AS_PORT)转换成认证服务器的内部地址(XIP:IMPORT),控制服务器再转换成子网地址(AIP:APORT)。因此控制服务器在这里也起到了NAT的功能,这样可以实现对外隐藏认证服务器的内部网络真实地址,防止攻击者攻击,提高认证服务器的安全性。返回的数据包进行相反的过程。

认证服务器需要实现的功能包括:接收认证请求、认证用户身份、发送认证结果、存取数据库、生成连接标识、产生随机数、参与初始化客户端、使用硬件的加密模块或软加密算法。认证服务器采用后台进程方式启动若干认证请求服务线程,等待控制服务器发送的待认证的数据报,经过认证处理后将认证结果发送给客户端。系统管理程序完成的主要功能包括:

1)向用户分发USB KEY,完成对USB KEY的初始化。包括将生成初始化的认证信息M1写入USB KEY,并将用户的初始认证信息散列值M2以及用户输入的基本信息写入数据库服务器的用户信息列表中。

2)通过对数据库服务器的访问,完成对 USB KEY的管理工作,包括用户信息的查询、删除、注销。完成对认证服务器的添加和设置。

3)完成对认证服务器和控制服务器的后台程序的启动和关闭。

4)完成对服务器端配置文件的生成和修改。包括认证服务器的IP地址和端口;控制服务器的IP地址和端口;内网网络地址和端口(受保护的资源服务器网段);外网的网段地址和掩码(客户端所在网段);认证服务器的对外端口和地址;认证服务器启动的最大监听线程数目;数据库服务器的端口和地址;资源服务器的资源服务定义(包括资源服务器的IP地址和提供资源服务的端口)。

5)通过对数据库服务器的访问,完成对生成认证日志的查询。

3 网络安全系统的实现

3.1 USB协议的固件实现

USB KEY的功能之一是使用DES和RSA算法实现文件加解密[11~15]。加解密的命令、数据的传输采用USB通道实现。USB KEY提供了加解密外部命令专供主机来调用,借助于USB总线来实现对数据的加解密操作。如果需要加解密的数据量很大,超过64KB,那么主机需要把该数据分块,每块大小为64KB,最后一个块除外。然后主机分多次通过USB总线向USB KEY发起加解密命令的处理,每次加解密一个数据块,直到最后一个数据块加解密完毕。加解密每个数据块的具体过程如下:

1)主机首先向USB KEY的RX1发送一个信息包,该信息包的头两个字节是需要加解密的这个数据块的长度(以字节为单位),紧接着的字节是实现加解密的外部命令。RX1接收到这个信息包后,把两个字节的长度信息和加解密命令转存到约定的一片内存区,以备后用。有了这个长度信息,ESM就能知道什么时候数据全部接收完了。

2)然后主机把需要加解密的数据(一般是文件)发送到USB KEY的RX3,在中断处理程序中,接收到的数据包将按顺序挨个存放到一片指定缓冲区内。每接收到一个数据包,USB KEY将把保存下来的那两个字节的长度信息减去64,直到长度信息小于64为止,这表明所有的数据已经接收完了,于是将设置一个标志,表示数据全部接收完。USB KEY在主流程中将反复检测这个标志,一旦发现数据全部接收完了,就跳转去执行命令分析程序,USB KEY将分析RX1先前接收到的命令,然后调转到相应的命令处理程序。如果发现RX1先前接收到的是加解密命令,USB KEY将利用内部的密码协处理器对该数据执行相应的加解密操作。

3)主机在发送完需要加解密的命令和数据之后就周期性地读USB KEY中的TX3,直到有有效的数据返回。USB KEY利用密码协处理器执行加解密完毕之后,将把加解密的结果分成包依次填入TX3的发送缓冲区,并且使能发送,主机每次从TX3读取一个数据包,直到加解密的结果全部返回主机。

3.2 管理端的实现

网络安全管理系统是由硬件USB KEY和软件管理程序共同组成的信息保密应用系统,硬件部分的 USB KEY用于产生和存储用户的公/私钥对,其中私钥以只读形式存储,公钥则保存在符合PKI标准的证书中,USB KEY将作为局域网用户唯一合法标识的安全载体。

系统管理模块实现整个管理端的配置和运行时管理。具体地说,它通过配置系统参数指定运行时策略、备份系统数据、管理日志、分析各类系统数据形成统计报表,为证书管理模块和安全策略设定模块提供运行支撑。

证书管理模块负责根据设计的证书管理体系管理系统内所有的公钥证书,实现局域网内用户身份信息、USB KEY和公钥证书的唯一关联,该模块将作为系统身份鉴别服务的基础。

系统数据库负责存储管理端的系统数据,包括用户信息、用户私钥、配置信息及管理端日志。同时,利用数据库提供的数据备份等管理功能可有效地保障网络安全管理系统的可用性。

客户端软件的功能是结合USB KEY的使用,完成用户身份的鉴别和登录操作系统,执行管理端制定的保密策略,加密客户端的机密信息,控制客户端主机上操作系统及各类设备和接口的使用并记录日志。软件管理程序是主要由管理端和客户端两部分组成的C/S架构的应用程序。管理端软件统一管理的内容包括,软件自身的运行时配置文件,局域网内所有的用户和证书,以及制定局域网安全策略。其主程序流程如图2所示。

图2 认证服务器网络结构图

4 结语

本文将公钥基础设施PKI结合USB技术、非对称密钥算法和数字签名等密码学技术运用于网络安全系统的研究中。该系统具有如下的特点:

1)建立网内可靠的身份标识和鉴别机制。以硬件USB KEY产生和管理网内用户的公/私钥对,以符合PKI标准的数字证书来管理用户的公钥及其相关联的身份信息。使非法用户无法在局域网中立足,同时为有效地管理合法用户及他们的行为奠定基础。

2)提供数字签名和身份认证。在网络中,许多重要文件需要确定其真实性,用户可以通过网络安全系统提供的功能对文件进行数字签名,这样就可以获得认证,确保了文件的真实性、完整性和不可否认性,同时也对文件传输者的身份进行了确认。

3)严格管理登录到客户端主机的用户。将USB KEY与客户端软件相结合,通过双因子身份鉴别机制确保只有合法用户才能登录客户端主机,并以自动锁定操作系统等方法防止客户端主机被非法使用。同时利用其网络安全策略,为远程通信提供了安全保障,使得合法用户可以安全的通过Internet网访问内部数据。

4)严格管理网络中主机的硬件设备、接口和软件程序的使用。上述对象是局域网内信息泄密的直接途径,系统对此采取了限制使用、自动锁定及自动加密等措施以防止机密信息从这些途径泄漏。

[1]张焕国,刘玉珍.密码学引论[M].武汉:武汉大学出版社,2003:1~6

[2]C.E.Shannon.Communication theory of secrecy system[J].Bell System Technical Journal,1949,27(4):656~715

[3]庞丽萍,李胜利.计算机操作系统[M].武汉:华中科技大学出版社,1997:1~20

[4]齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2001:99~102

[5]黄淼云,李也白,王福成.智能卡应用系统[M].北京:清华大学出版社,2000:5~13

[6]亢保元,王育民.完善保密密码体制的条件与设计[J].通信学报,2004,25(2):168~173

[7]谢希仁.计算机网络[M].大连:大连理工大学出版社,2000:315~320

[8]阮利华,王祥.USB2.0接口IP核的开发与设计[J].复旦学报,2005,44(1):173~177

[9]吴东艳,张礼勇.基于USB总线的数据采集/信号发生器的设计[J].哈尔滨理工大学学报,2005,10(1):125~127

[10]张礼勇,刘思久.虚拟仪器与USB方式的探讨和实践[J].电子测量与仪器,2004,17(2):70~74

[11]刘木兰,周展飞,陈小明.密钥共享体制[J].科学通报,2000,45(9):897~898

[12]徐秋亮.改进门限 RSA数字签名体制[J].计算机学报,2000,23(5):450~452

[13]赵波,刘树波,唐明,等.基于硬件系统的商用密码可信计算实现方法[J].武汉大学学报,2004,29(11):1030~1033

[14]陈晓峰,伍前红,王育民.基于安全双方计算的密钥协商方案[J].西安电子科技大学学报,2003,30(4):477~480

[15]刘怡文,李伟琴.密码协议的分层安全需求及验证[J].北京航空航天大学学报,2002,28(5):589~592

猜你喜欢

加解密数据包客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
如何看待传统媒体新闻客户端的“断舍离”?
C#串口高效可靠的接收方案设计
PDF中隐私数据的保护方法
电子取证中常见数据加解密理论与方法研究
新华社推出新版客户端 打造移动互联新闻旗舰
网络数据传输的加解密系统研究