光纤通道存储区域网络上的FC加密卡设计

时间:2009-11-02

  0引言

  9.11带来的教训是惨痛的,尤其是那些在世贸中心的IT企业,因为它们的数据损失是灾难性的,这在几年内都会对它们的业务产生影响.所以企业信息数据存储安全的重要性越来越被认可。而近年来的一些没有技术含量的失窃事件,反而让大众认识到为数据加密的重要性。

  目前已经有多家厂商致力于存储加密标准,希望让存储安全工具更容易和多种存储架构一同工作。

  有关加密技术的实现可根据不同厂商与产品分成三类:基于主机、基于网络(数据传输)以及基于磁带机。这有点类似实现虚拟存储的划分方式。

  本文所介绍的FC加密卡是基于网络层的,这是在设备I/O端口外接的一个硬件加密装置。本FC加密卡的主要功能有存储加密、基于主机的身份、访问控制和安全日志等,同时还可以支持多种操作系统的服务器主机以及FC协议,并具有安全、方便的管理配置界面,能可靠的接人到FC-SAN的应用环境。

  1FC加密卡的应用环境

  本FC加密卡主要用于采用光纤通道技术的FC-SAN中,可安装在存储服务器上的FC HBA卡和交换机/磁盘阵列FC接口之间。主要功能是完成进出磁盘阵列的SCSI数据的加解密。FC加密卡的加密密钥采用USB KEY并以密文的形式注入,以配合主机输入的解密密钥将工作密钥解密。同时也可以根据主机设定的控制策略,对进出磁盘阵列的有效数据进行加解密。本加密卡的应用方式如图1所示。

  2总体硬件设计

  2.1 FC加密卡硬件设计

  FC加密卡系统的总体结构如图2所示。该加密卡包含一块加密卡硬件和相应的驱动程序以及设备管理程序,同时包含2个2 GB的FC光收发模块,可用于连接HBA卡和磁盘阵列。此外,该加密卡还可通过PCI-E接口连接到计算机主板,然后通过设备管理程序完成设备状态的检测、显示和日志记录等功能。密钥的注入也是设备管理程序的工作,而驱动程序则可用于完成与下层驱动程序的接口功能。本FC加密卡硬件的总体结构如图3所示。本加密卡主要由三部分组成:光收发器、大容量FPGA和外围附加电路。其中光收发模块可完成光电信号的转换功能,设计时可采用能支持2 Gbps的FC用光收发模块,该模块支持热插拔,所以可将其中的一路光收发模块与服务器的HBA卡光接口相连,而将另一路与磁盘阵列的光接口相连。


  FPGA是卡上功能重要的一个器件,用于完成加密卡数据净荷的加解密。FPGA可选用Xilinx公司的高端FPGA—V5LX50T,FPGA本身能支持2 Gbps速率的串并变换高速接口。并可完成8B/10B变换,同时可提供PCI—E接口硬核。若按逻辑功能划分,FPGA上主要有DMA处理模块、密钥交互模块、同步与解复用模块、帧解析模块、密钥管理模块、成帧模块、转发调度模块以及复用模块。

  通过DMA处理模块可调用PCI—E IPCORE,以通过DMA数据传输方式实现主机与FPGA的数据交互。本FC加密卡主要传输三种数据,即经过加密的AES密钥、解密密钥、数据。

  密钥交互模块主要通过与DMA处理模块交互,来得到经过加密的AES密钥与解密密钥,然后通过解密程序解出加密数据所用的AES密钥,并存在RAM中,以供密钥管理模块调用。

  同步与解复用模块主要用于完成20 bit到33bit的数据转换、字同步、去除IDLE原语。以及数据时钟域转换,也就是将线路时钟数据转换为本地时钟数据。

  帧解析模块主要用于解析线路中传输的原语序列或帧数据。通常帧中会有4种FCP信息单元。即命令服务请求(FCP_CMND)、数据传送请求、数据传送请求(FCP_XFER_RDY)、数据传送工作(FCP_DATA)、命令服务响应(FCP_RSP),系统首先需要将帧同原语序列解析出来,然后还要将各种帧类型解析出来。

  图4所示是一个帧报头的格式,由图4可见。在帧头中,有足够的信息来解析各信息单元。其帧类型定义如表1所列。

  在命令帧中可提取LUN、读写信息.而将其他的命令帧转发至转发调度模块。并将数据送人加密模块处理。

  密钥管理模块的作用是在链路建立前完成密钥表的建立。并在主机与FPGA交互完毕并解出AES密钥后,将其存人RAM中。在FCP_CMND解析后,可得出读写信息,如果读、写信号任一有效或同时有效,则还应根据LUN号从RAM中提取密钥并输入AES加密模块。

  AES加密模块的作用是通过收到的加密密钥,并使甩AES-256计数器模式进行加密,然后蒋计数器值加密后送到成帧模块。

  成帧模块可在对数据净荷进行加,解密之前进行CRC校验,如果接收帧正确,则在加密后重新计算一个正确的CRC;若接收帧错误,则在计算新的CRC值时添加错误的CRC。由于FCP协议中规定:在每发送完一个帧之后,发送机的RD值应保持为负。所以必须计算加/解密帧从SOF到CRC的RD值。添加一个合适的EOF。

  转发调度模块的主要作用是在将帧解析模块的输出和加/解密模块的输出都发送到转发调度模块后,通过调度模块来调度两路信号并将其输出至复用模块。而且在无有效数据输入时,它可发送IDLE原语。

  复用模块可将输入的33bit信号转换为20 bit信号。

  外围附加电路包括晶振电源电路和FPGA加载芯片。其中晶振可提供高的106.25 MHz时钟作基准时钟,通过FPGA内的时钟分配电路产生各个模块工作所需要的时钟。电源电路负责从PCI-E接口接入主机的3.3 V电源,并生成FPGA所需的1 V、2.5 V电压以供应FPGA和光模块

  2.2 PCI-E接口控制模块

  PCI-E接口控制模块用于完成PCI-E硬核的调用和顶层TLP包的组装和拆分工作,为上层通信控制器提供正确的通信通道。图5所示是PCI-E接口硬核的结构功能框图。

  3  软件设计

  3.1 PCI-E驱动程序

  PCI是一组完全规范,它定义了计算机的不同部分是如何交互的。PCI规范覆盖了与计算机接口相关的绝大多数方面,PCI外设由一个总线号、一个设备号和一个功能号确定。

  PCI或PCI-E设备上有三种地址空间:PCI的I/O空间、PCI的存储空间和PCI的配置空间。CPU可以访问PCI设备上的所有地址空问,其中I/O空间和存储空间提供给设备驱动程序使用.而配置空间则由Linux内核中的PCI初始化代码使用。内核在启动时负责对所有PCI设备进行初始化,并配置好所有的PCI设备,包括中断号以及I/O基址,然后在文件/proc/pci中列出所有找到的PCI设备,以及这些设备的参数和属性。

  Linux驱动程序通常使用结构(struct)来表示一种设备。结构体中的变量代表某一具体设备。该变量存放了与该设备相关的所有信息。

  3.2设备驱动程序

  本设计中的设备驱动程序也就是USB-Key的驱动,它类似于USB的驱动,其设计思想是在USB驱动上做一个修改和扩充。

  首先应获得LISB-Key的硬件信息,并将其填进USB驱动框架里。

  Linux的USB内核系统中提供了与设备驱动程序开发直接相关的数据结构,该结构在整个设备驱动程序的框架中起着重大的作用。其中在中定义的数据结构file operation可向内核中的其他部分提供一个统一的标准设备接口。

  3.3设备管理程序

  设备管理程序分为下面几个部分:

  (1)用户验证程序User_confirm()。用户启动设备时,要求必须插入USB—Key,并输入用户名和口令以进行身份,通过后,设备才能启动。

  (2)获得USB—Key属性以及信息的程序Usb—key_get_info()。用户调用该程序可以获得USB—Key的基本信息和存储区间的情况。

  (3)对USB-Key的操作程序模块Usb-key execute(),该模块主要完成对存储密钥的读写、更改和删除操作,并提供相应的管理界面。

  (4)安全日志模块Security_diary(),安全日志可记录所有的访问信息,包括成功或不成功。用户可以通过操作来查看这些信息。

  4仿真与测试

  本方案可以verilog语言来实现,可选用Xilinx公司的vitex5 lx50T芯片。测试可采用环回方式并通过加密后的数据直接环回至解密模块,这样便于数据比较。图6所示是本设计的FC加密卡的逻辑仿真图。图中,rbca为线路输入时钟,rxda为线路输入数据。通常先输入原语序列以用于建立链路,然后输入命令帧,再提取lun号与读写使能,然后输入数据帧。

  对数据帧进行加密后,txda为加密后的数据:txda是数据加密后环回至解密模块的数据。经过测试,输入的数据在经过模块加密处理后,能实现正确的转发调度以及解密处理,从而实现了预期的目的。

  现阶段的测试环境包括两台PC机,一个HBA卡,一个交换机,一块ML555开发板。测试时,先将程序生成的bit文件到开发板中,再由主机通过PCI-E接口向FPGA写入加密后的AES密钥和加密密钥,然后由HBA卡通过光纤把数据发送到开发板,经过处理后再转发回HBA卡,由HBA卡的指示灯以及chipscope进行数据显示。该方法能正确的处理数据,并能观察到明文和密文的区别。

  5  结束语

  本设计在经过基本的测试后证明:其能实现对类磁盘阵列数据的加密。在加密卡和磁盘阵列中传输的静态数据都是以密文的形式存在。由于密钥与加密设备是分开管理的,因此,即使被攻击者*到线路数据或者盗取了磁盘阵列,也无法获得有用信息,有效的保护了数据。


  
上一篇:一种单片机控制的大功率铅酸电池充电器设计
下一篇:基于嵌入式多串口通信转换器的电能质量监控系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料