Attualmente sto ricercando le migliori pratiche nella progettazione di una potenziale soluzione di gestione PIN per un'applicazione di servizi finanziari e ho iniziato a esaminare ISO 9564 come fonte di requisiti.
Una delle cose che mi è venuta in mente durante la lettura di questo è che sotto la sezione per gli algoritmi di crittografia approvati elencano:
- Triple DES (debole crittografia simmetrica a blocchi)
- AES (codice a blocchi simmetrico)
- RSA (cryptosystem asimmetrico)
Mi chiedevo immediatamente se ci sarebbe stato un caso d'uso legittimo per aver bisogno di decodificare direttamente il testo cifrato di un PIN. Altri requisiti dello standard ISO qui affermano che se il PIN viene dimenticato o potenzialmente compromesso, è necessario emettere un nuovo PIN.
La domanda che mi brucia nella mente (che probabilmente ha una risposta molto ovvia che al momento mi sfugge) è perché la norma non dovrebbe raccomandare un hash crittografico? Perché la convalida di un tentativo di inserimento di PIN non può essere eseguita nello stesso modo in cui è comunemente intesa come best practice per la gestione delle password? Il sale in questo caso sarebbe il numero di conto del cliente che è XOR inserito nel PIN stesso comunque. Cosa mi manca qui?