protocolo U2F - Valor de contador y clonación de dispositivos

2

Mi pregunta es sobre el protocolo U2F y, más precisamente, sobre la detección de la clonación. Según el documento:

" Si existe la posibilidad de que se pueda clonar un token U2F, también necesitamos alguna forma de detectarlo. Podemos hacerlo teniendo un contador de operaciones. Cada vez que se realiza una operación criptográfica, el contador aumenta. por 1. El valor del contador se firma y se envía como parte de la respuesta a la parte que confía, que almacena el valor del contador en su base de datos. Si el valor del contador en una respuesta de autenticación futura es menor que el valor del contador almacenado por la parte de confianza, entonces el token se ha clonado, y la parte de confianza debe rechazar la solicitud de autenticación. Probablemente también debería registrar la ocurrencia del evento y / o realizar las acciones necesarias para proteger al usuario, por ejemplo, bloqueando el token de futuros intentos de autenticación. / em> "

¿Por qué el valor del contador en una respuesta de autenticación futura sería menor que el valor del contador almacenado por una parte de confianza? Si un atacante ha clonado el dispositivo, tiene acceso al valor de contador actual almacenado en el dispositivo original, ¿no es así? Luego podría enviar un valor de contador más grande que el contador almacenado en la base de datos de la parte que confía, y el dispositivo no se marcará como comprometido.

Ciertamente estoy equivocado, pero me estoy preguntando.

Gracias de antemano!

    
pregunta QBl 03.06.2017 - 19:09
fuente

1 respuesta

1

Vamos a trazar un escenario:

T = 1     Authenticate Real, Counter = 20
T = 2     Device is cloned into Real / Dup
T = 3     Authenticate Real, Counter = 21
T = 4     Authenticate Dup, Counter = 21

Debido a que el servidor vio el mismo contador dos veces, obviamente fue clonado.

  

El atacante podría enviar un valor de contador más grande que el contador almacenado en la base de datos de la parte que confía

Está bien, intentemos esto, por ejemplo. añadiendo 1000 al contador.

T = 1     Authenticate Real, Counter = 20
T = 2     Device is cloned into Real / Dup
T = 3     Authenticate Real, Counter = 21
T = 4     Authenticate Dup, Counter = 1021

Parece bien ...

T = 5     Authenticate Real, Counter = 22

Uh oh, 22 es menos de 1021, ahora se ha denegado la clave real y el usuario sabe que algo está pasando.

    
respondido por el Riking 03.06.2017 - 19:18
fuente

Lea otras preguntas en las etiquetas