Standards · FIDO CTAP 2.2 hybrid (QR passkey)

Dois-je scanner ce QR de connexion par passkey ?

Seulement si VOUS venez de démarrer une connexion par passkey sur l’appareil affichant le QR. Si quelqu’un d’autre vous demande de le scanner, c’est une tentative de prise de contrôle de compte.

Vérifier un QR passkey → Tous les standards →

Comment fonctionne la connexion par passkey inter-appareils

Un passkey est un identifiant, une paire de clés publique/privée, lié à l'un de vos appareils. Si vous avez enregistré un passkey pour example.com sur votre téléphone, seul votre téléphone peut signer le défi de connexion pour example.com.

Cela fonctionne bien quand vous vous connectez SUR votre téléphone. Mais que se passe-t-il quand vous êtes sur un laptop et que votre passkey est sur votre téléphone ? Vous avez trois options.

  1. Entrer votre mot de passe, ce qui annule tout l’intérêt des passkeys.
  2. Enregistrer un nouveau passkey sur le laptop, correct, mais uniquement si vous faites confiance à cet appareil.
  3. Utiliser le passkey du téléphone via le transport inter-appareils, le laptop affiche un QR, vous le scannez avec votre téléphone, la connexion est validée.

L’option 3 est ce que définit FIDO CTAP 2.2 « hybrid ». Le QR est l’amorçage ; il transporte les paramètres de la session, pas vos identifiants.

Ce qui se trouve à l’intérieur du QR

L’URI ressemble à :

FIDO:/0123456789012345678901234567890123456789...

Les chiffres décimaux sont un encodage base10 d’une structure CBOR. Après décodage base10 + CBOR, le payload contient cinq à six champs clés.

Clé 0, clé publique pair

Octets de clé publique non compressée X9.62 (33 octets pour P-256). Le téléphone utilise cette clé pour établir le tunnel chiffré.

Clé 1, secret QR / nonce de tunnel

10 octets de données aléatoires. Identifie ce QR spécifique ; l’annonce BLE diffuse ce secret pour que le laptop et le téléphone se trouvent.

Clé 2, indication d’opération

0 = make-credential (enregistrement d'un nouveau passkey), 1 = get-assertion (connexion), 2 = discoverable-credential.

Clé 3, domaine du serveur de tunnel

L'hôte HTTPS qui relaie le tunnel entre les deux appareils lorsque le BLE direct n'est pas disponible (par exemple, derrière un NAT). Il s'agit généralement d'un serveur géré par un fournisseur, comme cable.ua5v.com (Google) ou cable.auth.com (Apple/MS).

Clé 4, horodatage

Secondes depuis epoch au moment où le QR a été généré. Utilisé pour la protection contre la rejouabilité ; le QR expire rapidement.

Clé 5, indicateur state-assisted

Booléen. Indique si le laptop souhaite que le téléphone participe à la découverte passive du tunnel via BLE.

Le modèle de menace : qui a appuyé sur « Se connecter avec un passkey » en premier ?

Le protocole est cryptographiquement solide. La vérification de proximité Bluetooth est réelle et attenante à la session. En usage normal, c’est sûr.

La compromission passe par l’ingénierie sociale sur l’initiation. L’attaquant démarre une connexion par passkey sur votre compte, génère le QR, puis vous convainc de le scanner.

Si vous scannez, votre téléphone achemine votre signature passkey vers la session de l’attaquant. Il est maintenant connecté à votre compte.

Notez que la vérification de proximité n'aide pas : l'attaquant est physiquement présent. Le contenu du QR n'aide pas davantage : il est cryptographiquement valide. La destination de connexion n'aide pas non plus : c'est bien le site pour lequel vous possédez un passkey. La seule chose qui aide est de reconnaître la situation : vous ne devriez jamais scanner un QR FIDO que vous n'avez pas généré vous-même en cliquant sur « Se connecter » sur votre propre appareil.

Ce que notre scanner affiche

Quand vous déposez un QR FIDO dans notre scanner, le verdict affiche :

La classe de menace est toujours suspect, non pas parce que le protocole est dangereux, mais parce que la distinction « vous avez initié ceci » vs « quelqu’un d’autre l’a fait » ne peut pas être déterminée par un scanner.

Quand c’est sûr (et quand ça ne l’est pas)

Sûr : vous êtes assis devant votre laptop, vous avez ouvert votre banque ou votre e-mail et cliqué sur « Se connecter avec un passkey », et votre écran affiche un QR.

Pas sûr : quelqu’un d’autre que vous a initialisé la connexion. Cela inclut « le support technique », un « responsable informatique », un « agent de sécurité », un « recruteur » ou toute autre personne vous demandant de scanner quoi que ce soit.

Si vous n’êtes pas sûr qu’un QR provienne d’une connexion que VOUS avez initiée, annulez la connexion et redémarrez-la vous-même sur un appareil que vous contrôlez.

Connexe

Inspecter un QR FIDO

Déposez l’image ou collez l’URI FIDO:. Le verdict affiche l’opération, le serveur de tunnel, l’horodatage et les contrôles de cohérence.

Ouvrir le scanner →