¿Por qué la clave secreta U2F en yubikeys no es programable y cómo obtener un token de copia de seguridad universal?

1

Estoy tratando de encontrar la mejor estrategia para tener un token U2F de respaldo. Idealmente, quiero tener dos fichas idénticas; obviamente, tendré el acceso principal (p. ej., en mi llavero), pero el segundo lo pondré en un lugar que no sea fácilmente accesible (los casos extremos son: encerrados en la pared o enterrados en algún lugar del bosque). Así que cada vez que me registro en un nuevo servicio compatible con U2F, solo uso mi token principal, y sé que el segundo también es automáticamente compatible. Considero que esta estrategia es un buen compromiso para estar seguro y aún tengo una opción de copia de seguridad confiable.

Pero al parecer, con yubikeys, la única opción viable es tener dos tokens distintos y registrar ambos manualmente en cada servicio para el que los uso. Sin embargo, esto no es lo ideal, ya que tendría que tener a ambos fácilmente accesibles: está bien si tengo que desbloquear el token de copia de seguridad en un mal evento de perder el primario, pero hacerlo por cada nuevo servicio no es viable .

En realidad, me sorprendió descubrir que a pesar de que los yubikeys admiten la programación del material de la clave OTP (e incluso tienen dos ranuras, es realmente agradable), no admiten la programación del secreto clave utilizada para U2F.

¿Existe alguna razón en particular por la que la clave secreta U2F en yubikeys no sea programable, aunque los datos secretos para otros modos (por ejemplo, OTP) son programables?

    
pregunta Dmitry Frank 27.07.2018 - 18:45
fuente

1 respuesta

1

Entonces, mientras lees la Descripción general de U2F Me di cuenta de que lo que quiero es imposible con la forma en que está diseñado U2F, porque el dispositivo tiene un contador que se incrementa en cada autenticación (consulte la sección 8.1 de la descripción general que se encuentra más arriba)

Así que no se trata de yubikey en particular, se trata de todo el U2F. Eso es triste para mí, me gustó mucho la idea de tener un clon al que es difícil acceder incluso para mí. No poder usar esa estrategia significa que tenemos que crear otros métodos de recuperación, que serán diferentes para cada servicio (por ejemplo, no todos los servicios admiten la adición de múltiples tokens U2F), y en general es menos seguro que dos dispositivos programados con el mismos secretos.

Alas.

UPD : en realidad, tengo una idea. Hay un proyecto de código abierto u2f-zero . Así que el plan es: obtener dos dispositivos, programarlos con los mismos secretos, PERO el dispositivo de respaldo debe programarse con una pequeña modificación: en lugar de devolver un contador simple del cryptochip (u2f-zero usa ATECC508A), devuelva algo como counter+500000 . Es poco probable que supere las 500000 autenticaciones durante toda la vida, y de todos modos sigue siendo una pequeña fracción de todo el rango del contador (que es de 32 bits).

Entonces, si tengo la mala suerte de perder mi token principal, voy al bosque, desentierro el token de respaldo, y debería funcionar para todos mis servicios de inmediato. Hay incluso un efecto secundario agradable: después de usar el token de copia de seguridad por primera vez, el primario se invalidará inmediatamente porque su contador es más bajo.

UPD2 : escribí un artículo detallado al respecto: Copia de seguridad confiable, segura y universal para U2F Token

    
respondido por el Dmitry Frank 27.07.2018 - 23:43
fuente

Lea otras preguntas en las etiquetas