# Modulo di sicurezza hardware

Un modulo di sicurezza hardware (in inglese Hardware Security Module, HSM) è un dispositivo informatico fisico che salvaguarda e gestisce i segreti (soprattutto le chiavi digitali), esegue funzioni di crittografia per le firme digitali e altre funzioni crittografiche. Questi moduli si presentano solitamente sotto forma di scheda plug-in o di dispositivo esterno che si collega direttamente a un computer o simili dispositivi. Un modulo di sicurezza hardware contiene uno o più chip cryptoprocessor.

## Usi

Un modulo di sicurezza hardware può essere impiegato in qualsiasi applicazione che utilizzi chiavi digitali. Solitamente gli HSM vengono utilizzati quando le chiavi sono di importanza elevata.
Le funzioni di un HSM sono solitamente:
* generazione di chiavi crittografiche sicure
* archiviazione sicura delle chiavi crittografiche, almeno per le chiavi di livello superiore e più sensibili, spesso chiamate chiavi master
* gestione delle chiavi
* utilizzo di materiale crittografico e di dati sensibili, ad esempio l'esecuzione di funzioni di decrittografia o firma digitale
* alleggerimento dei server dalle applicazioni crittografiche asimmetriche e simmetriche.

### Ambiente PKI (HSM per Certificate Authority)

Negli ambienti basati su infrastruttura a chiave pubblica, gli HSM possono essere utilizzati dalle autorità di certificazione (CA) e dalle autorità di registrazione (RA) per generare, archiviare e gestire coppie di chiavi asimmetriche.
In questi casi ci sono alcune caratteristiche fondamentali che un tale dispositivo deve avere e cioè:
* Protezione logica e fisica di alto livello
* Schema di autorizzazione utente in più parti (vedi divisione segreti)
* Revisione completa e registro chiamate
* Backup sicuro delle chiavi
D'altro canto, le prestazioni dei dispositivi in un ambiente PKI sono solitamente meno importanti, sia nelle operazioni online che offline, in quanto le procedure delle autorità di registrazione rappresentano il collo di bottiglia prestazionale dell’infrastruttura.

### HSM per sistemi di pagamento con carta (HSM bancari)

Gli HSM specializzati vengono inoltre utilizzati nel settore delle carte di pagamento. Gli HSM supportano sia funzioni generiche che funzioni specializzate necessarie per firmare le transazioni ed ottemperare agli standard di settore. Normalmente non dispongono di un'API standard.
Tipiche applicazioni sono l'autorizzazione delle transazioni e la verifica delle carte di pagamento, che richiedono funzioni quali:
* verificare che il PIN immesso dall'utente corrisponda al PIN di riferimento noto all'emittente della carta
* verificare le transazioni con carta di credito/debito controllando i codici di sicurezza della carta o eseguendo componenti di elaborazione host di una transazione basata su EMV insieme a un controller ATM o un terminale POS
* supportare una cripto-API con una smart card (come un EMV )
* crittografare nuovamente un blocco PIN per inviarlo a un altro host di autorizzazione
* eseguire una gestione sicura delle chiavi
* supportare un protocollo di gestione della rete POS ATM
* supportare gli standard de facto della chiave host-host | API di scambio dati
* generare e stampare un "mailer PIN"
* generare dati per una carta a banda magnetica (PVV, CVV )
* generare un set di chiavi per carte e supportare il processo di personalizzazione per le smart card

### Creazione della connessione SSL

Le applicazioni critiche per le prestazioni che devono utilizzare HTTPS (SSL/TLS) possono trarre vantaggio dall'uso di un HSM per l'accelerazione SSL spostando le operazioni RSA, che in genere richiedono svariate moltiplicazioni di numeri interi di grandi dimensioni, dalla CPU del server al dispositivo HSM. Un tipico dispositivo HSM può eseguire da 1 a 10.000 operazioni RSA a 1024bit al secondo. Alcune prestazioni con dimensioni chiave più lunghe stanno diventando sempre più importanti. Per risolvere questo problema, alcuni HSM ora supportano ECC. I dispositivi HSM specializzati possono raggiungere numeri fino a 20.000 operazioni al secondo.

### DNSSEC

Un numero crescente di registrar utilizza gli HSM per archiviare il materiale della chiave utilizzato per firmare zonefile di grandi dimensioni. OpenDNSSEC è uno strumento open source che gestisce la firma degli zonefile DNS.
Il 27 gennaio 2007, ICANN e Verisign, con il supporto del Dipartimento del Commercio degli Stati Uniti, hanno iniziato a implementare DNSSEC per le zone root DNS. I dettagli della firma root possono essere trovati sul sito web di root-dnssec.

### Portafoglio per criptovalute

Le chiavi private di criptovalute possono essere archiviate in un portafoglio per criptovalute su un HSM.