La sécurité et l'intégrité d'un système au sein d'un réseau peut être une lourde tâche. En effet, elle peut monopoliser le temps de plusieurs administrateurs rien que pour effectuer le suivi des services en cours d'exécution sur un réseau et surveiller la manière selon laquelle ils sont utilisés. De plus, l'authentification des utilisateurs auprès des services réseau peut s'avérer être une opération dangereuse lorsque la méthode utilisée par le protocole est par essence non-sécurisée, comme c'est la cas avec les protocoles FTP et telnet lors du transfert de mots de passe de manière non-cryptée sur le réseau. Kerberos représente un moyen d'éliminer le besoin de protocoles qui utilisent des méthodes d'authentification vulnérables, permettant ainsi de renforcer la sécurité réseau en général.
Kerberos est un protocole d'authentification réseau créé par MIT qui utilise une cryptographie à clés symétriques[1] pour authentifier les utilisateurs auprès des services réseau — éliminant par là même la nécessité de transmettre des mots de passe sur le réseau. Lorsque les utilisateurs s'authentifient auprès des services réseau au moyen de Kerberos, les utilisateurs non-autorisés tentant d'intercepter des mots de passe en surveillant le trafic sur le réseau voient leurs desseins contrecarrés.
La plupart des services réseau conventionnels utilisent des procédures d'authentification basées sur des mots de passe. Dans ce cadre, un utilisateur doit s'authentifier auprès d'un serveur réseau précis en fournissant son nom d'utilisateur et son mot de passe. Regrettablement, la transmission des informations d'authentification pour de nombreux services s'effectue de façon non-cryptée. Pour qu'une telle procédure soit sécurisée, il est essentiel que le réseau soit inaccessible aux utilisateurs externes d'une part et d'autre part, que tous les ordinateurs et utilisateurs du réseau soient dignes de confiance.
Même si c'est le cas, une fois qu'un réseau est connecté à l'Internet, on ne peut plus supposer que le réseau soit sécurisé. Il suffit à tout pirate obtenant l'accès au réseau d'utiliser un simple analyseur de paquets (aussi connu sous le nom de renifleur de paquets) pour intercepter des noms d'utilisateurs et des mots de passe envoyés en texte clair. Dans de telles circonstances, les comptes utilisateur et l'intégrité de toute l'infrastructure de sécurité sont remis en cause.
Le but essentiel de Korberos est d'éviter la transmission de mots de passe non-cryptés à travers le réseau. Lorsque Korberos est utilisé correctement, il élimine de façon efficace la menace que représentent les renifleurs de paquets pour un réseau.
Bien que Kerberos permette d'éliminer une sérieurse menace de sécurité, son implémentation peut être difficile pour de multiples raisons :
La migration de mots de passe utilisateur d'une base de données de mots de passe UNIX standard, comme /etc/passwd ou /etc/shadow, vers une base de données de mots de passe Kerberos peut être relativement longue car il n'existe aucun mécanisme automatique permettant d'effectuer cette tâche. Pour obtenir de plus amples informations sur le sujet, consultez la question numéro 2.23 du FAQ de Kerberos disponible à l'adresse suivante :
Kerberos n'est que partiellement compatible avec le système d'authentification PAM (de l'anglais Pluggable Authentication Modules) utilisé par la plupart des serveurs exécutant Red Hat Enterprise Linux. Pour obtenir de plus amples informations sur le sujet, reportez-vous à la Section 19.4.
Kerberos suppose certes que tout utilisateur soit digne de confiance mais utilise un hôte non-sécurisé sur un réseau non-sécurisé. Son but primaire est d'empêcher que des mots de passe en texte clair ne soient envoyés à travers ce réseau. Toutefois, si quelqu'un d'autre que l'utilisateur lui-même a physiquement accès à l'hôte qui émet les tickets utilisés pour l'authentification — appelé centre de distribution de clés (ou KDC de l'anglais Key Distribution Center) — l'ensemble du système d'authentification Kerberos est menacé d'être compromis.
Pour qu'une application utilise Kerberos, ses sources doivent être modifiées afin d'effectuer les appels appropriés dans les bibliothèques Kerberos. Les applications modifiées de la sorte sont considérées comme étant kerberisées. Pour certaines applications, ceci peut poser de nombreux problèmes en raison de la taille et de la conception de l'application. Pour d'autres applications qui ne sont pas compatibles, des modifications doivent être apportées à la manière selon laquelle les serveurs et les clients communiquent entre eux. Là encore, il se peut que des modifications importantes soient nécessaires au niveau de la programmation. Les applications dont les sources ne sont pas accessibles et dont la prise en charge de Kerberos n'est pas disponible par défaut sont celles posant généralement le plus de problèmes.
Avec une solution Kerberos, c'est tout ou rien. Une fois que Kerberos est utilisé sur le réseau, tout mot de passe non-crypté transmis à un service non-kerberisé risque d'être intercepté. Dans de telles circonstances, le système ne tirera aucun avantage de l'utilisation de Korberos. Afin de sécuriser votre réseau avec Kerberos, vous devez soit utiliser des versions kerberisées de toutes les applications client/serveur qui envoient des mots de passe en texte clair, soit n'utiliser absolument aucune application client/serveur.
[1] | Un système au sein duquel le client et le serveur partagent une clé commune qui est utilisée pour crypter ou décrypter les communications réseau |
Précédent | Sommaire | Suivant |
Ressources supplémentaires | Niveau supérieur | Terminologie spécifique à Kerberos |