Compatibilidad con múltiples tokens para FIDO u2F

0

Estoy implementando un servicio web para soportar U2F. Necesito que los usuarios puedan registrar más de un token en su cuenta.

¿Qué aspecto debe tener el mensaje de solicitud de autenticación cuando tenemos más de 1 identificador de clave? Actualmente estoy trabajando con la extensión de Chrome y mi solicitud de autenticación de trabajo se parece a

{version: "U2F_V2", challenge: "7kozMX4EGFKYqmFOjLPD7QCHyJc7n3Pt0DHigNGf2aU",…}
appId: "http://localhost:8080"
challenge: "7kozMX4EGFKYqmFOjLPD7QCHyJc7n3Pt0DHigNGf2aU"
keyHandle: "nLfGtT8E7EKT5zo9t4zvVPK7qjJQoXqTDD_WHKh64X99LYARhRZc5hb-49AlQYNQcJhkk3ujHeaY5ti9rshrKQ"
version: "U2F_V2"
    
pregunta YuvalJ 28.01.2016 - 20:17
fuente

2 respuestas

2

El JSON para una solicitud de autenticación que contiene varios identificadores de clave de autenticador (token) tiene este aspecto. (Se acortaron los valores de desafío y clave)

{
  "type": "u2f_sign_request",
  "timeoutSeconds": 30,
  "requestId": 123,
  "signRequests": [
    {
      "appId": "http://localhost:8080",
      "challenge": "7Wr...I6w",
      "keyHandle": "8BB...7YQ",
      "version": "U2F_V2"
    },
    {
      "appId": "http://localhost:8080",
      "challenge": "9Qb...HOE",
      "keyHandle": "5i8...CEJ",
      "version": "U2F_V2"
    }
  ]
}

NOTA: Esto es para la API de Javascript U2F pública publicada actualmente. enlace

dictionary Request {
    // The type of request, either "u2f_register_request"
    // or "u2f_sign_request".
    DOMString          type;

    // A list of SignRequest dictionaries, one for each
    // token already registered with this RP.
    SignRequest[]      signRequests;

    // A list of RegisterRequest dictionaries, one for each
    // protocol version that the RP is willing to register.
    RegisterRequest[]? registerRequests;

    // A timeout for the FIDO Client's processing, in seconds.
    int?               timeoutSeconds;

    // An integer identifying this request from concurrent requests.
    optional int?      requestId;
};

dictionary SignRequest {
    // Version of the protocol that the to-be-registered U2F
    // token must speak. E.g. "U2F_V2"
    DOMString version;

    // The websafe-base64-encoded challenge.
    DOMString challenge;

    // The registered keyHandle to use for signing, as
    // returned by the U2F token during registration.
    DOMString keyHandle;

    // The application id that the RP would like to assert.
    DOMString appId;
};

dictionary RegisterRequest {
    // Version of the protocol that the to-be-registered U2F
    // token must speak. E.g. "U2F_V2"
    DOMString version;

    // The websafe-base64-encoded challenge.
    DOMString challenge;

    // The application id that the RP would like to assert.
    DOMString appId;
};
    
respondido por el mirko 01.02.2016 - 14:21
fuente
0

Comprobando el documentación , durante la autenticación ( U2F_AUTHENTICATE ) hay un tipo de mensaje 0x07 (" solo verificación ") . Este mensaje no requiere la presencia y el signo del usuario, sino que simplemente verifica que el manejo se generó mediante un token dado.

Solo entonces el otro tipo de mensaje 0x03 ("obligar-presencia-usuario-firmar") debe continuar.

El servidor simplemente prueba los tokens asociados con el usuario y el cliente para elegir si el conectado está disponible, por lo que yo entiendo.

    
respondido por el Jakuje 31.01.2016 - 21:05
fuente

Lea otras preguntas en las etiquetas