硬件提供者将自动定位和装入。有关更多信息,请参见 driver.conf(4) 手册页。
如果您的硬件预计会插入加密框架中,该硬件将通过 SPI 在内核中注册。框架将检查是否已对硬件驱动程序签名。具体地说,框架将检查是否已使用 Oracle 颁发的证书对驱动程序的目标文件进行签名。
例如,Sun Crypto Accelerator 6000 板 (mca)、UltraSPARC T1 和 T2 处理器上加密加速器的 ncp 驱动程序 (ncp)、UltraSPARC T2 处理器的 n2cp 驱动程序 (n2cp) 以及 T 系列系统的 /dev/crypto 驱动程序将硬件机制插入到框架中。
有关对提供者签名的信息,请参见加密框架中的用户级命令中的 elfsign 命令。
要列出可用的提供者,可使用包含不同选项的 cryptoadm list 命令,具体取决于要获取的具体信息。
列出系统上的所有提供者。
对于不同的 Oracle Solaris 发行版和不同的平台,提供者列表的内容和格式会有所不同。在您的系统上运行 cryptoadm list 命令可查看系统支持的提供者。一般用户只能直接使用用户级机制。
% cryptoadm list User-level providers: /* for applications */ Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Provider: /usr/lib/security/$ISA/pkcs11_tpm.so Kernel software providers: /* for IPsec, kssl, Kerberos */ des aes arcfour blowfish camellia ecc sha1 sha2 md4 md5 rsa swrand n2rng/0 /* for hardware */ ncp/0 n2cp/0
列出加密框架中的提供者及其机制。
可以查看可用机制的强度和模式(例如 ECB 和 CBC)。但是,所列出的一些机制可能无法使用。有关如何列出可使用的机制的说明,请参见下一个项目。
为了便于显示,以下输出被截断。
% cryptoadm list -m [provider=provider] User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Mechanisms: CKM_DSA CKM_RSA_X_509 CKM_RSA_PKCS ... CKM_SHA256_HMAC_GENERAL CKM_SSL3_MD5_MAC Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL ... CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE Provider: /usr/lib/security/$ISA/pkcs11_tpm.so /usr/lib/security/$ISA/pkcs11_tpm.so: no slots presented. Kernel providers: ========================== des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC aes: CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM, \ CKM_AES_GCM,CKM_AES_GMAC, CKM_AES_CFB128,CKM_AES_XTS,CKM_AES_XCBC_MAC arcfour: CKM_RC4 blowfish: CKM_BLOWFISH_ECB,CKM_BLOWFISH_CBC ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA, \ CKM_ECDSA_SHA1 sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL sha2: CKM_SHA224,CKM_SHA224_HMAC,...CKM_SHA512_256_HMAC_GENERAL md4: CKM_MD4 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,CKM_SHA224_RSA_PKCS, CKM_SHA256_RSA_PKCS,CKM_SHA384_RSA_PKCS,CKM_SHA512_RSA_PKCS swrand: No mechanisms presented. n2rng/0: No mechanisms presented. ncp/0: CKM_DSA,CKM_RSA_X_509,CKM_RSA_PKCS,CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_DH_PKCS_KEY_PAIR_GEN,CKM_DH_PKCS_DERIVE,CKM_EC_KEY_PAIR_GEN, CKM_ECDH1_DERIVE,CKM_ECDSA n2cp/0: CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES3_CBC, \ ...CKM_SSL3_SHA1_MAC
列出可用的加密机制。
策略确定可使用的机制。管理员负责设置策略。管理员可以选择禁用特定提供者的机制。–p 选项显示管理员设置的策略允许的机制列表。
% cryptoadm list -p [provider=provider] 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. /usr/lib/security/$ISA/pkcs11_tpm.so: all mechanisms are enabled.
Kernel providers: ========================== des: all mechanisms are enabled. aes: all mechanisms are enabled. arcfour: all mechanisms are enabled. blowfish: all mechanisms are enabled. ecc: all mechanisms are enabled. sha1: all mechanisms are enabled. sha2: all mechanisms are enabled. md4: all mechanisms are enabled. md5: all mechanisms are enabled. rsa: all mechanisms are enabled. swrand: random is enabled. n2rng/0: all mechanisms are enabled. random is enabled. ncp/0: all mechanisms are enabled. n2cp/0: all mechanisms are enabled.
以下示例说明 cryptoadm list 命令的其他特定用途。
示例 3-11 列出特定提供者的加密信息在 cryptoadm options 命令中指定提供者可将输出限制为仅输出适用于提供者的信息。
# cryptoadm enable provider=dca/0 random # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5, CKM_MD5_HMAC,... random is enabled.
以下输出显示仅启用了机制。随机数生成器将继续处于禁用状态。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5,CKM_MD5_HMAC,.... # cryptoadm enable provider=dca/0 mechanism=all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is disabled.
以下输出显示启用了板上的每个功能和机制。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms ar enabled, except CKM_DES_ECB,CKM_DES3_ECB. random is disabled. # cryptoadm enable provider=dca/0 all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is enabled.示例 3-12 仅查找用户级加密机制
在以下示例中,列出了用户级库 pkcs11_softtoken 提供的所有机制。
% cryptoadm list -m provider=/usr/lib/security/\ $ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL CKM_DES_MAC … CKM_ECDSA CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE示例 3-13 确定哪些加密机制执行哪些功能
机制执行特定加密函数,如签名或密钥生成。–v –m 选项显示每个机制及其功能。
在本实例中,管理员要确定 CKM_ECDSA* 机制可用于哪些功能。
% cryptoadm list -vm User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Number of slots: 3 Slot #2 Description: ncp/0 Crypto Accel Asym 1.0 ... CKM_ECDSA 163 571 X . . . X . X . . . . . . . ... Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so ... CKM_ECDSA 112 571 . . . . X . X . . . . . . . . CKM_ECDSA_SHA1 112 571 . . . . X . X . . . . . . . . ... Kernel providers: ================= ... ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_ECDSA_SHA1 ...
列表内容表明这些机制可从用户级提供者获得:
CKM_ECDSA 和 CKM_ECDSA_SHA1-作为 /usr/lib/security/$ISA/pkcs11_softtoken.so 库中的软件实现
CKM_ECDSA-通过 /usr/lib/security/$ISA/pkcs11_kernel.so 库中的 ncp/0 Crypto Accel Asym 1.0 加速
条目中的每一项代表机制的一条相关信息。对于这些 ECC 机制,该列表指示以下内容:
最小长度-112 字节
最大长度-571 字节
硬件-硬件是否可用。
加密-不可用于加密数据。
解密-不可用于解密数据。
摘要-不可用于创建消息摘要。
签名-用于对数据签名。
签名 + 恢复-不可用于对能从签名中恢复的数据签名。
验证-用于验证签名数据。
验证 + 恢复-不可用于验证能从签名中恢复的数据。
密钥生成-不可用于生成私钥。
密钥对生成-不可用于生成密钥对。
包装-不可用于包装。即加密,现有密钥。
解包-不可用于将已包装的密钥解包。
派生-不可用于从基本密钥派生新密钥。
EC 功能-前面的项未涵盖的缺少的 EC 功能