¿Cómo puede una tarjeta de débito proporcionar respuestas diferentes cuando se le envía el mismo desafío varias veces?

1

Solo realizo operaciones bancarias con mi tarjeta de débito "PostFinance". El protocolo de inicio de sesión funciona así:

  1. Introduzca el nombre de usuario y la contraseña en el formulario web.
  2. Obtenga un número de desafío de 9 dígitos en el sitio web.
  3. Escriba el número de desafío en un lector de tarjetas independiente sin conexión con la tarjeta de débito insertada.
  4. Introduzca el PIN en el lector de tarjetas.
  5. Obtenga un número de 9 dígitos de la respuesta del lector de tarjetas.
  6. Escriba el número de respuesta en el formulario web.

Supuse que era una especie de criptografía asimétrica, con la tarjeta que contenía una clave privada desbloqueada con el pin, "firmando" el número del desafío y el banco verificando la firma con una clave "pública" (que no es realmente pública).

Pero luego me estaba preguntando qué sería lo primero que un atacante / investigador de seguridad intentaría e ingresó al desafío "1" varias veces. La respuesta fue diferente cada vez:

Los primeros 3 dígitos se unen para aumentar monótonamente en pequeños pasos (~ 10 muestras). Los otros 6 dígitos no seguían un patrón que recogí, es decir, parecían aleatorios.

¿Alguien sabe cómo funciona esto?

    
pregunta Nobody 20.07.2017 - 22:13
fuente

1 respuesta

1

Lo más probable es que haya un contador involucrado (o incluso mejor, si la tarjeta o el lector están equipados con un reloj y una batería internos, una marca de tiempo).

La clave secreta involucrada aquí puede ser simétrica o asimétrica, no creo que esto cambie nada aquí (no hay un requisito para que el banco no sepa este secreto).

Sin embargo, mientras se preguntaba, el uso de esta clave secreta para codificar directamente el desafío permitiría a un atacante generar un montón de respuestas por adelantado, o anotar la respuesta del desafío que recibió e intentar reproducirlo para obtener otro. pago que acepta el mismo desafío aceptado.

El objetivo aquí es garantizar que, incluso con el mismo desafío, la respuesta correcta siempre debe ser diferente. Para esto, agregará un contador (la solución barata) o una marca de tiempo (la más confiable, ya que permite que la respuesta caduque) al desafío antes de aplicar la clave secreta para generar la respuesta.

En el lado del servidor:

  • Si se usa un contador, se asegura de que la respuesta que proporcione tenga un contador estrictamente mayor que la respuesta anterior que proporcionó, ya sea para el mismo pago o para un pago anterior. Si sucede que su respuesta parece válida pero tiene un contador más pequeño, es probable que esto signifique que esta respuesta se ha repetido y que algo sospechoso está sucediendo con su tarjeta (algunos eventos como este y puede recibir una notificación de su banco, dependiendo de su nivel de servicio).
  • Si se usa una marca de tiempo, el servidor simplemente debe verificar que la respuesta se haya generado después de que se haya enviado el desafío para garantizar que no haya un intento de repetición.
respondido por el WhiteWinterWolf 20.07.2017 - 22:37
fuente

Lea otras preguntas en las etiquetas