> Nicolas FISCHBACH [email protected] - > Sébastien LACOSTE-SERIS [email protected] - version.

32
> Nicolas FISCHBACH [email protected] - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS [email protected] - http://www.securite.org/kaned version 1.13fr Kerberos en environnement ISP UNIX/Win2K/Cisco

Transcript of > Nicolas FISCHBACH [email protected] - > Sébastien LACOSTE-SERIS [email protected] - version.

Page 1: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  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

Page 2: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 3: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 4: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 5: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 6: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 7: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 8: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 9: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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é

Page 10: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 11: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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)

Page 12: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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)

Page 13: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 14: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 15: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 16: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 17: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 18: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 19: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 20: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 21: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 22: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 23: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 24: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 25: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 26: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 27: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 28: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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)

Page 29: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 30: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 31: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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

Page 32: > Nicolas FISCHBACH nico@securite.org -  > Sébastien LACOSTE-SERIS kaneda@securite.org -  version.

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