刀片加密服务器的密钥的管理

2022-09-10

1 加密服务器设计的基本原则

加密服务器设计的基本原则是在公用信息平台中的数据信息只有授权用户通过证书认证后, 经过安全通道才可以看到明文, 而非授权用户无论通过什么途径都得不到任何有效信息。保障信息传输和信息存储的安全性, 同时不改变用户的使用习惯, 不影响数据库的结构, 对于合法用户应保持透明。加密服务器网络的原理图如图1所示。

图1中用户终端通过宽带网或PSTN拨号方式连到服务器, 加密服务器通过1000M以太网口连接到网络磁盘阵列。加密服务器和磁盘阵列构成了公用信息平台。

用户在访问公用信息平台时, 首先涉及到的是从用户终端到加密服务器之间的信息传输安全问题。信息传输安全是由改造的SSH和SSL保证的, SSH不仅可以上传、下载文件, 而且可以对加密服务器进行必要的管理 (包括控制密钥的生成、更换密钥、重启机器、安装应用软件等) ;SSL用来保证WEB应用的数据传输安全。SSH和SSL的客户端密码算法由加密卡提供, 服务器端密码算法由加密服务器上的算法芯片SSP02-A、SSX04、WNG-5提供;加密服务器还可以实现对存储在磁盘阵列上的文件数据进行加脱密处理, 文件加脱密主密钥是由WNG-5物理噪声源芯片产生的;加脱密算法由SSP02-A完成。加脱密操作是在操作系统层进行, 通过改造网络文件系统NFS使得保存到磁盘阵列上的文件全是密文;实行身份认证, 防止非法用户侵入;实现对加密服务器的远程管理;对操作系统进行安全改造。

2 刀片加密服务器系统的密钥的管理

本系统中用到的证书、密钥有:SSH证书、SSH密钥, SSL证书、SSL密钥, 会话密钥, 主密钥 (文件加密对称密钥) 。其中, SSH和SSL证书、密钥分为服务器端和客户端, 在服务器端为服务器SSH证书、私钥和服务器SSL证书、私钥, 在客户端为管理员SSH证书、私钥和普通用户SSL证书、私钥;会话密钥是在SSH、SSL通讯中使用的密钥, 该密钥在每次建立会话通讯时生成, 在会话结束时销毁;主密钥是对用户数据文件进行加密时使用的对称密钥, 该密钥以密文形式保存在服务器端, 即:用SSH公钥和SSX04算法芯片加密后保存到密钥存储区。本系统中密钥的管理分为:服务器密钥存储区中密钥的管理;用户密钥的管理;加密服务器与客户端的通讯过程中会话密钥的管理。

2.1 服务器密钥存储区中密钥的管理

加密服务器需要用到三类密钥:服务器密钥、会话密钥和主密钥。其中会话密钥是通讯过程中使用的临时密钥, 在通讯会话结束时销毁, 不保存。在服务器上保存的密钥只有服务器密钥和主密钥;主密钥是对称算法密钥, 用于文件系统对用户数据的加脱密;服务器密钥包括SSL密钥和SSH密钥, 用于服务器端与客户端的信息传输安全以及身份认证。服务器SSH密钥、SSL密钥和管理员证书用加密模块中的‘服务器私钥保护模块’中的密钥和SSP02-A算法芯片加密后再写入到密钥区;主密钥用SSH公钥和SSX04算法芯片加密后写入到密钥区。

服务器证书、密钥由用户从CA中心申请得到, CA中心分发给用户一对公钥和私钥, 保存在用户的智能IC卡上, 智能IC卡需要系统管理员级的用户妥善保管, 服务器密钥的长度均为1024位;主密钥由加密模块的WNG-4芯片产生, 密钥长度为128位。

对以上密钥的管理包括两个方面:一方面防止非法在密钥区添加用户, 更改密钥区的证书数据;另一方面是防止密钥区的密钥数据被非法窃取。为此, 我们采取对密钥区数据进行密存的方式:服务器的SSH私钥、SSL私钥和管理员证书通过加密模块中的‘服务器私钥保护模块’中的密钥和SSP0 2-A算法芯片加密后再保存到密钥区;主密钥用SSH公钥和SSX04算法芯片加密后保存到密钥区;其他证书则用管理员私钥签名后再写入到密钥区。

加密模块中的‘服务器私钥保护模块’由W78LE51P单片机实现。生产时将管理程序和密钥 (生产时生成, 每一块板卡一个密钥) 烧录到单片机的ROM中, 然后将单片机的烧录控制位烧断 (单片机及烧录软件提供的功能) , 这样, 程序和密钥就被固化到单片机的ROM中, 并且不能读出。为了确保单片机中程序和密钥的安全性, 我们还采取了将单片机的数据端口 (P0口) 高压熔断的方法, 使其失去功能 (有关实验说明参见附录部分) 。在这种状态下, 单片机ROM中的数据既不能被读出也不能被更改。由于固化到单片机中的程序和密钥是无法被读出的, 所以该程序和密钥是安全的。

