- Cloudflare a publié en open source OPKSSH (OpenPubkey SSH)
- OPKSSH permet de générer et d’utiliser automatiquement des clés SSH via une connexion SSO basée sur OpenID Connect
- Les utilisateurs n’ont plus besoin de gérer eux-mêmes leurs clés publiques/privées SSH ni de les déployer sur les serveurs
- Il devient possible d’introduire une approche d’accès fondée sur l’identité pour l’authentification SSH, sans modifier le protocole SSH
Contexte : SSO et OpenID Connect
- Le SSO (Single Sign-On) est une méthode d’authentification qui permet à un utilisateur d’accéder à plusieurs systèmes après une seule connexion
- OpenID Connect est un protocole principalement utilisé pour le SSO, qui émet des jetons d’identité contenant des informations sur l’utilisateur
- Un jeton d’identité contient des informations comme l’adresse e-mail de l’utilisateur, mais pas de clé publique → il ne peut donc pas être utilisé directement pour un protocole de sécurité comme SSH
Présentation d’OpenPubkey
- OpenPubkey ajoute la clé publique de l’utilisateur dans le jeton d’identité pour en faire un PK Token
- Cela permet de certifier que « Google atteste que l’utilisateur alice@example.com utilise la clé publique 0x123 »
- Il peut être appliqué sans aucune modification du protocole OpenID Connect existant
Rôle et avantages d’OPKSSH
- OPKSSH intègre OpenPubkey à SSH pour générer des clés SSH éphémères via une connexion SSO
- Il fonctionne sans modification du protocole SSH existant et peut être activé en ajoutant seulement deux lignes au fichier de configuration
-
Amélioration de la sécurité
- Utilisation de clés SSH éphémères au lieu de clés de longue durée → réduction de l’impact en cas de fuite et possibilité de limiter la durée de vie des clés
- Expiration par défaut au bout de 24 heures, modifiable via la configuration
-
Amélioration de l’expérience utilisateur
- Il suffit d’exécuter la commande
opkssh login pour générer une clé SSH et se connecter
- Plus besoin de copier une clé privée SSH sur plusieurs ordinateurs
-
Amélioration de la visibilité pour l’administration
- Accès fondé sur l’adresse e-mail plutôt que sur des clés → il devient plus clair de savoir qui est l’utilisateur
- Il suffit d’ajouter une adresse e-mail comme
bob@example.com dans le fichier d’autorisation d’accès pour accorder immédiatement l’accès
Fonctionnement d’OPKSSH
- Lorsqu’un utilisateur exécute
opkssh login :
- génération d’une paire de clés SSH publique/privée temporaire
- connexion via le navigateur à un fournisseur OpenID (Google, etc.)
- en cas de succès, création d’un PK Token contenant la clé publique et l’identité de l’utilisateur via le protocole OpenPubkey
- enregistrement dans le répertoire
.ssh d’un fichier de clé publique contenant le PK Token et du fichier de clé privée
- Lors d’une connexion SSH :
- le client SSH envoie au serveur SSH la clé publique contenant le PK Token
- le serveur délègue la validation de la clé publique à l’outil OpenPubkey verifier configuré via
AuthorizedKeysCommand
- si le PK Token est valide et que l’e-mail figure dans la liste des accès autorisés, la connexion est approuvée
Résolution des problèmes techniques
- Transmission du PK Token : le PK Token est intégré à la clé publique SSH à l’aide du champ d’extension des certificats SSH
- Validation côté serveur :
AuthorizedKeysCommand permet de déléguer la validation de la clé publique à un programme personnalisé (OpenPubkey verifier)
- Vérification de correspondance de la clé publique : vérification que la clé publique protégeant la session SSH correspond à celle contenue dans le PK Token
Passage en open source et sa signification
- OPKSSH est publié sur GitHub sous licence Apache 2.0
- Alors qu’il n’était auparavant qu’au stade de prototype, il propose désormais une version stable avec des fonctions SSH complètes
- Cloudflare n’en assure ni la maintenance ni la garantie, mais a fait don du code à la communauté OpenPubkey
Principales améliorations
- ajout de fonctions SSH utilisables en conditions réelles
- fourniture d’un script d’installation automatique
- inclusion d’outils de configuration améliorés
1 commentaires
Avis Hacker News
step-castep-capeut communiquer avec des systèmes OAUTH/OIDC et des fournisseurs cloudssh-keygenpar défaut, ce qui est avantageux du point de vue de l’administrateurstdiodu serveur vers le client, mais fournit des commandes supplémentaires