authentification:yubikey

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
authentification:yubikey [2020/09/05 17:12] – [Les défauts de la YubiKey] d2airauthentification:yubikey [2023/01/03 17:27] (Version actuelle) – [Les défauts de la YubiKey] d2air
Ligne 1: Ligne 1:
 ====== Usage et configuration d’une Yubikey ====== ====== Usage et configuration d’une Yubikey ======
  
 +{{ :authentification:yubikey-5-nfc-yubico.jpg?200|}}
 La [[https://www.yubico.com/|YubiKey]] est un dispositif d’authentification électronique fabriqué par Yubico qui supporte les mots de passe à usage unique, le chiffrement et l’authentification par clé publique et le protocole Universal Second Factor (U2F) développé par l’alliance FIDO (FIDO U2F). La [[https://www.yubico.com/|YubiKey]] est un dispositif d’authentification électronique fabriqué par Yubico qui supporte les mots de passe à usage unique, le chiffrement et l’authentification par clé publique et le protocole Universal Second Factor (U2F) développé par l’alliance FIDO (FIDO U2F).
  
-[[https://www.yubico.com/|YubiKey]] met en œuvre l’algorithme de mots de passe à usage unique basé sur HMAC (HOTP) et celui basé sur le temps (TOTP). Il se substitue à un clavier qui fournit un mot de passe à usage unique à travers le protocole USB HID. Les versions YubiKey NEO et YubiKey 4 incluent des protocoles tels que celui des cartes OpenPGP (utilisant le RSA 2048-bit) et la cryptographie à courbe elliptique (ECC) p256 et p384, la communication en champ proche (NFC) et le FIDO U2F. La quatrième génération de YubiKey lancée le 16 novembre 2015 supporte OpenPGP avec RSA 4096-bit et le support Public Key Cryptographic Standards (PKCS #11) pour les smart cards d’identification personnelle, fonctionnalité qui permet la signature d’images Docker.+[[https://www.yubico.com/|YubiKey]] met en œuvre l’algorithme de mots de passe à usage unique basé sur HMAC (HOTP) et celui basé sur le temps (TOTP). Il se substitue à un clavier qui fournit un mot de passe à usage unique à travers le protocole USB HID. Les versions YubiKey et incluent des protocoles tels que celui des cartes OpenPGP (utilisant le RSA) et la cryptographie à courbe elliptique (ECC) p256 et p384 (la curve25519 est supportée depuis la version 5.2.3), la communication en champ proche (NFC) et le FIDO U2F. La quatrième génération de YubiKey lancée le 16 novembre 2015 supporte OpenPGP avec RSA 4096-bit (pour seulement 2048-bit avant) et le support Public Key Cryptographic Standards (PKCS #11) pour les smart cards d’identification personnelle, fonctionnalité qui permet la signature d’images Docker.
  
 ===== Logiciels ===== ===== Logiciels =====
Ligne 72: Ligne 73:
 ==== Challenge-Response et OTP Mode ==== ==== Challenge-Response et OTP Mode ====
  
-La clef [[https://www.yubico.com/product/yubikey-4-series/|Yubikey 4]] dispose de ''2 slots'', ils sont utilisables avec un appui court et appui long sur la clef.+La clef [[https://www.yubico.com/products/yubikey-5-overview/|Yubikey 5]] dispose de ''2 slots'', ils sont utilisables avec un appui court et appui long sur la clef.
  
 === Mot de passe à usage unique Yubico OTP Mode === === Mot de passe à usage unique Yubico OTP Mode ===
Ligne 137: Ligne 138:
   - localisation de la '' YubiKey(s) unprotected – Keep it that way'' afin de '' YubiKey(s) unprotected – Enable   - localisation de la '' YubiKey(s) unprotected – Keep it that way'' afin de '' YubiKey(s) unprotected – Enable
 Protection.'' ; le champ ''New Access Code'' situé sous le menu devient actif, Protection.'' ; le champ ''New Access Code'' situé sous le menu devient actif,
-  - et dans le champ ''New Access Code'', vous taperez un code d'accès numérique à 12 chiffres ou vous sélectionnerez ''Use Serial Number''(REMARQUE : Enregistrez ce code d'accès dans un endroit sûr, car vous ne pourrez pas mettre à jour la configuration de la clé sans elle).+  - et dans le champ ''New Access Code'', vous taperez un code d'accès numérique à 12 chiffres ou vous sélectionnerez ''Use Serial Number'' (Enregistrez ce code d'accès dans un endroit sûr, car vous ne pourrez pas mettre à jour la configuration de la clé sans elle).
 Si vous ne voulez pas utiliser de code d'accès, gardez la sélection par défaut ''YubiKey(s) unprotected – Keep it that Si vous ne voulez pas utiliser de code d'accès, gardez la sélection par défaut ''YubiKey(s) unprotected – Keep it that
 way''. way''.
Ligne 146: Ligne 147:
 IMPORTANT : Si vous configurez vos Yubikeys pour l'application YubiKey Windows Login, assurez-vous de ne pas sélectionner **Require user input**. IMPORTANT : Si vous configurez vos Yubikeys pour l'application YubiKey Windows Login, assurez-vous de ne pas sélectionner **Require user input**.
  
-CONSEIL : Lorsque votre configuration YubiKey est réussie, un message s'affiche sous Résultats+CONSEIL : Lorsque votre configuration YubiKey sera réussie, un message s'affichera.
 </note> </note>
  
Ligne 153: Ligne 154:
   * si vous avez oublié de sélectionner ''Automatically program YubiKeys when inserted'', vous choisirez ''Write Configuration'' pour chaque clef devant être configurée.   * si vous avez oublié de sélectionner ''Automatically program YubiKeys when inserted'', vous choisirez ''Write Configuration'' pour chaque clef devant être configurée.
  
-Un guide officiel se trouve ici : [[https://www.yubico.com/wp-content/uploads/2016/06/YubiKey_Identical_Credentials_ConfigGuide_en.pdf]|How to Configure Identical Credentials in Challenge-Response]].+Le processus générera un fichier d'activité au format CSV, celui contiendra la clef privé ; il faudra le converser dans un espace protégé. 
 + 
 +Un guide officiel se trouve ici : [[https://www.yubico.com/wp-content/uploads/2016/06/YubiKey_Identical_Credentials_ConfigGuide_en.pdf|How to Configure Identical Credentials in Challenge-Response]].
  
 ==== CCID Mode, carte à puce OpenPGP ==== ==== CCID Mode, carte à puce OpenPGP ====
Ligne 163: Ligne 166:
 </code> </code>
  
 +=== Configuration GPG et SSH ===
 +Une carte à puce OpenPGP a toujours __trois emplacements__ de clé séparés. Ceux-ci sont intitulés **Signature**, **Cryptage** et **Authentification**. Chaque sous-clé a généralement son propre ID de clé.
 +
 +Il existe différentes approches pour démarrer avec une carte à puce. Parfois, les gens utilisent deux cartes à puce et rangent leur clé principale à la maison sur une, et en utilisent une seconde avec les sous-clés pour la signature et le décryptage pour un usage quotidien ... De plus, les gens peuvent migrer des clés précédemment générées vers une nouvelle carte ; nous ne ferons rien de tout cela.
 +
 +Ici, nous allons générer une clé principale avec les capacités Certifier et Signer et deux sous-clés avec chacune des capacités Crypter et Authentifier respectivement et les déplacer vers une YubiKey, mais cela peut se faire avec des clefs existantes.
 +
 +Les plus paranos généreront leurs clefs sur un ordinateur sécurisé plutôt que sur la carte. Idéalement, cela serait une machine exécutant [[https://tails.boum.org/|Tails]] ou [[https://www.qubes-os.org/|Qubes OS]] et elle ne serait pas connecté à internet. Néanmoins, produire ces clefs sur son ordinateur plutôt que sur la carte permet surtout la sauvegarde de celles-ci, car les clés privées ne peuvent jamais quitter l'appareil une fois qu'elles sont chargées.
 +Les YubiKeys supérieures à la version 5.2.3 offrent une nouvelle fonctionnalité à la carte à puce OpenPGP, l'attestation des clés générées sur l'appareil. Avec la fonction d'attestation, la génération d'une clé d'authentification, de signature ou de déchiffrement sur une YubiKey créera également un certificat X.509 signé avec la clé d'attestation présente sur l'appareil, voir cette [[https://support.yubico.com/hc/en-us/articles/360016649139-YubiKey-5-2-3-Enhancements-to-OpenPGP-3-4-Support|page du support]].
 +
 +== Changer les codes PIN ==
 +Les valeurs par défaut du code PIN et du PUK sont 123456 et 12345678, respectivement ; voir cette [[https://developers.yubico.com/PIV/Introduction/Admin_access.html|page du support]].
 +<code>
 +gpg --edit-card 
 +gpg/carte> admin
 +Les commandes d'administration sont permises
 +gpg/carte> kdf-setup
 +gpg/carte> passwd
 +gpg: carte OpenPGP nº D2760001240100000001223334440000 détectée
 +
 +1 - change PIN
 +2 - unblock PIN
 +3 - change Admin PIN
 +4 - set the Reset Code
 +Q - quit
 +Quel est votre choix ? 3
 +PIN changed.
 +
 +1 - change PIN
 +2 - unblock PIN
 +3 - change Admin PIN
 +4 - set the Reset Code
 +Q - quit
 +Quel est votre choix ? 1
 +PIN changed.
 +
 +1 - change PIN
 +2 - unblock PIN
 +3 - change Admin PIN
 +4 - set the Reset Code
 +Q - quit
 +
 +Quel est votre choix ? Q
 +
 +gpg/carte> 
 +</code>
 +
 +== Générer des clefs ==
 +Un article de ce site détaille la [[cryptographie:gnupg2|création de clef GPG]].
 +Il faudra utiliser la commande :
 +<code>
 +gpg --expert --full-gen-key
 +</code>
 +et la fonction
 +<code>
 +gpg> addkey
 +</code>
 +Afin d'obtenir une clef et des sous-clefs comme ci-dessous :
 +<code>
 +gpg --expert --edit-key 'A0B000FF0000FF0011111111A0B00000000000FF'
 +gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +La clef secrète est disponible.
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +</code>
 +
 +== Chargement des clés sur la carte à puce ==
 +Une [[https://developers.yubico.com/PGP/Importing_keys.html|page du support]] détaille la procédure d'importation.
 +<note info>
 +Attention la fonction **keytocard** déplace les clefs, assurez-vous d'avoir une copie, car les clefs privées ne pourront pas être exportées depuis la carte.
 +</note>
 +<code>
 +gpg --expert --edit-key 'A0B000FF0000FF0011111111A0B00000000000FF'
 +gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +La clef secrète est disponible.
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> keytocard 
 +Faut-il vraiment déplacer la clef principale ? (o/N) o
 +Veuillez sélectionner l'endroit où stocker la clef :
 +   (1) Clef de signature
 +   (3) Clef d'authentification
 +Quel est votre choix ? 1
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> key 1
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb*  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> keytocard 
 +Veuillez sélectionner l'endroit où stocker la clef :
 +   (2) Clef de chiffrement
 +Quel est votre choix ? 2
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb*  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> key 1
 +
 +gpg> key 2
 +
 +sec  ed25519/0xA0B00000000000FF 
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : SC  
 +     confiance : ultime        validité : ultime
 +ssb  cv25519/0xB0FFFFFFFFFFFF00
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : E   
 +ssb*  ed25519/0xB0FFFFFFFFFFFF22
 +     créé : 2020-12-29  expire : 2029-12-28  utilisation : A   
 +[  ultime ] (1). John Doe <john@domaine.eu>
 +
 +gpg> keytocard 
 +Veuillez sélectionner l'endroit où stocker la clef :
 +   (3) Clef d'authentification
 +Quel est votre choix ? 3
 +
 +gpg> save
 +</code>
 +
 +== Personnification des champs dans la carte ==
 +Le détail des différents champs est expliqué dans la [[https://gnupg.org/howtos/card-howto/en/ch03.html|documentation de GnuPG]].
 +
 +Il faut utiliser cette commande :
 +<code>
 +gpg --card-edit
 +
 +gpg/carte> admin
 +Les commandes d'administration sont permises
 +
 +gpg/carte> help
 +quit           quitter ce menu
 +admin          afficher les commandes d'administration
 +help           afficher cette aide
 +list           afficher toutes les données disponibles
 +name           modifier le nom du détenteur de la carte
 +url            modifier l'URL pour récupérer la clef
 +fetch          récupérer la clef indiquée dans l'URL de la carte
 +login          modifier l'identifiant de connexion
 +lang           modifier les préférences de langue
 +salutation     change card holder's salutation
 +cafpr          modifier une empreinte d'autorité de certification
 +forcesig       inverser le paramètre obligeant à entrer le code personnel pour les
 +signatures
 +generate       générer de nouvelles clefs
 +passwd         menu pour modifier ou déverrouiller le code personnel
 +verify         vérifier le code personnel et afficher toutes les données
 +unblock        débloquer le code personnel en utilisant un code de réinitialisation
 +factory-reset  destroy all keys and data
 +kdf-setup      setup KDF for PIN authentication
 +key-attr       change the key attribute
 +
 +gpg/carte> 
 +</code>
 +== Authentification SSH ==
 +L’exportation de la sous-clef publique dédiée pour l’authentification SHH s’obtient via la commande :
 +<code>
 +gpg --export-ssh-key 0xB0FFFFFFFFFFFF22
 +</code>
 ===== Les défauts de la YubiKey ===== ===== Les défauts de la YubiKey =====
-  * La conception matérielle et le microprogramme sont tous deux propriétaires. Le [[https://support.yubico.com/support/solutions/articles/15000006434-upgrading-yubikey-firmware|firmware]] ne peut pas être mis à jour afin qu’il ne puisse pas être modifié par malice, mais c’est une politique discutable et des attaques sont possibles. Les [[https://www.yubico.com/support/security-advisories/ysa-2017-01/|versions de 4.2.6 à 4.3.4]] du firmware sont faillibles à la [[https://en.wikipedia.org/wiki/ROCA_vulnerability|vulnérabilité ROCA]] ; +La conception matérielle et le microprogramme sont tous deux propriétaires, cette clef n’est ni open source, ni open hardware, mais c’est un produit commercial d’une société américaine. 
-  *Les courbes elliptiques sont supportées, mais pas la Curve25519 et les algorithmes acceptés – [[https://fr.wikipedia.org/wiki/Chiffrement_RSA|RSA]] et les courbes [[https://fr.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm|ECDSA]] du [[https://fr.wikipedia.org/wiki/National_Institute_of_Standards_and_Technology|NIST]] – sont suspectés d’affaiblissement par la [[https://fr.wikipedia.org/wiki/National_Security_Agency|NSA]] ; +  * Le [[https://support.yubico.com/support/solutions/articles/15000006434-upgrading-yubikey-firmware|firmware]] ne peut pas être mis à jour afin qu’il ne puisse pas être modifié par malice, mais c’est une politique discutable et des attaques sont possibles. Les [[https://www.yubico.com/support/security-advisories/ysa-2017-01/|versions de 4.2.6 à 4.3.4]] du firmware sont faillibles à la [[https://en.wikipedia.org/wiki/ROCA_vulnerability|vulnérabilité ROCA]] ; 
-  * Pour un usage de carte à puce ''OpenPGP'' la clef [[https://www.gniibe.org/FST-01/fst-01.html|FST-01]] est préférable (voir [[https://lwn.net/Articles/736231/|Comparison of cryptographic keycards]]).+  * Pour un usage de carte à puce ''OpenPGP'' une clef [[https://www.gniibe.org/FST-01/fst-01.html|FST-01]] semble préférable (voir [[https://lwn.net/Articles/736231/|Comparison of cryptographic keycards]]) ; 
 +  * Avant le [[https://support.yubico.com/support/solutions/articles/15000027139-yubikey-5-2-3-enhancements-to-openpgp-3-4-support|firmware 5.2.3]] la courbe elliptique [[wpfr>Curve25519]] n’était pas supportée ; les algorithmes [[https://fr.wikipedia.org/wiki/Chiffrement_RSA|RSA]] et les courbes [[https://fr.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm|ECDSA]] du [[https://fr.wikipedia.org/wiki/National_Institute_of_Standards_and_Technology|NIST]] étant suspectés d’affaiblissement par la [[https://fr.wikipedia.org/wiki/National_Security_Agency|NSA]]. 
 +Néanmoins, cela reste un formidable outil pour augmenter sa sécurité, j'en possède plusieurs.
  
 ===== Sources et liens utiles ===== ===== Sources et liens utiles =====
Ligne 172: Ligne 376:
   * [[https://wiki.archlinux.org/index.php/yubikey|Wiki.Archlinux.org/Yubikey]]   * [[https://wiki.archlinux.org/index.php/yubikey|Wiki.Archlinux.org/Yubikey]]
   * [[https://www.yubico.com/wp-content/uploads/2016/03/YubiKeyPersonalizationToolUserGuideMarch2016.pdf]|YubiKey   * [[https://www.yubico.com/wp-content/uploads/2016/03/YubiKeyPersonalizationToolUserGuideMarch2016.pdf]|YubiKey
-Personalization Tool] +Personalization Tool]
-  * [[https://geekeries.org/2020/03/keepass-et-yubikey-multiplateforme-article-misc-103/]|KeePass et Yubikey multiplateforme, article MISC 103]]+  * [[https://geekeries.org/2020/03/keepass-et-yubikey-multiplateforme-article-misc-103/|KeePass et Yubikey multiplateforme, article MISC 103]]
   * [[https://www.christiaanconover.com/blog/yubikeyconfig/|How To Configure Your Yubikey for Maximum Usefulness & Security]]   * [[https://www.christiaanconover.com/blog/yubikeyconfig/|How To Configure Your Yubikey for Maximum Usefulness & Security]]
 +  * [[https://gist.github.com/ageis/14adc308087859e199912b4c79c4aaa4|Technical guide for using YubiKey series 4 for GPG and SSH]]
 +  * [[https://github.com/drduh/YubiKey-Guide|YubiKey-Guide]]
  
  • authentification/yubikey.1599340361.txt.gz
  • Dernière modification : 2020/09/05 17:12
  • de d2air