Mi è stato chiesto di implementare una pagina in cui un utente può sbloccare il suo account tramite numero di carta di credito e validazione PIN + qualche altro metodo (ad es. SMS OTP) in un processo in due fasi.
Il flusso suggerisce di convalidare prima il numero CC e il PIN e quindi eseguire la convalida SMS OTP.
Per prevenire l'abuso di risorse di back-end e l'eventuale blocco del PIN su larga scala, un'idea è:
- La prima pagina acquisisce il numero CC e il PIN
- Utilizza solo il numero CC per trovare l'utente
- Invia un OTP SMS al suo cellulare
- Se SMS OTP verifica, quindi convalida numero CC e PIN
Quindi, il numero CC e il PIN verranno conservati in memoria (sessione HTTP) dal momento in cui l'utente li ha immessi nella prima pagina finché non riceve e invia l'OTP nella seconda pagina (alcuni minuti, immagino).
Violare regole PCI? Soprattutto la parte "mantieni il PIN in memoria"?
Requisiti di sicurezza PIN, versione 2.0 , legge:
Requirement 4: PINs must not be stored except as part of a store-and-forward transaction, and only for the minimum time necessary. If a transaction is logged, the encrypted PIN block must be masked or deleted from the record before it is logged.
e subito sotto:
Transactions may be stored and forwarded under certain conditions - ISO 9564
Ho controllato una versione precedente di ISO 9564-1 ma non ho trovato nulla per quanto riguarda l'archiviazione e l'inoltro. Qualcuno ha qualche informazione sulle condizioni in base alle quali sono consentiti store and forward?
Inoltre, mantenere il PIN in memoria per un breve periodo di tempo si qualifica anche come "negozio"?