kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 业界动态> FC加密卡密钥管理系统设计与实现

FC加密卡密钥管理系统设计与实现

2009-07-24
作者:刘青龙, 谢 军, 季乔龙

摘 要:一种基于对称加密体制的光纤通道加密卡密钥管理方案该方案将独立的密钥管理中心、USB Key、硬件安全设备等有效地应用于密钥管理的各个重要环节,可以让用户以最小的安全风险和管理代价来管理密钥信息的产生、分发、备份及恢复过程,从而确保存储数据安全。

关键词:密钥管理; 密钥管理中心; USB key; 硬件安全设备

近年来,网络存储技术已被应用到各个行业。网络存储又被誉为第三次IT浪潮[1]。FC-SAN(Fiber Channel- Storage Area Network)网络是当前最主流的SAN结构,它采用高速的光纤通道构架存储网络,并用FCP(Fibre Channel Protocol)协议传输SCSI命令和数据。由于光纤通道的远距离连接能力以及高速的传输能力,使得FC-SAN的性能非凡,被业界普遍采用。随着SAN网络的日益普及,网络存储数据的安全问题也受到了人们的广泛关注。存储加密是保护数据的普遍做法。目前,存储系统中数据加密技术的实现分成基于主机层、网络层及存储层的3类。由于内建加密功能的存储设备才刚推出,目前企业应用的加密产品以主机或网络型产品为主流。基于主机层加密是在前端欲加密的主机上安装加密软件进行加密。但软件加密的缺点是面对企业达到TB甚至PB级数据量,加密运算将极大增加系统负担,影响效能,而且密钥档的保管也相当麻烦,可能会遭到非法复制和遗失。基于网络层加密是通过在存储网络中插入特殊加密硬件进行加密,但网络带宽会受影响。硬件方法将加/解密对性能的影响降到最低,可以做到对用户透明,并且可以避免软件方法固有的安全隐患,最大限度地保证整个系统的安全性。综合考虑,在主机上安装硬件加密装置是较好的选择。

出于对加/解密性能的考虑,目前大多采用实现方法相对简单的对称加密体制。由于加/解密都要使用相同的密钥,因此密钥的存储和备份便成了该加密体系中最薄弱的环节。用专门的硬件设备来存储和分享密钥,就可以极大地提高密钥系统的安全性。目前流行的USB Key是一种在高安全领域内广泛使用的标准USB接口的设备,能够对用户密钥提供多层的安全保护。使用USB Key除了可以保证用户密钥信息的安全性以外,同时也在管理上以一种“硬件持有物”的方式,使得用户对虚拟的“数字身份”有了物理上的掌握与控制。此外,为防止一些特权用户,如管理员私自复制密钥,一个较好的解决办法是研制多密钥系统。使用一套密钥加密数据,使用另一套密钥对管理员进行身份识别。管理员绝不会真正看到用来加密数据的密钥,从而降低了系统风险。对SAN网络而言,完善的密钥管理系统的研究与开发是一个十分重要的课题。

本文在对称加密体制的基础上,将USB Key用于密钥存储和身份认证,结合密钥共享和多密钥加密技术,设计并实现了一种FC加密卡的密钥管理系统,较好地实现了密钥的产生、分发、备份和恢复功能,满足了FC-SAN用户数据存储的安全需要。

1 FC加密卡的密钥管理设计

为避免系统过于复杂,且实现起来更加简单容易,在实际使用的系统中,根据用户要求和系统规模采用使系统结构更加紧凑的二种密钥。一种是主密钥, 用于保护其他密钥;另一种是工作密钥, 用于保护数据。密钥采用了三层结构, 如图1所示。其中,每一层密钥用于对下一层密钥进行加密保护。同时,为提高安全性,加密算法采用早已集成到硬件中并得到广泛应用的AES[2]-256算法。当然,对数据的加密应该是连贯的隔离操作,纯软件的加密系统难以做到,因而将采用单独的硬件安全设备,即利用位于FC HBA卡和交换机FC接口之间的加密卡完成对进出磁盘阵列的SCSI数据的加解密。另外,为确保对用户身份的验证,需要向用户分发认证密钥,密钥的存储采用安全性很高的USB Key[3]

1.1 密钥的产生和分发

密钥管理中心的密钥生成模块采用基于混沌理论的密钥生成方法来实现。具体描述如下:

混沌对非线性方程初值敏感,由混沌获得的随机序列可确定数学形式理论上不可预测的混乱结果。表现混沌现象的标准虫口方程(Logistic一维迭代方程)为:

在非线性作用下,当μ从0趋向4时,其动力学性态的复杂性逐步增加,即从定态变为周期性态,通过周期倍化级联而到达混沌性态,μ=3.58左右,这种分裂突然呈现崩溃之势,周期性态就变成混沌,虫口的涨落再也不会确定下来,即虫口的逐年变化完全变为随机。在具体应用中取μ=3.6,利用式(1)生成224位密钥,随后每7位插入一位奇偶校验位(这里使用奇校验),从而生成最后的256位的AES密钥。而初始种子通过对当前系统时间加以简单的线性变换得到。用此方法可以产生工作密钥,密钥的产生均由密钥管理中心(KMC)自动完成。

