20.3.3 管理Solaris加密体系
本节介绍如何管理Solaris加密体系中的软件和硬件加密服务。当系统不再需要加密服务的时候,软件和硬件的加密服务都可以被关闭。比如,你可以关闭一个软件加密服务提供的算法,也可以迫使系统使用其他软件提供的加密算法。
1.如何列出可用的加密服务
Solaris加密体系提供了下面几个类型的加密算法:
用户级的提供者;
内核软件提供者;
内核硬件提供者。
对于一般用户来说,只有用户级的加密机制才有可能被使用。
例20-28 显示一般用户可以使用的加密机制。
% cryptoadm list
user-level providers:
/usr/lib/security/$ISA/pkcs11_kernel.so
/usr/lib/security/$ISA/pkcs11_softtoken.so
kernel software providers:
des
aes
blowfish
arcfour
sha1
md5
rsa
kernel hardware providers:
dca/0
如果要查看系统中有多少个加密机制,而不在意这些机制是否起用,请见下面例子:
例20-29 查看所有的加密机制。
% cryptoadm list -m
user-level providers:
=====================
/usr/lib/security/$ISA/pkcs11_kernel.so: CKM_MD5,CKM_MD5_HMAC,
CKM_MD5_HMAC_GENERAL,CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL,
...
/usr/lib/security/$ISA/pkcs11_softtoken.so:
CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES_KEY_GEN,
CKM_DES3_CBC,CKM_DES3_CBC_PAD,CKM_DES3_ECB,CKM_DES3_KEY_GEN,
CKM_AES_CBC,CKM_AES_CBC_PAD,CKM_AES_ECB,CKM_AES_KEY_GEN,
...
kernel software providers:
==========================
des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC
aes: CKM_AES_ECB,CKM_AES_CBC
blowfish: CKM_BF_ECB,CKM_BF_CBC
arcfour: CKM_RC4
sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL
md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL
rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS,CKM_SHA1_RSA_PKCS
swrand: No mechanisms presented.
kernel hardware providers:
==========================
dca/0: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL,...
可以看到,系统加密机制分为三类,分别列出。
例20-30 列出系统中可以应用的加密机制。
% cryptoadm list -p
user-level providers:
=====================
/usr/lib/security/$ISA/pkcs11_kernel.so: all mechanisms are enabled.
random is enabled.
/usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled.
random is enabled.
kernel software providers:
==========================
des: all mechanisms are enabled.
aes: all mechanisms are enabled.
blowfish: all mechanisms are enabled.
arcfour: all mechanisms are enabled.
sha1: all mechanisms are enabled.
md5: all mechanisms are enabled.
rsa: all mechanisms are enabled.
swrand: random is enabled.
kernel hardware providers:
==========================
dca/0: all mechanisms are enabled. random is enabled.
2.如何增添软件的加密服务
例20-31 增添PKCS#11加密库。
(1)安装软件包:
# pkgadd -d /cdrom/cdrom0/SolarisNew
(2)刷新系统加密服务:
# svcadm refresh system/cryptosvc
(3)查看加密列表,PKCS#11加密库已经在列表中:
# cryptoadm list
user-level providers:
==========================
/usr/lib/security/$ISA/pkcs11_kernel.so
/usr/lib/security/$ISA/pkcs11_softtoken.so
3.如何关闭加密服务
对于软件、硬件和内核加密服务来说,关闭的命令是一样的。我们只举一个例子说明。
例20-32 关闭内核中aes加密。
(1)查看有无aes加密服务:
$ cryptoadm list -m provider=aes
aes: CKM_AES_ECB,CKM_AES_CBC
(2)查看aes加密服务是否启动:
$ cryptoadm list -p provider=aes
aes: all mechanisms are enabled.
(3)使用disable关闭加密服务:
$ cryptoadm disable provider=aes mechanism=CKM_AES_ECB
(4)查看aes服务是否已经关闭:
$ cryptoadm list -p provider=aes
aes: all mechanisms are enabled, except CKM_AES_ECB