密钥区中密文密钥在使用时, 由应用程序将密文密钥和被加/脱密的数据一同送到加密模块中, 加密模块中的MPU管理程序负责调用有关的模块/算法芯片将密文密钥脱密成明文密钥, 并使用明文密钥对数据进行加/脱密处理。脱密出的明文密钥不出加密模块, 只在加密模块中由MPU管理程序使用 (传送给加密模块中的算法芯片使用) , MPU管理程序处理完毕后将相应的明文密钥清除。

密钥区中系统证书、密钥的初始化:加密服务器上电启动时, 在完成有关的初始化操作后, 首先检查密钥区中是否存有有效的证书数据, 如果没有, 系统将等待由‘证书密钥写入组件’写入的数据, 这时系统管理员需要将申请的服务器证书、密钥和管理员证书通过‘证书密钥写入组件’及其配套的应用软件依次写入到密钥灌装口, 系统管理程序则将由密钥灌装口收到的密钥数据按一定的格式保存到密钥区的相应空间, 即:在保存过程中, 管理程序先将服务器SSH私钥通过加密模块中的‘服务器私钥保护模块’中的密钥和SSP02-A算法芯片加密后再写入到密钥区的相应空间, 服务器证书则用管理员私钥签名 (MD5摘要软件算法) 后再写入到密钥区;如果密钥区中存有有效的证书数据, 则关闭‘证书密钥写入组件’的写入端口。再检查密钥区中是否存有有效的主密钥, 如果没有, 管理程序则向加密模块的WNG-4芯片发送生成主密钥请求, 并将WNG-4芯片生成的128位主密钥使用SSH公钥和SSX04算法芯片加密后存储到密钥区的主密钥A位置。

加密服务器系统在正常使用过程中, 只有系统管理员通过SSH才能对服务器进行管理, 其他任何用户都无法对服务器进行管理。SSH为系统管理员提供的服务器密钥管理功能包括以下几种。

(1) 备份加密服务器中密钥区的主密钥 (密文) 、更换服务器密钥。由于保存到盘阵上的数据是通过主密钥加密后的密文数据, 一旦主密钥遭到破坏, 密文数据将无法得到恢复, 给用户会造成不可弥补的损失, 所以有必要对主密钥进行备份。在第一次使用加密服务器时, 系统管理员要首先将主密钥备份到客户端 (备份的主密钥是经过加密后的密文数据) , 并将主密钥保存到智能IC卡中, 保存成功后将备份到客户端的主密钥删除, 并将智能IC卡交由专人管理。更换服务器密钥包括更换SSL密钥和SSH密钥, 如果系统管理员需要更换服务器密钥, 系统管理员需要运行SSH客户端程序, 连接SSH服务端, 建立安全通道, 连接成功后, 将存放服务器密钥的智能IC卡插入计算机, 执行更换服务器证书 (包括服务器公钥和私钥) 指令, 客户端首先用管理员私钥对服务器公钥进行签名, 服务器端对密钥进行加密 (使用加密模块中的‘服务器私钥保护模块’中的密钥和SSP02-A算法芯片对服务器SSH私钥、SSL私钥进行加密) , 然后将其保存。

(2) 更换主密钥。主密钥是用于对用户文件数据进行加/脱密的密钥。为了提高用户数据的安全性, 应定期或不定期地更换主密钥;更换主密钥时, 系统将使用新、旧主密钥把所有用户数据处理一遍, 处理过程中系统不再接受用户的其他指令, 当用户数据量较大时, 该处理过程会占用较长的时间。因此, 建议主密钥更换周期最短为每天一次, 且安排在用户访问量较少的时间段 (如夜间) 进行。

主密钥由主板上的随机数生成芯片WNG-4产生。用户对进行初始化时, 由随机数生成芯片产生一个主密钥, 并将主密钥用SSH公钥和SSX04算法芯片加密后存放到主密钥区的第一个位置, 以后用户需要更换主密钥时, 产生的新密钥放到第一个位置, 以前的密钥移到第二个位置。当操作系统对文件加脱密时系统首先从主密钥区第一个位置和第二个位置分别取出主密钥, 如果第二个位置的密钥可用, 那么系统对文件脱密处理时用第二个主密钥, 加密时用第一个主密钥, 否则加脱密都用第一个主密钥, 所以在更换主密钥时, SSH客户端要首先备份新生成的主密钥和以前的主密钥, 只有备份成功后才能通知加密服务器将新生成的主密钥写入密钥区, 否则更换密钥失败。

