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
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
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
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)
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
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
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)
Le Protocole Kerberos (1) > Ticket Kerberos Domain Principal Name Ticket Flags Encryption Key Domain Principal Name Start Time End Time Host Address Authorization Data Chiffré
Le Protocole Kerberos (2) > Echanges de tickets Kerberos > Ports: kinit: kpasswd (Unix): kpasswd (Win): 88/udp 749/tdp 464/{tcp,udp} Key Distribution Center Authentication Service Ticket Granting Service ticket Utilisateur Service Réseau
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 Demande de TGT (1) KDC TGT (2)
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 Client Demande ST (3) KDC ST et SK (4) ST (5) Serveur
Le Protocole Kerberos (5) > Délégation de l authentification Client Serveur Demande de ST KDC TGT + ST ST et SK ST Serveur
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
Le Protocole Kerberos (6) > Authentification entre domaines KDC Client Demande de TGT TGT Demande de ST ST et SK KDC ST et SK Serveur
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é
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)
Cerbèrisation d une application > Toutes les applications sont adaptables > Utilisation de l API GSS > Transport du ticket géré par l application
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)
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+
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,...
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
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
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/
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)
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 : Hardware IOS RAM / Flash 26xx 12.0 32 / 8 12.1 48 / 16 72xx 12.0 64 / 16 12.1 64 / 16 Note: toujours vérifier via le Cisco IOS Feature Navigator
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
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 : Hardware CatOs Mémoire 4000 5.2+ 64 6.1 64 6000 5.4+ 64 6.1 64 (SE1) Note: toujours vérifier les Release Notes
Kerberos V et Cisco (5) > Exemple de configuration d un switch : #kerberos 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
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
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
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