Tutoriel : Sécurisez AWS IoT Greengrass Nucleus Lite avec le module Trusted Platform (TPM) - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : Sécurisez AWS IoT Greengrass Nucleus Lite avec le module Trusted Platform (TPM)

Ce didacticiel explique comment activer et configurer le support du Trusted Platform Module (TPM) pour AWS IoT Greengrass Nucleus Lite. Le TPM fournit une racine de confiance basée sur le matériel pour un stockage sécurisé des clés. Cette fonctionnalité de sécurité protège les opérations cryptographiques et les informations d'identification sensibles, améliorant ainsi la sécurité et l'intégrité de l'appareil.

Lorsque vous aurez terminé cette intégration, votre appareil AWS IoT Greengrass principal utilisera des clés privées protégées par le TPM pour son identité et sa communication avec AWS IoT les services.

Pour plus d'informations sur la sécurité AWS IoT Greengrass des appareils, consultezSécurité dans AWS IoT Greengrass.

Important

Ce mécanisme n'est pris en charge que lors de l'installation de AWS IoT Greengrass Nucleus Lite avec un provisionnement manuel des ressources.

Prérequis

Pour suivre ce didacticiel, vous aurez besoin des éléments suivants :

Ce didacticiel contient des instructions sur la façon d'utiliser la TPM2 puce en tant que module de sécurité matériel (HSM) pour créer une clé privée et un CSR qui sont utilisés pour créer le certificat d' AWS IoT objet.

Étape 1 : configurer une instance NitroTPM

  1. Configurez une instance NitroTPM. Pour plus d'informations, consultez NitroTPM.

  2. Lancez l'instance finale à l'aide de l'AMI personnalisée créée à l'étape précédente.

    Important

    Lorsque vous vous connectez via SSH, utilisez l'ubuntuutilisateur au lieu deroot.

  3. Vérifiez que le périphérique TPM est présent et fonctionne en exécutant la commande suivante :

    ls -la /dev/tpm*

    Vous devriez voir /dev/tpm0 et /dev/tpmrm0 appareils.

Étape 2 : Installation et configuration des outils TPM

  1. Installez les packages requis en exécutant la commande suivante :

    sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0
  2. Vérifiez les autorisations du dispositif TPM en exécutant la commande suivante :

    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

Étape 3 : Configuration du fournisseur OpenSSL TPM2

  1. Modifiez le fichier de configuration OpenSSL :

    sudo vi /etc/ssl/openssl.cnf
  2. Ajoutez la configuration suivante :

    [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. Ajustez le chemin du module si nécessaire. Vous pouvez trouver le bon chemin en utilisant :

    find /usr -name "tpm2.so"

Étape 4 : générer des clés TPM persistantes

  1. Créez une clé primaire en exécutant la commande suivante :

    sudo tpm2_createprimary -C o -c primary.ctx
  2. Créez un objet clé ECC en exécutant la commande suivante :

    sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub
  3. Chargez la clé en exécutant la commande suivante :

    sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx
  4. Rendez la clé persistante en exécutant la commande suivante :

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

    Cela crée une clé persistante avec le handle (like0x81000002).

Étape 5 : générer une demande de signature de certificat (CSR)

Au cours de cette étape, vous allez utiliser la clé privée TPM2 protégée pour générer une demande de signature de certificat (CSR).

  1. Générez un CSR à l'aide de la clé TPM :

    openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing"
  2. 0x81000002Remplacez-le par la valeur de handle que vous avez choisie et TPMThing par le nom d'objet de votre choix.

Étape 6 : Création du certificat à partir du CSR

  1. Sur votre ordinateur de développement, créez un dossier dans lequel vous avez téléchargé le certificat AWS IoT correspondant.

    mkdir greengrass-v2-certs
  2. Utilisez le fichier CSR pour créer et télécharger le certificat correspondant à l' AWS IoT objet sur votre ordinateur de développement.

    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 demande aboutit, la réponse ressemble à l'exemple suivant :

    { "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-----" }

Étape 7 : Configuration de Greengrass Nucleus Lite avec le support TPM

Pour activer la prise en charge du TPM dans Greengrass Nucleus Lite, apportez les modifications suivantes :

  1. Configurez les autorisations utilisateur en ajoutant l'ggcoreutilisateur au tss groupe pour l'accès au TPM :

    sudo usermod -a -G tss ggcore
  2. Mettez à jour le répertoire des informations d'identification en effectuant les étapes suivantes :

    • Supprimez le fichier de clé privée du répertoire des informations d'identification.

      • Comme nous utilisons des clés TPM persistantes, aucun fichier de clé privée n'a besoin d'être copié.

    • Copiez le nouveau device.pem.crt dans ce répertoire d'informations d'identification.

  3. Modifiez config.yaml avec la configuration spécifique au TPM suivante :

    system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ...
  4. Redémarrez votre Greengrass Nucleus Lite en exécutant la commande suivante :

    systemctl restart greengrass-lite.target

Résolution de problème

Si vous rencontrez des problèmes lors de la configuration ou du fonctionnement de votre AWS IoT Greengrass appareil TPM2 compatible, essayez les étapes de résolution des problèmes suivantes :

Le périphérique TPM est introuvable (lors de l'utilisation de NitroTPM)

Si /dev/tpm0 ce n'est pas le cas, procédez comme suit :

  1. Vérifiez que vous utilisez un type d'instance compatible avec NitroTPM.

  2. Assurez-vous que l'AMI a été créée avec--tpm-support v2.0.

  3. Vérifiez que l'instance a été lancée à partir de l'AMI personnalisée.

Erreurs de type « Autorisation refusée »

Si vous rencontrez des erreurs d'accès au TPM, procédez comme suit :

  1. Vérifiez que l'utilisateur fait partie du tss groupe : groups $USER

  2. Vérifiez les autorisations de l'appareil TPM à l'aide de la commande suivante :

    ls -l /dev/tpm*
  3. Vérifiez que vous vous êtes déconnecté et que vous vous êtes reconnecté après avoir été ajouté au tss groupe.

Problèmes avec le fournisseur OpenSSL

Si le fournisseur TPM n'est pas trouvé, procédez comme suit :

  1. Vérifiez tpm2.so le chemin dans le/etc/ssl/openssl.cnf.

  2. Vérifiez l'installation du fournisseur en exécutant la commande suivante :

    openssl list -providers
  3. Vérifiez que le tpm2-openssl package est correctement installé.

Étapes suivantes

Maintenant que vous avez intégré avec succès votre appareil AWS IoT Greengrass principal à TPM2, vous pouvez :

  • Déployez des composants sur votre AWS IoT Greengrass appareil sécurisé

  • Configurez des AWS IoT Greengrass appareils supplémentaires grâce à TPM2 l'intégration

Pour plus d'informations sur la sécurité AWS IoT Greengrass des appareils, consultezSécurité dans AWS IoT Greengrass.