(3) 更换管理员证书。只有系统管理员自己才能更换管理员证书。当管理员证书需要更换时, 系统管理员可以通过SSH安全通道, 利用SSH客户端应用软件提供的‘更换管理员证书’功能, 将存储在管理员智能IC卡上的管理员新证书加密后覆盖加密服务器上密钥区的管理员证书。更换管理员证书后, 需用新证书私钥对密钥区存放的证书进行重新签名。更换后管理员需要重新启动SSH客户端, 新证书才能有效。

(4) 添加、删除、更改用户证书。系统管理员可以通过SSH向密钥区添加用户证书, 只有用户的证书添加到了加密服务器密钥区的相应空间, 用户才能通过SSL访问服务器, 否则用户无法访问服务器, 所以如果要取消用户访问服务器的权限, 可以删除相应用户的证书, 如果用户更换了证书, 需要提请系统管理员将自己以前的证书更换为新证书。默认情况下, 加密服务器用户密钥区最多可以存放1016个用户证书, 如果需要增加更多的用户, 可以使用机动存储区, 但最多可以存放3064个用户证书, 即:一个加密服务器最多可供3064个普通用户使用。用户的证书是用管理员的私钥签名后保存到密钥区的。

(5) 管理、维护加密服务器 (复位、重启等) 。系统管理员在必要的情况下, 可以通过SSH向加密服务器发送复位、重启请求, 使服务器重新启动, 同时SSH也进行复位, 服务器重新启动后系统管理员需要重新建立SSH连接。

(6) 文件备份。系统管理员可以将保存在盘阵上的数据通过SSH通道备份到本地硬盘, 由于脱密操作是由操作系统自动完成, 所以备份到本地硬盘的数据是明文数据。

2.2 用户密钥的管理

用户密钥包括系统管理员密钥和普通用户密钥, 系统管理员和每个普通用户都需要向CA中心申请一对公钥和私钥 (即证书) , 并保存到自己的智能IC卡上, 用户密钥的长度均为1024位。

使用本系统之前, 系统的所有用户 (包括系统管理员和普通用户) 都应将自己的证书存放到服务器的密钥区中:管理员证书是通过‘证书密钥写入组件’传递到服务器并加密后写入到服务器的密钥区中的;普通用户的证书是由管理员用自己的私钥签名后通过SSH安全通道写入到服务器的密钥区中的。服务器中用户证书的添加、更换和删除 (销毁) 均由管理员通过SSH安全通道进行管理。

系统管理员可以使用自己的密钥通过SSH安全通道管理加密服务器;普通用户只能使用自己的私钥通过SSL安全通道访问服务器, 不能对服务器进行任何管理。通过SSL安全通道访问服务器仅限于WEB应用。用户的私钥保存在智能IC卡上, 用户需要对自己的智能IC卡进行妥善保管, 特别不要泄漏自己的密码。用户在使用证书访问服务器时需要将智能IC卡插入SJW16-A密码卡的IC卡读写器中, 客户端计算机中的密码卡SJW16-A在进行加脱密处理时需要从智能IC卡中读取用户私钥。

2.3 服务器与客户端通讯过程中会话密钥的管理

加密服务器使用对称算法芯片SSP02-A、RSA算法协处理器芯片SSX04和随机数生成器芯片WNG-4;客户端使用国密办推荐使用的密码卡, 密码卡中的算法芯片和加密服务器的算法芯片一致。

2.3.1 SSH通讯过程中的密钥管理

在SSH通讯的建立过程中, 需要使用管理员的SSH公钥和私钥、服务器的SSH公钥和私钥、以及一对临时生成的RSA密钥 (SSH2协议要求产生一对临时的RSA密钥, 包括公钥和私钥, 是由服务器调用加密模块中的SSX04芯片产生) 。管理员的SSH公钥以及服务器的SSH公钥和私钥是保存在服务器的密钥区中的, 管理员的SSH私钥是保存在自己的智能IC卡上的。因此, 建立SSH通讯时, 在客户端, 管理员应先将保存有自己SSH私钥的智能IC卡插入计算机, 然后启动SSH客户端程序。

在建立起SSH安全通道后, 双方协商建立起一个对称会话密钥KEY (128位, 由客户端的密码卡产生) , 在以后的会话中, 便不再使用SSH公钥和私钥, 在这一过程中临时生成的RSA密钥也不再使用 (被销毁掉) , 而是使用对称会话密钥KEY。

当结束本次SSH通讯时, 对称会话密钥KEY即被销毁, 不再使用。SSH通讯过程中使用的加脱密算法包括分组密码算法、RSA公开密钥算法和MD5摘要算法。

2.3.2 SSL通讯过程中的密钥管理

