

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="hardware-security"></a>

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](#hardware-security-see-also) 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 kryptographischen Elementen gespeichert werden.

[Suchen Sie im Gerätekatalog nach Geräten, die für diese Funktion geeignet sind.AWS Partner](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1)

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

![Greengrass Core mit hardwaresichem Element, das Nachrichten an AWS IoT Core und lokale Geräte weiterleitet.](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/hardware-security-arch.png)


 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 AWS IoT Greengrass Hardware-Sicherheit](#optional-provisioning).

**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 ein RSA-Schlüssel mit einer minimalen Länge von 2048 Bit sein. Weitere Informationen finden Sie unter [Angeben des privaten Schlüssels für die Verschlüsselung von Secrets](secrets.md#secrets-config-private-key).

## Voraussetzungen
<a name="hardware-security-reqs"></a>

Bevor Sie die Hardwaresicherheit für einen Greengrass Core konfigurieren können, müssen Sie Folgendes beachten:
+ Ein Hardwaresicherheitsmodul (HSM), das Ihre private Schlüsselkonfiguration für den IoT-Client, den lokalen MQTT-Server und lokale Secrets-Manager-Komponenten 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](gg-sec.md#gg-principals).
  + Für RSA-Schlüssel: Eine RSA-2048 Schlüsselgröße (oder größer) und das [PKCS \#1](#hardware-security-see-also) v1.5-Signaturschema.
  + Für EC-Schlüssel: Eine NIST- oder P-256 NIST-Kurve. P-384 
**Anmerkung**  
Suchen Sie im [AWS Partner Gerätekatalog](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1) nach Geräten, die für diese Funktion qualifiziert sind.
+ Eine PKCS\#11-Anbieterbibliothek, die zur Laufzeit (mit libdl) geladen werden kann und [PKCS\#11](#hardware-security-see-also)-Funktionen bereitstellt.
+ Das Hardwaremodul muss nach Slot-Label auflösbar sein, wie in der PKCS\#11-Spezifikation definiert.
+ Der private Schlüssel muss mit Hilfe der vom Hersteller bereitgestellten Provisionierungswerkzeuge generiert und auf das HSM 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 [OpenSSL libp11 PKCS \#11](https://github.com/OpenSC/libp11) -Wrapper-Bibliothek installiert sein. Weitere Informationen finden Sie unter [Konfigurieren der Unterstützung für Over-the-Air-Updates](#hardware-security-ota-updates).

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](module2.md) 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 den Kern 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 dem HSM. Die Zertifikate müssen als Klartextdateien an einem Ort im Dateisystem geladen werden, der von Greengrass gelesen werden kann.

## Hardwaresicherheitskonfiguration für ein AWS IoT Greengrass core
<a name="configure-hardware-security"></a>

Die Hardware-Sicherheit wird in der Greengrass-Konfigurationsdatei konfiguriert. Dies ist die Datei [`config.json`](gg-core.md#config-json), die sich im Verzeichnis `/{{greengrass-root}}/config` befindet.

**Anmerkung**  
Um den Prozess der Einrichtung einer HSM-Konfiguration mit einer reinen Software-Implementierung zu durchlaufen, siehe [Modul 7: Simulation der Hardware-Sicherheitsintegration](console-mod7.md).  
Die simulierte Konfiguration im Beispiel bietet keine Sicherheitsvorteile. Das Beispiel soll Ihnen ermöglichen, sich über die PKCS\#11-Spezifikation zu informieren und erste Tests Ihrer Software durchzuführen, wenn Sie planen, in Zukunft ein hardwarebasiertes HSM einzusetzen.

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

Bei der Verwendung von Hardware-Sicherheit wird das Objekt `crypto` eingesetzt, um Pfade zu Zertifikaten, privaten Schlüsseln und Assets für die PKCS\#11-Anbieterbibliothek im 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 | Description | Hinweise | 
| --- |--- |--- |
| caPath | Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle. | Muss ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`. Stellen Sie sicher, dass Ihre [Endpunkte Ihrem Zertifikatstyp entsprechen](gg-core.md#certificate-endpoints).  | 
| `PKCS11` | 
| --- |
| OpenSSLEngine | Optional. Der absolute Pfad zur OpenSSL-Engine `.so`-Datei, um die PKCS\#11-Unterstützung unter OpenSSL zu aktivieren. | Muss ein Pfad zu einer Datei im Dateisystem sein.<br />Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter [Konfigurieren der Unterstützung für Over-the-Air-Updates](#hardware-security-ota-updates). | 
| P11Provider | Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS\#11-Implementierung. | Muss ein Pfad zu einer Datei im Dateisystem sein. | 
| slotLabel | Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird. | Muss den PKCS\#11 Label-Spezifikationen entsprechen. | 
| slotUserPin | Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird. | 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. | Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. | 
| IoTCertificate  .certificatePath | Der absolute Pfad zum Core-Gerätezertifikat. | Muss ein Datei-URI im folgenden Format 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 einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt.<br />Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. 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 [Verteilen Sie Geheimnisse auf AWS IoT Greengrass core](secrets.md). | 
| SecretsManager  .privateKeyPath | Der Pfad zum privaten Schlüssel des lokalen Secrets Managers. | Nur ein RSA-Schlüssel wird unterstützt.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den [PKCS\#1 v1.5](https://tools.ietf.org/html/rfc2313)-Padding-Mechanismus verwenden. | 


| Feld | Description | Hinweise | 
| --- |--- |--- |
| caPath | Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle. | Muss ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`. Stellen Sie sicher, dass Ihre [Endpunkte Ihrem Zertifikatstyp entsprechen](gg-core.md#certificate-endpoints).  | 
| `PKCS11` | 
| --- |
| OpenSSLEngine | Optional. Der absolute Pfad zur OpenSSL-Engine `.so`-Datei, um die PKCS\#11-Unterstützung unter OpenSSL zu aktivieren. | Muss ein Pfad zu einer Datei im Dateisystem sein.<br />Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter [Konfigurieren der Unterstützung für Over-the-Air-Updates](#hardware-security-ota-updates). | 
| P11Provider | Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS\#11-Implementierung. | Muss ein Pfad zu einer Datei im Dateisystem sein. | 
| slotLabel | Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird. | Muss den PKCS\#11 Label-Spezifikationen entsprechen. | 
| slotUserPin | Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird. | 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. | Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. | 
| IoTCertificate  .certificatePath | Der absolute Pfad zum Core-Gerätezertifikat. | Muss ein Datei-URI im folgenden Format 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 einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt.<br />Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. 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 [Verteilen Sie Geheimnisse auf AWS IoT Greengrass core](secrets.md). | 
| SecretsManager  .privateKeyPath | Der Pfad zum privaten Schlüssel des lokalen Secrets Managers. | Nur ein RSA-Schlüssel wird unterstützt.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den [PKCS\#1 v1.5](https://tools.ietf.org/html/rfc2313)-Padding-Mechanismus verwenden. | 


| Feld | Description | Hinweise | 
| --- |--- |--- |
| caPath | Der absolute Pfad zur AWS IoT Stammzertifizierungsstelle. | Muss ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`. Stellen Sie sicher, dass Ihre [Endpunkte Ihrem Zertifikatstyp entsprechen](gg-core.md#certificate-endpoints).  | 
| `PKCS11` | 
| --- |
| OpenSSLEngine | Optional. Der absolute Pfad zur OpenSSL-Engine `.so`-Datei, um die PKCS\#11-Unterstützung unter OpenSSL zu aktivieren. | Muss ein Pfad zu einer Datei im Dateisystem sein.<br />Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass OTA Update Agent mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter [Konfigurieren der Unterstützung für Over-the-Air-Updates](#hardware-security-ota-updates). | 
| P11Provider | Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS\#11-Implementierung. | Muss ein Pfad zu einer Datei im Dateisystem sein. | 
| slotLabel | Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird. | Muss den PKCS\#11 Label-Spezifikationen entsprechen. | 
| slotUserPin | Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns gegenüber dem Modul verwendet wird. | 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. | Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. | 
| IoTCertificate  .certificatePath | Der absolute Pfad zum Core-Gerätezertifikat. | Muss ein Datei-URI im folgenden Format 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 einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt.<br />Wenn diese Eigenschaft weggelassen wird, wird der Schlüssel anhand Ihrer AWS IoT Greengrass Rotationseinstellungen rotiert. 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 [Verteilen Sie Geheimnisse auf AWS IoT Greengrass core](secrets.md). | 
| SecretsManager  .privateKeyPath | Der Pfad zum privaten Schlüssel des lokalen Secrets Managers. | Nur ein RSA-Schlüssel wird unterstützt.<br />Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: `file:///{{absolute/path/to/file}}`.<br />Muss für einen HSM-Speicher ein [RFC 7512 PKCS\#11](https://tools.ietf.org/html/rfc7512)-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den [PKCS\#1 v1.5](https://tools.ietf.org/html/rfc2313)-Padding-Mechanismus verwenden. | 

## Bereitstellungspraktiken für AWS IoT Greengrass Hardware-Sicherheit
<a name="optional-provisioning"></a>

Im Folgenden werden die sicherheits- und leistungsbezogenen Bereitstellungspraktiken beschrieben.

**Sicherheit**  
  
+ Generieren Sie private Schlüssel direkt auf dem HSM mit Hilfe des internen Hardware-Zufallszahlengenerators.
**Anmerkung**  
[Wenn Sie private Schlüssel für die Verwendung mit dieser Funktion konfigurieren (indem Sie die Anweisungen des Hardwareanbieters befolgen), beachten Sie, dass AWS IoT Greengrass derzeit nur der PKCS1 v1.5-Padding-Mechanismus für die Verschlüsselung und Entschlüsselung von lokalen Geheimnissen unterstützt wird.](secrets.md) AWS IoT Greengrass unterstützt Optimal Asymmetric Encryption Padding (OAEP) nicht.
+ Konfigurieren Sie private Schlüssel, um den Export zu verhindern.
+ Verwenden Sie das vom Hardwareanbieter bereitgestellte Bereitstellungstool, um mithilfe des hardwaregeschützten privaten Schlüssels eine Zertifikatsignieranforderung (Certificate Signing Request, CSR) zu generieren, und verwenden Sie dann die Konsole, um ein Client-Zertifikat zu generieren. AWS IoT 
Die Praxis des Rotierens von Schlüsseln gilt nicht, wenn private Schlüssel auf einem HSM erzeugt werden.

**Leistung**  <a name="hsm-performance"></a>
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 den gleichen privaten Schlüssel oder separate private Schlüssel verwenden. Wenn Sie separate Schlüssel verwenden, müssen diese im gleichen Slot gespeichert sein.  
AWS IoT Greengrass schränkt die Anzahl der Schlüssel, die Sie auf dem HSM speichern, nicht ein, sodass Sie private Schlüssel für die Komponenten IoT-Client, MQTT-Server und Secrets Manager speichern können. Einige HSM-Anbieter können jedoch die Anzahl der Schlüssel, die Sie in einem Slot speichern können, begrenzen.

![Architekturdiagramm, das den IoT-Client und den MQTT-Server zeigt, die Nachrichten an AWS IoT Core und lokale Geräte senden.](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/multi-key-diagram.png)

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-Server-Schlüssel wird jedoch jedes Mal verwendet, wenn sich ein Greengrass-Gerät mit dem Kern verbindet. Diese Interaktionen wirken sich direkt auf die Leistung aus.  
Wenn der MQTT-Server-Schlüssel auf dem HSM gespeichert ist, hängt die Geschwindigkeit, mit der sich Geräte verbinden können, von der Anzahl der RSA-Signaturvorgänge pro Sekunde ab, die das HSM ausführen kann. Wenn das HSM beispielsweise 300 Millisekunden benötigt, um eine RSASSA-PKCS1-v1.5 Signatur für einen RSA-2048 privaten Schlüssel durchzuführen, können nur drei Geräte pro Sekunde eine Verbindung zum Greengrass-Core herstellen. Nach dem Herstellen der Verbindungen wird das HSM nicht mehr verwendet, und es gelten die standardmäßigen [Kontingente für AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#limits_greengrass).  
Um Leistungsengpässe zu vermeiden, können Sie den privaten Schlüssel für den MQTT-Server auf dem Dateisystem statt auf dem HSM speichern. Bei dieser Konfiguration verhält sich der MQTT-Server so, als ob die Hardware-Sicherheit 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.      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/hardware-security.html)
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 von generierten Standardschlüssel verwenden). 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
<a name="cipher-suites-for-hsm"></a>

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](gg-sec.md#gg-cipher-suites).

**Anmerkung**  
Wenn Sie sich von Greengrass-Geräten über das lokale Netzwerk mit dem Greengrass-Core verbinden, stellen Sie sicher, dass Sie eine der unterstützten Verschlüsselungs-Suiten verwenden, um die TLS-Verbindung herzustellen.

## Konfigurieren der Unterstützung für Over-the-Air-Updates
<a name="hardware-security-ota-updates"></a>

Um Over-the-Air-Updates (OTA) der AWS IoT Greengrass Core-Software bei Verwendung von Hardwaresicherheit zu aktivieren, müssen Sie die OpenSC libp11 [PKCS \#11 -Wrapper-Bibliothek](https://github.com/OpenSC/libp11) installieren und die Greengrass-Konfigurationsdatei bearbeiten. Weitere Informationen zu OTA-Updates finden Sie unter [OTA-Updates von AWS IoT Greengrass Kernsoftware](core-ota-update.md).

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 Core-Software auf Ihrem Gerät installiert ist. AWS IoT Greengrass Normalerweise ist dies das Verzeichnis `/greengrass`.

1. Installieren der OpenSSL-Engine. OpenSSL 1.0 oder 1.1 werden unterstützt.

   ```
   sudo apt-get install libengine-pkcs11-openssl
   ```

1. Suchen Sie den Pfad zur OpenSSL-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`.

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

1. Öffnen Sie die Greengrass-Konfigurationsdatei. Dies ist die Datei [`config.json`](gg-core.md#config-json) im Verzeichnis `/{{greengrass-root}}/config`.

1. 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.

1. Halten Sie den Greengrass-Daemon an.

   ```
   cd /{{greengrass-root}}/ggc/core/
   sudo ./greengrassd start
   ```

## Abwärtskompatibilität mit früheren Versionen von AWS IoT Greengrass Kernsoftware
<a name="hardware-security-backward-compatibiity"></a>

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 Eigenschaften`coreThing.certPath`, `coreThing.keyPath` und AWS IoT Greengrass verwendet. `coreThing.caPath` Diese Abwärtskompatibilität gilt für Greengrass OTA-Updates, die eine dateibasierte Konfiguration, die in `config.json` angegeben ist, nicht überschreiben.

## Hardware ohne PKCS\#11-Unterstützung
<a name="hardware-without-pkcs11"></a>

Die PKCS\#11-Bibliothek wird typischerweise vom Hardwarehersteller bereitgestellt oder ist Open Source. Bei standardkonformer Hardware (z. B. 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
<a name="hardware-security-see-also"></a>
+ *PKCS \#11 Kryptographische Token-Schnittstelle, Bedienungsanleitung Version 2.40*. Herausgegeben von John Leiseboer und Robert Griffin. 16. November 2014. Anmerkung 02 des OASIS-Ausschusses. [ http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/cn02/pkcs11-ug-v2.40-cn02.html](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/cn02/pkcs11-ug-v2.40-cn02.html). Letzte Version: [http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html).
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \#1: RSA Encryption Version 1.5](https://tools.ietf.org/html/rfc2313)