手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

cryptoadm(1M)

名称

cryptoadm - 加密框架管理

用法概要

cryptoadm list [-mpv] [provider=provider-name] 
     [mechanism=mechanism-list]
cryptoadm disable
     provider=provider-name mechanism=mechanism-list | random | all
cryptoadm enable
     provider=provider-name mechanism=mechanism-list | random | all
cryptoadm install provider=provider-name
cryptoadm install provider=provider-name 
     [mechanism=mechanism-list]
cryptoadm uninstall provider=provider-name
cryptoadm unload provider=provider-name
cryptoadm disable fips-140
cryptoadm enable fips-140
cryptoadm list fips-140
cryptoadm refresh
cryptoadm start
cryptoadm stop
cryptoadm -–help

描述

cryptoadm 实用程序可以显示系统的加密提供器信息,配置每个提供器的机制策略,以及安装或卸载加密提供器。加密框架支持三种类型的提供器:用户级提供器(PKCS11 共享库)、内核软件提供器(可装入的内核软件模块)以及内核硬件提供器(加密硬件设备)。

对于内核软件提供器,cryptoadm 实用程序提供了 unload 子命令。该子命令可指示内核卸载内核软件提供器。

对于加密框架的 metaslot,cryptoadm 实用程序提供了子命令,用于启用和禁用 metaslot 的功能、列出 metaslot 的配置、指定备用持久性对象存储以及配置 metaslot 的机制策略。

cryptoadm 实用程序提供了子命令,用于启用和禁用加密框架中的 FIPS-140 模式。此外,它还提供了 list 子命令用来显示 FIPS-140 模式的当前状态。

管理员会发现,使用 syslog 实用程序(请参见 syslogd(1M)logadm(1M))来维护加密子系统非常有用。日志记录在以下情况下尤其有用:

  • 如果内核级守护进程停用,则所有应用程序都会发生故障。您可以通过系统日志了解这一情况,并使用 svcadm(1M) 重新启动 svc:/system/cryptosvc 服务。

  • 如果在框架中插入了故障提供器,您可以通过系统日志了解这一情况,然后将其从框架中删除。

cryptoadm 命令只能由特权用户运行,但下列子命令或选项除外。

  • 子命令 list,任何选项

  • 子命令 –help

选项

cryptoadm 实用程序具有如下所示的各种子命令和选项的组合。

cryptoadm list

显示已安装提供器的列表。

cryptoadm list metaslot

显示 metaslot 的系统范围配置。

cryptoadm list –m [ provider=provider-name | metaslot ]

显示可用于已安装的提供器或 metaslot 的机制的列表。如果指定了提供器,则显示指定提供器的名称以及可用于该提供器的机制列表。如果指定了 metaslot 关键字,则显示可用于 metaslot 的机制列表。

cryptoadm list –p [ provider=provider-name | metaslot ]

显示已安装提供器的机制策略(即哪些机制可用,哪些机制不可用)。此外,还会显示提供器功能策略或 metaslot。如果指定了提供器,则仅显示对其强制实施了机制策略的提供器的名称。如果指定了 metaslot 关键字,则显示对 metaslot 强制实施的机制策略。

cryptoadm list –v provider=provider-name | metaslot

如果指定了提供器,则显示指定提供器的详细信息。如果指定了 metaslot 关键字,则显示有关 metaslot 的详细信息。

–v

对于上述各种 list 子命令(list –p 除外),使用 –v(即详细)选项可获取有关提供器、机制和插槽的详细信息。

cryptoadm disable provider=provider-name
[ mechanism=mechanism-list | provider-feature ... | all ]

禁用为提供器指定的机制或提供器功能。有关 mechanismprovider-featureall 关键字的描述,请参见“操作数”部分。

cryptoadm [ mechanism=mechanism-list ] [ auto-key-migrate ]

禁用加密框架中的 metaslot 功能,或者禁用 metaslot 的某些功能。如果没有指定任何操作数,此命令将禁用加密框架中的 metaslot 功能。如果指定了机制列表,则禁用为 metaslot 指定的机制。如果禁用了 metaslot 的所有机制,则 metaslot 也将被禁用。有关机制的描述,请参见“操作数”部分。如果指定了 auto-key-migrate 关键字,即使必须执行加密操作,该关键字也将禁止将敏感令牌对象迁移到其他插槽。有关 auto-key-migrate 的描述,请参见“操作数”部分。

cryptoadm enable provider=provider-name
[ mechanism=mechanism-list | provider-feature ... | all ]

启用为提供器指定的机制或提供器功能。有关 mechanismprovider-featureall 关键字的描述,请参见“操作数”部分。

