Solaris 加密框架的范围
第13 章• Solaris 加密框架(概述) 253
第三方提供器的二进制文件签名-elfsign 命令使第三方可以对要在框架中使用的二进
制文件签名。可以添加到框架中的二进制文件有PKCS #11 库、内核算法模块和硬件设备
驱动程序。要使用elfsign 命令,请参见《Solaris Security for Developers Guide》中的附
录F,“Packaging and Signing Cryptographic Providers”。
Solaris 加密框架中的管理命令
cryptoadm 命令管理正在运行的加密框架。该命令是加密管理权限配置文件的一部分。可以
将此配置文件指定给用于安全管理加密框架的角色。cryptoadm 命令管理以下方面:
显示加密提供器的信息
禁用或启用提供器机制
Solaris 10 1/06:禁用或启用元插槽
svcadm 命令用于启用、刷新和禁用加密服务守护进程kcfd。此命令是Solaris 服务管理工具
smf 的一部分。svc:/system/cryptosvcs 是加密框架的服务实例。有关更多信息,请参见
smf(5) 和svcadm(1M) 手册页。
Solaris 加密框架中的用户级命令
Solaris 加密框架提供了用于检查文件完整性、加密文件和解密文件的用户级命令。独立命
令elfsign 使提供器可以对要在框架中使用的二进制文件签名。
digest 命令-计算用于一个或多个文件或stdin 的message digest(消息摘要)。摘要用
于验证文件的完整性。摘要功能的示例有SHA1 和MD5。
mac 命令-计算一个或多个文件或stdin 的message authentication code,MAC(消息验证代
码)。MAC将数据与经过验证的消息相关联。MAC使接收者可以验证消息是否来自发
送者,以及消息是否被篡改。sha1_mac 和md5_hmac 机制可以计算MAC。
encrypt 命令-使用对称密码加密文件或stdin。encrypt -l 命令列出可用的算法。用户
级库中列出的机制可用于encrypt 命令。框架提供了可进行用户加密的AES、DES、
3DES(Triple-DES,三重DES)和ARCFOUR 机制。
decrypt 命令-解密使用encrypt 命令加密的文件或stdin。decrypt 命令使用的密钥和机
制与用于加密原始文件的密钥和机制相同。
第三方软件的二进制文件签名
elfsign 命令提供了对要用于Solaris 加密框架的提供器签名的方法。通常,此命令由提供器
的开发者运行。
elfsign 命令具有请求Sun 提供的证书和对二进制文件进行签名的子命令。另外一个子命令
验证签名。未签名的二进制文件无法被Solaris 加密框架使用。要对一个或多个提供器进行
签名,需要Sun 提供的证书和用于请求该证书的私钥。有关更多信息,请参见《Solaris
Security for Developers Guide》中的附录F,“Packaging and Signing Cryptographic Providers”。
Solaris 加密框架中的管理命令
254 系统管理指南:安全性服务• 2006 年9 月
Solaris 加密框架插件
第三方可以将其提供器插入到Solaris 加密框架中。第三方提供器可以是以下对象之一:
PKCS #11 共享库
可装入的内核软件模块,如加密算法、MAC函数或摘要功能
硬件加速器的内核设备驱动程序
必须使用Sun 提供的证书对提供器对象进行签名。证书请求基于第三方选择的私钥和Sun
提供的证书。证书请求发送到Sun,Sun 将注册该第三方并发布证书。第三方然后使用Sun
提供的证书对其提供器对象进行签名。
可装入的内核软件模块和硬件加速器的内核设备驱动程序也必须在内核中注册。注册通过
Solaris 加密框架SPI(service provider interface,服务提供器接口)进行。
要安装提供器,第三方应提供用于安装签名的对象和Sun 提供的证书的软件包。该软件包
必须包括证书,并允许管理员将该证书放到安全目录中。有关更多信息,请参见《Solaris
Security for Developers Guide》中的附录F,“Packaging and Signing Cryptographic Providers”。
加密服务和区域
全局区域和每个非全局的区域都有独立的/system/cryptosvc 服务。在全局区域中启用或刷
新加密服务时,kcfd 守护进程会在该全局区域中启动,全局区域的用户级策略将被设置,
系统的内核策略也将被设置。在非全局区域中启用或刷新服务时,kcfd 守护进程将在该区
域中启动,用户级策略将在该区域中设置。内核策略由全局区域设置。
有关区域的更多信息,请参见《System Administration Guide: Solaris Containers-Resource
Management and Solaris Zones》中的第二部分,“Zones”。有关用于管理持久性应用程序的服
务管理工具的更多信息,请参见《System Administration Guide: Basic Administration》中的第
14 章“Managing Services (Overview)” 和smf(5) 手册页。
加密服务和区域
第13 章• Solaris 加密框架(概述) 255
256
Solaris 加密框架(任务)
本章介绍如何使用Solaris 加密框架。以下是本章中信息的列表。
第257 页中的“使用加密框架(任务列表)”
第257 页中的“使用Solaris 加密框架保护文件(任务列表)”
第266 页中的“管理加密框架(任务列表)”
使用加密框架(任务列表)
以下任务列表指向要使用加密框架的任务。
任务说明参考
保护单个文件或文件集确保文件内容未被篡改。阻止侵入者读取文件。这些
过程可以由普通用户完成。
第257 页中的“使用Solaris 加密框架保
护文件(任务列表)”
管理框架添加、配置和删除软件提供器。禁用和启用硬件提供
器机制。这些过程为管理过程。
第266 页中的“管理加密框架(任务列
表)”
对提供器签名使提供器添加到Solaris 加密框架。这些过程为开发
者过程。
《Solaris Security for Developers
Guide》中的附录F,“Packaging and
Signing Cryptographic Providers”。
使用Solaris 加密框架保护文件(任务列表)
Solaris 加密框架可以帮助您保护文件。以下任务列表指向用于列出可用算法和通过加密保
护文件的过程。
14 第1 4 章
257
任务说明参考
生成对称密钥生成用于encrypt 命令或mac 命令的随机密钥。第258 页中的“如何生成对称密钥
”
提供用于确保文件完整性的
校验和
验证接收者的文件副本是否与发送的文件相同。第260 页中的“如何计算文件摘要
”
使用消息验证代码(message
authentication code, MAC) 保
护文件
向消息接收者验证您是发送者。第261 页中的“如何计算文件的
MAC”
加密文件,然后将此已加密
的文件解密
通过加密文件保护文件内容。提供用于解密文件的加
密参数。
第263 页中的“如何加密和解密文
件”
使用Solaris 加密框架保护文件
本节介绍如何生成对称密钥、如何创建文件完整性校验和以及如何避免文件遭到窃听。本
节中的命令可以由普通用户运行。开发者可以编写使用这些命令的脚本。
如何生成对称密钥
加密文件以及生成文件的MAC需要使用密钥。密钥应派生于随机数池。
如果您的站点具有随机数生成器,请使用该生成器。或者,可以使用以Solaris
/dev/urandom 设备作为输入的dd 命令。有关更多信息,请参见dd(1M) 手册页。
确定算法要求的密钥长度。
a. 列出可用算法。
% encrypt -l
Algorithm Keysize: Min Max (bits)
------------------------------------------
aes 128 128
arcfour 8 128
des 64 64
3des 192 192
1
使用Solaris 加密框架保护文件
258 系统管理指南:安全性服务• 2006 年9 月
% mac -l
Algorithm Keysize: Min Max (bits)
------------------------------------------
des_mac 64 64
sha1_hmac 8 512
md5_hmac 8 512
b. 确定要传递到dd 命令的密钥长度(以字节为单位)。
将最小密钥大小和最大密钥大小除以8。最小密钥大小和最大密钥大小不同时,可以使
用中间密钥大小。例如,可以将值8、16 或64 传递到sha1_hmac 和md5_hmac 函数的dd
命令。
生成对称密钥。
% dd if=/dev/urandom of=keyfile bs=n count=n
if=file 输入文件。对于随机密钥,请使用/dev/urandom 文件。
of=keyfile 存储已生成密钥的输出文件。
bs=n 密钥大小(以字节为单位)。要获取字节长度,请将密钥位的比特长度除以
8。
count=n 输入块的计数。n 的数值应为1。
将密钥存储在受保护的目录中。
密钥文件不应被除用户之外的任何人读取。
% chmod 400 keyfile
创建用于AES 算法的密钥
在以下示例中,将创建用于AES 算法的密钥。也将存储该密钥用于以后的解密。AES 机制
使用128 位的密钥。该密钥在dd 命令中表示为16 字节。
% ls -al ~/keyf
drwx------ 2 jdoe staff 512 May 3 11:32 ./
% dd if=/dev/urandom of=$HOME/keyf/05.07.aes16 bs=16 count=1
% chmod 400 ~/keyf/05.07.aes16
阅读(476) | 评论(0) | 转发(0) |