一种高速网络存贮加密机的制作方法

文档序号:11877894阅读:598来源:国知局
一种高速网络存贮加密机的制作方法与工艺

本发明属于信息安全技术领域,具体涉及一种高速网络存贮加密机。



背景技术:

在存储领域中,FC SAN(光纤存储局域网)基于其先天的高性能、稳定性一直占据着大部分市场。随着近年来各种信息安全事件的爆发,人们迫切需要有一种途径来保障自己的数据安全,尤其是像银行等单位。针对用户的FC存储网络系统的应用环境、FC协议特点和高可用性需求,如何稳定可靠、安全可控、快速高效地解决用户存储网络数据的保密问题以及密钥管理问题,正是研制高速网络存贮加密机的背景和意义所在。高速网络存储加密机主要通过一种基于FC协议的数据加解密机制,解析FC SAN网络中的应用服务器(以下称服务器端)和磁盘阵列(以下称存储器端)之间的FC协议,对于服务器端与存储器端之间传输的数据进行加解密。网络存储加密机采用透明传输的方式加入网络,除提供上述实时加解密FCP协议中的扇区数据的主要功能,还支持高可用性、日志审计、磁盘管理、密钥管理、访问控制等功能。设计先进、集成合理、稳定可靠、安全可控、快速高效、安全强度高,是符合国家商用密码技术规范及管理要求的、可用于FC网络存储加解密的、具有自主知识产权的安全保密设备。



技术实现要素:

为了解决上述问题,本发明提供一种高速网络存贮加密机,所述加密机用于完成应用服务器从磁盘阵列读取数据的解密工作、应用服务器向磁盘阵列写入数据的加密工作和接受密钥管理中心的统一管理,所述加密机包括接口板FPGA、接口板CPU、XAUI配置通路和XAUI数据通路,所述接口板FPGA和接口板CPU通过XAUI配置通路和XAUI数据通路进行连接;

进一步地,所述接口板FPGA包括接口模块、合路器模块、协议解析模块、磁盘映射表模块、会话表模块、上行模块、下行模块、接口板FPGA配置通路、异常通路和XAUI收发模块;

接口模块,所述接口模块用于接收和发送FC帧;

合路器模块,所述合路器模块用于数据帧的分路和合路;

协议解析模块,所述协议解析模块用于解析FC-2层的FC帧和FC-4层的FCP帧;

磁盘映射表模块,所述磁盘映射表模块用于根据磁盘阵列的FCID查询对应的设备编号;

会话表模块,所述会话表模块用于维护以{S_ID,D_ID,OX_ID}为会话关键字和以{LUN,LBA,Device_ID}会话信息的会话表,提供创建,查找,删除的接口;

上行模块,所述上行模块用于更新会话表并将FC数据帧按512字节进行拆分后封装自定义的PDU头,其它FC帧直接封装自定义的PDU头,连接XAUI收发模块并进行发送;

下行模块,所述下行模块用于将数据从自定义的PDU报文中取出并合并为一个完整的FC帧,按照token大小,保序发送至合路器模块;

接口板FPGA配置通路,所述接口板FPGA配置通路用于接收接口板CPU的配置管理命令,并给予回复;

异常通路,所述异常通路用于将需要由接口板CPU处理的帧异常给接口板CPU,并接收接口板CPU处理的结果;

XAUI收发模块,所述XAUI收发模块用于将封装好的PDU报文发送到加解密板,同时计算CRC校验和;并从加解密板接收自定义PDU报文,同时检查CRC校验和;

进一步地,所述合路器模块一端通过接口模块连接FC接口,另一端分别连接协议解析模块和下行模块,所述协议解析模块还分别连接加解密模块、上行模块、磁盘映射表模块、会话表模块和异常通路,所述异常通路一端连接接口板CPU,另一端分别连接加解密模块和协议解析模块;

进一步地,所述接口板CPU包括Web配置界面、Web服务程序、Web配置库、接口板守护程序、FPGA配置库、FPGA通信库、FPGA加载接口、密钥管理和身份认证;Web配置页面,所述Web配置页面通过浏览器进行系统配置,组成方式包括HTML网页、JavaScript脚本、CSS样式以及图片;

Web服务程序,所述Web服务程序用于为URL注册不同的GET或POST处理函数,所述处理函数调用Web配置库,与接口板守护程序进行通信;

Web配置库,所述Web配置库用于提供动态库供Web服务程序调用;

