Kerberos en environnement ISP UNIX/Win2K/Cisco > Nicolas FISCHBACH nico@securite.org - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS kaneda@securite.org - http://www.securite.org/kaneda/ version 1.13fr
Agenda Kerberos > Introduction : pourquoi Kerberos ? > Le protocole et les échanges > MIT Kerberos et les Applications > Attaques Déploiement > UNIX > Cisco (routeurs et switches) > Win2K Questions/Réponses © 2001 Sécurité.Org
Kerberos ? Kerberos est un protocole d’authentification réseau Il utilise une horloge pour : > limiter l’usage des clés dans le temps > détecter les attaques par rejeu Authentification mutuelle Utilise DES et des clés partagées Tiers de confiance © 2001 Sécurité.Org
Ce que Kerberos n’est/ne fait pas Kerberos ne fournit pas d’autorisation uniquement de l’authentification Kerberos ne fait pas de chiffrement de données © 2001 Sécurité.Org
Pourquoi utiliser Kerberos ? Authentification sécurisée (cryptographie) Pas de transmission du mot de passe Single Sign On > “SSO is bad for security” (Bruce Schneier) Gestion centralisée de l’authentification Standard IETF (RFC 1510) © 2001 Sécurité.Org
Lexique Kerberos (1) KDC : Key Distribution Center. Base de données des clients et des serveurs (principaux) et les clés privées associées principal : trinôme <primary name, instance, realm> > user : login/staff@REALM > service : service/hote.fqdn@REALM primary : nom d’utilisateur ou du service instance : “qualifie” le primary (rôle/groupe) realm : domaine d’authentification © 2001 Sécurité.Org
Lexique Kerberos (2) keytab : fichier contenant une ou plusieurs clés (pour des hôtes ou des services). Aussi connu sous SRVTAB. client : entité pouvant obtenir un ticket (utilisateur/hôte) service : host, ftp, krbtgt, pop, etc. ticket : crédits (identité d’un client pour un service particulier) TGT : ticket donné par l’AS. Permet au client d’obtenir d’autres tickets pour le même royaume © 2001 Sécurité.Org
Key Distribution Center Responsable de la maintenance des clés maîtres et de la mise à disposition des tickets Kerberos L’Authentication Service (AS) donne au client une clé de session et unTicket Granting Ticket (TGT) Distribue les clés de session et les tickets pour les services via le Ticket Granting Service (TGS) © 2001 Sécurité.Org
Le Protocole Kerberos (1) Ticket Kerberos Domain Principal Name Ticket Flags Encryption Key Start Time End Time Host Address Authorization Data Chiffré © 2001 Sécurité.Org
Le Protocole Kerberos (2) Echanges de tickets Kerberos Ports: kinit: 88/udp kpasswd (Unix): 749/tdp kpasswd (Win): 464/{tcp,udp} Key Distribution Center Authentication Service Ticket Granting Service Utilisateur Service Réseau © 2001 Sécurité.Org
Le Protocole Kerberos (3) Obtention d’un Ticket Granting Ticket (1+2) > (1) Demande d’un TGT > (2) TGT (déchiffré avec le hash du mot de passe de l’utilisateur) Client KDC Demande de TGT (1) TGT (2) © 2001 Sécurité.Org
Le Protocole Kerberos (4) Obtenir et utiliser un Service Ticket (3+4+5) > (3) Demande de ST (avec le TGT) > (4) ST et clé de session > (5) ST pour l’authentification KDC Demande ST (3) Client ST et SK (4) ST (5) Serveur © 2001 Sécurité.Org
Le Protocole Kerberos (5) Délégation de l’authentification Serveur KDC Demande de ST Client TGT + ST ST et SK ST Serveur © 2001 Sécurité.Org
Realms Un royaume est un domaine d’authentification > Une base de données Kerberos et un ensemble de KDCs Organisation hiérarchique (nouveauté dans la version 5) Authentification uni ou bi-directionnelle Authentification inter-realm > transitive > directe entre royaumes © 2001 Sécurité.Org
Le Protocole Kerberos (6) Authentification entre domaines KDC Demande de TGT Client KDC TGT Demande de ST ST et SK ST et SK Serveur © 2001 Sécurité.Org
Distribution du MIT Version utilisée: 5.1 Inclus les logiciels client et serveur Plate-formes supportées : UNIXes (xBSD, Linux, Solaris, AIX, HP-UX, OSF/1, ...) MacOS 10 DNS peut être utilisé © 2001 Sécurité.Org
Applications Cerbèrisées telnet (avec chiffrement DES) et r-commandes CVS et ksu, klogin, k* SSH 1.2 supporte Kerberos V (utiliser au moins la version 1.2.30) SSL v3.0 Cygnus Kerbnet (NT, MAC, Unix) non supporté par samba (problèmes liés aux extensions MS) © 2001 Sécurité.Org
Cerbèrisation d’une application Toutes les applications sont adaptables Utilisation de l’API GSS Transport du ticket géré par l’application © 2001 Sécurité.Org
Problèmes liés au NAT L’adresse du client se trouve dans le ticket Nécessité d’ajouter l’adresse translatée traduite dans le ticket Patch pour la version 5.1 (MIT Kerberos) © 2001 Sécurité.Org
Attaques (1) Vulnérabilité dans le système d’authentification par usurpation (partie AS du KDC): fichier keytab et enregistrement des principaux pour le service (http://www.monkey.org/~dugsong/kdcspoof.tar.gz) Rejeu: détecté (synchronisation d’horloge du client et du serveur) Clés exposées: durée de vie limitée, mais utilisées pour plusieurs sessions Faille dans l’utilisation des fichiers temporaires : utiliser krb5-1.2.1+ © 2001 Sécurité.Org
Attaques (2) Recherche du mot de passe : utiliser une bonne passphrase Clients “chevaux de Troie” : OTP Relation de confiance implicite entre les royaumes Forwarding des tickets Autres: KDC, stations partagées, ... © 2001 Sécurité.Org
Clients *NIX RedHat (6.2 and 7) supporte Kerberos V > Installer le patch RHSA-2001:025-14 Solaris/OpenBSD ne fournissent qu’un support Kerberos IV © 2001 Sécurité.Org
Kerberos V sur les clients *NIX (1) Authentification gérée par l’API Kerberos Configuration de l’authentification par utilisateur : ~/.k5login - liste les principaux qui peuvent se connecter sur ce compte ~/.k5users - liste les commandes qui peuvent être lancées via ksu (similaire à sudo) alternative PAM non conseillée © 2001 Sécurité.Org
Kerberos V sur les clients *NIX (2) Telnet cerbèrisé : disponible SSH cerbèrisé : > SSH de SSH.Com 1.2.x et 2.x supportent Kerberos V > OpenSSH (jusqu’a la version 2.5.1) ne supporte pas encore Kerberos V: http://www.sxw.org.uk/computing/patches/ © 2001 Sécurité.Org
Kerberos V et Cisco (1) Routeurs Cisco > Telnet cerbèrisé > Authentification par mot de passe utilisant Kerberos (telnet, SSH et la console) > Une instance peut être associée à un privilège (configuré localement) Switches Cisco > Telnet uniquement (SSH disponible dans les 6.1 mais sans support pour Kerberos) © 2001 Sécurité.Org
Kerberos V et Cisco (2) IOS & mémoire sur les routeurs : > Nom de la fonctionnalité : Kerberos V client support > Feature set requis : au moins Enterprise > N’est pas supporté par toute la gamme, par exemple : - Cisco 16xx - Cisco GSR (12xxx - Gigabit Switch Router) > Besoins en mémoire : Note: toujours vérifier via le Cisco IOS Feature Navigator © 2001 Sécurité.Org
Kerberos V et Cisco (3) Exemple de configuration d’un routeur : aaa authentication login default krb5-telnet local aaa authorization exec default krb5-instance kerberos local-realm COLT.CH kerberos srvtab entry host/bgp1.colt.ch@COLT.CH ... kerberos server COLT.CH 192.168.0.14 kerberos instance map engineering 15 kerberos instance map support 3 kerberos credentials forward line vty 0 4 ntp server 192.168.0.126 © 2001 Sécurité.Org
Kerberos V et Cisco (4) CatOS & mémoire sur les switches : > Au moins Supervisor Engine Software Release 5.x > Uniquement supporté par les Catalyst 4000, 5000 et 6K > Uniquement supporté par les SE I (pas par les SE II) sur Cat6K > Besoins en mémoire : Note: toujours vérifier les Release Notes © 2001 Sécurité.Org
Kerberos V et Cisco (5) Exemple de configuration d’un switch : set kerberos local-realm COLT.CH set kerberos clients mandatory set kerberos credentials forward set kerberos server COLT.CH 192.168.0.82 88 set kerberos srvtab entry host/sw1.colt.ch@COLT.CH ... #authentication set authentication login kerberos enable telnet primary set authentication enable kerberos enable telnet primary #ntp set ntp client enable set ntp server 192.168.0.11 © 2001 Sécurité.Org
Kerberos V et Win2K (1) Supporte Kerberos pour les connexions interactives Le protocole est un Security Provider sous le SPPI (Security Support Provider Interface) et est lié à la LSA (Local Security Authority) Le cache des tickets est géré par la LSA Telnetd supporte Kerberos © 2001 Sécurité.Org
Kerberos V et Win2K (2) Support Tools Configuration d’une station Win2K: ksetup /setdomain COLT.CH ksetup /addkdc COLT.CH kdc.colt.ch ksetup /setmachpassword password ksetup /mapuser user@COLT.CH localuser ksetup /mapuser * * Windows Time Server (+ registry) Pas de SSH cerbèrisé, seulement quelques (mauvais) clients telnet © 2001 Sécurité.Org
That’s all folks :-) Dernière version de ce document : < http://www.securite.org/presentations/krb5/ > Q&R Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html © 2001 Sécurité.Org