单位文秘网 2021-10-05 08:31:10 点击: 次
摘 要:通过对现有安全传输方案研究,设计并实现了一种新的网络安全传输方案。该方案在专用驱动中加入网络数据加/脱密,并通过修改网卡配置芯片将专用驱动与专用网卡建立特殊绑定关系。这样既兼顾了数据安全与传输效率,又兼顾了数据安全与实施成本,非常适用于中小型内部网。该方案现已利用多款Intel网卡进行了实验,实验系统运行稳定,能满足用户需求。
关键词:内部网;安全传输;专用网卡;网卡驱动
中图分类号:TP309文献标识码:A
文章编号:1004-373X(2010)05-092-03
Design and Implementation of Novel Intranet Secure Communication Scheme
ZHANG Lichao,YU Jiang,SU Jinhai
(Institute of Electronic Technology,Information Engineering University,Zhengzhou,450004,China)
Abstract:After studying the existing secure communication scheme,a new scheme is designed and realized.This scheme adds the data encryption/decryption to especial driver,at the same time,it establishes a very special relationship between the special driver and NIC.Meanwhile,this scheme not only gives attention to both data secure and transfers efficiency,but also gives attention to both data secure and cost,so it fits for medium and small-sized Intranet.Many experiments based on Intel NIC have been done,the experimental system can steadily run and fit user requirement.
Keywords:Intranet;secure communication;special NIC;NIC driver
网络的安全性可以分为安全地把信息通过公共的外部网络传递给对方,防止外部对内部系统的非法访问,防止出现在内部的攻击行为等几个方面。VPN、防火墙等技术有效地满足了前两种安全需求。如何保证内部网的安全,正日益受到人们的重视,并出现了多种解决方案。一直以来困扰内部网安全的问题不是技术难度,而是如何才能达到网络安全与实施成本的最佳结合。本文通过对一些现用安全传输方案进行研究,设计了一种新的适用于内部网的安全传输方案,此方案兼顾了安全与成本,具有很好的实用性。
1 安全传输方案研究
在内部网中,数据报文的传输过程存在被截取、修改和伪造等不安全因素。保证网上传输数据安全的最好办法就是对数据进行加密,针对加密实施方式的不同,安全传输方案可分为以下几种:
(1) 在用户应用层或中间件实现传输数据加/脱密[4],如图1(a)所示。考虑到尽可能地使加/脱密过程保持对用户的透明,一般都采用中间件技术对数据进行处理。这里的中间件技术就是数据从用户应用程序到网卡之间,利用系统开放出来的一系列可供用户开发的接口,设计的数据处理软件的集合。在Windows系统中可供调用的接口包括传输层驱动接口(TDI),网络驱动接口标准(NDIS)等。这种方式应用非常广泛,它的优势是:中间件的操作对用户和硬件层都是透明的;对应用和硬件没有太大依赖,因此保持了很好的通用性;全过程都采用软件技术实现,节约开发成本。但它也存在缺陷:数据加/脱密和数据发送/接收是分离的两个部分,这会造成即使中间件被旁路,数据仍能正常进行收发操作,而此时收发的数据是未经加/脱密处理的数据。
(2) 利用具有加/脱密功能的网络接口设备,如图1(b)所示。这种方式将数据加/脱密处理和数据收发完全整合到一个物理设备上,其中加密网卡是一个典型的应用。它的优势是实现了加/脱密与数据收发的整合,有效克服了上述第一种方式的缺陷;利用硬件实现加/脱密,具有速度快、安全性高等优点。它的缺点是硬件开发难度大、成本高,不适用于中小企业内部网。
(3) 采用本文的专用NIC及其驱动实现数据加/脱密处理,如图1(c)所示。这种方式是将通用网卡进行一定的改造,使其与专用驱动建立特殊绑定关系,数据的加/脱密处理在专用驱动中进行。它综合考虑了前两种方式的优缺点,既实现了数据加/脱密与收发的整合,也降低了开发成本。
图1 安全传输方案结构比较
2 方案设计
系统由专用网卡、专用驱动程序、应用层管理程序及加脱密模块组成,如图2所示。方案的设计思想是:分析通用网卡的硬件结构,综合出不同类型网卡的一般结构;通过对网卡尽可能少地改动使其具备与通用驱动无法匹配的特点;设计专用驱动,在专用驱动中对网卡所作的变换进行相应的反变换,从而建立驱动与网卡的绑定关系;在专用驱动中加入数据包截获与加/脱密处理模块,对网络数据进行实时处理;通过应用层管理程序对专用驱动进行控制,如网卡专/通用状态切换、注入密钥、数据包处理策略等。
图2 安全传输方案结构
3 安全传输方案实现
3.1 网卡结构分析
网络接口控制器或网络接口卡(NIC)是任何网络的最基本构成部分,每个NIC被安装到节点上的计算机的总线插槽上或以嵌入式的方式集成在PC的主板上。尽管不同网卡的品牌和物理器件不同,但大体结构却基本一致,如图3表示。
图3 网卡一般结构
一个网卡由以太网控制器、物理层(PHY)接口设备、E2PROM和可选FLASH等组成。其中以太网控制器是网卡的核心,主要完成PCI接口控制、按照以太网标准组织接收/发送数据等功能。物理层接口设备主要完成MAC与物理线路的连接、信号编码等操作。在许多网卡中物理层接口设备集成到以太网控制器中。BOOT FLASH为可选,实现网卡的启动。串行E2PROM用于保存适配器独有的节点地址(MAC地址)以及以太网控制器配置信息,其中有时包括一些PCI配置参数。
通过网卡结构分析可看出,要想改变核心部件以太网控制器是非常困难的,并且不同型号的网卡,控制器也不相同。而串行E2PROM为电可重复擦写的,且不同型号、不同品牌的网卡其串行E2PROM基本一致,由此,对网卡的改造可以转化为对配置芯片E2PROM的修改。
3.2 专用网卡设计与实现
专用网卡通过改造通用网卡的E2PROM得到,本文中以Intel 82557型网卡为例[7],其配置芯片为AT93C46。AT93C46是一个1 Kb的E2PROM,它可以是8位或16位存储模式。在Intel 82557主控芯片下使用的是16位存储模式,即以字为单位进行编址和寻址。其中第0~2连续的3个字中存储网卡的MAC地址,其余存储空间中的信息发生改变不影响网卡正常工作。
专用网卡的设计目的是能够与专用驱动建立绑定,本文在实现时采用杂凑算法SHA对网卡惟一标志MAC地址Addr与驱动独有随机数进行计算实现两者绑定。具体实现步骤为:
(1) 改变MAC地址存储位置,并将原存储位置改写成全0xFFFF,这可有效保障通用驱动无法实现对专用网卡的驱动;
(2) 生成驱动独有随机数Rd,计算杂凑值A=H(Rd,Addr),其中H为SHA算法;
(3) 将杂凑值A写入到E2PROM中指定位置,实现专用网卡与专用驱动的绑定。
3.3 专用驱动设计与实现
通常,一个网卡驱动程序包含两层,分别是网络数据管理层与设备控制层。网络数据管理与上层协议交互,完成将网络数据发送到设备控制层或将设备接收到的数据提交给上层协议。设备收发控制层对网卡进行控制,完成网络数据的实际发送与接收操作。专用网卡驱动除了包含通用驱动的两层外,还增加了驱动管理、设备配置管理与加/脱密三个模块,如图4所示。
驱动管理模块完成对驱动的控制以及驱动状态的获取。主要包括设置驱动中网络数据加/脱密策略、密钥管理和驱动状态获取等功能。此模块通过注册设备函数NdisMRegisterDevice注册一个PDRIVER_DISPATCH实现。上层应用程序通过DeviceIoControl函数即可实现与Dispatch例程的通信。
图4 专用驱动结构
设备配置管理模块实现专用驱动与网卡的绑定,并将设备配置信息提交给设备管理程序或根据配置信息对网卡进行配置,主要通过对E2PROM的读写操作来实现。对于E2PROM的读写必须按照AT93C46的控制时序和操作规范进行,实际中通过对E2PROM的命令寄存器93C46CR的控制实现。93C46CR为82557的I/O空间基址偏移0x0e,其结构如图5所示。EEDO表示E2PROM输出数据,EEDI表示输入到E2PROM数据,EECS为片选信号,EESK为时钟信号,其余位保留。
图5 E2PROM命令寄存器结构
AT93C46的操作时序如图6所示[10],以读操作为例。Sart Bit总是置1。OP Code为10时表示读操作,01表示写操作,11表示擦除。A5~A0表示读写地址。D15~D0为读写数据。
图6 E2PROM操作时序
利用上述方法读出E2PROM中的MAC地址Addr及杂凑值A,根据驱动自身的随机数Rd验证A=H(Rd,Addr)是否成立,如果验证成功继续加载驱动,不成功则停止加载驱动。如果加载成功将MAC地址提交给系统。
数据加/脱密完成对数据的加/脱密操作,主要建立在对网络数据截获的基础上。由于网卡驱动中网络数据控制与网卡硬件控制采用分层结构,且网络数据控制部分遵循网络驱动接口标准(NDIS),所以在网卡驱动中实现网络数据的截获与常用的NDIS中间层截获的方法基本一致。对于截获下来的数据采用了软件实现的AES算法进行加密,其中密钥长度为256 b,报文长度为128 b。
4 安全性分析与性能
4.1 安全性分析
专用驱动的安全,指专用驱动无法被取代或屏蔽。攻击者对专用驱动攻击的一种方式是屏蔽专用驱动,专用驱动被屏蔽将造成网卡无法工作,从而无法收发数据,此种方式是不可行的。攻击者的另一种攻击方式是改造通用驱动来驱动网卡,并将其中的加/脱密模块去除。由A=H(Rd,Addr)可知,攻击者要想实现网卡的驱动必须得到随机数Rd,只要实际中的随机数足够长,攻击的难度就可足够大。
专用网卡的安全,指专用网卡无法被复制或伪造。由A=H(Rd,Addr)可知,要想制作一块专用网卡必须知道惟一的MAC地址Addr和专用驱动的随机数Rd,攻击者无法获得Rd,因此无法伪造专用网卡。攻击者采用完全复制E2PROM会造成MAC地址完全一样,这不符合MAC地址的全球惟一规则,因此也是不可行的。
网络数据的安全性。网络数据采用AES算法加密,密钥长度为256 b,完全能够抵抗现有的攻击。并且加/脱密模块无法被屏蔽或取代。
4.2 性能测试
按照本文设计的方案构建了内部网安全传输系统,系统包括两台PC机,配置P4 3.0 GHz CPU和100 Mb/s网卡,在Windows 2000系统下进行测试。只加入数据包截获而不进行加/脱密操作时速度为70 Mb/s,加入AES算法后对所有进出数据进行加/脱密,数据传输速度为50 Mb/s。由此可看出数据加/脱密对系统性能有很大影响,在安全等级要求不高的环境下采用简化的加/脱密方式或有选择地对数据加/脱密都可大大提高系统性能。
5 结 语
本文设计并实现了一种新的网络安全传输方案,该方案在克服现有安全传输方案缺陷的同时,保留了现有方案的大部分优点,达到了成本与安全强度之间良好结合。安全性分析与性能测试表明,此方案非常适用于中小企业内部网。
参考文献
[1]司孟华,郭彦涛.计算机异地局域安全传输的研究应用[J].计算机与网络,2006(2):40-41.
[2]陈宛,曹元大.开放实验室数据安全传输系统设计与实现[J].计算机应用研究,2005,22(7):156-157.
[3]裴新凤,薛贺,吴健.一种面向企业的安全传输系统的制定与实现[J].计算机工程与应用,2004,40(33):165-167.
[4]赵晖,刘镇.基于NDIS的数据传输加密平台的实现[J].华东船舶工业学院学报:自然科学版,2004,18(3):50-54.
[5]周宁.保密以太网卡硬件结构及关键技术研究[D].郑州:信息工程大学,2004.
[6]于江,戴紫彬,张永福.基于加密以太网卡的链路通信系统[J].计算机工程,2008,36(6):148-150.
[7]Intel.Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual.2005.
[8]王璐,黄瑞光.NDIS小端口驱动程序的实现[J].计算机工程与应用,2000,36(11):92-93.
[9]徐益,颜文俊.NDIS小端口驱动程序开发[J].计算机应用研究,2004,21(1):197-198.
[10]李全忠,王希超.直接读取PCI网卡的MAC地址的原理与方法[J].计算机工程,2005,31(18):213-215.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-220-94124-1.html
下一篇:扩频通信系统干扰及其仿真技术
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用