接口板守护程序,所述接口板守护程序用于将来自UDS客户端的请求转发到各个模块进行处理,并返回其处理结果;

FPGA配置库,所述FPGA配置库用于封装FPGA的配置处理接口,定义FPGA中给出的寄存器接口;

FPGA通信库,所述FPGA通信库用于提供接口板CPU与FPGA之间的通讯接口;

FPGA加载接口,所述FPGA加载接口用于通过从串口加载FPGA;

密钥管理,所述密钥管理用于将加密机的设备根密钥由KMC生成后分为三份S1,S2,S3,其中S1在生产时固化在加密机内部的安全芯片中;S2保存在USB 分量key1中;S3保存在USB 分量key2中;

身份认证,所述身份认证通过密钥管理生成的密钥进行身份认证,使加密机进入正常工作状态;

进一步地,所述接口模块通过GTX核从FC接口接收和发送FC帧,具体包括识别帧和原语信号帧、帧有效长度判断、帧起始和结束判断、8B/10B位宽转换、网络字节序转换、发送方向插入idle序列、CRC校验及其计算和对接收的帧分配令牌;

进一步地,所述协议解析模块解析过程具体包括FCP读命令帧和写命令帧、FCP读数据帧和写数据帧、FCP读响应帧和写响应帧、FLOGI帧及其回复帧FLOGI_ACC、PLOGI帧及其回复帧PLOGI_ACC,所述协议解析模块从每个关心的FC帧中提取S_ID,D_ID,OX_ID信息,并从FCP读、写命令帧中提取LUN,LBA信息,供后续操作磁盘映射表、会话表及封装自定义PDU;

进一步地,所述Web配置页面具体包括系统状态显示、磁盘阵列管理、安全策略配置、通信接口管理、高可用性设置、系统设置、帮助和技术支持文档;

进一步地,所述接口板守护程序中来自UDS客户端的请求包括到CPU系统的配置请求、到FPGA的配置请求和到密管中心的请求数据;

进一步地,所述寄存器接口包括端口的使能寄存器、端口统计的读寄存器和密钥的写配置接口;

进一步地,所述FPGA通信库通过Tilera CPU的mPIPE用户态接口完成XAUI接口的数据收发;

本发明的有益效果如下:

1)采用jHash作为哈希算法,使用4GB的DDR3,总的哈希地址为64M个,每一个hash地址存储2条,即可以冲突1次,最多支持128M条会话;

2)Web配置库降低了配置页面和接口板守护程序的耦合度,在增加配置系统功能时非常方便;

3)本发明采取软硬件结合的方式,硬件完成所有FCP的数据帧转发、加解密,软件完成配置和管理;

4)FPGA内部采取多条64位突发流水线,根据任务的不同进行独立突发处理,工序节点合成结果,有效的解决了接入处理能力;

5)加密机使用接口FPGA做数据流调度,实现了数据均衡算法,在多个加密芯片芯片间平衡分配数据流,最大限度发挥多加密芯片的处理能力。

附图说明

图1为本发明所述加密机的接口板FPGA结构图;

图2为本发明所述加密机的接口板CPU结构图;

图3为本发明所述加密机硬件结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。

下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。下面为本发明的举出最佳实施例:

如图1-图3所示,本发明提供一种高速网络存贮加密机,所述加密机用于完成应用服务器从磁盘阵列读取数据的解密工作、应用服务器向磁盘阵列写入数据的加密工作和接受密钥管理中心的统一管理,所述加密机包括接口板FPGA、接口板CPU、XAUI配置通路和XAUI数据通路,所述接口板FPGA和接口板CPU通过XAUI配置通路和XAUI数据通路进行连接,所述接口板FPGA包括接口模块、合路器模块、协议解析模块、磁盘映射表模块、会话表模块、上行模块、下行模块、接口板FPGA配置通路、异常通路和XAUI收发模块;

接口模块,所述接口模块用于接收和发送FC帧;

合路器模块,所述合路器模块用于数据帧的分路和合路;

协议解析模块,所述协议解析模块用于解析FC-2层的FC帧和FC-4层的FCP帧;

磁盘映射表模块,所述磁盘映射表模块用于根据磁盘阵列的FCID查询对应的设备编号;

会话表模块,所述会话表模块用于维护以{S_ID,D_ID,OX_ID}为会话关键字和以{LUN,LBA,Device_ID}会话信息的会话表,提供创建,查找,删除的接口;

