Se me ha pedido que implemente una página en la que un usuario pueda desbloquear su cuenta mediante el número de tarjeta de crédito y la validación del PIN + algún otro método (por ejemplo, SMS OTP) en un proceso de dos pasos.
El flujo sugiere validar el número CC y el PIN primero y luego hacer la validación de SMS OTP.
Para evitar el abuso de los recursos de back-end y el posible bloqueo de PIN a escala, una idea es:
- Haga que la primera página capture el número CC y el PIN
- Utilice solo el número CC para encontrar al usuario
- Envía un SMS OTP a su móvil
- Si SMS OTP verifica, entonces validará el número CC y el PIN
Por lo tanto, el número CC y el PIN se mantendrán en la memoria (sesión HTTP) desde el momento en que el usuario los ingresó en la primera página hasta que reciba y envíe la OTP en la segunda página (algunos minutos, supongo).
¿Eso viola alguna regla de PCI? ¿Especialmente la parte "mantener el PIN en la memoria"?
Requisitos de seguridad del PIN, versión 2.0 , lee:
Requisito 4 : los PIN no deben almacenarse, excepto como parte de una transacción de almacenamiento y reenvío, y solo durante el tiempo mínimo necesario. Si un la transacción se registra, el bloqueo del PIN cifrado debe enmascararse o eliminarse del registro antes de que se registre.
y justo debajo:
Las transacciones pueden almacenarse y reenviarse bajo ciertas condiciones, ISO 9564
Verifiqué una versión anterior de ISO 9564-1 pero no encontré nada con respecto a almacenar y enviar. ¿Alguien tiene alguna idea sobre las condiciones bajo las cuales se permite almacenar y enviar?
Además, ¿el hecho de mantener el PIN en la memoria durante un breve período de tiempo se califica como "tienda"?