Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tutorial: Proteggi AWS IoT Greengrass Nucleus Lite con Trusted Platform Module (TPM)
Questo tutorial spiega come abilitare e configurare il supporto Trusted Platform Module (TPM) per nucleus lite. AWS IoT Greengrass TPM fornisce un root of trust basato sull'hardware per l'archiviazione sicura delle chiavi. Questa funzionalità di sicurezza protegge le operazioni crittografiche e le credenziali sensibili, migliorando la sicurezza e l'integrità del dispositivo.
Una volta completata questa integrazione, il dispositivo AWS IoT Greengrass principale utilizzerà chiavi private protette da TPM per l'identità e la comunicazione con i servizi. AWS IoT
Per ulteriori informazioni sulla sicurezza dei AWS IoT Greengrass dispositivi, consulta. Sicurezza in AWS IoT Greengrass
Importante
Questo meccanismo è supportato solo con l'installazione di AWS IoT Greengrass nucleus lite con provisioning manuale delle risorse.
Prerequisiti
Per completare questo tutorial, è necessario quanto segue:
-
Un dispositivo compatibile con Linux con hardware TPM 2.0 o NitroTPM
-
Una macchina per sviluppatori con Greengrass Nucleus Lite installato. Per ulteriori informazioni, vedere Installazione del software AWS IoT Greengrass Core (console).
-
Le istruzioni in questo tutorial sono definite per Ubuntu 24.04 LTS.
-
Qualsiasi distribuzione Linux in grado di supportare Linux TPM2 Software Stack
può supportare questo meccanismo. -
Una macchina per sviluppatori AWS CLIinstallata e configurata con le autorizzazioni per:
-
Creare e gestire risorse AWS IoT
-
Crea e gestisci ruoli e policy IAM
-
-
Privilegi root o sudo sul dispositivo.
Questo tutorial contiene istruzioni su come utilizzare il TPM2 chip come Hardware Security Module (HSM) per creare una chiave privata e CSR, che viene utilizzato per creare il thing certificate. AWS IoT
Fase 1: Configurare un'istanza NitroTPM
-
Configura un'istanza NitroTPM. Per ulteriori informazioni, consulta NitroTPM.
-
Avvia l'istanza finale utilizzando l'AMI personalizzata creata nel passaggio precedente.
Importante
Quando ti connetti con SSH, usa l'
ubuntuutente invece diroot. -
Verifica che il dispositivo TPM sia presente e funzionante eseguendo il comando seguente:
ls -la /dev/tpm*Dovresti vedere
/dev/tpm0e/dev/tpmrm0dispositivi.
Fase 2: Installare e configurare gli strumenti TPM
-
Installa i pacchetti richiesti eseguendo il comando seguente:
sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0 -
Verifica le autorizzazioni del dispositivo TPM eseguendo il comando seguente:
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
Fase 3: Configurare il provider OpenSSL TPM2
-
Modifica il file di configurazione OpenSSL:
sudo vi /etc/ssl/openssl.cnf -
Aggiungi la seguente configurazione:
[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 -
Regola il percorso del modulo secondo necessità. Puoi trovare il percorso corretto usando:
find /usr -name "tpm2.so"
Passaggio 4: Generazione di chiavi TPM persistenti
-
Crea una chiave primaria eseguendo il seguente comando:
sudo tpm2_createprimary -C o -c primary.ctx -
Crea un oggetto chiave ECC eseguendo il comando seguente:
sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub -
Caricate la chiave eseguendo il comando seguente:
sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx -
Rendi persistente la chiave eseguendo il seguente comando:
sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002Questo crea una chiave persistente con l'handle (like
0x81000002).
Fase 5: Generazione della richiesta di firma del certificato (CSR)
In questo passaggio, utilizzerai la chiave privata TPM2 -protected per generare una richiesta di firma del certificato (CSR).
-
Genera una CSR utilizzando la chiave TPM:
openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing" -
Sostituisci
0x81000002con il valore dell'handle scelto eTPMThingcon il nome dell'oggetto desiderato.
Fase 6: Creare il certificato da CSR
-
Sul tuo computer di sviluppo, crea una cartella in cui hai scaricato il certificato relativo all' AWS IoT oggetto.
mkdir greengrass-v2-certs -
Usa il file CSR per creare e scaricare il certificato relativo all' AWS IoT oggetto sul tuo computer di sviluppo.
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.crtSe la richiesta ha esito positivo, la risposta è simile all'esempio seguente:
{ "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-----" }
Passaggio 7: configurare Greengrass Nucleus Lite con supporto TPM
Per abilitare il supporto TPM in Greengrass Nucleus Lite, apporta le seguenti modifiche:
-
Configura le autorizzazioni utente aggiungendo l'
ggcoreutente altssgruppo per l'accesso TPM:sudo usermod -a -G tss ggcore -
Aggiorna la directory delle credenziali completando i seguenti passaggi:
-
Rimuovi il file della chiave privata dalla directory delle credenziali.
-
Poiché utilizziamo chiavi TPM persistenti, non è necessario copiare alcun file di chiave privata.
-
-
Copia il nuovo
device.pem.crtnella cartella delle credenziali.
-
-
Modifica
config.yamlcon la seguente configurazione specifica del TPM:system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ... -
Riavvia Greengrass Nucleus Lite eseguendo il seguente comando:
systemctl restart greengrass-lite.target
Risoluzione dei problemi
Se riscontrate problemi durante la configurazione o il funzionamento del AWS IoT Greengrass dispositivo TPM2 abilitato, provate i seguenti passaggi per la risoluzione dei problemi:
Il dispositivo TPM non è stato trovato (quando si utilizza NitroTPM)
Se non /dev/tpm0 è presente, procedi nel seguente modo:
-
Verifica di utilizzare un tipo di istanza supportato da NitroTPM.
-
Assicurati che l'AMI sia stato creato con
--tpm-support v2.0. -
Verifica che l'istanza sia stata avviata dall'AMI personalizzata.
Errori di autorizzazione negata
Se riscontri errori di accesso al TPM, procedi come segue:
-
Verifica che l'utente sia nel
tssgruppo:groups $USER. -
Controlla le autorizzazioni del dispositivo TPM utilizzando il seguente comando:
ls -l /dev/tpm* -
Verifica di esserti disconnesso e di aver effettuato nuovamente l'accesso dopo l'aggiunta al gruppo.
tss
Problemi con il provider OpenSSL
Se il provider TPM non viene trovato, procedi come segue:
-
Verifica
tpm2.soil percorso in./etc/ssl/openssl.cnf -
Controlla l'installazione del provider eseguendo il seguente comando:
openssl list -providers -
Verifica che il
tpm2-opensslpacchetto sia installato correttamente.
Fasi successive
Ora che hai integrato con successo il tuo dispositivo AWS IoT Greengrass principale con TPM2, puoi:
-
Implementa i componenti sul tuo dispositivo sicuro AWS IoT Greengrass
-
Configura AWS IoT Greengrass dispositivi aggiuntivi con integrazione TPM2
Per ulteriori informazioni sulla sicurezza AWS IoT Greengrass dei dispositivi, consultaSicurezza in AWS IoT Greengrass.