上行模块,所述上行模块用于更新会话表并将FC数据帧按512字节进行拆分后封装自定义的PDU头,其它FC帧直接封装自定义的PDU头,连接XAUI收发模块并进行发送;

下行模块,所述下行模块用于将数据从自定义的PDU报文中取出并合并为一个完整的FC帧,按照token大小,保序发送至合路器模块;

接口板FPGA配置通路,所述接口板FPGA配置通路用于接收接口板CPU的配置管理命令,并给予回复;

异常通路,所述异常通路用于将需要由接口板CPU处理的帧异常给接口板CPU,并接收接口板CPU处理的结果;

XAUI收发模块,所述XAUI收发模块用于将封装好的PDU报文发送到加解密板,同时计算CRC校验和;并从加解密板接收自定义PDU报文,同时检查CRC校验和。

所述合路器模块一端通过接口模块连接FC接口,另一端分别连接协议解析模块和下行模块,所述协议解析模块还分别连接加解密模块、上行模块、磁盘映射表模块、会话表模块和异常通路,所述异常通路一端连接接口板CPU,另一端分别连接加解密模块和协议解析模块所述接口板CPU包括Web配置界面、Web服务程序、Web配置库、接口板守护程序、FPGA配置库、FPGA通信库、FPGA加载接口、密钥管理和身份认证;

Web配置页面,所述Web配置页面通过浏览器进行系统配置,组成方式包括HTML网页、JavaScript脚本、CSS样式以及图片。

Web服务程序,所述Web服务程序用于为URL注册不同的GET或POST处理函数,所述处理函数调用Web配置库,与接口板守护程序进行通信;

Web配置库,所述Web配置库用于提供动态库供Web服务程序调用;

接口板守护程序,所述接口板守护程序用于将来自UDS客户端的请求转发到各个模块进行处理,并返回其处理结果;

FPGA配置库,所述FPGA配置库用于封装FPGA的配置处理接口,定义FPGA中给出的寄存器接口;

FPGA通信库,所述FPGA通信库用于提供接口板CPU与FPGA之间的通讯接口;

FPGA加载接口,所述FPGA加载接口用于通过从串口加载FPGA;

密钥管理,所述密钥管理用于将加密机的设备根密钥由KMC生成后分为三份S1,S2,S3,其中S1在生产时固化在加密机内部的安全芯片中;S2保存在USB 分量key1中;S3保存在USB 分量key2中;

身份认证,所述身份认证通过密钥管理生成的密钥进行身份认证,使加密机进入正常工作状态,所述接口模块通过GTX核从FC接口接收和发送FC帧,具体包括识别帧和原语信号帧、帧有效长度判断、帧起始和结束判断、8B/10B位宽转换、网络字节序转换、发送方向插入idle序列、CRC校验及其计算和对接收的帧分配令牌,所述协议解析模块解析过程具体包括FCP读命令帧和写命令帧、FCP读数据帧和写数据帧、FCP读响应帧和写响应帧、FLOGI帧及其回复帧FLOGI_ACC、PLOGI帧及其回复帧PLOGI_ACC,所述协议解析模块从每个关心的FC帧中提取S_ID,D_ID,OX_ID信息,并从FCP读、写命令帧中提取LUN,LBA信息,供后续操作磁盘映射表、会话表及封装自定义PDU,所述Web配置页面具体包括系统状态显示、磁盘阵列管理、安全策略配置、通信接口管理、高可用性设置、系统设置、帮助和技术支持文档,所述接口板守护程序中来自UDS客户端的请求包括到CPU系统的配置请求、到FPGA的配置请求和到密管中心的请求数据,所述寄存器接口包括端口的使能寄存器、端口统计的读寄存器和密钥的写配置接口,所述FPGA通信库通过Tilera CPU的mPIPE用户态接口完成XAUI接口的数据收发。

本发明所述网络存储加密机的CPU软件系统主要由Web配置界面、Web服务程序、Web配置库、接口板守护程序、FPGA配置库、FPGA通信库、FPGA加载接口、密钥管理、身份认证等组成。与硬件配合实现本节所述其他的功能。

所述Web配置页面模块通过浏览器(IE、Firefox、Chrome等)进行系统配置,由HTML网页和相关JavaScript脚本、CSS样式、图片等组成。配置页面主要功能包括系统状态显示、磁盘阵列管理、安全策略配置、通信接口管理、高可用性设置、系统设置等,还包括其它一些帮助和技术支持文档。

