本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
PKCS#11 提供程序
PKCS #11 提供程序组件 (aws.greengrass.crypto.Pkcs11Provider) 使您可以通过 PKCS #11 接口
注意
只有绿草核才需要这个组件。Greengrass nucleus lite v2.5.0 及更高版本包含内置的 PKCS #11 支持,不需要此组件。有关更多信息,请参阅 n AWS IoT Greengrass ucleus lite GitHub 存储库中的
要预置在 HSM 中存储其证书和私钥的 Greengrass 核心设备,您必须在安装 AWS IoT Greengrass Core 软件时将此组件指定为配置插件。有关更多信息,请参阅 安装 AWS IoT Greengrass 具有手动资源配置功能的核心软件。
AWS IoT Greengrass 将此组件作为 JAR 文件提供,您可以下载该文件以在安装期间将其指定为配置插件。您可以通过以下 URL 下载组件的 JAR 文件的最新版本:https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar
版本
此组件具有以下版本:
-
2.0.x
Type
此组件是一个插件组件 (aws.greengrass.plugin)。Greengrass Nucleus 在与该 Nucleus 相同的 Java 虚拟机(JVM)中运行该组件。当您在核心设备上更改此组件的版本时,Nucleus 会重新启动。
此组件使用与 Greengrass Nucleus 相同的日志文件。有关更多信息,请参阅 监控 AWS IoT Greengrass 日志。
有关更多信息,请参阅 组件类型。
操作系统
此组件只能安装在 Linux 核心设备上。
要求
此组件具有以下要求:
-
一种硬件安全模块,支持 PKCS #1 v1.5
签名方案和密钥大小(或更大)或 ECC 密 RSA-2048 钥的 RSA 密钥。 注意
要使用带 ECC 密钥的硬件安全模块,必须使用 Greengrass Nucleus v2.5.6 或更高版本。
要使用硬件安全模块和密钥管理器,必须使用带 RSA 密钥的硬件安全模块。
-
一个 PKCS #11 提供程序库, AWS IoT Greengrass 核心软件可以在运行时(使用 libdl)加载该库来调用 PKCS #11 函数。PKCS#11 提供程序库必须实施以下 PKCS#11 API 操作:
-
C_Initialize -
C_Finalize -
C_GetSlotList -
C_GetSlotInfo -
C_GetTokenInfo -
C_OpenSession -
C_GetSessionInfo -
C_CloseSession -
C_Login -
C_Logout -
C_GetAttributeValue -
C_FindObjectsInit -
C_FindObjects -
C_FindObjectsFinal -
C_DecryptInit -
C_Decrypt -
C_DecryptUpdate -
C_DecryptFinal -
C_SignInit -
C_Sign -
C_SignUpdate -
C_SignFinal -
C_GetMechanismList -
C_GetMechanismInfo -
C_GetInfo -
C_GetFunctionList
-
-
硬件模块必须可按槽标签解析,如 PKCS#11 规范所定义。
-
如果 HSM 支持对象 ID,则必须将私有密钥和证书存储在同一槽中的 HSM 中,并且它们必须使用相同的对象标签和对象 ID。
-
证书和私有密钥必须由对象标签来解析。
-
私有密钥必须具有以下权限:
-
sign -
decrypt
-
-
(可选)要使用密钥管理器组件,必须使用 2.1.0 或更高版本,并且私有密钥必须具有以下权限:
-
unwrap -
wrap
-
-
(可选)如果您使用 TPM2 库并将 Greengrass 核心作为服务运行,则必须提供一个包含 PKCS #11 存储位置的环境变量。以下示例是具有所需环境变量的 systemd 服务文件:
[Unit] Description=Greengrass Core After=network.target [Service] Type=simple PIDFile=/var/run/greengrass.pid Environment=TPM2_PKCS11_STORE=/path/to/store/directoryRemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target
依赖项
部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 AWS IoT Greengrass 控制台
有关组件依赖关系的更多信息,请参阅组件配方参考。
配置
此组件提供您可以在部署组件时自定义的以下配置参数。
name-
PKCS#11 配置的名称。
library-
AWS IoT Greengrass 核心软件可以使用 libdl 加载的 PKCS #11 实现库的绝对文件路径。
slot-
包含私有密钥和设备证书的槽的 ID。此值不同于槽索引或槽标签。
userPin-
用于访问该槽的用户 PIN。
例示例:配置合并更新
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }
本地日志文件
此组件使用与 Greengrass Nucleus 组件相同的日志文件。
查看此组件的日志
-
在核心设备上运行以下命令可实时查看此组件的日志文件。将
或/greengrass/v2C:\greengrass\v2替换为 AWS IoT Greengrass 根文件夹的路径。
更改日志
下表介绍每个组件版本的更改。
|
版本 |
更改 |
|---|---|
|
2.0.13 |
更新 Greengrass nucleus 版本 2.18.0 版本的组件版本。 |
|
2.0.12 |
更新 Greengrass nucleus 版本 2.17.0 版本的组件版本。 |
|
2.0.11 |
版本已针对 Greengrass nucleus 版本 2.16.0 版本进行了更新。 |
|
2.0.10 |
版本已针对 Greengrass nucleus 版本 2.15.0 版本进行了更新。 |
|
2.0.9 |
版本已针对 Greengrass nucleus 版本 2.14.0 版本进行了更新。 |
|
2.0.8 |
对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。 |
|
2.0.7 |
版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 |
|
2.0.6 |
版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 |
|
2.0.5 |
版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 |
|
2.0.4 |
对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。 |
|
2.0.3 |
版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 |
|
2.0.2 |
版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。 |
|
2.0.1 |
版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。 |
|
2.0.0 |
初始版本。 |