

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

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

# Integrazione della sicurezza hardware
<a name="hardware-security"></a>

Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.7 e versioni successive.

AWS IoT Greengrass supporta l'uso di moduli di sicurezza hardware (HSM) tramite l'[interfaccia PKCS \$111](#hardware-security-see-also) per l'archiviazione e l'offload sicuri delle chiavi private. In questo modo, si impedisce che le chiavi vengano esposte o duplicate nel software. Le chiavi private possono essere archiviate in modo sicuro su moduli hardware HSMs, come Trusted Platform Modules (TPM) o altri elementi crittografici.

[Cerca i dispositivi idonei per questa funzionalità nel Catalogo dei AWS Partner dispositivi.](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1)

Il diagramma seguente mostra l'architettura di sicurezza hardware per un AWS IoT Greengrass core.

![\[AWS IoT Greengrass Core architecture with hardware security and message routing to AWS IoT Core and local devices.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/hardware-security-arch.png)


In un'installazione standard, AWS IoT Greengrass utilizza due chiavi private. Una chiave viene utilizzata dal componente AWS IoT client (client IoT) durante l'handshake Transport Layer Security (TLS) quando si connette un core Greengrass. AWS IoT Core Questa chiave viene anche denominata chiave privata core. L'altra chiave viene utilizzata dal server MQTT locale, che consente ai dispositivi Greengrass di comunicare con il core Greengrass. Se desideri utilizzare la sicurezza hardware per entrambi i componenti, puoi utilizzare una chiave privata condivisa o chiavi private separate. Per ulteriori informazioni, consulta [Pratiche di provisioning per la sicurezza dell'hardware AWS IoT Greengrass](#optional-provisioning).

**Nota**  
In un'installazione standard, il Secrets Manager locale utilizza anche la chiave client IoT per il processo di crittografia, ma puoi utilizzare la tua chiave privata. Deve essere una chiave RSA con una lunghezza minima di 2048 bit. Per ulteriori informazioni, consulta [Specificare la chiave privata per la crittografia dei segreti](secrets.md#secrets-config-private-key).

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

Prima di configurare la sicurezza hardware di un core Greengrass, devi disporre di quanto segue:
+ Un modulo di sicurezza hardware (HSM) che supporta la configurazione della chiave privata target per il client IoT, il server MQTT locale e i componenti Secrets Manager locali. La configurazione può includere una, due o tre chiavi private basate su hardware, a seconda che si configurino i componenti per condividere le chiavi. Per ulteriori informazioni sul supporto per la chiave privata, consulta [AWS IoT Greengrass principi di sicurezza fondamentali](gg-sec.md#gg-principals).
  + Per le chiavi RSA: una dimensione di chiave RSA-2048 (o superiore) e uno schema di firma [PKCS\$11 v1.5](#hardware-security-see-also).
  + Per le chiavi EC: una curva NIST P-256 o NIST P-384.
**Nota**  
[Cerca i dispositivi idonei per questa funzionalità nel Catalogo dei AWS Partner dispositivi.](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1)
+ Una libreria del provider PKCS\$111 che può essere caricata in fase di runtime (tramite libdl) e che offre funzioni [PKCS\$111](#hardware-security-see-also).
+ Il modulo hardware deve essere risolvibile mediante l'etichetta dello slot, come definito nella specifica PKCS\$111.
+ La chiave privata deve essere generata e caricata nell'HSM con gli strumenti di provisioning del fornitore.
+ La chiave privata deve essere risolvibile mediante l'etichetta dell'oggetto.
+ Il certificato del dispositivo core. Si tratta di un certificato del client IoT corrispondente alla chiave privata.
+ Se si utilizza l'agente di aggiornamento OTA Greengrass, è necessario installare la libreria wrapper [OpenSSL libp11 PKCS](https://github.com/OpenSC/libp11) \$111. Per ulteriori informazioni, consulta [Configura il supporto per gli aggiornamenti over-the-air](#hardware-security-ota-updates).

Inoltre, assicurati che siano soddisfatte le seguenti condizioni:
+ I certificati client IoT associati alla chiave privata vengono registrati AWS IoT e attivati. Puoi verificarlo nella AWS IoT console sotto **Gestisci**, espandere **Tutti i dispositivi**, scegliere **Cose** e scegliere la scheda **Certificati** per l'elemento principale.
+ Il software AWS IoT Greengrass Core v1.7 o successivo viene installato sul dispositivo principale, come descritto nel [Modulo 2](module2.md) del tutorial Getting Started. È richiesta la versione 1.9 o successiva per utilizzare una chiave EC per il server MQTT.
+ I certificati sono collegati al core Greengrass. È possibile verificarlo dalla pagina **Gestisci** relativa all'elemento principale della AWS IoT console.

**Nota**  
Attualmente, AWS IoT Greengrass non supporta il caricamento del certificato CA o del certificato client IoT direttamente dall'HSM. I certificati devono essere caricati come file di testo normale nel file system in un percorso che sia leggibile da Greengrass.

## Configurazione di sicurezza hardware per un core AWS IoT Greengrass
<a name="configure-hardware-security"></a>

La sicurezza hardware viene configurata nel file di configurazione di Greengrass. Si tratta del file [`config.json`](gg-core.md#config-json), disponibile nella directory `/greengrass-root/config`.

**Nota**  
Per visualizzare il processo di impostazione della configurazione HSM tramite un'implementazione software, consulta [Modulo 7: simulazione dell'integrazione di sicurezza hardware](console-mod7.md).  
La configurazione simulata nell'esempio non fornisce alcun vantaggio dal punto di vista della sicurezza. Lo scopo di questo esempio è quello di fornire nozioni di base sulla specifica PKCS\$111 e di eseguire il test iniziale del software, se prevedi di utilizzare in futuro un HSM basato sull'hardware.

Per configurare la sicurezza hardware in AWS IoT Greengrass, è necessario modificare l'`crypto`oggetto in`config.json`.

Quando utilizzi la sicurezza hardware, l'oggetto `crypto` viene utilizzato per specificare i percorsi dei certificati, delle chiavi private e degli asset della libreria del provider PKCS\$111 nel core, come mostrato nell'esempio seguente.

```
"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"
```

L'oggetto `crypto` include le seguenti proprietà:


| Campo | Description | Note | 
| --- |--- |--- |
| caPath |  Il percorso assoluto verso la CA AWS IoT principale.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  Assicurati che gli [endpoint corrispondano al tipo di certificato](gg-core.md#certificate-endpoints).   | 
| `PKCS11` | 
| --- |
| OpenSSLEngine |  Opzionale. Il percorso assoluto del file `.so` del motore OpenSSL per abilitare il supporto PKCS\$111 su OpenSSL.  |  Deve essere un percorso di un file nel file system. Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta [Configura il supporto per gli aggiornamenti over-the-air](#hardware-security-ota-updates).  | 
| P11Provider |  Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS\$111.  |  Deve essere un percorso di un file nel file system.  | 
| slotLabel |  L'etichetta dello slot utilizzata per identificare il modulo hardware.  |  Deve essere conforme alle specifiche dell'etichetta PKCS\$111.  | 
| slotUserPin |  Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.  |  Deve disporre delle autorizzazioni sufficienti a eseguire C\$1Sign con le chiavi private configurate.  | 
| `principals` | 
| --- |
| IoTCertificate | Il certificato e la chiave privata che il core utilizza per effettuare le richieste a AWS IoT. | 
| IoTCertificate  .privateKeyPath  |  Il percorso della chiave privata del core.  |  Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto.  | 
| IoTCertificate  .certificatePath |  Il percorso assoluto al certificato del dispositivo core.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  | 
| MQTTServerCertificate |  Opzionale. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.  | 
| MQTTServerCertificate  .privateKeyPath |  Il percorso della chiave privata del server MQTT locale.  |  Utilizza questo valore per specificare la tua chiave privata del server MQTT locale. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.  | 
| SecretsManager | La chiave privata che protegge la chiave di dati utilizzata per la crittografia. Per ulteriori informazioni, consulta [Implementa i segreti fino al nucleo AWS IoT Greengrass](secrets.md). | 
| SecretsManager  .privateKeyPath |  Il percorso della chiave privata del Secrets Manager locale.  |  Solo una chiave RSA è supportata. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding [PKCS\$11 v1.5](https://tools.ietf.org/html/rfc2313).  | 


| Campo | Description | Note | 
| --- |--- |--- |
| caPath |  Il percorso assoluto verso la CA AWS IoT principale.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  Assicurati che gli [endpoint corrispondano al tipo di certificato](gg-core.md#certificate-endpoints).   | 
| `PKCS11` | 
| --- |
| OpenSSLEngine |  Opzionale. Il percorso assoluto del file `.so` del motore OpenSSL per abilitare il supporto PKCS\$111 su OpenSSL.  |  Deve essere un percorso di un file nel file system. Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta [Configura il supporto per gli aggiornamenti over-the-air](#hardware-security-ota-updates).  | 
| P11Provider |  Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS\$111.  |  Deve essere un percorso di un file nel file system.  | 
| slotLabel |  L'etichetta dello slot utilizzata per identificare il modulo hardware.  |  Deve essere conforme alle specifiche dell'etichetta PKCS\$111.  | 
| slotUserPin |  Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.  |  Deve disporre delle autorizzazioni sufficienti a eseguire C\$1Sign con le chiavi private configurate.  | 
| `principals` | 
| --- |
| IoTCertificate | Il certificato e la chiave privata che il core utilizza per effettuare le richieste a AWS IoT. | 
| IoTCertificate  .privateKeyPath  |  Il percorso della chiave privata del core.  |  Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto.  | 
| IoTCertificate  .certificatePath |  Il percorso assoluto al certificato del dispositivo core.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  | 
| MQTTServerCertificate |  Opzionale. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.  | 
| MQTTServerCertificate  .privateKeyPath |  Il percorso della chiave privata del server MQTT locale.  |  Utilizza questo valore per specificare la tua chiave privata del server MQTT locale. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.  | 
| SecretsManager | La chiave privata che protegge la chiave di dati utilizzata per la crittografia. Per ulteriori informazioni, consulta [Implementa i segreti fino al nucleo AWS IoT Greengrass](secrets.md). | 
| SecretsManager  .privateKeyPath |  Il percorso della chiave privata del Secrets Manager locale.  |  Solo una chiave RSA è supportata. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding [PKCS\$11 v1.5](https://tools.ietf.org/html/rfc2313).  | 


| Campo | Description | Note | 
| --- |--- |--- |
| caPath |  Il percorso assoluto verso la CA AWS IoT principale.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  Assicurati che gli [endpoint corrispondano al tipo di certificato](gg-core.md#certificate-endpoints).   | 
| `PKCS11` | 
| --- |
| OpenSSLEngine |  Opzionale. Il percorso assoluto del file `.so` del motore OpenSSL per abilitare il supporto PKCS\$111 su OpenSSL.  |  Deve essere un percorso di un file nel file system. Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta [Configura il supporto per gli aggiornamenti over-the-air](#hardware-security-ota-updates).  | 
| P11Provider |  Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS\$111.  |  Deve essere un percorso di un file nel file system.  | 
| slotLabel |  L'etichetta dello slot utilizzata per identificare il modulo hardware.  |  Deve essere conforme alle specifiche dell'etichetta PKCS\$111.  | 
| slotUserPin |  Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.  |  Deve disporre delle autorizzazioni sufficienti a eseguire C\$1Sign con le chiavi private configurate.  | 
| `principals` | 
| --- |
| IoTCertificate | Il certificato e la chiave privata che il core utilizza per effettuare le richieste a AWS IoT. | 
| IoTCertificate  .privateKeyPath  |  Il percorso della chiave privata del core.  |  Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto.  | 
| IoTCertificate  .certificatePath |  Il percorso assoluto al certificato del dispositivo core.  |  Deve essere un URI di file nel formato: `file:///absolute/path/to/file`.  | 
| MQTTServerCertificate |  Opzionale. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.  | 
| MQTTServerCertificate  .privateKeyPath |  Il percorso della chiave privata del server MQTT locale.  |  Utilizza questo valore per specificare la tua chiave privata del server MQTT locale. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.  | 
| SecretsManager | La chiave privata che protegge la chiave di dati utilizzata per la crittografia. Per ulteriori informazioni, consulta [Implementa i segreti fino al nucleo AWS IoT Greengrass](secrets.md). | 
| SecretsManager  .privateKeyPath |  Il percorso della chiave privata del Secrets Manager locale.  |  Solo una chiave RSA è supportata. Per lo storage di file system, deve essere un URI di file nel formato: `file:///absolute/path/to/file`. Per lo storage HSM, deve essere un percorso [PKCS\$111 RFC 7512](https://tools.ietf.org/html/rfc7512) che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding [PKCS\$11 v1.5](https://tools.ietf.org/html/rfc2313).  | 

## Pratiche di provisioning per la sicurezza dell'hardware AWS IoT Greengrass
<a name="optional-provisioning"></a>

Di seguito sono elencate le prassi di provisioning correlate alla sicurezza e alle prestazioni.

**Sicurezza**  
  
+ Generare chiavi private direttamente nell'HSM tramite il generatore di numeri casuali hardware interno.
**Nota**  
[Se configurate le chiavi private da utilizzare con questa funzionalità (seguendo le istruzioni fornite dal fornitore dell'hardware), tenete presente che AWS IoT Greengrass attualmente supporta solo il meccanismo di riempimento della versione PKCS1 1.5 per la crittografia e la decrittografia dei segreti locali.](secrets.md) AWS IoT Greengrass non supporta Optimal Asymmetric Encryption Padding (OAEP).
+ Configurare le chiavi private per impedire l'esportazione.
+ Utilizza lo strumento di provisioning fornito dal fornitore dell'hardware per generare una richiesta di firma del certificato (CSR) utilizzando la chiave privata protetta dall'hardware, quindi utilizza la console per generare un certificato client. AWS IoT 
La rotazione delle chiavi non si applica se le chiavi private vengono generate in un HSM.

**Prestazioni**  <a name="hsm-performance"></a>
Il diagramma seguente mostra il componente client IoT e il server MQTT locale sul AWS IoT Greengrass core. Se desideri utilizzare una configurazione HSM per entrambi i componenti, puoi utilizzare la stessa chiave privata o chiavi private separate. Se usi chiavi separate, devono essere memorizzate nello stesso slot.  
AWS IoT Greengrass non impone alcun limite al numero di chiavi archiviate sull'HSM, quindi è possibile archiviare le chiavi private per il client IoT, il server MQTT e i componenti del gestore dei segreti. Tuttavia, alcuni fornitori HSM potrebbero imporre limiti al numero di chiavi che è possibile memorizzare in uno slot.

![\[IoT client and MQTT server interacting with AWS IoT Greengrass Core and AWS IoT Core.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/multi-key-diagram.png)

In generale, la chiave client IoT non viene utilizzata molto frequentemente perché il software AWS IoT Greengrass Core mantiene connessioni durature al cloud. Tuttavia, la chiave del server MQTT viene utilizzata ogni volta che un dispositivo Greengrass si connette al core. Queste interazioni incidono direttamente sulle prestazioni.  
Quando la chiave del server MQTT è memorizzata nell'HSM, la velocità di connessione dei dispositivi dipende dal numero di operazioni di firma RSA al secondo che l'HSM è in grado di eseguire. Ad esempio, se l'HSM impiega 300 millisecondi per eseguire una firma RSASSA- PKCS1 -v1.5 su una chiave privata RSA-2048, solo tre dispositivi possono connettersi al core Greengrass al secondo. Dopo avere effettuato le connessioni, l'HSM non viene più utilizzato e vengono applicate le [quote per AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#limits_greengrass) standard.  
Per ridurre i colli di bottiglia delle prestazioni, puoi archiviare la chiave privata del server MQTT nel file system anziché nell'HSM. Con questa configurazione, il server MQTT si comporterà come se la sicurezza hardware non fosse abilitata.  
AWS IoT Greengrass supporta più configurazioni di archiviazione delle chiavi per il client IoT e i componenti del server MQTT, in modo da poter ottimizzare i requisiti di sicurezza e prestazioni. La tabella seguente include le configurazioni di esempio.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/hardware-security.html)
Per configurare il core Greengrass per l'utilizzo di chiavi basate sul file system per il server MQTT, omettete la `principals.MQTTServerCertificate` sezione da `config.json` (o specificate un percorso basato su file per la chiave se non utilizzate la chiave predefinita generata da). AWS IoT Greengrass L'oggetto `crypto` risultante avrà il seguente aspetto:  

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

## Suite di cifratura supportate per l'integrazione della sicurezza hardware
<a name="cipher-suites-for-hsm"></a>

AWS IoT Greengrass supporta una serie di suite di crittografia quando il core è configurato per la sicurezza hardware. Si tratta di un sottoinsieme delle suite di cifratura supportate quando il core è configurato per l'uso della sicurezza basata su file. Per ulteriori informazioni, consulta [Supporto TLS per le suite di cifratura](gg-sec.md#gg-cipher-suites).

**Nota**  
Quando ci si connette al core Greengrass dai dispositivi Greengrass sulla rete locale, assicurati di utilizzare una delle suite di cifratura supportate per effettuare la connessione TLS.

## Configura il supporto per gli aggiornamenti over-the-air
<a name="hardware-security-ota-updates"></a>

Per abilitare gli aggiornamenti over-the-air (OTA) del software AWS IoT Greengrass Core quando si utilizza la sicurezza hardware, è necessario installare la libreria [wrapper OpenSC libp11 PKCS](https://github.com/OpenSC/libp11) \$111 e modificare il file di configurazione Greengrass. Per ulteriori informazioni sugli aggiornamenti OTA, consulta [Aggiornamenti OTA del software AWS IoT Greengrass Core](core-ota-update.md).

1. Arrestare il daemon Greengrass.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```
**Nota**  
*greengrass-root*rappresenta il percorso in cui il software Core è installato sul dispositivo. AWS IoT Greengrass In genere, questa è la directory `/greengrass`.

1. Installare il motore OpenSSL. OpenSSL 1.0 o 1.1 sono supportati.

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

1. Individuare il percorso del motore OpenSSL (`libpkcs11.so`) nel sistema:

   1. Ottenere l'elenco dei pacchetti installati per la libreria.

      ```
      sudo dpkg -L libengine-pkcs11-openssl
      ```

      Il file `libpkcs11.so` è disponibile nella directory `engines`.

   1. Copiare il percorso completo del file (ad esempio, `/usr/lib/ssl/engines/libpkcs11.so`).

1. Aprire il file di configurazione Greengrass. Si tratta del file [`config.json`](gg-core.md#config-json) nella directory `/greengrass-root/config`.

1. Per la proprietà `OpenSSLEngine`, immettere il percorso del file `libpkcs11.so`.

   ```
   {
    "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"
       },
       ...
     }
     ...
   }
   ```
**Nota**  
Aggiungere la proprietà `OpenSSLEngine`, se non esiste nell'oggetto `PKCS11`.

1. Avviare il daemon Greengrass.

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

## Retrocompatibilità con le versioni precedenti del software AWS IoT Greengrass principale
<a name="hardware-security-backward-compatibiity"></a>

Il software AWS IoT Greengrass Core con supporto per la sicurezza hardware è completamente retrocompatibile con `config.json` i file generati per la versione 1.6 e versioni precedenti. Se l'`crypto`oggetto non è presente nel file di `config.json` configurazione, AWS IoT Greengrass utilizza le proprietà e basate sul file`coreThing.certPath`. `coreThing.keyPath` `coreThing.caPath` Questa compatibilità con le versioni precedenti si applica agli aggiornamenti Greengrass OTA, che non sovrascrive una configurazione basata su file specificata in `config.json`.

## Hardware senza supporto PKCS\$111
<a name="hardware-without-pkcs11"></a>

La libreria PKCS\$111 viene in genere offerta dal fornitore hardware o è open source. Ad esempio, con hardware conforme agli standard (ad esempio TPM1 .2), potrebbe essere possibile utilizzare il software open source esistente. Tuttavia, se il tuo hardware non dispone di un'implementazione della libreria PKCS \$111 corrispondente o se desideri scrivere un provider PKCS \$111 personalizzato, contatta il tuo rappresentante Enterprise AWS Support per domande relative all'integrazione.

## Consulta anche
<a name="hardware-security-see-also"></a>
+ *PKCS \$111 Cryptographic Token Interface Usage Guide Version 2.40*. Pubblicato da John Leiseboer e Robert Griffin. 16 Novembre 2014. Nota 02 del Comitato OASIS. [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). [Ultima versione: 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 \$11: RSA Encryption versione 1.5](https://tools.ietf.org/html/rfc2313)