La société Google a publié le code source du projet HIBA (Host Identity Based Authorization), qui propose la mise en œuvre d'un mécanisme supplémentaire d'autorisation pour organiser l'accès des utilisateurs via SSH en lien avec les hôtes (vérification, accès autorisé ou non à une ressource spécifique lors de l'authentification par clés publiques). L'intégration avec OpenSSH est assurée en spécifiant le gestionnaire HIBA dans la directive AuthorizedPrincipalsCommand dans /etc/ssh/sshd_config. Le code du projet est écrit en C et distribué sous licence BSD.
HIBA utilise les mécanismes d'authentification basés sur des certificats d'OpenSSH pour une gestion flexible et centralisée de l'autorisation des utilisateurs en lien avec les hôtes, sans nécessiter le changement périodique des fichiers authorized_keys et authorized_users du côté des hôtes auxquels on se connecte. Au lieu de stocker des listes de clés publiques autorisées et de conditions d'accès dans les fichiers authorized_(keys|users), HIBA intègre les informations de liaison des utilisateurs aux hôtes directement dans les certificats eux-mêmes. En particulier, des extensions pour les certificats d'hôtes et de utilisateurs sont proposées, où sont stockés les paramètres des hôtes et les conditions d'accès pour les utilisateurs.
La vérification du côté de l'hôte est initiée par l'appel du gestionnaire hiba-chk, spécifié dans la directive AuthorizedPrincipalsCommand. Ce gestionnaire décode les extensions intégrées dans les certificats et, sur cette base, prend la décision d'accorder ou de bloquer l'accès. Les règles d'accès sont définies de manière centralisée au niveau de l'autorité de certification (CA) et intégrées dans les certificats au moment de leur génération.
Du côté de l'autorité de certification, une liste générale des privilèges disponibles (hôtes auxquels la connexion est autorisée) et une liste des utilisateurs autorisés à utiliser ces privilèges sont maintenues. Pour générer des certificats signés avec des informations intégrées sur les privilèges, un utilitaire hiba-gen est proposé, et la fonctionnalité nécessaire à la création d'une autorité de certification a été transférée dans le script iba-ca.sh.
Lors de la connexion d'un utilisateur, les autorisations spécifiées dans le certificat sont confirmées par la signature numérique de l'autorité de certification, ce qui permet d'effectuer toutes les vérifications entièrement du côté de l'hôte cible, sans faire appel à des services externes. La liste des clés publiques de l'autorité de certification qui valide les certificats SSH est indiquée par la directive TrustedUserCAKeys.
En plus de l'attribution directe des utilisateurs aux hôtes, HIBA permet de définir des règles d'accès plus flexibles. Par exemple, des informations telles que la localisation et le type de service peuvent être associées aux hôtes, et lors de la définition des règles d'accès des utilisateurs, il est possible d'autoriser l'accès à tous les hôtes d'un certain type de service ou à ceux situés à un emplacement donné.


Source : opennet.ru
