GitHub s’ouvre un peu plus aux clés de sécurité physiques

GitHub SSH FIDO

GitHub simplifie l’adossement de clés FIDO aux clés SSH destinées à authentifier les opérations Git. En toile de fond, l’élimination progressive des mots de passe.

Adosser une clé FIDO à une clé SSH devient plus simple sur GitHub. La démarche ne requiert désormais plus d’intermédiaire de type OpenPGP. Elle peut se faire directement dans OpenSSH et Cygwin, avec le suffixe -sk (pour « security key »). Cela fonctionne en théorie avec toute clé U2F ou WebAuthn, aussi longtemps qu’elle prend en charge l’algorithme ED25519 et/ou ECDSA.

Le principe est le même qu’avec les clés SSH « traditionnelles ». Sauf que la partie privée vient se loger sur la clé FIDO. Il y a bel et bien un fichier à stocker sur chacune des machines censées effectuer des opérations Git en SSH, mais celui-ci n’est qu’une référence à la clé physique.

Si cette dernière le permet, on peut utiliser, à la création de la clé SSH, l’option dite de « résidence ». Elle facilite l’importation du fichier de référence en permettant cette opération directement depuis la clé FIDO.

GitHub écarte progressivement les mots de passe

Il est techniquement tout à fait possible de réaliser de multiples opérations sans avoir à manipuler à chaque fois la clé physique (tout comme il existe un cache pour les mots de passe). GitHub n’a toutefois pas retenu cette solution, en tout cas pour les opérations distantes. Pour le moment, elles requièrent de toucher la clé à chaque fois (c’est l’équivalent de l’option verify-required).

Dans cette configuration, on peut toujours protéger les clés SSH avec des mots de passe, mais ceux-ci deviennent un facteur secondaire et facultatif. De manière générale, ils sont en voie de disparition sur GitHub. Depuis le 13 novembre 2020, l’API REST ne les accepte plus. Il en sera de même à partir du 13 août 2021 pour toutes les opérations Git sur GitHub.com. Il faudra utiliser soit un jeton* sur HTTPS, soit une clé SSH. Des journées de test auront lieu le 30 juin et le 28 juillet. Avec, à chaque fois, deux plages horaires de trois heures où l’authentification par mot de passe ne marchera plus.

* En attendant l’échéance du 13 août, GitHub travaille à améliorer ces jetons PAT (Personal Access Tokens). Notamment en permettant de définir une date d’expiration et en offrant une gestion plus fine des permissions (pour le moment, ils activent tous les droits dont dispose l’utilisateur).

Photo d’illustration © WavebreakMediaMicro – Adobe Stock