Pourquoi l'administrateur système ne crée-t-il pas simplement un compte utilisateur pour chaque utilisateur sur chaque serveur, afin que les utilisateurs puissent utiliser leur nom d'utilisateur et leur mot de passe pour accéder aux ressources auxquelles ils souhaitent accéder?
Imaginez que vous avez 50 utilisateurs et 50 serveurs. Par souci de simplicité, supposons que les 50 utilisateurs sont censés avoir accès aux 50 serveurs, ils ont tous les mêmes privilèges sur tous les serveurs, et nous n'avons jamais à changer ces privilèges. Il s'agit au total de 2 500 entrées de mot de passe à créer.
Ajout d'un nouvel utilisateur
Lorsque vous ajoutez un nouvel utilisateur, l'administrateur doit partir aux 50 serveurs et ajoutez cet utilisateur à tous. Cela nécessiterait que l'administrateur exécute la commande create user sur les 50 serveurs. Ce bit peut être automatisé, mais la partie qui ne peut être automatisée en toute sécurité est que l’utilisateur doit entrer son mot de passe 50 fois, une fois par serveur.
Pourquoi ce dernier problème? Parce que les systèmes d'authentification par mot de passe sont conçus de manière à ne pas conserver une copie du mot de passe, pas même une copie chiffrée. Ainsi, lorsque l'utilisateur saisit son nouveau mot de passe sur le serveur n ° 1, ce serveur oublie immédiatement le mot de passe, il devra donc le saisir à nouveau pour le serveur n ° 2, et n ° 3, etc.
Ajout d'un nouveau serveur
Vous pensez peut-être maintenant que vous pourriez écrire un script qui:
- S'exécute sur le serveur X;
- Demande au nouvel utilisateur d'entrer son nouveau mot de passe;
- Demande à l'administrateur son mot de passe;
- Se connecte aux serveurs # 1 à # 50 et crée le compte utilisateur sur chacun d'eux avec le même mot de passe.
C'est un peu douteux, mais même si vous y allez, vous vous retrouvez toujours avec un autre problème plus grave. Supposons que votre entreprise achète un nouveau serveur et que nous ayons maintenant besoin de nos 50 utilisateurs pour avoir accès à ce serveur. Eh bien, étant donné qu'aucun des serveurs ne contient une copie des mots de passe des utilisateurs, l'administrateur devrait accéder à chaque utilisateur et leur demander de saisir un mot de passe pour leur compte sur le nouveau serveur. Et il est impossible de contourner ce problème à moins de conserver des copies des mots de passe des utilisateurs, ce qui, encore une fois, n'est pas une pratique sûre.
Base de données de mots de passe centralisée
Pour résoudre ces problèmes, vous avez vraiment besoin que votre base de données utilisateur / mot de passe soit centralisée en un seul endroit, et que tous les serveurs consultent cette base de données pour authentifier les noms d'utilisateur et les mots de passe. C'est vraiment le strict minimum dont vous avez besoin pour un environnement multi-utilisateur / multiserveur gérable. Maintenant:
- Lorsque vous ajoutez un nouvel utilisateur, tous les serveurs le récupèrent automatiquement dans la base de données centrale.
- Lorsque vous ajoutez un nouveau serveur, il récupère automatiquement tout les utilisateurs de la base de données centrale.
Il existe une variété de mécanismes pour ce faire, même s'ils manquent encore de ce que propose Kerberos.
Kerberos
Une fois que vous avez une telle base de données centralisée, il est logique de la perfectionner avec plus de fonctionnalités, à la fois pour faciliter la gestion et pour plus de commodité. Kerberos ajoute la possibilité que, lorsqu'un utilisateur s'est connecté avec succès à un service, ce service "se souvient" du fait et est capable de "prouver" à d'autres services que cet utilisateur s'est connecté avec succès. Ainsi, ces autres services, présentés avec une telle preuve, permettront à l'utilisateur d'entrer sans lui demander de mot de passe.
Cela offre un mélange de commodité et de sécurité:
- Les utilisateurs ne on ne leur demande pas encore et encore leur mot de passe lorsqu'ils l'ont déjà saisi une fois ce jour-là.
- Lorsque des programmeurs écrivent des programmes qui accèdent à plusieurs serveurs et que ces serveurs nécessitent une authentification, les programmes peuvent désormais s'authentifier auprès de ces serveurs sans avoir à présenter de mot de passe, en réutilisant les informations d'identification du compte de serveur sous lequel ils s'exécutent.
Ce dernier est important car il minimise ou tue une pratique non sécurisée mais trop courante: des programmes automatisés qui vous obligent à mettre des copies des noms d'utilisateur et des mots de passe dans les fichiers de configuration. Encore une fois, une idée clé de la gestion sécurisée des mots de passe est de ne pas stocker de copies de mots de passe, pas même de copies chiffrées .