> Nicolas FISCHBACH [email protected] - > Sébastien LACOSTE-SERIS [email protected] - version.
-
Upload
yolande-guillemin -
Category
Documents
-
view
106 -
download
2
Transcript of > Nicolas FISCHBACH [email protected] - > Sébastien LACOSTE-SERIS [email protected] - version.
> Nicolas FISCHBACH [email protected] - http://www.securite.org/nico/
> Sébastien LACOSTE-SERIS [email protected] - http://www.securite.org/kaneda/
version 1.13fr
Kerberos en environnement ISPUNIX/Win2K/Cisco
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
© 2001 Sécurité.Org
Domain
Principal Name
Ticket Flags
Encryption Key
Domain
Principal Name
Start Time
End Time
Host Address
Authorization Data
Chiffré
t icket
Le Protocole Kerberos (2)
Echanges de tickets Kerberos
Ports: kinit: 88/udp kpasswd (Unix): 749/tdp kpasswd (Win): 464/{tcp,udp}
© 2001 Sécurité.Org
Key Distribution Center
AuthenticationService
Ticket GrantingService
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)
© 2001 Sécurité.Org
Client KDC
Demande de TGT (1)
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
© 2001 Sécurité.Org
Client
KDC
Serveur
Demande ST (3)
ST et SK (4)
ST (5)
Le Protocole Kerberos (5)
Délégation de l’authentification
© 2001 Sécurité.Org
Client
Serveur
Serveur
KDC
TGT + ST
Demande de ST
ST et SK
ST
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
© 2001 Sécurité.Org
Client
Serveur
KDC
Demande de TGT
Demande de ST
ST et SK
KDC
TGT
ST et SK
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
Hardware IOS RAM / Flash26xx 12.0 32 / 8
12.1 48 / 1672xx 12.0 64 / 16
12.1 64 / 16
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/[email protected] ...
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
Hardware CatOs Mémoire4000 5.2+ 64
6.1 646000 5.4+ 64
6.1 64 (SE1)
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/[email protected] ...
#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 [email protected] 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
© 2001 Sécurité.Org
Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html