Tutorial: Schützen Sie AWS IoT Greengrass Nucleus Lite mit Trusted Platform Module (TPM) - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Schützen Sie AWS IoT Greengrass Nucleus Lite mit Trusted Platform Module (TPM)

In diesem Tutorial wird erklärt, wie Sie die TPM-Unterstützung (Trusted Platform Module) für AWS IoT Greengrass Nucleus Lite aktivieren und konfigurieren. TPM bietet eine hardwarebasierte Vertrauensbasis für die sichere Speicherung von Schlüsseln. Diese Sicherheitsfunktion schützt kryptografische Operationen und vertrauliche Anmeldeinformationen und verbessert so die Gerätesicherheit und -integrität.

Wenn Sie diese Integration abgeschlossen haben, verwendet Ihr AWS IoT Greengrass Kerngerät TPM-geschützte private Schlüssel für seine Identität und Kommunikation mit Diensten. AWS IoT

Weitere Informationen zur Sicherheit von AWS IoT Greengrass Geräten finden Sie unter. Sicherheit in AWS IoT Greengrass

Wichtig

Dieser Mechanismus wird nur bei der Installation von AWS IoT Greengrass Nucleus Lite mit manueller Ressourcenbereitstellung unterstützt.

Voraussetzungen

Zum Durcharbeiten dieses Tutorials ist Folgendes erforderlich:

Dieses Tutorial enthält Anweisungen zur Verwendung des TPM2 Chips als Hardware-Sicherheitsmodul (HSM) zur Erstellung eines privaten Schlüssels und einer CSR, mit der AWS IoT das Ding-Zertifikat erstellt wird.

Schritt 1: Richten Sie eine NitroTPM-Instanz ein

  1. Richten Sie eine NitroTPM-Instanz ein. Weitere Informationen finden Sie unter NitroTPM.

  2. Starten Sie die letzte Instance mit dem benutzerdefinierten AMI, das im vorherigen Schritt erstellt wurde.

    Wichtig

    Wenn Sie eine Verbindung mit SSH herstellen, verwenden Sie den ubuntu Benutzer anstelle vonroot.

  3. Überprüfen Sie, ob das TPM-Gerät vorhanden ist und funktioniert, indem Sie den folgenden Befehl ausführen:

    ls -la /dev/tpm*

    Sie sollten /dev/tpmrm0 Geräte sehen/dev/tpm0.

Schritt 2: TPM-Tools installieren und konfigurieren

  1. Installieren Sie die erforderlichen Pakete, indem Sie den folgenden Befehl ausführen:

    sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0
  2. Überprüfen Sie die Berechtigungen des TPM-Geräts, indem Sie den folgenden Befehl ausführen:

    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