所述Web服务程序由一系列Lua模块组成,包括copas,coxpcall,lpeg,luafilesystem,luajson,luasocket,luasql,orbit,wsapi,xavante等。Web服务程序根据浏览器请求的地址以及上传的数据调用不同的处理函数,返回HTML页面供浏览器显示。Web服务器程序为每个URL注册不同的GET或POST处理函数,每个处理函数会进一步调用Web配置库,与接口板守护程序进行通信。

所述Web配置库提供动态库供Web服务程序调用,该动态库将每个接口函数封装为一个Lua可以识别的命令,并明确地定义了接口的输入输出参数。Web服务程序在接收到浏览器的请求后,在Web服务程序中调用动态库中封装的命令,然后将返回结果通过HTML的形式返回给浏览器。Web配置库通过UDS(Unix Domain Socket)与接口板守护进程进行通信。本模块降低了配置页面和接口板守护程序的耦合度,在增加配置系统功能时非常方便。

运行在所述接口板CPU上的后台守护进程,是所有状态和命令的收集和转发中心,属于总控枢纽守护进程。该程序将来自UDS客户端的请求转发到各个模块进行处理,并返回其处理结果。主要包括到CPU系统的配置请求、到FPGA的配置请求、到密管中心的请求数据等。另外还包括HA模块和来自FPGA的异常帧(主要有FLOGI、PLOGI、ACC帧及Debug帧)处理模块。

所述FPGA配置库封装FPGA的配置处理接口,定义了FPGA中给出的所有寄存器接口,例如端口的使能寄存器、端口统计的读寄存器、密钥的写配置接口等。

所述FPGA通信库提供与FPGA之间的通讯接口,包括所有配置报文请求和回复及异常报文的接收。该模块采用Tilera CPU提供的mPIPE用户态接口来完成XAUI接口的数据收发。

所述FPGA加载接口实现了通过从串口加载FPGA的功能。

密钥管理:网络存储加密机的设备根密钥由KMC生成后分为三份S1,S2,S3,其中S1在生产时固化在网络存储加密机内部的安全芯片中,不可销毁也不可更新;S2保存在USB 分量key1中;S3保存在USB 分量key2中。网络存储加密机设备身份密钥由自己生成也可以通过USB key注入,其中私钥保存在安全芯片FLASH中,公钥可以通过USB接口或配置管理口导出。网络存储加密机工作密钥由自己生成也可以通过USB key注入,用户在添加磁盘阵列LUN信息时,加密机调用安全芯片的密钥获取接口,安全芯片从两个WNG9随机数发生器获取两个随机数,将两个随机数的异或结果作为LUN的工作密钥,然后使用设备根密钥进行加密后返回给加密机,最后存储到数据库中。

身份认证:网络存储加密机上电后,CPU上的Linux操作系统立即加载启动,Linux操作系统起来后并不下载FPGA程序,检测USB分量Key1是否在线。用户插入USB分量Key1之后,Linux操作系统从分量key1中获取设备公钥,将一段随机数使用设备身份密钥私钥进行签名后的签名值使用USB分量Key1中的设备公钥对该段随机数进行验签,查看验签结果;若验签成功,从USB分量key1中获取设备根密钥分量S2。

USB分量Key1验证成功后必须在5分钟内插入USB分量Key2,Linux操作系统从USB分量Key2中获取设备公钥,将一段随机数使用设备身份密钥私钥进行签名后的签名值使用USB分量Key2中的设备公钥进行验签;若验签成功,从USB分量Key2中获取设备根密钥分量S3,然后比较通过三部分设备根密钥计算出来的 SHA256 摘要与 FLASH中的 SHA256 摘要,如果不相等则认证失败。

认证成功后,将FPGA程序(密文)使用设备根密钥进行解密,得到可用的FPGA程序,然后再进行从串加载。加密机进入正常工作状态。

接口模块采用GTX核实现从FC接口接收和发送FC帧,主要功能包括识别帧和原语信号帧(primitive signal)、帧有效长度判断、帧起始和结束判断(传输字校验)、8B/10B位宽转换、网络字节序转换、发送方向插入idle序列、CRC校验及其计算、对接收的帧分配令牌(用于帧保序发送)等功能。

