# AWS - CloudHSM Enum

{{#include ../../../banners/hacktricks-training.md}}

## HSM - Hardware Security Module

Cloud HSM è un **dispositivo hardware** validato FIPS 140 livello due per la memorizzazione sicura delle chiavi crittografiche (nota che CloudHSM è un appliance hardware, non è un servizio virtualizzato). È un appliance SafeNetLuna 7000 con 5.3.13 preinstallato. Ci sono due versioni del firmware e quale scegliere dipende davvero dalle tue esigenze specifiche. Una è per la conformità FIPS 140-2 e c'era una versione più recente che può essere utilizzata.

La caratteristica insolita di CloudHSM è che è un dispositivo fisico, e quindi **non è condiviso con altri clienti**, o come viene comunemente definito, multi-tenant. È un appliance dedicato a un singolo tenant esclusivamente reso disponibile per i tuoi carichi di lavoro.

Tipicamente, un dispositivo è disponibile entro 15 minuti, assumendo che ci sia capacità, ma in alcune zone potrebbe non esserci.

Poiché questo è un dispositivo fisico dedicato a te, **le chiavi sono memorizzate sul dispositivo**. Le chiavi devono essere **replicate su un altro dispositivo**, salvate su uno storage offline, o esportate su un appliance di riserva. **Questo dispositivo non è supportato** da S3 o da qualsiasi altro servizio di AWS come KMS.

In **CloudHSM**, devi **scalare il servizio da solo**. Devi fornire un numero sufficiente di dispositivi CloudHSM per gestire le tue esigenze di crittografia in base agli algoritmi di crittografia che hai scelto di implementare per la tua soluzione.\
La scalabilità del Key Management Service è gestita da AWS e si scala automaticamente su richiesta, quindi man mano che il tuo utilizzo cresce, potrebbe crescere anche il numero di appliance CloudHSM richieste. Tieni presente questo mentre scaldi la tua soluzione e se la tua soluzione ha auto-scaling, assicurati che la tua scala massima sia contabilizzata con un numero sufficiente di appliance CloudHSM per servire la soluzione.

Proprio come la scalabilità, **le prestazioni dipendono da te con CloudHSM**. Le prestazioni variano in base all'algoritmo di crittografia utilizzato e a quanto spesso hai bisogno di accedere o recuperare le chiavi per crittografare i dati. Le prestazioni del servizio di gestione delle chiavi sono gestite da Amazon e si scalano automaticamente in base alla domanda. Le prestazioni di CloudHSM si ottengono aggiungendo più appliance e se hai bisogno di più prestazioni, devi aggiungere dispositivi o modificare il metodo di crittografia all'algoritmo più veloce.

Se la tua soluzione è **multi-region**, dovresti aggiungere diverse **appliance CloudHSM nella seconda regione e risolvere la connettività cross-region con una connessione VPN privata** o qualche metodo per garantire che il traffico sia sempre protetto tra l'appliance a ogni livello della connessione. Se hai una soluzione multi-region, devi pensare a come **replicare le chiavi e impostare ulteriori dispositivi CloudHSM nelle regioni in cui operi**. Puoi rapidamente trovarti in uno scenario in cui hai sei o otto dispositivi distribuiti su più regioni, abilitando la piena ridondanza delle tue chiavi di crittografia.

**CloudHSM** è un servizio di classe enterprise per la memorizzazione sicura delle chiavi e può essere utilizzato come **root di fiducia per un'impresa**. Può memorizzare chiavi private in PKI e chiavi di autorità di certificazione in implementazioni X509. Oltre alle chiavi simmetriche utilizzate in algoritmi simmetrici come AES, **KMS memorizza e protegge fisicamente solo le chiavi simmetriche (non può agire come autorità di certificazione)**, quindi se hai bisogno di memorizzare chiavi PKI e CA, un CloudHSM o due o tre potrebbero essere la tua soluzione.

**CloudHSM è considerevolmente più costoso del Key Management Service**. CloudHSM è un appliance hardware, quindi hai costi fissi per fornire il dispositivo CloudHSM, poi un costo orario per eseguire l'appliance. Il costo è moltiplicato per quante più appliance CloudHSM sono necessarie per soddisfare i tuoi requisiti specifici.\
Inoltre, deve essere fatta una considerazione incrociata nell'acquisto di software di terze parti come le suite software SafeNet ProtectV e il tempo e lo sforzo di integrazione. Il Key Management Service è basato sull'uso e dipende dal numero di chiavi che hai e dalle operazioni di input e output. Poiché la gestione delle chiavi fornisce integrazione senza soluzione di continuità con molti servizi AWS, i costi di integrazione dovrebbero essere significativamente inferiori. I costi dovrebbero essere considerati un fattore secondario nelle soluzioni di crittografia. La crittografia è tipicamente utilizzata per la sicurezza e la conformità.

**Con CloudHSM solo tu hai accesso alle chiavi** e senza entrare troppo nei dettagli, con CloudHSM gestisci le tue chiavi. **Con KMS, tu e Amazon co-gestite le vostre chiavi**. AWS ha molte salvaguardie politiche contro gli abusi e **non può comunque accedere alle tue chiavi in nessuna delle due soluzioni**. La principale distinzione è la conformità in relazione alla proprietà e gestione delle chiavi, e con CloudHSM, questo è un appliance hardware che gestisci e mantieni con accesso esclusivo a te e solo a te.

### Suggerimenti CloudHSM

1. Distribuisci sempre CloudHSM in un **setup HA** con almeno due appliance in **zone di disponibilità separate**, e se possibile, distribuisci una terza sia in sede che in un'altra regione di AWS.
2. Fai attenzione quando **inizializzi** un **CloudHSM**. Questa azione **distruggerà le chiavi**, quindi o hai un'altra copia delle chiavi o sii assolutamente certo di non averne bisogno e di non averne mai, mai bisogno per decrittografare dati.
3. CloudHSM supporta solo **determinate versioni di firmware** e software. Prima di eseguire qualsiasi aggiornamento, assicurati che il firmware e/o il software siano supportati da AWS. Puoi sempre contattare il supporto AWS per verificare se la guida all'aggiornamento non è chiara.
4. La **configurazione di rete non dovrebbe mai essere cambiata.** Ricorda, è in un data center AWS e AWS monitora l'hardware di base per te. Questo significa che se l'hardware fallisce, lo sostituiranno per te, ma solo se sanno che è fallito.
5. Il **SysLog forward non dovrebbe essere rimosso o cambiato**. Puoi sempre **aggiungere** un forwarder SysLog per indirizzare i log al tuo strumento di raccolta.
6. La configurazione **SNMP** ha le stesse restrizioni di base della rete e della cartella SysLog. Questa **non dovrebbe essere cambiata o rimossa**. Una configurazione SNMP **aggiuntiva** va bene, assicurati solo di non cambiare quella già presente sull'appliance.
7. Un'altra interessante best practice di AWS è **non cambiare la configurazione NTP**. Non è chiaro cosa accadrebbe se lo facessi, quindi tieni presente che se non utilizzi la stessa configurazione NTP per il resto della tua soluzione, potresti avere due fonti di tempo. Fai attenzione a questo e sappi che il CloudHSM deve rimanere con la fonte NTP esistente.

Il costo iniziale per il lancio di CloudHSM è di $5,000 per allocare l'appliance hardware dedicata al tuo uso, poi c'è un costo orario associato all'esecuzione di CloudHSM che attualmente è di $1.88 all'ora di operazione, o circa $1,373 al mese.

Il motivo più comune per utilizzare CloudHSM sono gli standard di conformità che devi soddisfare per motivi normativi. **KMS non offre supporto per dati con chiavi asimmetriche. CloudHSM ti consente di memorizzare chiavi asimmetriche in modo sicuro**.

La **chiave pubblica è installata sull'appliance HSM durante la fornitura** in modo da poter accedere all'istanza CloudHSM tramite SSH.

### Cos'è un Modulo di Sicurezza Hardware

Un modulo di sicurezza hardware (HSM) è un dispositivo crittografico dedicato utilizzato per generare, memorizzare e gestire chiavi crittografiche e proteggere dati sensibili. È progettato per fornire un alto livello di sicurezza isolando fisicamente ed elettronicamente le funzioni crittografiche dal resto del sistema.

Il modo in cui funziona un HSM può variare a seconda del modello specifico e del produttore, ma generalmente si verificano i seguenti passaggi:

1. **Generazione di chiavi**: L'HSM genera una chiave crittografica casuale utilizzando un generatore di numeri casuali sicuro.
2. **Memorizzazione delle chiavi**: La chiave è **memorizzata in modo sicuro all'interno dell'HSM, dove può essere accessibile solo da utenti o processi autorizzati**.
3. **Gestione delle chiavi**: L'HSM fornisce una gamma di funzioni di gestione delle chiavi, inclusi rotazione, backup e revoca delle chiavi.
4. **Operazioni crittografiche**: L'HSM esegue una serie di operazioni crittografiche, inclusi crittografia, decrittografia, firma digitale e scambio di chiavi. Queste operazioni sono **eseguite all'interno dell'ambiente sicuro dell'HSM**, che protegge contro accessi non autorizzati e manomissioni.
5. **Audit logging**: L'HSM registra tutte le operazioni crittografiche e i tentativi di accesso, che possono essere utilizzati per scopi di conformità e auditing della sicurezza.

Gli HSM possono essere utilizzati per una vasta gamma di applicazioni, incluse transazioni online sicure, certificati digitali, comunicazioni sicure e crittografia dei dati. Sono spesso utilizzati in settori che richiedono un alto livello di sicurezza, come finanza, sanità e governo.

In generale, l'alto livello di sicurezza fornito dagli HSM rende **molto difficile estrarre chiavi grezze da essi, e tentare di farlo è spesso considerato una violazione della sicurezza**. Tuttavia, potrebbero esserci **alcuni scenari** in cui una **chiave grezza potrebbe essere estratta** da personale autorizzato per scopi specifici, come nel caso di una procedura di recupero delle chiavi.

### Enumerazione
```
TODO
```
{{#include ../../../banners/hacktricks-training.md}}
