Integration von Hardware-Sicherheit - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

Integration von Hardware-Sicherheit

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

AWS IoT Greengrass unterstützt die Verwendung von Hardware-Sicherheitsmodulen (HSM) über die PKCS#11 -Schnittstelle für die sichere Speicherung und Übertragung von privaten Schlüsseln. Dadurch wird verhindert, dass Schlüssel in der Software freigelegt oder dupliziert werden. Private Schlüssel können sicher auf Hardwaremodulen wie HSMs Trusted Platform Modules (TPM) oder anderen kryptografischen Elementen gespeichert werden.

Suchen Sie im AWS Partner Gerätekatalog nach Geräten, die für diese Funktion qualifiziert sind.

Das folgende Diagramm zeigt die Hardware-Sicherheitsarchitektur für einen AWS IoT Greengrass Kern.

AWS IoT Greengrass Core architecture with hardware security and message routing to AWS IoT Core and local devices.

AWS IoT Greengrass Verwendet bei einer Standardinstallation zwei private Schlüssel. Ein Schlüssel wird von der AWS IoT Client-Komponente (IoT-Client) während des Transport Layer Security (TLS) -Handshakes verwendet, wenn ein Greengrass-Core eine Verbindung herstellt. AWS IoT Core(Dieser Schlüssel wird auch als privater Kernschlüssel bezeichnet.) Der andere Schlüssel wird vom lokalen MQTT Server verwendet, wodurch Greengrass-Geräte mit dem Greengrass-Core kommunizieren können. Wenn Sie die Hardware-Sicherheit für beide Komponenten verwenden möchten, können Sie einen gemeinsamen privaten Schlüssel oder separate private Schlüssel verwenden. Weitere Informationen finden Sie unter Bereitstellungspraktiken für die Hardwaresicherheit AWS IoT Greengrass.

Anmerkung

Bei einer Standardinstallation verwendet der lokale Secrets-Manager auch den IoT-Client-Schlüssel für seinen Verschlüsselungsprozess, aber Sie können auch Ihren eigenen privaten Schlüssel verwenden. Es muss sich um einen RSA Schlüssel mit einer Mindestlänge von 2048 Bit handeln. Weitere Informationen finden Sie unter Angeben des privaten Schlüssels für die Verschlüsselung von Secrets.

Voraussetzungen

Bevor Sie die Hardwaresicherheit für einen Greengrass Core konfigurieren können, müssen Sie Folgendes beachten:

  • Ein Hardware-Sicherheitsmodul (HSM), das Ihre private Zielschlüsselkonfiguration für die Komponenten IoT-Client, lokalen MQTT Server und Local Secrets Manager unterstützt. Die Konfiguration kann einen, zwei oder drei hardwarebasierte private Schlüssel beinhalten, je nachdem, ob Sie die Komponenten für die Freigabe von Schlüsseln konfigurieren. Weitere Informationen zur Unterstützung von privaten Schlüsseln finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale.

    • Für RSA Schlüssel: Eine Schlüsselgröße von RSA -2048 (oder größer) und das Signaturschema PKCS#1 v1.5.

    • Für EC-Schlüssel: Eine NIST P-256- oder P-384-Kurve. NIST

    Anmerkung

    Suchen Sie im AWS Partner Gerätekatalog nach Geräten, die für diese Funktion qualifiziert sind.

  • Eine PKCS #11 -Anbieterbibliothek, die zur Laufzeit geladen werden kann (mit libdl) und PKCS#11 -Funktionen bereitstellt.

  • Das Hardwaremodul muss anhand der Steckplatzbezeichnung aufgelöst werden können, wie in der PKCS Spezifikation #11 definiert.

  • Der private Schlüssel muss mithilfe der HSM vom Hersteller bereitgestellten Bereitstellungstools generiert und auf den geladen werden.

  • Der private Schlüssel muss durch ein Objektlabel auflösbar sein.

  • Das Core-Gerätezertifikat. Dies ist ein IoT-Client-Zertifikat, das dem privaten Schlüssel entspricht.

  • Wenn Sie den Greengrass OTA Update Agent verwenden, muss die Open SSL libp11 PKCS #11 Wrapper-Bibliothek installiert sein. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