合路器模块实现数据帧的分路和合路功能,将来自接口模块、下行模块的帧发送给其它模块。

协议解析模块用于解析FC-2层的FC帧和FC-4层的FCP帧。识别出加解密需要的FC帧(FCP读命令帧和写命令帧、FCP读数据帧和写数据帧、FCP读响应帧和写响应帧、FLOGI帧及其回复帧FLOGI_ACC、PLOGI帧及其回复帧PLOGI_ACC),不再此列的所有FC帧直接透传。

协议解析模块从每个关心的FC帧中提取S_ID,D_ID,OX_ID信息,并需要从FCP读、写命令帧中提取LUN,LBA信息,供后续操作磁盘映射表、会话表及封装自定义PDU。

磁盘映射表模块根据磁盘阵列的FCID查询对应的设备编号。内外网接口板CPU软件通过用户配置的磁盘描述表,以及从FLOGI_ACC或PLOGI_ACC帧中解析出来的磁盘阵列WWNN和FCID,得出磁盘阵列的FCID和WWNN的映射关系。

会话表模块维护以{S_ID,D_ID,OX_ID}为会话关键字和以{LUN,LBA,Device_ID}会话信息的会话表,提供创建,查找,删除的接口。采用jHash作为哈希算法,使用4GB的DDR3,总的哈希地址为64M个,每一个hash地址存储2条,即可以冲突1次,最多支持128M条会话。

创建会话时先拿对应地址的时间信息与当前时间作比较,如果该会话超时则直接覆盖;如果未超时,则创建失败。查询会话时直接返回对应地址中的LUN,LBA,Device_ID信息即可。

上行模块,在此模块更新会话表(同一会话表1s更新一次,超时时间设置为2s),然后将FC数据帧按512字节进行拆分后封装自定义的PDU头,其它FC帧直接封装自定义的PDU头,交给XAUI收发模块进行发送。

下行模块,在此模块将数据从自定义的PDU报文中取出并合并为一个完整的FC帧,按照token大小,保序发送至合路模块。

配置通路接收来自接口板CPU的配置管理请求,并给予回复。

异常通路将需要由接口板CPU处理的帧异常给接口板CPU,并接收CPU处理的结果。

XAUI收发模块将封装好的PDU报文发送到加解密板,同时计算CRC校验和;并从加解密板接收自定义PDU报文,同时检查CRC校验和。

本发明所述加密机数据加密方法具体如下:

在磁盘写的过程中,写命令和写数据在设备内部都是由接口板FPGA外网接收后,发送到加解密模块,对需要加密的数据进行加密后,再发送到接口板FPGA内网。其对应的会话记录在外网接口板。该流程主要分为以下几个步骤:

1)服务器发送FCP_CMMD写命令帧。

2)接口板FPGA外网的接口模块接收到FCP_CMMD写命令帧后,通过合路器发送到协议解析模块。

3)接口板FPGA外网在协议解析模块识别该帧为FCP_CMMD写命令帧,并提取帧头中的S_ID,D_ID,OX_ID信息,以及FC帧载荷中的LUN和LBA信息。

4)接口板FPGA外网在磁盘映射表模块使用D_ID查找相应的Device_ID。

5)接口板FPGA外网在会话表模块以{S_ID,D_ID,OX_ID}为关键字创建一条会话,同时在会话中记录{LUN,LBA,Device_ID}信息。

6)接口板FPGA外网在上行模块将FCP_CMMD写命令帧使用自定义PDU封装后交给XAUI收发模块,最后发送到加解密模块。

7)加解密模块将该PDU报文透传发送到接口板FPGA内网。

8)接口板FPGA内网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

9)接口板FPGA内网的下行模块从PDU报文中取出FCP_CMMD写命令帧后,通过合路器发送到接口模块,最后发送到磁盘阵列。

10)磁盘阵列回复FCP_XFER_RDY传输准备帧。

11)接口板FPGA内网的接口模块接收到FCP_XFER_RDY传输准备帧后,通过合路器发送到协议解析模块。

12)接口板FPGA内网的协议解析模块识别该帧为FCP_XFER_RDY传输准备帧,然后发送到上行模块。

13)接口板FPGA内网的上行模块将FCP_XFER_RDY帧使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

14)加解密模块将该PDU报文透传发送到接口板FPGA外网。

15)接口板FPGA外网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

