Tutorial: Proteja Nucleus Lite de AWS IoT Greengrass con Trusted Platform Module (TPM) - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Proteja Nucleus Lite de AWS IoT Greengrass con Trusted Platform Module (TPM)

En este tutorial se explica cómo habilitar y configurar la compatibilidad con el módulo de plataforma segura (TPM) para AWS IoT Greengrass nucleus lite. El TPM proporciona una raíz de confianza basada en hardware para el almacenamiento seguro de claves. Esta función de seguridad protege las operaciones criptográficas y las credenciales confidenciales, lo que mejora la seguridad e integridad de los dispositivos.

Cuando complete esta integración, su dispositivo AWS IoT Greengrass principal utilizará claves privadas protegidas por TPM para su identidad y comunicación con los servicios. AWS IoT

Para obtener más información sobre la seguridad de AWS IoT Greengrass los dispositivos, consulte. Seguridad en  AWS IoT Greengrass

importante

Este mecanismo solo es compatible con la instalación de AWS IoT Greengrass nucleus lite con aprovisionamiento manual de recursos.

Requisitos previos

Necesitará lo siguiente para completar este tutorial:

Este tutorial contiene instrucciones sobre cómo utilizar el TPM2 chip como módulo de seguridad de hardware (HSM) para crear una clave privada y la CSR, que se utiliza para crear el certificado del objeto AWS IoT .

Paso 1: Configurar una instancia de NitroTPM

  1. Configura una instancia de NitroTPM. Para obtener más información, consulte NitroTPM.

  2. Lance la última instancia con la AMI personalizada creada en el paso anterior.

    importante

    Cuando se conecte con SSH, utilice el ubuntu usuario en lugar deroot.

  3. Compruebe que el dispositivo TPM está presente y funciona ejecutando el siguiente comando:

    ls -la /dev/tpm*

    Deberías ver los /dev/tpm0 /dev/tpmrm0 dispositivos.

Paso 2: Instalar y configurar las herramientas de TPM

  1. Instale los paquetes necesarios ejecutando el siguiente comando:

    sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0
  2. Verifique los permisos del dispositivo TPM ejecutando el siguiente comando:

    ls -l /dev/tpm0 # Should be owned by tss:root with permissions 0660 ls -l /dev/tpmrm0 # Should be owned by tss:tss with permissions 0660

Paso 3: Configurar el proveedor de OpenSSL TPM2

  1. Edite el archivo de configuración de OpenSSL:

    sudo vi /etc/ssl/openssl.cnf
  2. Añada la siguiente configuración:

    [openssl_init] providers = provider_sect [provider_sect] default = default_sect tpm2 = tpm2_sect [default_sect] activate = 1 [tpm2_sect] identity = tpm2 module = /usr/local/lib64/tpm2.so activate = 1
  3. Ajuste la ruta del módulo según sea necesario. Puede encontrar la ruta correcta mediante:

    find /usr -name "tpm2.so"

Paso 4: generar claves TPM persistentes

  1. Cree una clave principal ejecutando el siguiente comando:

    sudo tpm2_createprimary -C o -c primary.ctx
  2. Cree un objeto de clave ECC ejecutando el siguiente comando:

    sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub
  3. Cargue la clave ejecutando el siguiente comando:

    sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx
  4. Haz que la clave sea persistente ejecutando el siguiente comando:

    sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002

    Esto crea una clave persistente con el identificador (tipo0x81000002).

Paso 5: generar una solicitud de firma de certificado (CSR)

En este paso, utilizará la clave privada TPM2 protegida para generar una solicitud de firma de certificado (CSR).

  1. Genere una CSR con la clave TPM:

    openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing"
  2. 0x81000002Sustitúyala por el valor de identificador que hayas elegido y por el TPMThing nombre de la cosa que desees.

Paso 6: Crea el certificado a partir de CSR

  1. En tu ordenador de desarrollo, crea una carpeta donde descargaste el certificado de la AWS IoT cosa.

    mkdir greengrass-v2-certs
  2. Utilice el archivo CSR para crear y descargar el certificado del dispositivo en AWS IoT su ordenador de desarrollo.

    aws iot create-certificate-from-csr \ --set-as-active \ --certificate-signing-request file://path_to_device.csr \ --certificate-pem-outfile greengrass-v2-certs/device.pem.crt

    Si la solicitud se realiza correctamente, la respuesta tiene un aspecto similar al del siguiente ejemplo:

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }

Paso 7: Configurar Greengrass Nucleus Lite con compatibilidad con TPM

Para habilitar la compatibilidad con TPM en Nucleus Lite de Greengrass, realice los siguientes cambios:

  1. Configure los permisos de usuario añadiendo el ggcore usuario al tss grupo para el acceso al TPM:

    sudo usermod -a -G tss ggcore
  2. Actualice el directorio de credenciales siguiendo estos pasos:

    • Elimine el archivo de clave privada del directorio de credenciales.

      • Como utilizamos claves TPM persistentes, no es necesario copiar ningún archivo de clave privada.

    • Copie la nueva device.pem.crt en ese directorio de credenciales.

  3. config.yamlEdítelo con la siguiente configuración específica de TPM:

    system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ...
  4. Reinicie su Greengrass Nucleus Lite ejecutando el siguiente comando:

    systemctl restart greengrass-lite.target

Resolución de problemas

Si tiene problemas durante la configuración o el funcionamiento de su AWS IoT Greengrass dispositivo TPM2 compatible, pruebe los siguientes pasos de solución de problemas:

No se encuentra el dispositivo TPM (cuando se utiliza NitroTPM)

Si no /dev/tpm0 está presente, lleve a cabo los siguientes pasos:

  1. Comprueba que utilizas un tipo de instancia compatible con NitrotPM.

  2. Asegúrese de que la AMI se haya creado con--tpm-support v2.0.

  3. Compruebe que la instancia se lanzó desde la AMI personalizada.

Errores de permiso denegado

Si encuentra errores de acceso al TPM, haga lo siguiente:

  1. Compruebe que el usuario está en el tss grupo:groups $USER.

  2. Compruebe los permisos del dispositivo TPM mediante el siguiente comando:

    ls -l /dev/tpm*
  3. Compruebe que ha cerrado sesión y ha vuelto a iniciarla después de añadirla al tss grupo.

Problemas con el proveedor de OpenSSL

Si no encuentra el proveedor de TPM, haga lo siguiente:

  1. Compruebe tpm2.so la ruta en. /etc/ssl/openssl.cnf

  2. Compruebe la instalación del proveedor ejecutando el siguiente comando:

    openssl list -providers
  3. Compruebe que el tpm2-openssl paquete esté instalado correctamente.

Pasos a seguir a continuación

Ahora que has integrado correctamente tu dispositivo AWS IoT Greengrass principal TPM2, puedes:

  • Implemente componentes en su AWS IoT Greengrass dispositivo seguro

  • Configure AWS IoT Greengrass dispositivos adicionales con TPM2 la integración

Para obtener más información sobre la seguridad de AWS IoT Greengrass los dispositivos, consulteSeguridad en  AWS IoT Greengrass.