cryptoadm enable metaslot [ mechanism=mechanism-list ] |
[ [ token=token-label] [ slot=slot-description] |
default-keystore ] | [ auto-key-migrate ]

如果没有指定任何操作数,此命令将启用加密框架中的 metaslot 功能。如果指定了机制列表,则仅启用为 metaslot 指定的机制。如果指定了 token-label,则将使用指定的令牌作为持久性对象存储。如果指定了 slot-description,则将使用指定的插槽作为持久性对象存储。如果同时指定了 token-labelslot-description,则将使用带有匹配的令牌标签和插槽描述的提供器作为持久性对象存储。如果指定了 default-keystore 关键字,metaslot 将使用缺省的持久性对象存储。如果指定了 auto-key-migrate 关键字,敏感令牌对象将根据需要自动迁移到其他插槽,以完成某些特定加密操作。有关机制、令牌、插槽、default-keystoreauto-key-migrate 的描述,请参见“操作数”部分。

cryptoadm install provider=provider-name

将用户级提供器安装到系统中。provider 操作数必须是对应共享库的绝对路径名。如果一个库存在 32 位和 64 位两个版本,则该命令只能使用包含 $ISA 的路径名参数运行一次。请注意,$ISA 不是对环境变量的引用。另请注意,$ISA 必须加引号(使用单引号,例如,'$ISA'),或者,必须对 $ 进行转义,以免被 shell 错误地扩展。用户级框架可将 $ISA 扩展为空字符串或体系结构特定的目录,例如 sparcv9

安装用户级提供器时,推荐的方法是为该提供器构建一个软件包。有关更多信息,请参见《Solaris 开发者安全性指南》。

cryptoadm install provider=provider-name
mechanism=mechanism-list

将内核软件提供器安装到系统中。提供器只应包含基名。mechanism-list 操作数指定该提供器要支持的机制的完整列表,或者指定关键字 all

安装内核级提供器时,推荐的方法是为提供器构建一个软件包。有关更多信息,请参见《Solaris 开发者安全性指南》。

cryptoadm uninstall provider=provider-name

从系统中卸载指定的 provider 以及关联的机制策略。此子命令仅适用于用户级提供器或内核软件提供器。

cryptoadm unload provider=provider-name

卸载由 provider 指定的内核软件模块。

cryptoadm disable fips-140

禁用加密框架中以及硬件提供器的 FIPS-140 模式。执行此命令之后,需要进行重新引导来完成禁用操作。或者,您可以引导未启用 FIPS-140 模式的 BE。

cryptoadm enable fips-140

启用加密框架中以及硬件提供器的 FIPS-140 模式。此子命令不会禁用用户级 pkcs11_softtoken 库以及内核软件提供器中的未经 FIPS 批准的算法。框架使用者只能使用经 FIPS 批准的算法。

启用 FIPS-140 模式之前,务必先使用 beadm(1M) 命令创建、激活并引导至一个新的引导环境 (Boot Environment, BE)。由于某些 FIPS-140 所需的测试在失败时会导致出现紧急情况,因此,在诊断出与 FIPS-140 边界相关的问题期间,可以引导到另一个 BE 来启动并运行您的系统非常重要。

执行此子命令以后,系统会立即发出一条消息,告知管理员添加任何不在允许范围内的插件可能会不符合 FIPS,并会检查这些插件的安全策略。

系统将需要重新引导来执行“通电自检”,包括加密算法测试和软件完整性测试。

cryptoadm list fips-140

显示加密框架中以及硬件提供器的 FIPS-140 模式的当前设置。FIPS-140 模式的状态为 enableddisabled。缺省 FIPS-140 模式为 disabled

cryptoadm refresh
cryptoadm start
cryptoadm stop

smf(5) 使用的专用接口,不得直接使用这些接口。

cryptoadm –help

显示命令用法。

操作数

provider=provider-name

用户级提供器(PKCS11 共享库)、内核软件提供器(可装入的内核软件模块)或内核硬件提供器(加密硬件设备)。

provider 操作数的有效值是格式为 cryptoadm list 的命令输出项中的一项。用户级提供器的 provider 操作数是对应共享库的绝对路径名。内核软件提供器的 provider 操作数仅包含基名。内核硬件提供器的 provider 操作数采用 name/number 格式。

mechanism=mechanism-list

包含一个或多个 PKCS #11 机制的由逗号分隔的列表。PKCS #11 规范中定义了实现加密操作的进程。您可以使用 all 来替换 mechanism-list,以指定提供器的所有机制。请参见下文关于 all 关键字的讨论。

provider-feature