16)接口板FPGA外网的下行模块从PDU报文中取出FCP_XFER_RDY传输准备帧后,通过合路器发送到接口模块,最后发送到服务器。

17)服务器接收到FCP_XFER_RDY传输准备帧之后,发送FCP_DATA写数据帧。

18)接口板FPGA外网的接口模块接收到FCP_DATA写数据帧后,通过合路器发送到协议解析模块。

19)接口板FPGA外网的协议解析模块识别该帧为FCP_DATA写数据帧,并提取帧头中的S_ID,D_ID,OX_ID信息。

20)接口板FPGA外网在会话表模块以{S_ID,D_ID,OX_ID}为关键字进行查找,查找到会话后,获得会话信息{LUN,LBA, Device_ID}。

21)接口板FPGA外网在上行模块将FCP_DATA写数据帧按512字节进行拆分,将每个片段使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

22)加解密模块对PDU报文中的数据进行加密后,发送到接口板FPGA内网。

23)接口板FPGA内网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

24)接口板FPGA内网的下行模块从PDU报文中取出FCP_DATA写数据帧,如果不是最后一个分片,将该分片缓存后不再进行后续流程的处理。

25)接口板FPGA内网的下行模块接收到最后一个分片后将所有FCP_DATA片段拼接为一个完整的FCP_DATA写数据帧,然后通过合路器发送到接口模块,最后发送到磁盘阵列。

26)反复步骤17-25,处理多个FCP_DATA写数据帧。

27)磁盘阵列发送FCP_RSP写响应帧。

28)接口板FPGA内网的接口模块接收到FCP_RSP写响应帧后,通过合路器发送到协议解析模块。

29)接口板FPGA内网的协议解析模块识别该帧为FCP_RSP写响应帧,并提取帧头中的S_ID,D_ID,OX_ID信息。

30)接口板FPGA内网在会话表模块以{S_ID,D_ID,OX_ID}为关键字进行关闭连接的操作。

31)接口板FPGA内网的上行模块将FCP_RSP写响应帧使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

32)加解密模块将该PDU报文透传发送到接口板FPGA外网。

33)接口板FPGA外网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

34)接口板FPGA外网的下行模块从PDU报文中取出FCP_RSP写响应帧后,通过合路器发送到接口模块,最后发送到服务器。

35)服务器完成一次写操作。

本发明所述加密机解密过程具体如下:

在磁盘读的过程中,读命令在设备内部是由接口板FPGA外网接收后,发送到加解密模块,直接透传到接口板FPGA内网;读数据则是由接口板FPGA内网接收,发送到加解密模块进行解密后,再发送到接口板FPGA外网。该流程主要分为以下几个步骤:

1)服务器发送FCP_CMMD读命令帧。

2)接口板FPGA外网的接口模块接收到FCP_CMMD读命令帧后,通过合路器发送到协议解析模块。

3)接口板FPGA外网在协议解析模块识别该帧为FCP_CMMD读命令帧,将该帧发送到上行模块。

4)接口板FPGA外网在上行模块将FCP_CMMD读命令帧使用自定义PDU封装后交给XAUI收发模块,最后发送到加解密模块。

5)加解密模块将该PDU报文透传发送到接口板FPGA内网。

6)接口板FPGA内网的XAUI收发模块从加解密模块收到该PDU报文后,从PDU报文中取出FCP_CMMD读命令帧后,发送到协议解析模块。

7)接口板FPGA内网在协议解析模块提取FCP_CMMD读命令帧头中的S_ID,D_ID,OX_ID信息,以及FC帧载荷中的LUN和LBA信息。

8)接口板FPGA内网在磁盘映射表模块使用D_ID查找相应的Device_ID。

9)接口板FPGA内网在会话表模块以{S_ID,D_ID,OX_ID}为关键字创建一条会话,同时在会话中记录{LUN, LBA, Device_ID}信息。

10)接口板FPGA内网创建完会话后,将FCP_CMMD读命令帧发送到下行模块,然后通过合路器发送到接口模块,最后发送到磁盘阵列。

11)磁盘阵列回复FCP_XFER_RDY传输准备帧。

12)接口板FPGA内网的接口模块接收到FCP_XFER_RDY传输准备帧后,通过合路器发送到协议解析模块。

13)接口板FPGA内网的协议解析模块识别该帧为FCP_XFER_RDY传输准备帧,然后发送到上行模块。

14)接口板FPGA内网的上行模块将FCP_XFER_RDY帧使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

