Fornecedor PKCS #11 - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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. Esse componente permite que você armazene com segurança arquivos de certificado e chave privada para que eles não sejam expostos ou duplicados no software. Para ter mais informações, consulte Integração de segurança de hardware.

Para provisionar um dispositivo principal do Greengrass que armazena seu certificado e 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 Instale o software AWS IoT Greengrass principal 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.

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 reinicia 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 os registros.

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, você deve usar o Greengrass nucleus v2.5.6 ou posterior.

    Para usar um módulo de segurança de hardware e um gerenciador secreto, você deve usar 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 tempo de execução (usando libdl) para invocar as funções do PKCS #11. A biblioteca do provedor PKCS #11 deve implementar as seguintes operações da API PKCS #11:

    • 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 objetos.

  • 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, AWS IoT Greengrass também implanta versões compatíveis de suas dependências. Isso significa que você deve atender aos requisitos do componente e de todas as suas dependências para implantá-lo com êxito. Esta seção lista 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. Você também pode visualizar as dependências de cada versão do componente no AWS IoT Greengrassconsole. Na página de detalhes do componente, procure a lista de dependências.

2.0.7

A tabela a seguir lista as dependências da versão 2.0.7 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5,3 <2,13,0 Flexível
2.0.6

A tabela a seguir lista as dependências da versão 2.0.6 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5,3 <2,12,0 Flexível
2.0.5

A tabela a seguir lista as dependências da versão 2.0.5 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.5.3 <2.11.0 Flexível
2.0.4

A tabela a seguir lista as dependências da versão 2.0.4 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.5.3 <2.10.0 Flexível
2.0.3

A tabela a seguir lista as dependências da versão 2.0.3 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5.3 <2,9,0 Flexível
2.0.2

A tabela a seguir lista as dependências da versão 2.0.2 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5.3 <2,8,0 Flexível
2.0.1

A tabela a seguir lista as dependências da versão 2.0.1 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5,3 <2,7,0 Flexível
2.0.0

A tabela a seguir lista as dependências da versão 2.0.0 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2,5,3 <2,6,0 Flexível

Para obter mais informações sobre dependências de componentes, consulte a referência da receita do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que você pode personalizar ao implantar o componente.

name

Um nome para a configuração 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ções
{ "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 do núcleo do Greengrass.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Para ver os registros desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substitua /greengrass/v2 ou C:\greengrass\v2 pelo caminho para a pasta AWS IoT Greengrass raiz.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Changelog

A tabela a seguir descreve as alterações em cada versão do componente.

Version (Versão)

Alterações

2.0.7

Versão atualizada para a versão 2.12.0 do Greengrass nucleus.

2.0.6

Versão atualizada para a versão 2.11.0 do Greengrass nucleus.

2.0.5

Versão atualizada para a versão 2.10.0 do Greengrass nucleus.

2.0.4

Versão atualizada para a versão 2.9.0 do Greengrass nucleus.

2.0.3

Versão atualizada para a versão 2.8.0 do Greengrass nucleus.

2.0.2

Versão atualizada para a versão 2.7.0 do Greengrass nucleus.

2.0.1

Versão atualizada para a versão 2.6.0 do Greengrass nucleus.

2.0.0

Versão inicial.