Sto facendo ricerche su un progetto che utilizza la crittografia. È un'applicazione .net con chiavi memorizzate in un database SQL Server. Per la crittografia, il progetto utilizza un modulo di sicurezza hardware simile a quello descritto nell'articolo wikipedia collegato.
Vorrei capire i vantaggi dell'utilizzo di un dispositivo HSM invece di eseguire crittografia / decrittografia / firma / verifica e generazione di chiavi nel codice .net utilizzando "implementazione standard" come quella trovata in .net BCL. Stiamo parlando di RSA / DES qui.
Capirei se le chiavi fossero memorizzate all'interno del dispositivo, ma sto cercando di capire i vantaggi se le chiavi sono memorizzate altrove. Certo, si può essere sicuri che l'algoritmo di crittografia non venga manomesso, ma se si tratta di manomissioni si ha paura che ci sia un sacco di altro codice che lavora con i dati prima che venga crittografato / dopo essere decodificato che può essere manomesso, e questo si può dire su quasi tutti i progetti che penso.
Una possibile ragione che posso immaginare è la performance, se l'applicazione fa un sacco di crittografia, tuttavia non so se questo è il caso del progetto. Quindi quali potrebbero essere altri vantaggi?