在存储加密设备中,存储加密的安全性与处理性能的瓶颈主要在密钥的管理与加/解密算法上。由于加解密算法的性能一般是固定的,不容易改变,所以性能的瓶颈主要存在于密钥的管理方面。因此,安全与性能是一对需要解决的矛盾,当强调高安全则会降低性能,而当强调高性能则会降低安全性。为了平衡设备的安全性与性能,本方案采用基于LUN(逻辑单元号)的加密技术。此技术将所有的LUN分成多个加密区,每个加密分区使用一个不同的密钥进行加密,这样存储加密过程中只需要有限多个密钥就能实现对存储子系统中所有数据块的加密。每个密钥长度为32 B,工作密钥保存在加密卡上,使用RAM很容易存储。这样一方面减少了密钥表的大小,加快了密钥的查找速度,提高了数据加密的性能;另一方面由于采用了多个密钥对存储子系统的多个区域进行了加密,与单一固定密钥的方法相比,提高了加密数据被破解的难度,增强了数据加密的安全性。为进一步确保密钥安全,可以用AES-256算法以软件方式对工作密钥加密,并将其连同主密钥、认证密钥一起存入USB Key中,利用用户PIN确保了其安全。

1.2 密钥的备份和恢复

密钥管理中心完成密钥备份和恢复过程。在密钥备份过程中采用秘密共享方案对主密钥、工作密钥、认证密钥进行保存。在密钥管理体系模型中,秘密共享理论主要用来保护敏感密钥。采用秘密共享方案使得原来应该由一个人承担保密安全的责任分摊到若干个个体上,并且减少了密钥丢失的风险。(t,n)门限秘密共享方案将一个秘密由n个参与者所共享,只有t个或t个以上的参与者可以联合重构该秘密,而(t-1)个或更少的参与者不能得到该秘密的任何信息。本系统采用文献[5]中提出的基于Lagrange插值多项式的(t,n)门限方案,实现对管理员方密钥的安全存储。其中t是重构密钥所需的密钥影子个数, n为产生的影子总数。选择一个随机素数p,使之比可能的影子数目和最大可能秘密都大,但需保存。共享密钥K时,需构造一个次数最多为t-1的任意多项式:

为秘密地随机选取的元素,每个参与者对应a(x)所确定的曲线上的一个点(xi,yi), 1≤i≤n,并存于n个USB Key中,其中xi应互不相同。当获取其中t份密钥影子时,(xm1,ym1),(xm2,ym2),…(xmt,ymt),其中m[1,n],由插值公式:

对用户方密钥采用备份机备份,备份流程如图2所示。

密钥恢复分用户方和管理员方密钥恢复。

(1)用户方存储在USB Key内的密钥恢复流程:发出密钥恢复申请→进行身份认证→认证成功→从密钥备份机内调出密钥再分发给用户USB Key。

(2)管理员方密钥的恢复:由于加密密钥在存储备份时采用秘密共享方案,所以在恢复时亦需要t个以上管理员持有的密钥影子才可以恢复。密钥恢复流程:发出密钥恢复申请→进行t个管理员身份认证→认证成功→t份子密钥恢复出密钥再分发到管理员USB Key。

1.3 身份认证

基于USB Key的身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。USB Key可以存储用户的认证密钥,利用USB Key内置的密码算法实现对用户身份的认证。在登录认证过程中通常是采用基于冲击/响应的认证模式,同时还设置了用户PIN码的最大可重试次数。当PIN码连续输入错误达到最大可重试次数时,将会自动死锁,这样就成功地防范了穷举攻击方式。当PIN码被锁死时,需要KMC重新进行解锁。

在实际的实现过程中,需要在服务器端加入登录认证程序模块,并且要获取USB Key中存放的用户身份ID、读写权限等信息,以便FC加密卡根据该ID号进行访问控制。登录认证模块的关键流程如下:

(1) 用户插入USB Key,输入用户ID、口令,向服务器发出登录认证请求。

(2)服务器接到此请求后生成一个随机数R并传输给USB Key(此为冲击)。

(3) USB Key使用该随机数R、口令和存储在USB Key中的认证密钥进行HMAC-MD5(随机数R、口令、认证密钥)运算并得到一个结果作为认证证据传给服务器(此为响应)。

(4)与此同时,服务器也使用该随机数R与存储在服务器数据库中的该客户认证密钥进行HMAC-MD5(随机数R,口令,认证密钥)运算。如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户,否则返回第1步。

(5) 保存用户ID、读写权限等重要信息,进入系统。

其实现流程如图3所示。

2 加密卡密钥管理系统实现方案

本密钥管理系统主要由密钥管理中心、FC加密卡和USB Key三部分实现。系统总体框图如图4所示。