给定提供器的加密框架功能。目前只接受 random 功能。对于用户级提供器,禁用随机功能将使提供器无法使用 PKCS #11 例程 C_GenerateRandomC_SeedRandom。对于内核提供器,禁用随机功能将导致 /dev/random 无法从该提供器收集随机数。

all

可以将关键字 alldisableenable 以及 install 子命令结合使用,以便对所有提供器功能进行操作。

token=token-label

加密框架中某个提供器的令牌的标签。

令牌操作数的有效值是 cryptoadm list –v 命令输出中“Token Label”下显示的项。

slot=slot-description

加密框架中某个提供器的插槽的描述。

插槽操作数的有效值是 cryptoadm list –v 命令输出中“Description”下显示的项。

default-keystore

关键字 default-keystore 仅对 metaslot 有效。通过指定此关键字,可将 metaslot 的持久性对象存储重新设置为使用缺省存储。

auto-key-migrate

关键字 auto-key-migrate 仅对 metaslot 有效。通过指定此关键字,可以配置是否允许 metaslot 将敏感令牌对象从令牌对象插槽移至其他插槽来执行加密操作。

可通过下述两种方式将关键字 alldisableenable 子命令结合使用:

  • 您可以使用 all 来替换 mechanism=mechanism-list 及其他任何提供器功能,如下所示:

    # cryptoadm enable provider=dca/0 all

    此命令可启用提供器的机制以及其他任何提供器功能,如 random

  • 您也可以将 all 用作 mechanism 的参数,如下所示:

    # cryptoadm enable provider=des mechanism=all

    此命令可启用提供器的所有机制,但不会启用其他任何提供器功能,如 random

示例

示例 1 显示系统中已安装提供器的列表

以下命令显示所有已安装提供器的列表:

example% cryptoadm list
user-level providers:
/usr/lib/security/$ISA/pkcs11_kernel.so
/usr/lib/security/$ISA/pkcs11_softtoken.so
/opt/lib/libcryptoki.so.1
/opt/system/core-osonn/lib/$ISA/libpkcs11.so.1
  
kernel providers:
    des
    aes
    bfish
    sha1
    md5
    dca/0
示例 2 显示 md5 提供器的机制列表

以下命令是 list 子命令的变体形式:

example% cryptoadm list -m provider=md5
md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL
示例 3 禁用内核软件提供器的特定机制

以下命令禁用内核软件提供器 desCKM_DES3_ECB 机制和 CKM_DES3_CBC 机制:

example# cryptoadm disable provider=des
示例 4 显示提供器的机制策略

以下命令显示 des 提供器的机制策略:

example% cryptoadm list -p provider=des
des: All mechanisms are enabled, except CKM_DES3_ECB, CKM_DES3_CBC
示例 5 启用提供器的特定机制

以下命令启用内核软件提供器 desCKM_DES3_ECB 机制:

example# cryptoadm enable provider=des mechanism=CKM_DES3_ECB
示例 6 安装用户级提供器

以下命令安装用户级提供器:

example# cryptoadm install provider=/opt/lib/libcryptoki.so.1
示例 7 安装包含 32 位和 64 位版本的用户级提供器

以下命令安装包含 32 位和 64 位版本的用户级提供器:

example# cryptoadm install \
provider=/opt/system/core-osonn/lib/'$ISA'/libpkcs11.so.1
示例 8 卸载提供器

以下命令卸载 md5 提供器:

example# cryptoadm uninstall provider=md5
示例 9 禁用 metaslot

以下命令禁用加密框架中的 metaslot 功能。

example# cryptoadm disable metaslot
示例 10 指定 metaslot 使用指定的令牌作为持久性对象存储

以下命令指定 metaslot 使用 Venus 令牌作为持久性对象存储。

example# cryptoadm enable metaslot token="SUNW,venus"

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
请参见下文。

startstoprefresh 选项是专用接口。其他所有选项及实用程序名称均为 Committed(已确定)。

另请参见

beadm(1M)logadm(1M)svcadm(1M)syslogd(1M)libpkcs11(3LIB)exec_attr(4)prof_attr(4)attributes(5)smf(5)random(7D)

在 Oracle Solaris 11.2 中确保系统和连接设备的安全

Solaris 开发者安全性指南

附注

即使已明确制定硬件提供器的策略(换句话说,已禁用其中的某些机制),且该硬件提供器已分离,仍然会列出该硬件提供器的策略。

cryptoadm 会假定为每个用户级提供器至少提供一个 32 位共享目标文件。如果同时提供 32 位和 64 位共享目标文件,这两个版本必须提供相同的功能。这两个版本也使用同一个机制策略。