"L'hashing con un sale segreto" è un termine improprio, perché non è un hashing, e neanche questo è un sale.
Nella crittografia, qualcosa che è segreto è chiamato un tasto . L'hash non usa alcuna chiave; una sorta di hash che utilizza una chiave e richiede che la chiave da verificare sia chiamata MAC . Un MAC non è necessariamente un "hash con chiave" e l'inserimento di una chiave in una funzione hash non comporta necessariamente un buon MAC. Tuttavia, è possibile prendere una funzione di hash e trasformarla in un MAC sicuro, e questo è HMAC .
HMAC è un MAC sicuro: puoi usare lo stesso tasto per MACare molti elementi senza effetti negativi. Se non fosse possibile, l'algoritmo MAC sarebbe ritenuto molto debole; ma HMAC è considerato sicuro. HMAC ha anche la proprietà molto bella di non richiedere un IV, quindi è abbastanza difficile sbagliarlo.
Ovviamente un MAC non è necessariamente lo strumento giusto per il problema in questione. Apparentemente, le persone vogliono trasformare i numeri PAN in "qualcosa di illeggibile". Tuttavia, la soluzione più semplice (semplicemente non memorizzare affatto il PAN) sembra non essere popolare, quindi si deve supporre che le persone che "cancellano" il PAN vogliano ancora ottenere qualcosa da esso.
Ci sono due casi d'uso principali:
- Il PAN viene sottoposto a hashing in modo che un'ulteriore presentazione dello stesso PAN possa essere verificata in modo che corrisponda al valore memorizzato.
- Il PAN può essere ripristinato dal valore memorizzato, salvo conoscenza di alcuni segreti.
Un MAC sarebbe appropriato per il primo utilizzo; se il MAC usa un IV (es. come CBC-MAC, ma a differenza di HMAC), allora anche l'IV deve essere memorizzato, e quello avrà requisiti aggiuntivi (in genere, per essere distinti per ogni istanza di utilizzo, o anche in modo casuale casuale) , che offre ampio spazio per i guasti critici. HMAC è quindi altamente raccomandato.
Per il secondo caso d'uso, hai bisogno di crittografia (simmetrica o asimmetrica, a seconda del contesto).