密钥管理中心是单独的一套系统,需由专人进行维护管理。密钥管理中心主要由密钥产生、密钥分发、密钥备份、密钥恢复等几个功能模块构成。密钥管理中心产生主密钥、被加密的工作密钥,以及用户身份认证密钥和访问控制信息等,同时产生存储加密设备管理员用户的认证信息等;然后将密钥、身份认证信息等分发到USB Key中,并对所有密钥信息进行备份。一个密钥管理中心可以管理多个存储加密设备的密钥。采用密钥和存储加密设备相分离的管理方式,即使存储加密设备丢失,只要USB Key保存完好,存储加密设备都是不可工作的,这样就保证了存储池中加密数据的安全性。KMC备份和恢复工作流程如图5所示。FC加密卡的加密密钥采用USB Key以密文的形式注入,配合主机输入的解密密钥将工作密钥解密。根据主机设定的控制策略,对进出磁盘阵列的有效数据进行加解密。FC加密卡作为一种加密设备,为使用该加密卡的磁盘阵列提供加密服务。用户的权限受到主机的控制。非授权用户无法读或写相关的加密文档。磁盘的丢失也不会造成数据的丢失。密钥的丢失会造成数据可能的失密,所以应妥善保管。用户登录采用USB Key加口令认证方式。

FC加密卡包含一块加密卡硬件和相应的驱动程序及设备管理程序。加密卡通过PCI-E接口连接到计算机主板。设备管理程序完成设备状态检测、显示和日志记录等功能。同时,密钥的注入也由设备管理程序来完成。

系统工作流程如下:

(1) KMC向管理员和用户分发USB Key并做好相关备份工作。

(2)管理员启动设备时,要求必须插入管理员USB Key,并输入用户名和口令进行身份认证,通过认证后设备才能启动。设备在启动后要求插入存放密钥的USB Key,将密钥注入加密卡。主机将USB Key中的工作密钥传送给加密卡通信控制器写入,经过解密后保存在RAM中,然后开始第二次密钥注入过程。两次传输的密钥一致后写入密钥/控制表,完成后返回确认信息,加密卡即可进入正常工作模式,否则加密卡处在监听转发模式,密钥注入过程完成。在此期间,管理员无法获取密钥任何信息。密钥置入成功后,必须拔下存放密钥的USB Key。当加密卡掉电后里面的所有密钥信息丢失,需要重新注入密钥。FC加密卡中密钥的注入流程都是通过FPGA实现的,由于流程在FPGA内部实现,所以具有很高的安全性。

(3) 用户插入用户USB Key,并输入用户名和口令进行身份认证,通过认证后将访问控制表注入加密卡,然后设备才进入正常工作状态,此时用户可以进行正常的磁盘文件访问。

(4) 加密卡查询设备ACL(访问控制列表),判断用户是否有相关权限(读、写),最后再将具有权限的用户请求发送给存储加密功能模块对数据净荷加解密,将处理后的数据转发出去,不允许的访问请求将被阻断。

3 分析与展望

(1)加密数据,尤其在SAN对于大数据量的加密,用软件加密尽管实现起来相对容易,但是会加重服务器的工作负荷,影响系统整体性能。采用硬件安全设备加密,由于很多算法都是面向bit串操作,因而实现速度快。试验表明,该系统能达到较高的数据吞吐量,同时具备向更高数据吞吐量升级的能力。硬件加密安全性好,相对而言,软件不可能实现物理保护,攻击者可以利用各种调试软件来修改算法。

(2)采用USB Key进行身份认证与密钥存储,由于它采用软硬件相结合、一次一密的强双因子认证模式,认证服务器与客户端之间的数据往来每次都不相同,如黑客简单截获到认证过程的数据仍无法在网络中冒充客户端。算法采用的是值得信赖的MD5 HMAC算法,这样,算法、密钥、运算三个因素都是安全的,从而确保了整个认证过程的安全。

(3) 对密钥更新,目前的设计是由KMC设立专门的密钥数据库,当需要吊销或销毁旧密钥时,由KMC进行相关登记,并分发新的USB Key;然后由加密卡自动完成更新。但是牵涉到如何更新用旧密钥加密的数据等一系列问题。由于旧数据的更新也可由加密卡完成,所以完全可以利用某种控制算法来自动启动数据的更新,这样可以省去很多问题。由于密钥更新算法研究也是系统安全性得以提高的一个很重要方面,所以可把工作重点转到密钥更新算法研究。

参考文献

[1] 王峰.网络存储在互联网行业的应用[J].中国传媒科技,2007,10:46-48.

[2] NIST. FIPS PUB 197: Advanced Encryption Standard(AES)[S]. http://csrc.nist.gov/publications/, 2001.

[3] 严波,郭莉,潘棕强.基于USB Key的身份鉴别技术研究与应用[J]. 高性能计算技术,2005(3):36.

[4] SHAMIR A. How to share a secret communications of the ACM,1979(22):612-613.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map