Stellen Sie außerdem sicher, dass die folgenden Bedingungen erfüllt sind:

  • Die IoT-Client-Zertifikate, die dem privaten Schlüssel zugeordnet sind, sind registriert AWS IoT und aktiviert. Sie können dies in der AWS IoT Konsole unter Verwalten überprüfen, Alle Geräte erweitern, Dinge auswählen und dann die Registerkarte Zertifikate für den Kern auswählen.

  • Die AWS IoT Greengrass Core-Software v1.7 oder höher ist auf dem Core-Gerät installiert, wie in Modul 2 des Tutorials Erste Schritte beschrieben. Version 1.9 oder höher ist erforderlich, um einen EC-Schlüssel für den MQTT Server zu verwenden.

  • Die Zertifikate sind dem Greengrass Core angefügt. Sie können dies auf der Seite „Verwalten“ für das Kernelement in der AWS IoT Konsole überprüfen.

Anmerkung

Unterstützt derzeit AWS IoT Greengrass nicht das Laden des CA-Zertifikats oder des IoT-Client-Zertifikats direkt aus demHSM. Die Zertifikate müssen als Klartextdateien an einem Ort im Dateisystem geladen werden, der von Greengrass gelesen werden kann.

Hardwaresicherheitskonfiguration für einen AWS IoT Greengrass Kern

Die Hardware-Sicherheit wird in der Greengrass-Konfigurationsdatei konfiguriert. Dies ist die Datei config.json, die sich im Verzeichnis /greengrass-root/config befindet.

Anmerkung

Eine schrittweise Anleitung zum Einrichten einer HSM Konfiguration mithilfe einer reinen Softwareimplementierung finden Sie unterModul 7: Simulation der Hardware-Sicherheitsintegration.

Wichtig

Die simulierte Konfiguration im Beispiel bietet keine Sicherheitsvorteile. Es soll Ihnen ermöglichen, mehr über die PKCS #11 -Spezifikation zu erfahren und erste Tests Ihrer Software durchzuführen, falls Sie HSM in future eine hardwarebasierte Software verwenden möchten.

Um die Hardwaresicherheit in zu konfigurieren AWS IoT Greengrass, bearbeiten Sie das crypto Objekt in. config.json

Bei Verwendung der Hardwaresicherheit wird das crypto Objekt verwendet, um Pfade zu Zertifikaten, privaten Schlüsseln und Ressourcen für die PKCS #11 -Anbieterbibliothek auf dem Core anzugeben, wie im folgenden Beispiel gezeigt.

