Fornecedor PKCS#11
O componente provedor PKCS#11 (aws.greengrass.crypto.Pkcs11Provider
) permite que você configure o software AWS IoT Greengrass Core para usar um módulo de segurança de hardware (HSM) por meio da interface PKCS#11
Para provisionar um dispositivo principal do Greengrass que armazena seu certificado e sua chave privada em um HSM, você deve especificar esse componente como um plug-in de provisionamento ao instalar o software Core. AWS IoT Greengrass Para ter mais informações, consulte Instalar o software AWS IoT Greengrass Core com provisionamento manual de recursos..
AWS IoT Greengrassfornece esse componente como arquivo JAR que você pode baixar para especificar como um plug-in de provisionamento durante a instalação. Você pode baixar a versão mais recente do arquivo JAR do componente na seguinte URL: https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar
Tópicos
Versões
Esse componente tem as seguintes versões:
-
2.0.x
Tipo
Este componente é um componente de plug-in (aws.greengrass.plugin
). O núcleo do Greengrass executa esse componente na mesma Java Virtual Machine (JVM) do núcleo. O núcleo é reiniciado quando você altera a versão desse componente no dispositivo principal.
Esse componente usa o mesmo arquivo de log do núcleo do Greengrass. Para ter mais informações, consulte Monitore AWS IoT Greengrass logs.
Para ter mais informações, consulte Tipos de componentes.
Sistema operacional
Esse componente pode ser instalado somente nos dispositivos principais do Linux.
Requisitos
Esse componente tem os seguintes requisitos:
-
Um módulo de segurança de hardware que suporta o esquema de assinatura PKCS#1 v1.5
e chaves RSA com tamanho de chave RSA-2048 (ou maior) ou chaves ECC. nota
Para usar um módulo de segurança de hardware com chaves ECC, use o núcleo do Greengrass v2.5.6 ou posterior.
Para usar um módulo de segurança de hardware e um gerenciador de segredos, use um módulo de segurança de hardware com chaves RSA.
-
Uma biblioteca do provedor PKCS#11 que o software AWS IoT Greengrass Core pode carregar em runtime (usando libdl) para invocar as funções do PKCS#11. A biblioteca do provedor PKCS#11 deve implementar as operações de API do PKCS#11 a seguir:
-
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
-
-
O módulo de hardware deve ser solucionado pelo rótulo do slot, conforme definido na especificação PKCS#11.
-
Você deve armazenar a chave privada e o certificado no HSM no mesmo slot, e eles devem usar o mesmo rótulo de objeto e ID de objeto, se o HSM suportar IDs de objeto.
-
O certificado e a chave privada devem ser resolvidos por rótulos de objeto.
-
A chave privada deve ter as seguintes permissões:
-
sign
-
decrypt
-
-
(Opcional) Para usar o componente gerenciador de segredos, você deve usar a versão 2.1.0 ou posterior, e a chave privada deve ter as seguintes permissões:
-
unwrap
-
wrap
-
-
(Opcional) Se você estiver usando a biblioteca TPM2 e executando o núcleo do Greengrass como um serviço, deverá fornecer uma variável de ambiente com a localização da loja PKCS#11. O exemplo a seguir é um arquivo de serviço systemd com a variável de ambiente necessária:
[Unit] Description=Greengrass Core After=network.target [Service] Type=simple PIDFile=/var/run/greengrass.pid Environment=TPM2_PKCS11_STORE=
/path/to/store/directory
RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target
Dependências
Quando você implanta um componente, o AWS IoT Greengrass também implanta versões compatíveis das dependências dele. Isso significa que é preciso atender aos requisitos do componente e de todas as dependências dele para implantá-lo com êxito. Nesta seção, há uma lista de todas as dependências das versões lançadas desse componente e as restrições de versão semântica que definem as versões dos componentes para cada dependência. Também é possível visualizar as dependências de cada versão do componente no console do AWS IoT Greengrass
Para obter mais informações sobre as dependências dos componentes, consulte referência de fórmula do componente.
Configuração
Esse componente fornece os seguintes parâmetros de configuração que podem ser personalizados ao implantar o componente.
name
-
Um nome para a configuração de PKCS#11.
library
-
O caminho absoluto do arquivo para a biblioteca da implementação do PKCS#11 que o software AWS IoT Greengrass Core pode carregar com libdl.
slot
-
O ID do slot que contém a chave privada e o certificado do dispositivo. Esse valor é diferente do índice do slot ou do rótulo do slot.
userPin
-
O PIN do usuário a ser usado para acessar o slot.
exemplo Exemplo: atualização da mesclagem de configuração
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }
Arquivo de log local
Esse componente usa o mesmo arquivo de log do componente de núcleo do Greengrass.
Para exibir os logs desse componente
-
Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substitua
ou/greengrass/v2
C:\greengrass\v2
pelo caminho para a pasta raiz do AWS IoT Greengrass.
Changelog
A tabela a seguir descreve as alterações em cada versão do componente.
Version (Versão) |
Alterações |
---|---|
2.0.8 |
Versão atualizada para o lançamento da versão 2.13.0 do núcleo do Greengrass. |
2.0.7 |
Versão atualizada para o núcleo do Greengrass 2.12.0. |
2.0.6 |
Versão atualizada para o lançamento da versão 2.11.0 do núcleo do Greengrass. |
2.0.5 |
Versão atualizada para o lançamento da versão 2.10.0 do núcleo do Greengrass. |
2.0.4 |
Versão atualizada para o núcleo do Greengrass 2.9.0. |
2.0.3 |
Versão atualizada para o lançamento da versão 2.8.0 do núcleo do Greengrass. |
2.0.2 |
Versão atualizada para o lançamento da versão 2.7.0 do núcleo do Greengrass. |
2.0.1 |
Versão atualizada para o lançamento da versão 2.6.0 do núcleo do Greengrass. |
2.0.0 |
Versão inicial. |