Supporto per token multipli per FIDO u2F

0

Sto implementando un servizio web per supportare U2F. Ho bisogno che gli utenti siano in grado di registrare più di un token sul proprio account.

Come dovrebbe apparire il messaggio di richiesta di autenticazione quando abbiamo più di 1 handle chiave? Attualmente funziona con l'estensione chrome e la mia richiesta di autenticazione di lavoro è simile a

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

2 risposte

2

Il JSON per una richiesta di autenticazione contenente più chiavi di autenticazione (token) ha un aspetto simile a questo. (i valori challenge e keyHandle sono stati abbreviati)

{
  "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: questo è per l'API Javascript U2F attualmente pubblicata. link

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;
};
    
risposta data 01.02.2016 - 14:21
fonte
0

Verifica documentazione , durante l'autenticazione ( U2F_AUTHENTICATE ) c'è il tipo di messaggio 0x07 (" solo-check-in ") . Questo messaggio non richiede la presenza e il segno dell'utente, ma verifica solo che l'handle sia stato generato dal token specificato.

Solo allora l'altro tipo di messaggio 0x03 ("enforce-user-presence-and-sign") dovrebbe continuare.

Il server prova solo i token associati all'utente e al client sceglie se quello connesso è disponibile, per quanto ho capito.

    
risposta data 31.01.2016 - 21:05
fonte

Leggi altre domande sui tag