网络通信安全处理器及其数据处理方法
技术领域
本发明涉及网络通信安全技术,更具体的说,是一种用来实现在网络上进行安全通信的数据处理器及其数据处理方法。
背景技术
随着因特网的高速发展,IP网络逐渐成为人们日常工作和生活中必不可少的工具,而在IP网络上进行数据传输的安全性保证的需求也日趋强烈。众所周知,IP网络是个开放的网络,不采取任何措施就利用IP网络进行数据通信是毫无安全性可言的。为了满足在IP网上获得安全通信的需要,互联网工程任务组的IPSec(IP Security,IP安全)工作组制定了一组基于密码学的开放网络安全协议,总称IPSec体系结构。IPSec协议提供了访问控制、无连接的数据完整性、数据保密性、数据源验证、防重放攻击、自动密钥管理等安全服务。
目前用于实现网络分组数据加密的安全处理器主要有两种类型:一种本身只提供数据的加密运算功能,通过8-32位的异步数据总线与外界进行数据通信,需要外接处理器才能够实现IPSec协议,例如摩托罗拉公司制造的型号为MPC180的通信安全处理器;另一种本身也只提供数据加密运算功能,通过PCI总线与外界进行数据通信,同样需要外接处理器才能够实现IPSec协议,例如摩托罗拉公司制造的型号为MPC190的通信安全处理器。
由于现有的网络通信安全处理器本身只能够进行数据的加密运算功能,在实现IPSec协议时,加密运算所需的密码和所使用的算法必须由外接的主处理器指定,使得主处理器也必须参与到具体的加密运算过程中来,加大了主处理器的负担,提高了系统的复杂度,加大了系统的开发难度和降低了系统的可靠性。
对于使用异步数据总线与外界进行数据通信的安全处理器,对芯片进行一次读或者写操作一般需要5个时钟周期左右的时间,接口数据传输速率过慢的先天不足使得芯片无法实现高速的数据处理速度。对于使用PCI总线与外界进行数据通信的安全处理器,表面上看可以达到一个较高的数据通信速率,但这种共享式的总线在实际上应用中效率不高,尤其当系统中存在多个PCI设备时,PCI总线的使用效率将大大下降。这使得实际应用中安全处理器的利用率下降,系统的数据处理速度仍然不高。对于采用PCI接口的安全处理器,要求系统必须提供PCI接口,在这一点上降低了系统结构的灵活性。
现有的专利文献包括:专利申请号为01107461.2的中国专利申请“分组加密芯片及其数据的高速加解密方法”和专利号为6477646的美国专利“Security chip architecture and implementations for cryptography acceleration”(安全芯片结构和加密加速实现方法)。
第01107461.2号中国专利申请存在以下不足:一、该专利使用PCI总线接口传输数据,由于PCI总线是一种共享式的总线,系统中存在多个PCI接口时必然导致总线传输效率低下,接口数据传输速率受限;另外,网络安全处理系统必须通过PCI总线与网络应用系统电连接,也限制了网络应用系统的组成结构。二、在该专利的实现中,网络安全协议的实现从网络安全连接的协商到每个数据包的加/解密和身份认证处理都必须有中央处理器参与控制,加大了主处理器的负担,提高了系统的复杂度,加大了系统的开发难度并且降低了系统的可靠性。
第6477646号美国专利存在以下不足:在该专利中,网络安全协议的实现从网络安全连接的协商到每个数据包的加/解密和身份认证处理都必须有中央处理器参与控制,加大了主处理器的负担,提高了系统的复杂度,加大了系统的开发难度并且降低了系统的可靠性。
发明内容
本发明的目的在于,提供一种功能独立、数据处理速度高的网络通信安全处理器及其数据处理方法。
本发明采用以下技术方案,本发明网络通信安全处理器包括:
数据通信接口,其包括若干物理接口,用以连接不同网络,与外界进行数据通信;
安全连接数据库操作引擎,用以负责安全连接数据库的使用和维护;
安全连接数据库,其包括安全策略数据库和安全连接参数数据库;
多通道安全处理引擎,其包括多个安全处理通道,用以控制硬件完成安全处理;
加密算法运算模块,用以完成数据包的加/解密运算;
散列算法运算模块,用以完成数据包的散列运算;
信息交流接口,用以提供外界操作接口,接收配置、管理和控制等信息,对安全连接数据库进行操作;
其中,所述安全连接数据库操作引擎与数据通信接口、安全连接数据库和多通道安全处理引擎电连接;多通道安全处理引擎与安全连接数据库操作引擎、数据通信接口、加密算法运算模块和散列算法运算模块电连接;信息交流接口与数据通信接口、安全连接数据库操作引擎电连接。
进一步地,本发明网络通信安全处理器还包括:
进出数据包双口缓存,用以缓存进出该网络通信安全处理器的数据包及其状态信息;
进入数据包选择器,用以选择需要进行安全处理的数据包;
发出数据包选择器,用以选择数据包的发送方向;
安全处理数据包双口缓存,用以缓存进行安全处理的数据包及其安全处理参数;
公开密钥运算模块,用以进行公开密钥运算;
随机数生成器,用以生成伪随机数;
中央处理器,用以完成对该网络通信安全处理器的配置和管理,并完成安全连接的协商和密钥交换等高层安全协议处理功能;
外围模块,包括与中央处理器配套的存储器接口、RS232通信接口等;
其中,进出数据包双口缓存分别与数据通信接口、进入数据包选择器和发出数据包选择器电连接;进入数据包选择器分别与中央处理器、进出数据包双口缓存、发出数据包选择器、安全连接数据库操作引擎和安全处理数据包双口缓存电连接;发出数据包选择器分别与进出数据包双口缓存、进入数据包选择器、中央处理器和多通道安全处理引擎电连接;安全连接数据库操作引擎分别与进入数据包选择器、中央处理器和安全连接数据库电连接;安全处理数据包双口缓存分别与进入数据包选择器和多通道安全处理引擎电连接;多通道安全处理引擎分别与发出数据包选择器、安全处理数据包双口缓存、加密算法运算模块和散列算法运算模块电连接;中央处理器分别与数据通信接口、进入数据包选择器、发出数据包选择器、安全连接数据库操作引擎、公开密钥运算模块、随机数生成器、信息交流接口和外围模块电连接。
本发明网络通信安全处理器中,物理接口指具体的数据通信接口实体,包括以太网接口、POS接口或者其它能够用于交换数据的接口;
本发明网络通信安全处理器中,信息交流接口包括PCI总线接口、异步数据总线接口或者其它能够用于交换数据的接口。
利用本发明网络通信安全处理器的数据处理方法包括以下步骤:
步骤A.数据通信接口接收数据包;
步骤B.数据通信接口把收到的数据包发送到安全连接数据库操作引擎;
步骤C.安全连接数据库操作引擎从数据包中抽取查表关键字,查找是否存在相关的安全策略;
步骤D.如果不存在相关的安全策略,则把此数据包转交给数据通信接口发出,否则执行步骤E;
步骤E.如果安全策略是禁止数据包通过,则丢弃此数据包,否则运行步骤F;
步骤F.查找是否存在可用的安全连接;
步骤G.如果不存在可用的安全连接,则丢弃此数据包并利用信息交流接口发送安全连接建立请求,否则运行步骤H;
步骤H.把至少一个安全连接参数和数据包交给多通道安全处理引擎;
步骤I.多通道安全处理引擎调用加密算法运算模块和散列算法运算模块完成数据包的安全处理;
步骤J.多通道安全处理引擎把完成安全处理的数据包转交给数据通信接口;
步骤K.数据通信接口发送数据包。
进一步地,利用本发明网络通信安全处理器的数据处理方法包括以下步骤:
步骤a:网络通信安全处理器的数据通信接口从网络接收数据帧;
步骤b:网络通信安全处理器的数据通信接口抽取数据帧中的数据组成数据包,存入进出数据包双口缓存中,并改写进出数据包双口缓存的状态信息;
步骤c:进入数据包选择器根据数据包的信息,调用安全连接数据库操作引擎在安全连接数据库中查找是否存在相关的安全策略和安全连接;
步骤d:进入数据包选择器根据安全连接数据库操作引擎返回的数据,判断此数据包是否存在安全策略;如果此数据包存在安全策略,则下一步转入步骤e,否则转入步骤j;
步骤e:判断此数据包的安全策略是禁止通过还是进行安全处理,如果是禁止通过则下一步转入步骤f,如果是进行安全处理则下一步转入步骤g;
步骤f:丢弃此数据包,流程结束;
步骤g:判断此数据包是否存在可用安全连接,如果不存在则下一步转入步骤o,如果存在则下一步转入步骤h;
步骤h:进入数据包选择器把此数据包及其安全处理参数存入安全处理数据包双口缓存中;
步骤i:多通道安全处理引擎从安全处理数据包双口缓存中取出数据包及其安全处理参数,启动一个安全处理通道,进行安全处理;
步骤j:数据包被转交给发出数据包选择器;
步骤k:发出数据包选择器根据数据包的目的IP地址判断此数据包是否发给本机,如果不是则执行步骤m,如果是则执行步骤l;
步骤l:数据包被转交给中央处理器进行处理;
步骤m:数据包被存入进出数据包双口缓存中,然后被数据通信接口拆装,组成数据帧;
步骤n:数据通信接口发送数据帧,流程结束;
步骤o:对于需要进行安全处理,但又不存在安全连接的数据包,其安全策略参数被转交给中央处理器,请求中央处理器建立相关的安全连接,同时数据包被丢弃;
步骤p:中央处理器执行安全连接协商程序,在此过程中可根据需要调用随机数生成器生成密钥和调用公开密钥运算模块进行密钥交换,流程结束。
与现有技术相比较,本发明引入了安全连接数据库、安全连接数据库操作引擎和多通道安全处理引擎,使数据包的安全处理主要由网络通信安全处理器硬件电路完成,一方面保证了数据包安全处理的高速能力,另一方面使中央处理器能够脱离具体每个数据包的安全处理操作,而专用于完成上层协议的实现,降低了系统开发的难度和提高了系统的可靠性。
此外,本发明还提供了标准的高速物理通信接口,使得接口数据传输速率不再成为制约数据处理速率的瓶颈;本发明通过采用标准的物理通信接口,使得网络通信安全处理器直接串入受保护的网络与外界大网之间就能实现网络安全协议,系统结构设计中无需考虑为网络通信安全处理器预留接口,从而提高了系统设计的灵活性。
附图说明
图1是本发明网络通信安全处理器的结构示意图;
图2是本发明的安全连接数据库操作引擎的结构示意图;
图3是本发明的安全连接数据库的结构示意图;
图4是本发明的多通道安全处理引擎的结构示意图;
图5是本发明数据处理方法的流程图。
具体实施方式
下面结合附图对本发明网络通信安全处理器及其数据处理方法进行说明。
如图1所示,本发明的网络通信安全处理器(或称网络通信安全处理芯片,简称芯片,未标号)包括:
数据通信接口101,包括多个物理接口以连接不同的网络,是网络数据包进出芯片的数据通道。在数据接收方向上,把从某个物理接口收到的数据帧去除通信接口的封装组成数据包,连同数据包的状态信息一同存入进出数据包双口缓存102中;在数据发送方向上,根据进出数据包双口缓存102中的状态信息,取出数据包,加上通信接口封装,在相应的物理接口发出。物理接口指具体的数据通信接口实体,包括以太网接口、POS接口或者其它能够用于交换数据的接口;
进出数据包双口缓存102,用来缓存进出芯片的数据包及其状态信息,包括数据包的长度和存储地址等信息。
进入数据包选择器103,用于把进入的数据包从进出数据包双口缓存102中取出,并转发到芯片内不同模块。如果中央处理器113有数据包需要发送,那么它也把数据包送入进入数据包选择器103中。进入数据包选择器103从进出数据包双口缓存102中取出数据包,调用安全连接数据库操作引擎105,利用数据包的信息(例如源IP地址、目的IP地址、名字、源端口、目的端口、协议类型或者安全参数索引等)在安全连接数据库106中查找其相关的安全策略,如果有命中的安全策略,则查看此数据包的安全策略是禁止数据包通过还是进行安全处理。如果此数据包的安全策略是禁止通过,则丢弃此数据包。如果此数据包的安全策略是进行安全处理,则查看是否存在相关的安全连接,如果已存在安全连接则取出安全连接参数(包括协议、运用的算法和密钥等),连同数据包及其状态信息一起存入安全处理数据包双口缓存107中;如果查找到了安全策略,但是发现还没有建立安全连接,则丢弃数据包并向中央处理器113发送建立安全连接请求;如果没有查到相关的安全策略,说明是个不需要进行安全处理的数据包,则转交给发出数据包选择器104。
发出数据包选择器104,从进入数据包选择器103和多通道安全处理引擎108中收集要发送的数据包,判断其目的IP地址是否本机的IP地址,如果是就把此数据包转交给中央处理器113;如果数据包的目的IP地址不是本机的IP地址,就把此数据包连同其状态信息一起存入进出数据包双口缓存102中。
安全连接数据库操作引擎105,负责对安全连接数据库106进行操作和维护,包括检索、添加和删除安全连接数据库存储单元数据。
安全连接数据库106,包括安全策略数据库和安全连接参数数据库。安全策略数据库存储数据包的选择信息和安全处理策略。安全连接参数数据库保存着已经建立的安全连接参数。
安全处理数据包双口缓存107,用来缓存进行安全处理的数据包及其安全处理参数和状态信息。
多通道安全处理引擎108,根据安全处理数据包双口缓存107中的状态信息,读取安全处理参数,调用加密算法运算模块109和散列算法运算模块110,完成对数据包的安全处理;并把经过安全处理过的数据包交给发出数据包选择器104。
加密算法运算模块109,用来完成加/解密运算。
散列算法运算模块110,用来完成散列运算。
公开密钥运算模块111,用来完成公开密钥算法。
随机数生成器112,用来生成伪随机数。
中央处理器113,通过信息交流接口114或者通过数据通信接口101与外界交流管理和控制信息;通过调用随机数生成器112、公开密钥运算模块111和网络安全连接数据库操作引擎105,协商建立安全连接和管理安全连接数据库106,实现高层网络安全协议;此外,中央处理器113还具有对芯片内部各个模块进行初始化配置和管理的功能。
信息交流接口114,用以提供芯片与外界的信息交流(包括安全连接数据库信息),不用作数据通信接口。信息交流接口114可以为PCI总线接口、异步数据总线接口或者其它能够用于交换数据的接口。
外围模块(或称其它模块)115,包括与中央处理器113配套的存储器接口、RS232通信接口等模块。
进出数据包双口缓存102分别与数据通信接口101、进入数据包选择器103和发出数据包选择器104电连接;进入数据包选择器103分别与中央处理器113、进出数据包双口缓存102、发出数据包选择器104、安全连接数据库操作引擎105和安全处理数据包双口缓存107电连接;发出数据包选择器104分别与进出数据包双口缓存102、进入数据包选择器103、中央处理器113和多通道安全处理引擎108电连接;安全连接数据库操作引擎105分别与进入数据包选择器103、中央处理器113和安全连接数据库106电连接;安全处理数据包双口缓存107分别与进入数据包选择器103和多通道安全处理引擎108电连接;多通道安全处理引擎108分别与发出数据包选择器104、安全处理数据包双口缓存107、加密算法运算模块109和散列算法运算模块110电连接;中央处理器113分别与数据通信接口101、进入数据包选择器103、发出数据包选择器104、安全连接数据库操作引擎105、公开密钥运算模块111、随机数生成器112、信息交流接口114和其它模块115电连接。
如图2所示,安全连接数据库操作引擎105主要包括以下几个部分:
中央处理器接口寄存器组201,中央处理器113通过中央处理器接口寄存器组201实现对安全连接数据库操作引擎105的操作;安全连接数据库操作引擎105通过中央处理器接口寄存器组201向中央处理器113发送安全连接的建立请求和传送相关信息。
进入数据包选择器接口寄存器组202,进入数据包选择器103通过进入数据包选择器接口寄存器组202查找数据包的安全策略和安全连接参数。
数据库操作命令和参数缓存模块203,用来缓存来自中央处理器接口寄存器组201和进入数据包选择器接口寄存器组202的数据库操作命令及其参数。
数据库操作命令解析模块204,用来对数据库操作命令和参数缓存模块203的命令进行解析并启动数据库操作微程序模块205。
数据库操作微程序模块205,用来完成各种数据库操作命令,以及负责对安全连接的维护(包括安全连接的滑动窗口的移动和老化处理等操作)。
安全连接数据库接口寄存器组206,安全连接数据库操作引擎105通过安全连接数据库接口寄存器组206对安全连接数据库106进行具体操作。
数据库操作结果回送模块207,在数据库操作命令解析模块204的控制下,用来刷新中央处理器接口寄存器组201和进入数据包选择器接口寄存器组202中的状态寄存器组。
如图3所示,安全连接数据库主要包括以下几个部分:
安全连接数据库接口寄存器组301,用作安全连接数据库操作引擎105的数据库操作接口寄存器组。
命令和参数解析模块302,对输入的命令和参数进行解析,分析需要进行的操作,并控制后面的操作走向。
地址计算模块303,根据查表算法计算数据库存储单元的地址。
查表关键字读取模块304,通过存储器接口308,从外接存储器(未标号)中读取数据库存储单元的查表关键字。
查表关键字比较模块305,比较从数据库存储单元读出的查表关键字和来自安全连接数据库接口寄存器组301的查表关键字,如果相等则表明找到了正确的数据库存储单元,否则重新计算数据库存储单元的地址。
数据库操作模块306,找到正确的数据库存储单元后,就对此数据库存储单元进行数据库操作。
查表结果返回模块307,数据库操作完成后返回查表结果。
存储器接口308,用作与外接存储器之间的接口。
如图4所示,多通道安全处理引擎108主要包括以下几个部分:
安全处理数据包双口缓存接口寄存器组401,多通道安全处理引擎108通过它们实现对安全处理数据包双口缓存107的操作,以便从中读取需要进行安全处理的数据包及其安全处理参数。
安全处理通道模块402,包括多个安全处理通道a1到an,安全处理通道由相应的安全参数解析器b1到bn和安全处理微程序模块c1到cn组成,安全参数解析器b1到bn对数据包的安全参数进行解析,并启动相应的安全处理微程序模块c1到cn,调用加密算法运算模块109和散列算法运算模块110对数据包进行安全处理。
加密算法接口寄存器组403,安全处理微程序模块c1到cn通过它们来调用加密算法运算模块109。
散列算法接口寄存器组404,安全处理微程序模块c1到cn通过它们来调用散列算法运算模块110。
安全处理通道数据包暂存模块405,用来暂存安全处理通道a1到an在安全处理过程中的数据包数据。
发出数据包选择器接口寄存器组406,安全处理通道a1到an通过它们把经过安全处理后的数据包转交给发出数据包选择器104。
如图5所示,对于进入本发明网络通信安全处理器的数据包,其数据处理方法流程如下:
步骤1:接收数据帧,网络通信安全处理器的数据通信接口101提供标准的物理接口,用以从大网或其他受保护的网络接收数据帧。
步骤2:拆封装组成数据包,网络通信安全处理器的数据通信接口101,接收到各种格式的数据帧后,必须进行相应的解接口数据格式封装,抽取其中的数据组成数据包。数据通信接口101在组成一个完整的数据包后就把它存入进出数据包双口缓存102中,并改写进出数据包双口缓存102的状态信息(包括数据包的长度及其在进出数据包双口缓存102中的存储地址)。
步骤3:查找数据包的安全策略和安全连接信息,进入数据包选择器103根据数据包的信息,调用安全连接数据库操作引擎105在安全连接数据库106中查找是否存在相关的安全策略和安全连接。
步骤4:判断数据包是否需要安全处理,进入数据包选择器103根据安全连接数据库操作引擎105返回的数据,判断此数据包是否存在安全策略。如果此数据包存在安全策略,则下一步转入步骤5,否则转入步骤10。
步骤5:判断是否禁止通过,判断此数据包的安全策略是禁止通过还是进行安全处理,如果是禁止通过则下一步转入步骤6,如果是进行安全处理则下一步转入步骤7。
步骤6:丢弃此数据包,流程结束。
步骤7:判断是否存在安全连接,判断此数据包是否存在可用安全连接,如果不存在则下一步转入步骤15,如果存在则下一步转入步骤8。
步骤8:把此数据包及其安全连接参数存入安全处理数据包双口缓存107中,进入数据包选择器103把此数据包及其安全处理参数存入安全处理数据包双口缓存107中。
步骤9:安全处理,多通道安全处理引擎108从安全处理数据包双口缓存107中取出数据包及其安全处理参数,启动一个安全处理通道a1到an其中之一,进行安全处理。
步骤10:数据包被转交给发出数据包选择器104。
步骤11:判断此数据包是否给本机,发出数据包选择器104判断数据包的目的IP地址是否为本机的IP地址,如果不是本机IP地址则执行步骤13,如果是本机IP地址则执行步骤12。
步骤12:数据包转交中央处理器113,数据包被转交给中央处理器113进行处理。
步骤13:拆数据包组成数据帧,数据包被存入进出数据包双口缓存102中,然后被数据通信接口101拆分成合适的大小,加上数据格式封装,组成数据帧。
步骤14:发送数据帧,数据通信接口101按照接口通信协议把数据帧从相应的物理接口发送出去,流程结束。
步骤15:请求中央处理器113建立安全连接并丢弃数据包,对于需要进行安全处理,但是却又不存在安全连接的数据包,其安全策略参数被转交给中央处理器113,请求中央处理器113建立相关的安全连接,同时数据包被丢弃。
步骤16:建立安全连接,中央处理器113执行安全连接协商程序,在此过程中可根据需要调用随机数生成器112生成密钥和调用公开密钥运算模块111进行密钥交换,流程结束。