"crypto": { "PKCS11" : { "OpenSSLEngine" : "/path-to-p11-openssl-engine", "P11Provider" : "/path-to-pkcs11-provider-so", "slotLabel" : "crypto-token-name", "slotUserPin" : "crypto-token-user-pin" }, "principals" : { "IoTCertificate" : { "privateKeyPath" : "pkcs11:object=core-private-key-label;type=private", "certificatePath" : "file:///path-to-core-device-certificate" }, "MQTTServerCertificate" : { "privateKeyPath" : "pkcs11:object=server-private-key-label;type=private" }, "SecretsManager" : { "privateKeyPath": "pkcs11:object=core-private-key-label;type=private" } }, "caPath" : "file:///path-to-root-ca"

Das crypto-Objekt enthält die folgenden Eigenschaften:

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur Open SSL .so Engine-Datei, um die PKCS #11 -Unterstützung bei Open SSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur PKCS libdl-loadable-Bibliothek der #11 -Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den Spezifikationen des #11 -Labels entsprechen. PKCS

slotUserPin

Der BenutzerPIN, der verwendet wird, um den Greengrass-Kern für das Modul zu authentifizieren.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:. file:///absolute/path/to/file

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT Servers.

Verwenden Sie diesen Wert, um Ihren eigenen privaten Schlüssel für den lokalen MQTT Server anzugeben.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel auf der Grundlage Ihrer Rotationseinstellungen AWS IoT Greengrass gedreht. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Es wird nur ein RSA Schlüssel unterstützt.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt. Der private Schlüssel muss mithilfe des Auffüllmechanismus PKCS#1 v1.5 generiert werden.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root-CA.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur Open SSL .so Engine-Datei, um die PKCS #11 -Unterstützung bei Open SSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur PKCS libdl-loadable-Bibliothek der #11 -Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den Spezifikationen des #11 -Labels entsprechen. PKCS

slotUserPin

Der BenutzerPIN, der verwendet wird, um den Greengrass-Kern für das Modul zu authentifizieren.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:. file:///absolute/path/to/file

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT Servers.

Verwenden Sie diesen Wert, um Ihren eigenen privaten Schlüssel für den lokalen MQTT Server anzugeben.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel auf der Grundlage Ihrer Rotationseinstellungen AWS IoT Greengrass gedreht. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Es wird nur ein RSA Schlüssel unterstützt.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt. Der private Schlüssel muss mithilfe des Auffüllmechanismus PKCS#1 v1.5 generiert werden.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root-CA.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur Open SSL .so Engine-Datei, um die PKCS #11 -Unterstützung bei Open SSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur PKCS libdl-loadable-Bibliothek der #11 -Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den Spezifikationen des #11 -Labels entsprechen. PKCS

slotUserPin

Der BenutzerPIN, der verwendet wird, um den Greengrass-Kern für das Modul zu authentifizieren.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate Das Zertifikat und der private Schlüssel, die Core verwendet, um Anfragen AWS IoT zu stellen.
IoTCertificate  .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:. file:///absolute/path/to/file

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

IoTCertificate  .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss eine Datei URI der Form sein:file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT Server oder Gateway zu fungieren.

MQTTServerCertificate  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT Servers.

Verwenden Sie diesen Wert, um Ihren eigenen privaten Schlüssel für den lokalen MQTT Server anzugeben.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel auf der Grundlage Ihrer Rotationseinstellungen AWS IoT Greengrass gedreht. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager Der private Schlüssel, der den für die Verschlüsselung verwendeten Datenschlüssel schützt. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Es wird nur ein RSA Schlüssel unterstützt.

Für den Dateisystemspeicher muss es sich um eine Datei URI der Form handeln:file:///absolute/path/to/file.

Für die HSM Speicherung muss es sich um einen RFC7512 PKCS #11 -Pfad handeln, der die Objektbezeichnung angibt. Der private Schlüssel muss mithilfe des Auffüllmechanismus PKCS#1 v1.5 generiert werden.

Bereitstellungspraktiken für die Hardwaresicherheit AWS IoT Greengrass

Im Folgenden werden die sicherheits- und leistungsbezogenen Bereitstellungspraktiken beschrieben.

Sicherheit

Anmerkung

Die Praxis, Schlüssel zu rotieren, gilt nicht, wenn private Schlüssel auf einem generiert werden. HSM

Leistung

Das folgende Diagramm zeigt die IoT-Client-Komponente und den lokalen MQTT Server auf dem AWS IoT Greengrass Core. Wenn Sie eine HSM Konfiguration für beide Komponenten verwenden möchten, können Sie denselben privaten Schlüssel oder separate private Schlüssel verwenden. Wenn Sie separate Schlüssel verwenden, müssen diese im gleichen Slot gespeichert sein.

Anmerkung

AWS IoT Greengrass schränkt die Anzahl der Schlüssel, die Sie auf dem speichern, nicht einHSM, sodass Sie private Schlüssel für die IoT-Client-, MQTT Server- und Secrets-Manager-Komponenten speichern können. Einige HSM Anbieter beschränken jedoch möglicherweise die Anzahl der Schlüssel, die Sie in einem Steckplatz speichern können.

IoT client and MQTT server interacting with AWS IoT Greengrass Core and AWS IoT Core.

Im Allgemeinen wird der IoT-Clientschlüssel nicht sehr häufig verwendet, da die AWS IoT Greengrass Core-Software langlebige Verbindungen zur Cloud unterhält. Der MQTT Serverschlüssel wird jedoch jedes Mal verwendet, wenn ein Greengrass-Gerät eine Verbindung zum Core herstellt. Diese Interaktionen wirken sich direkt auf die Leistung aus.

Wenn der MQTT Serverschlüssel auf dem gespeichert ist, hängt die GeschwindigkeitHSM, mit der Geräte eine Verbindung herstellen können, von der Anzahl der RSA Signaturvorgänge pro Sekunde ab, die sie ausführen HSM können. Wenn es beispielsweise 300 Millisekunden HSM dauert, eine Signatur von PKCS1 -v1.5 für einen privaten Schlüssel von RSASSA RSA -2048 auszuführen, können nur drei Geräte pro Sekunde eine Verbindung zum Greengrass-Core herstellen. Nachdem die Verbindungen hergestellt wurden, wird der nicht mehr verwendet und HSM es gelten die Standardkontingente für. AWS IoT Greengrass

Um Leistungsengpässe zu vermeiden, können Sie den privaten Schlüssel für den MQTT Server im Dateisystem statt auf dem speichern. HSM Bei dieser Konfiguration verhält sich der MQTT Server so, als ob die Hardwaresicherheit nicht aktiviert wäre.

AWS IoT Greengrass unterstützt mehrere Schlüsselspeicherkonfigurationen für die IoT-Client- und MQTT -Serverkomponenten, sodass Sie Ihre Sicherheits- und Leistungsanforderungen optimieren können. Die folgende Tabelle enthält Beispielkonfigurationen.

Konfiguration IoT-Schlüssel MQTTSchlüssel Leistung
HSMGemeinsamer Schlüssel HSM: Schlüssel A HSM: Schlüssel A Eingeschränkt durch das HSM oder CPU
HSMSeparate Schlüssel HSM: Schlüssel A HSM: Schlüssel B Limitiert durch das HSM oder CPU
HSMnur für IoT HSM: Schlüssel A Dateisystem: Schlüssel B Limitiert durch CPU
Veraltet Dateisystem: Schlüssel A Dateisystem: Schlüssel B Limitiert durch CPU

Um den Greengrass-Kern so zu konfigurieren, dass er dateisystembasierte Schlüssel für den MQTT Server verwendet, lassen Sie den principals.MQTTServerCertificate Abschnitt von weg config.json (oder geben Sie einen dateibasierten Pfad zum Schlüssel an, wenn Sie nicht den Standardschlüssel verwenden, der von generiert wurde). AWS IoT Greengrass Das resultierende Objekt crypto sieht folgendermaßen aus:

"crypto": { "PKCS11": { "OpenSSLEngine": "...", "P11Provider": "...", "slotLabel": "...", "slotUserPin": "..." }, "principals": { "IoTCertificate": { "privateKeyPath": "...", "certificatePath": "..." }, "SecretsManager": { "privateKeyPath": "..." } }, "caPath" : "..." }

Unterstützte Verschlüsselungs-Suiten für die Hardware-Sicherheitsintegration

AWS IoT Greengrass unterstützt eine Reihe von Cipher Suites, wenn der Kern für Hardware-Sicherheit konfiguriert ist. Dies ist eine Teilmenge der Verschlüsselungs-Suiten, die unterstützt werden, wenn der Kern für die Verwendung dateibasierter Sicherheit konfiguriert ist. Weitere Informationen finden Sie unter Support für TLS-Verschlüsselungs-Suites.

Anmerkung

Wenn Sie von Greengrass-Geräten über das lokale Netzwerk eine Verbindung zum Greengrass Core herstellen, stellen Sie sicher, dass Sie eine der unterstützten Cipher Suites verwenden, um die Verbindung herzustellen. TLS

Konfigurieren Sie die Unterstützung für Updates over-the-air

Um over-the-air (OTA) -Updates der AWS IoT Greengrass Core-Software bei Verwendung von Hardwaresicherheit zu aktivieren, müssen Sie die OpenSC-Wrapper-Bibliothek libp11 PKCS #11 installieren und die Greengrass-Konfigurationsdatei bearbeiten. Weitere Informationen zu Updates finden Sie unter. OTA OTA-Updates der AWS IoT Greengrass Core-Software

  1. Stoppen Sie den Greengrass-Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
    Anmerkung

    greengrass-root steht für den Pfad, in dem die AWS IoT Greengrass Core-Software auf Ihrem Gerät installiert ist. Normalerweise ist dies das Verzeichnis /greengrass.

  2. Installieren Sie die Open SSL Engine. Open SSL 1.0 oder 1.1 werden unterstützt.

    sudo apt-get install libengine-pkcs11-openssl
  3. Suchen Sie den Pfad zur Open SSL Engine (libpkcs11.so) auf Ihrem System:

    1. Holen Sie sich die Liste der installierten Pakete für die Bibliothek.

      sudo dpkg -L libengine-pkcs11-openssl

      Die Datei libpkcs11.so befindet sich im Verzeichnis engines.

    2. Kopieren Sie den vollständigen Pfad in die Datei (z. B. /usr/lib/ssl/engines/libpkcs11.so).

  4. Öffnen Sie die Greengrass-Konfigurationsdatei. Dies ist die Datei config.json im Verzeichnis /greengrass-root/config.

  5. Geben Sie für die Eigenschaft OpenSSLEngine den Pfad zur Datei libpkcs11.so ein.

    { "crypto": { "caPath" : "file:///path-to-root-ca", "PKCS11" : { "OpenSSLEngine" : "/path-to-p11-openssl-engine", "P11Provider" : "/path-to-pkcs11-provider-so", "slotLabel" : "crypto-token-name", "slotUserPin" : "crypto-token-user-pin" }, ... } ... }
    Anmerkung

    Wenn die Eigenschaft OpenSSLEngine im Objekt PKCS11 nicht vorhanden ist, dann fügen Sie sie hinzu.

  6. Halten Sie den Greengrass-Daemon an.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

Abwärtskompatibilität mit früheren Versionen der AWS IoT Greengrass Kernsoftware

Die AWS IoT Greengrass Core-Software mit Unterstützung für Hardwaresicherheit ist vollständig abwärtskompatibel mit config.json Dateien, die für Version 1.6 und frühere Versionen generiert wurden. Wenn das crypto Objekt nicht in der config.json Konfigurationsdatei vorhanden ist, werden die dateibasierten EigenschaftencoreThing.certPath, coreThing.keyPath und AWS IoT Greengrass verwendet. coreThing.caPath Diese Abwärtskompatibilität gilt für OTA Greengrass-Updates, die eine dateibasierte Konfiguration, die in angegeben ist, nicht überschreiben. config.json

PKCSHardware ohne #11 -Unterstützung

Die PKCS #11 -Bibliothek wird in der Regel vom Hardwareanbieter bereitgestellt oder ist Open Source. Bei standardkonformer Hardware (wie TPM1 .2) könnte es beispielsweise möglich sein, vorhandene Open-Source-Software zu verwenden. Wenn Ihre Hardware jedoch nicht über eine entsprechende PKCS #11 -Bibliotheksimplementierung verfügt oder wenn Sie einen benutzerdefinierten PKCS #11 -Anbieter schreiben möchten, sollten Sie sich mit Fragen zur Integration an Ihren AWS Enterprise Support-Mitarbeiter wenden.

Weitere Informationen finden Sie auch unter