No, no es posible obtener un valor constante / bytes de un dispositivo U2F que será único para un dispositivo en particular y se puede usar más adelante como clave de cifrado, principalmente debido a la preocupación de privacidad de FIDO: "la identificación de los dispositivos revelaría un único identificador de un dispositivo en orígenes no relacionados, lo que viola la privacidad del usuario ". (c) Especificaciones FIDO.
Por otra parte, esta es la razón por la que la característica U2F Signature tampoco se puede usar para obtener un valor constante que luego se puede usar como clave de cifrado:
- El dispositivo U2F firma un Digest creado por el Cliente y el Dispositivo (U2F agrega el contador de firmas al Digest). Por lo tanto, cada nueva firma será única, incluso si el Cliente proporciona los mismos datos dos veces.
- Cuando el dispositivo U2F genera un nuevo KeyHandle (par ECDSA) usa su propio valor aleatorio. Por lo tanto, nunca generará el mismo KeyHandle incluso si proporciona los mismos datos para la segunda solicitud.
Por la filosofía de FIDO, la clave U2F está diseñada principalmente para garantizar una confianza entre el servicio de autenticación y el cliente remoto. Cuando desee adoptar la clave U2F para otros escenarios de autenticación / seguridad, tenga cuidado con una docena de ataques que pueden aplicarse.