¿Cómo es seguro el truncamiento de acuerdo con PCI DSS?

4

En la sección 3.3 de PCI standard , dice que cuando se muestran los PAN, se limita la visibilidad a los primeros 6 y los últimos 4 dígitos del PAN se consideran seguros. Haciendo algunos cálculos rápidos, en un PAN de 16 dígitos, teniendo en cuenta el requisito de suma de comprobación, esto deja solo 100,000 números de tarjeta a fuerza bruta para obtener el que quiero.

Si también se proporcionara un hash, esto sería estúpidamente fácil de descifrar, pero ¿qué me impide hacer spam en algún sitio de comercio electrónico con un script hasta que me diga que tengo razón? Eso tampoco debería llevar mucho tiempo. Sé que tener que adivinar el código de seguridad de 3 dígitos me llevará a 100 millones de adivinanzas, pero no todos usan este código.

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, y esto parece mucha información para un ataque (al menos ingeniería social). Si estoy leyendo el estándar PCI correctamente, esto también cumple con esto.

¿Qué me estoy perdiendo?

Estoy usando esta tabla práctica (página 2) para referencia rapida

    
pregunta Jemmy 08.05.2015 - 00:32
fuente

3 respuestas

3

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.

    
respondido por el thexacre 08.05.2015 - 05:48
fuente
1

Mejor conjetura, versión corta:

  1. Está enraizado en las prácticas físicas y se ha mantenido en la práctica digital
  2. No es significativamente diferente de la adivinación de fuerza bruta sin ella

Razonamiento :

Históricamente, los números truncados se imprimen en los recibos porque proporcionan información suficiente para permitir la identificación de las devoluciones de cargo en una devolución o reembolso. Para los comerciantes de tarjetas físicas, es posible que no tengan una base de datos tan sofisticada como los comerciantes de comercio electrónico. Sin esa información en el recibo, es más difícil hacer coincidir la transacción.

Tenga en cuenta que el primer 6 es el número IIN (también conocido como BIN) , todos los cuales son < a href="http://www.binlist.net/"> well conocido . Si alguien quiere forzar una tarjeta con fuerza bruta, puede seleccionar un BIN y con eso conocerá la marca de la tarjeta. Forzar con fuerza los 10 restantes (sin datos truncados para proporcionar los últimos 4) es más difícil que los 6 restantes (si tiene el número truncado) pero no es una gran diferencia.

Dicho de otra manera ... en términos matemáticos, forzar una tarjeta llena con fuerza bruta es relativamente trivial, con una complejidad de 10 ^ 10 (10 dígitos, 10 lugares, más 6 BIN ya conocidos). Dejarlo caer a 10 ^ 6 es significativo pero no conmovedor; ambos son mucho más fáciles que una contraseña alfanumérica de 8 dígitos en 26 ^ 8. Pero:

Finalmente, la fuerza bruta no está fuera de línea. No puede hacer fuerza bruta en el vacío, tiene que bombear sus intentos de transacción a través de un comerciante, un procesador y la marca de la tarjeta. Todos los cuales tienen algún grado de comprobación de ataques de fuerza bruta. Es justo decir que las marcas de tarjetas son sofisticadas en su análisis y capacidad para reaccionar ante ataques de fuerza bruta. Los comerciantes no lo estarán tanto, sino que estarán más motivados simplemente porque se les cobra por los intentos fallidos de autorización, por lo que un ataque de fuerza bruta aumenta su factura.

¿Sería mejor requerir cifrado o hash? Por supuesto. Pero, ver # 1. Las prácticas heredadas pueden persistir si no se rompen por completo.

Descargo de responsabilidad :

Hay muchas conjeturas en esta respuesta, basadas en datos de conocimiento y lógica razonable. Estoy muy interesado en ver a alguien que ofrezca una mejor respuesta basada en un conocimiento más completo.

    
respondido por el gowenfawr 08.05.2015 - 05:53
fuente
0

Las otras publicaciones hicieron el punto conciso de decir que los procesadores deberían excluirte rápidamente si los envías con intentos de autenticación, por lo que es dudoso que hagas muchos progresos allí.

  

Si también se proporcionara un hash, esto sería estúpidamente fácil de descifrar

Si por hash te refieres a la salida de un PAN hash, entonces depende del algoritmo empleado. Considere un algoritmo que usa un factor de trabajo basado en el tiempo (bcrypt, scrypt, pbkdf2) con un tiempo de cálculo de aproximadamente 0,5 segundos. De las 100k salidas posibles, digamos que se necesitan 50k intentos para coincidir con una. Eso llega a unas 17 horas para hacer un partido. Y si se usó la salazón adecuada, solo obtienes la llave para una tarjeta y debes comenzar de nuevo para la siguiente.

    
respondido por el Matthew Allen 19.05.2015 - 21:43
fuente

Lea otras preguntas en las etiquetas