15)加解密模块将该PDU报文透传发送到接口板FPGA外网。

16)接口板FPGA外网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

17)接口板FPGA外网的下行模块从PDU报文中取出FCP_XFER_RDY传输准备帧后,通过合路器发送到接口模块,最后发送到服务器。

18)服务器接收到FCP_XFER_RDY传输准备帧之后,准备接收FCP_DATA读数据帧。

19)磁盘阵列发送FCP_DATA读数据帧。

20)接口板FPGA内网的接口模块接收到FCP_DATA读数据帧后,通过合路器发送到协议解析模块。

21)接口板FPGA内网的协议解析模块识别该帧为FCP_DATA读数据帧,并提取帧头中的S_ID,D_ID,OX_ID信息。

22)接口板FPGA内网在会话表模块以{S_ID,D_ID,OX_ID}为关键字进行查找,查找到会话后,获得会话信息{LUN,LBA, Device_ID}。

23)接口板FPGA内网在上行模块将FCP_DATA读数据帧按512字节进行拆分,将每个片段使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

24)加解密模块对PDU报文中的数据进行解密后,发送到接口板FPGA外网。

25)接口板FPGA外网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

26)接口板FPGA外网的下行模块从PDU报文中取出FCP_DATA读数据帧,如果不是最后一个分片,将该分片缓存后不再进行后续流程的处理。

27)接口板FPGA外网的下行模块接收到最后一个分片后将所有FCP_DATA片段拼接为一个完整的FCP_DATA读数据帧,然后通过合路器发送到接口模块,最后发送到服务器。

28)反复步骤19-27,处理多个FCP_DATA读数据帧。

29)磁盘阵列发送FCP_RSP读响应帧。

30)接口板FPGA内网的接口模块接收到FCP_RSP写响应帧后,通过合路器发送到协议解析模块。

31)接口板FPGA内网的协议解析模块识别该帧为FCP_RSP写响应帧,并提取帧头中的S_ID,D_ID,OX_ID信息。

32)接口板FPGA内网在会话表模块以{S_ID,D_ID,OX_ID}为关键字进行关闭连接的操作。

33)接口板FPGA内网的上行模块将FCP_RSP写响应帧使用自定义PDU进行封装,发送到XAUI收发模块,最后发送到加解密模块。

34)加解密模块将该PDU报文透传发送到接口板FPGA外网。

35)接口板FPGA外网的XAUI收发模块从加解密模块收到该PDU报文后,交给下行模块处理。

36)接口板FPGA外网的下行模块从PDU报文中取出FCP_RSP写响应帧后,通过合路器发送到接口模块,最后发送到服务器。

37)服务器完成一次读操作。

本发明功能模块对应的硬件结构如下:

网络存储加密机硬件平台由一个FPGA底板和一块CPU板构成。

FPGA底板集成了Xilinx公司的Vetex7-330T芯片,用于FC协议的解析和磁盘数据的加解密实现;集成TCAM芯片,用于FCID映射表、LUN密钥表以及LUN查找表;集成DDR3内存条用于保存FC读写会话;集成GS8182QXX (18Mbits、36Mbits兼容)系列的QDR2芯片,用于FC帧缓存;集成CPLD芯片,用于FPGA从串加载,CPLD芯片通过接插件与CPU板的GPIO接口进行通信;集成8G FC光模块;集成密钥管理模块;另外还集成Nand Flash芯片,用作CPU的数据存储区。

密钥管理模块通过SPI接口与CPLD进行通信,完成密钥管理的密钥存储、数据加解密及随机数发生器功能。其中集成了北京宏思电子技术有限公司的安全芯片HA32U2-K,商密型号为SSX0912-B,完成对SM2、SM3、SM4算法的调用;集成了2块WNG9随机数发生器芯片,用于随机数提取。安全芯片通过GPIO接口与2块噪声源芯片进行通信。

CPU底板集成了Tilera公司的9核芯片,构成CPU子卡,用于完成设备的配置管理内容的处理功能,通过XAUI接口与底板的FPGA进行通信。USB Key驱动器通过USB2.0接口与CPU连接,用于设备的身份认证管理和密钥恢复管理;毁密接口和密管状态指示均通过GPIO与CPU连接,分别实现毁密信号的采集和密管状态的指示;CPU对外提供一个千兆以太网口用于配置管理。

以上所述的实施例,只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1