Creo que tiene más sentido en el contexto de cuánta información adicional se está entregando, en lugar de lo fácil que sería hacer fuerza bruta a los dígitos restantes.
Un PAN no es completamente un valor aleatorio, se compone de:
- un Número de Identificación de Emisor (IIN) de seis dígitos (anteriormente denominado "Número de Identificación del Banco" (BIN)) cuyo primer dígito es
el identificador principal de la industria (MII),
- un identificador de cuenta individual de longitud variable (hasta 12 dígitos)
- un solo dígito de verificación calculado utilizando el algoritmo de Luhn
enlace
Por lo tanto, utilizando esta información:
La base de datos de mi empresa me proporciona nombre, dirección, tipo de tarjeta,
PAN truncado y fecha de caducidad de la tarjeta / titular
Probablemente podría reducir los primeros 6 dígitos con bastante facilidad a un pequeño conjunto de posibilidades.
Eso solo deja los últimos 4 dígitos, uno de los cuales es un dígito de control y, por lo tanto, no contiene ninguna entropía adicional.
Básicamente, solo estás regalando 3 dígitos, incluso si los 10 que están permitidos están expuestos.
esto deja solo 100,000 números de tarjeta a fuerza bruta para obtener
el que quiero
Supongo que sería bastante difícil ejecutar un ataque de fuerza bruta como la mayoría de los procesadores de pagos lo bloquearían muy rápidamente.
PCI DSS también dice:
Nota: Es un esfuerzo relativamente trivial para una persona maliciosa
reconstruir datos PAN originales si tienen acceso tanto a la
Versión truncada y hash de un PAN. Donde hash y truncado
versiones del mismo PAN están presentes en el entorno de una entidad,
Deben existir controles adicionales para garantizar que el hash y
Las versiones truncadas no se pueden correlacionar para reconstruir el original
PAN.
Lo que debería evitar que el atacante realice un ataque de fuerza bruta sin conexión.
Además, estos son los requisitos mínimos. Establece en principio 7 que:
Requisito 7: restringir el acceso a los datos del titular de la tarjeta por la necesidad comercial
saber
Me imagino que mostrar los 10 dígitos permitidos a los clientes quedaría fuera de "necesidad de saber". Quizás los últimos 4 sean necesarios para identificar qué tarjeta es cuál, pero la mayoría de los usuarios no necesitarían saber los primeros 6, excepto tal vez para ver qué tipo de tarjeta es.