在SSL通讯的建立过程中, 需要使用用户的SSL公钥、服务器的SSL公钥和私钥、以及一个临时生成的摘要算法密钥HMAC (128位, 由客户端调用密钥卡的有关功能产生) 。用户的SSL公钥以及服务器的SSL公钥和私钥是保存在服务器的密钥区中的, 用户的智能IC卡也保存自己的证书。因此, 建立SSL通讯时, 在客户端, 用户应先将保存有自己SSL证书的智能IC卡插入计算机, 然后启动SSL程序。

在建立起SSL安全通道后, 双方协商建立起一个对称会话密钥KEY (128位, 由客户端的加密卡产生) , 在以后的会话中, 便不再使用SSL公钥和私钥, 在这一过程中临时生成的摘要算法密钥HMAC也不再使用 (被销毁掉) , 而是使用对称会话密钥KEY。

当结束本次SSL通讯时, 对称会话密钥KEY即被销毁, 不再使用。SSL通讯过程中使用的加脱密算法包括分组密码算法、RSA公开密钥算法和HMAC摘要算法。

2.4 密钥数据的保护

在物理上, 密钥区 (CF卡) 采取黑色树脂胶进行二次封装的方法, 从外观上看不到连线, 确保密钥存储区的数据不被窃取。

在软件上, 我们改造了造作系统, ZL-Linux操作系统只开放SSH端口和SSL端口编写了专用软件实现对密钥区的操作, 并且该操作的调用只限于操作系统中的文件加解密模块 (文件加解密模块由公司独立开发, 并嵌入ZL-Linux操作系统中) 。服务器私钥、管理员证书是通过专用组件--‘证书密钥写入组件’传递到服务器并加密后写入密钥区的相应空间的;主密钥是由随机数生成器产生, 加密后写入密钥区的相应空间;普通用户证书由管理员通过SSH方式并用管理员私钥签名后写入密钥区的相应空间。管理员可以通过SSH方式对密钥区的数据进行管理、备份。除SSH方式外, 系统通过网口不提供其他访问密钥区的接口。

在硬件上, 母板上设计看门狗模块 (由单片机实现) , 该模块每隔30秒向服务器板卡发送看门狗信号, 当服务器板卡不能按时检测到该信号时 (如板卡没有安装在正常的系统中运行) , 服务器板卡上的相关检测程序将销毁存储在该板卡上的密钥、证书、操作系统内核等数据。

另外, 在系统的初始化方面, 我们设计了服务器证书、管理员证书灌装口及相应的接口专用组件--‘证书密钥写入组件’, 该端口设计成一次性只写方式, 使其只能写入数据, 不能读出, 确保了敏感数据不会由该端口被改写、窃取。

刀片加密服务器系统的安全性涉及到硬件的生产/存储/分发、系统的初始化、密钥的管理等。在整个安全性设计中密钥管理占有重要地位。

3 结语

采用密码技术对信息进行加密保护和安全认证, 是保护信息安全的有效技术手段。加密服务器在安全设计上采用密码技术实现了信息加密和安全认证, 具有较高的保密强度和抗攻击能力。它的主要性能, 一是信息传输的加密保护, 二是信息存储的加密保护, 有效地解决了当前日益突出的信息安全领域中的两大难题, 可有效防止黑客攻击和病毒的破坏, 具有安全性、可靠性和实用性。

基于数据信息存储、传输安全考虑SJY60加密服务器广泛用于电信、金融等垂直行业客户及大企业集团构建安全专用信息平台的信息数据加密保护, 同时, 用于组建的安全公用信息平台, 将逐步改变传统的建网观念, 由企业独立建网转变为租用公网, 使广大中小企业以最少的投入、最快的速度建网, 加快企业信息化进程。

摘要:服务器是计算机网络中的核心设备, 用户的所有信息都是通过服务器进行处理和存储, 因此, 服务器的信息安全问题是至关重要的。利用密码技术实现用户信息的密存, 是解决服务器信息安全的手段之一。因此服务器的信息安全应该是一个系统的全面解决方案。刀片式加密型安全服务器解决了信息传输和存储的安全, 提出了一套完整的系统的信息安全解决方案。

关键词:密钥管理,加密服务器,SSH,SSL

参考文献

[1] 马琳茹.基于Linux平台加密服务器设计与实现[J].中国人民解放军国防科学技术大学, 2002.

[2] 王刚.网络磁盘阵列结构和数据布局研究[J].南开大学, 2002.

[3] William Stallings[著], 杨明, 等[译].密码编码学与网络安全的原理与实践 (第二版) [M].电子工业出版社, 2001.

上一篇:计划与工程项目三大目标实现的分析下一篇:高职院校产学研结合下创业教育人才培养体制机制研究