Schritt 3: Den OpenSSL-Anbieter TPM2 konfigurieren

  1. Bearbeiten Sie die OpenSSL-Konfigurationsdatei:

    sudo vi /etc/ssl/openssl.cnf
  2. Fügen Sie die folgende Konfiguration hinzu:

    [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. Passen Sie den Modulpfad nach Bedarf an. Sie können den richtigen Pfad finden, indem Sie:

    find /usr -name "tpm2.so"

Schritt 4: Generieren Sie persistente TPM-Schlüssel

  1. Erstellen Sie einen Primärschlüssel, indem Sie den folgenden Befehl ausführen:

    sudo tpm2_createprimary -C o -c primary.ctx
  2. Erstellen Sie ein ECC-Schlüsselobjekt, indem Sie den folgenden Befehl ausführen:

    sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub
  3. Laden Sie den Schlüssel, indem Sie den folgenden Befehl ausführen:

    sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx
  4. Machen Sie den Schlüssel persistent, indem Sie den folgenden Befehl ausführen:

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

    Dadurch wird ein persistenter Schlüssel mit dem Handle (like0x81000002) erstellt.

Schritt 5: Generieren Sie eine Zertifikatssignieranforderung (CSR)

In diesem Schritt verwenden Sie den TPM2 -geschützten privaten Schlüssel, um eine Certificate Signing Request (CSR) zu generieren.

  1. Generieren Sie eine CSR mithilfe des TPM-Schlüssels:

    openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing"
  2. 0x81000002Ersetzen Sie es durch den von Ihnen gewählten Handle-Wert und TPMThing durch den gewünschten Ding-Namen.

Schritt 6: Erstellen Sie das Zertifikat aus CSR

  1. Erstellen Sie auf Ihrem Entwicklungscomputer einen Ordner, in den Sie das Zertifikat für das AWS IoT Ding heruntergeladen haben.

    mkdir greengrass-v2-certs
  2. Verwenden Sie die CSR-Datei, um das Zertifikat für das AWS IoT Ding zu erstellen und auf Ihren Entwicklungscomputer herunterzuladen.

    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

    Wenn die Anfrage erfolgreich ist, sieht die Antwort dem folgenden Beispiel ähnlich:

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

Schritt 7: Greengrass Nucleus Lite mit TPM-Unterstützung einrichten

Um die TPM-Unterstützung in Greengrass Nucleus Lite zu aktivieren, nehmen Sie die folgenden Änderungen vor:

  1. Konfigurieren Sie Benutzerberechtigungen, indem Sie den ggcore Benutzer der tss Gruppe für den TPM-Zugriff hinzufügen:

    sudo usermod -a -G tss ggcore
  2. Aktualisieren Sie das Verzeichnis mit den Anmeldeinformationen, indem Sie die folgenden Schritte ausführen:

    • Entfernen Sie die Datei mit dem privaten Schlüssel aus dem Verzeichnis mit den Anmeldeinformationen.

      • Da wir persistente TPM-Schlüssel verwenden, muss keine private Schlüsseldatei kopiert werden.

    • Kopieren Sie die neue Datei device.pem.crt in das Verzeichnis mit den Anmeldeinformationen.

  3. Bearbeiten Sie config.yaml mit der folgenden TPM-spezifischen Konfiguration:

    system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ...
  4. Starten Sie Ihren Greengrass Nucleus Lite neu, indem Sie den folgenden Befehl ausführen:

    systemctl restart greengrass-lite.target

Fehlerbehebung

Falls bei der Einrichtung oder dem Betrieb Ihres TPM2 -fähigen AWS IoT Greengrass Geräts Probleme auftreten, versuchen Sie es mit den folgenden Schritten zur Problembehebung:

Das TPM-Gerät wurde nicht gefunden (bei Verwendung von NitroTPM)

Wenn /dev/tpm0 es nicht vorhanden ist, führen Sie die folgenden Schritte aus:

  1. Stellen Sie sicher, dass Sie einen von NitroTPM unterstützten Instance-Typ verwenden.

  2. Stellen Sie sicher, dass das AMI mit erstellt wurde--tpm-support v2.0.

  3. Stellen Sie sicher, dass die Instance über das benutzerdefinierte AMI gestartet wurde.

Fehler bei abgelehnter Berechtigung

Wenn Sie auf TPM-Zugriffsfehler stoßen, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass der Benutzer in der tss Gruppe ist:groups $USER.

  2. Überprüfen Sie die Berechtigungen des TPM-Geräts mit dem folgenden Befehl:

    ls -l /dev/tpm*
  3. Stellen Sie sicher, dass Sie sich nach dem Hinzufügen zur tss Gruppe ab- und wieder angemeldet haben.

Probleme mit OpenSSL-Anbietern

Wenn der TPM-Anbieter nicht gefunden wird, gehen Sie wie folgt vor:

  1. Überprüfen Sie tpm2.so den Pfad in der/etc/ssl/openssl.cnf.

  2. Überprüfen Sie die Installation des Anbieters, indem Sie den folgenden Befehl ausführen:

    openssl list -providers
  3. Stellen Sie sicher, dass das tpm2-openssl Paket ordnungsgemäß installiert ist.

Nächste Schritte

Nachdem Sie Ihr AWS IoT Greengrass Kerngerät erfolgreich integriert haben TPM2, können Sie:

  • Komponenten auf Ihrem sicheren AWS IoT Greengrass Gerät bereitstellen

  • Richten Sie zusätzliche AWS IoT Greengrass Geräte mit TPM2 Integration ein

Weitere Informationen zur Sicherheit von AWS IoT Greengrass Geräten finden Sie unterSicherheit in AWS IoT Greengrass.