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:
-
Un dispositivo compatible con Linux con hardware TPM 2.0 o NitroTPM
-
Una máquina para desarrolladores con Greengrass Nucleus Lite instalado. Para obtener más información, consulte Instalación del software AWS IoT Greengrass principal (consola).
-
Las instrucciones de este tutorial están definidas para Ubuntu 24.04 LTS.
-
Cualquier distribución de Linux que sea compatible con la pila de TPM2 software de Linux
puede admitir este mecanismo. -
Una máquina de desarrollador con la AWS CLI instalada y configurada con permisos para que:
-
Cree y administre AWS IoT recursos
-
Cree y actualice los roles y las políticas de IAM
-
-
Privilegios de raíz o sudo en el dispositivo.
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
-
Configura una instancia de NitroTPM. Para obtener más información, consulte NitroTPM.
-
Lance la última instancia con la AMI personalizada creada en el paso anterior.
importante
Cuando se conecte con SSH, utilice el
ubuntuusuario en lugar deroot. -
Compruebe que el dispositivo TPM está presente y funciona ejecutando el siguiente comando:
ls -la /dev/tpm*Deberías ver los
/dev/tpm0/dev/tpmrm0dispositivos.
Paso 2: Instalar y configurar las herramientas de TPM
-
Instale los paquetes necesarios ejecutando el siguiente comando:
sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0 -
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
-
Edite el archivo de configuración de OpenSSL:
sudo vi /etc/ssl/openssl.cnf -
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 -
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
-
Cree una clave principal ejecutando el siguiente comando:
sudo tpm2_createprimary -C o -c primary.ctx -
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 -
Cargue la clave ejecutando el siguiente comando:
sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx -
Haz que la clave sea persistente ejecutando el siguiente comando:
sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002Esto crea una clave persistente con el identificador (tipo
0x81000002).
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).
-
Genere una CSR con la clave TPM:
openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing" -
0x81000002Sustitúyala por el valor de identificador que hayas elegido y por elTPMThingnombre de la cosa que desees.
Paso 6: Crea el certificado a partir de CSR
-
En tu ordenador de desarrollo, crea una carpeta donde descargaste el certificado de la AWS IoT cosa.
mkdir greengrass-v2-certs -
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.crtSi 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:
-
Configure los permisos de usuario añadiendo el
ggcoreusuario altssgrupo para el acceso al TPM:sudo usermod -a -G tss ggcore -
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.crten ese directorio de credenciales.
-
-
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 ... -
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:
-
Comprueba que utilizas un tipo de instancia compatible con NitrotPM.
-
Asegúrese de que la AMI se haya creado con
--tpm-support v2.0. -
Compruebe que la instancia se lanzó desde la AMI personalizada.
Errores de permiso denegado
Si encuentra errores de acceso al TPM, haga lo siguiente:
-
Compruebe que el usuario está en el
tssgrupo:groups $USER. -
Compruebe los permisos del dispositivo TPM mediante el siguiente comando:
ls -l /dev/tpm* -
Compruebe que ha cerrado sesión y ha vuelto a iniciarla después de añadirla al
tssgrupo.
Problemas con el proveedor de OpenSSL
Si no encuentra el proveedor de TPM, haga lo siguiente:
-
Compruebe
tpm2.sola ruta en./etc/ssl/openssl.cnf -
Compruebe la instalación del proveedor ejecutando el siguiente comando:
openssl list -providers -
Compruebe que el
tpm2-opensslpaquete 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.