Crackage et durcissement des mots de passe
Denis Ducamp / Hervé Schauer Consultants24 novembre 1999
Reproduction strictement interdite
Cette présentation va aborder cinq points :
- Les différents algorithmes de chiffrement
- La localisation des empreintes
- Les logiciels de crackage
- La protection des mots de passe
- Le durcissement des mots de passe
Pour chaque point les spécificités Unix et Windows NT seront soulignées
L'algorithme utilisé dépend fortement du contexte :
2.1 Les différents algorithmes de chiffrement sous Unix
- DES :
- La chaîne "zéro" est chiffrée 25 fois en utilisant le mot de passe
comme clé
- Une graine de 2 caractères permet d'empêcher les attaques par
dictionnaire pré-calculé
Insuffisant avec plusieurs milliers de comptes : risques de collisions
- Seuls les 8 premiers caractères sont pris en compte
- Certains systèmes peuvent prendre en compte 16 caractères
En fait deux mots de passe de 8 caractères.
L'empreinte obtenue est composée de 24 caractères
- La fonction crypt de BSDI appelle 725 fois la fonction DES
2.2 Les différents algorithmes de chiffrement sous Unix (suite)
- MD5 :
- Le MD5 du mot de passe est calculé 32 fois récursivement
- Le but est d'avoir une fonction crypt sans fonction de chiffrement
- Une graine de 2 à 8 caractères permet d'empêcher les attaques par
dictionnaire pré-calculé
- Disponible sous FreeBSD, OpenBSD, Linux (libc5 et glibc2) et d'autres
avec PAM.
2.3 Les différents algorithmes de chiffrement sous Unix (suite et fin)
2.4 Les différents algorithmes de chiffrement sous Windows NT
- LanMan :
- NTLM :
- Le MD4 du mot de passe en Unicode
- Aucune graine n'est utilisée pour empêcher les attaques par
dictionnaires pré-calculés
2.5 Les différents algorithmes de chiffrement sur le Réseau
L'algorithme utilisé dépend fortement du protocole applicatif utilisé
mais aussi de son niveau
- En clair : telnet, ftp, r* commandes, pop, http, etc.
- Challenge / réponse : principe
- A la connexion d'un client, le serveur envoie une chaîne nommée
challenge.
- Le client calcule la réponse à partir du challenge, du mot de passe,
d'autres données éventuellement et d'une fonction donnée.
- Le client renvoie la réponse au serveur qui a effectué le même calcul de
son côté.
- L'accès est autorisé si les deux réponses sont identiques.
2.6 Les différents algorithmes de chiffrement sur le Réseau (suite et fin)
- Challenge / réponse :
- apop (rfc1939) : la réponse est le md5 de la concaténation du
challenge et du mot de passe.
- HTTP Digest (rfc2617) : la réponse est le md5 de la
concaténation de plusieurs chaînes
- SMB :
- chaque tiers du mot de passe chiffré sert de clé au chiffrement du
challenge en DES.
- Suivant les versions du client et du serveur, ce sont les empreintes
LanMan et/ou NTLM qui sont utilisées.
Une empreinte est le résultat du hachage d'un mot de passe par un
algorithme non réversible.
Cette opération permet d'enregistrer dans le système une "image" du mot
de passe
et empêche quiconque d'accéder au mot de passe en clair.
La localisation des empreintes dépend fortement du contexte :
- Unix
- Windows NT
- Applications
3.1 La localisation des empreintes sous Unix
- /etc/passwd
- mots de passe "cachés" (shadow passwords) :
- /etc/shadow : Linux, Solaris et d'autres...
- Systèmes BSD : /etc/master.passwd
- AIX : /etc/security/passwd
- HP-UX (C2) : /etc/sec.passwd
- SunOS (C2) : /etc/security/passwd.adjunct
3.2 La localisation des empreintes sous Windows NT
Avertissement :
- De nombreux clients sauvegardent les mots de passe des utilisateurs
de façon réversible et accessible à tous dans la base
de registre ou dans des fichiers utilisateurs.
- Les problèmes engendrés par ces mots de passe dépassent l'objet de
cette présentation.
- SAM :
- $windir$\system32\config\sam
- $windir$\repair\sam._
- Disquette de réparation
- frontpage : attention aux fichiers *.pwd
3.3 La localisation des empreintes applicatives
- apache : les fichiers .htpasswd contiennent des mots de passe
DES
- apop : les fichiers ~/.apop/secret contiennent des mots
de passe en clair
- wwwboard, discus board, etc. : les fichiers suivants
contiennent des mots de passe DES
- admin.txt
- passwd.txt
- users.txt
- Crack
- John the Ripper
- L0phtCrack
- Autres...
4.1 Crack
- Crack 5.0a du 21/12/1996 - Open Source
- Auteur : Alec Muffett
- HomePage :
http://www.users.dircon.co.uk/~crypto/
- Seul le chiffrement DES est supporté en standard
- Peut utiliser la fonction crypt du système pour supporter d'autres
algorithmes
4.2 John the Ripper
- John the Ripper v1.6 du 03/12/1998 - Open Source
- Auteur : Solar Designer
- HomePage :
http://www.openwall.com/john/
- Supporte les chiffrements DES , BSDI DES , MD5 , Blowfish et LanMan
et les processeurs x86 , sparc , alpha , ppc , pa-risc et mips 32 et 64 bits
- Fournit des fonctions avancées de génération de mots de passe
à partir de règles de transformations, de statistiques ou de programmation.
- Possède les implémentations DES et MD5 les plus rapides
4.3 L0phtCrack
- L0phtCrack 2.52 for Win95/NT du 13/01/1999 - ShareWare
- Auteurs : L0pht (Mudge et d'autres)
- HomePage :
http://www.l0pht.com/l0phtcrack/
- Supporte les chiffrements LanMan et NTLM avec et sans challenge /
réponse
- Fournit un sniffer permettant de récupérer des empreintes sur le
réseau
- Permet de récupérer la SAM par SMB
- Possède l'implémentation LanMan la plus rapide
4.4 Autres logiciels de crackage
Liste non exhaustive :
- DES : qcrack (dictionnaires pré-calculés) , etc.
- Windows NT :
- sous Windows : Password Appraiser (dictionnaires pré-calculés)
- sous Unix : NTCrack , lc15 (L0phtCrack v1.5)
- sur le réseau : c2myazz
- fichiers *.pwl de windows 3.x à windows 95 : Pwlcrack et
beaucoup d'autres...
- cisco (mode 7) : ciscocrack , cisco_decrypt7
- bases LDAP : utiliser une fonction sha1 standard
- Basic HTTP : echo 'ZHVjYW1wOlBldGl0Q3VyaWV1eDstKQ==' | mimencode -u
- et tant d'autres...
- La protection des mots de passe peut être réalisée à plusieurs niveaux :
- dans le système
- sur le réseau
- au niveau applicatif
5.1 La protection des mots de passe Unix
- Mots de passe "cachés" (shadow passwords)
- La commande pwconv permet de déplacer les mots de passe
du fichier /etc/passwd vers le fichier /etc/shadow (ou
équivalent)
Ce fichier ne doit être lisible que par les administrateurs
- Attention : de nombreuses applications doivent avoir été compilées
pour le supporter,
tous les systèmes modernes supportent cette fonctionnalité (souvent
activée par défaut)
- Système avec PAM : ajouter dans /etc/pam.d/passwd le terme
shadow à la fin de la ligne
password required /lib/security/pam_pwdb.so
5.2 La protection des mots de passe Unix (suite et fin)
- Autres algorithmes de chiffrement : MD5 et BlowFish
- Linux sans PAM : ajouter MD5_CRYPT_ENAB yes dans
/etc/login.defs
- Système avec PAM : ajouter dans /etc/pam.d/passwd le
terme md5 à la fin de la ligne
password required /lib/security/pam_pwdb.so
- OpenBSD : ajouter dans /etc/passwd.conf
- localcipher=md5
- localcipher=blowfish,x : 2^x itérations avec 4 <= x <= 31
5.3 La protection des mots de passe Windows NT
- syskey
- Chiffrement du contenu de la SAM en DES
- Le mot de passe est :
- soit sauvegardé sur une disquette
- soit sauvegardé dans la partition système
- soit demandé lors du démarrage du système
- Toujours accessible "en clair" pour tout utilisateur avec les droits
de débogage : pwdump2
5.4 La protection des mots de passe sur le réseau
- telnet :
- S/KEY One-Time Password System (rfc1760)
- One Time Passwords in Everything (OPIE) -
http://inner.net/opie
OPIE is a freely redistributable kit that will drop into most *IX systems
and replace your login and FTP daemon with versions that use OTP for user
authentication. It also includes an OTP generator and a library to make it
easy to add OTP authentication to existing clients and servers.
- Stanford Remote Authentication Project (SRP) -
http://srp.stanford.edu/srp/
provides modified telnet and ftp clients for strong authentication
- stelnet : telnet sur ssl
- ssh : rlogin et rsh avec chiffrement et authentification forte
Il existe une version officiellement autorisée par le SCSSI :
ssf -
http://www.in2p3.fr/securite/ssf/
5.5 La protection des mots de passe sur le réseau (suite)
- POP3 : utiliser l'authentification apop
- HTTP : utiliser l'authentification Digest
- Implémenté dans aucun client ou serveur
- Utiliser https
5.6 La protection des mots de passe sur le réseau (suite)
- Stunnel :
http://mike.daewoo.com.pl/computer/stunnel/
designed to work as SSL encryption wrapper between remote client and local
(inetd-startable) or remote server. The concept is that having non-SSL aware
daemons running on your system you can easily setup to communicate with
clients over secure SSL channels. stunnel can be used to add SSL
functionality to commonly used inetd daemons like POP-2, POP-3 and IMAP
servers as well as standalone daemons like NNTP, SMTP and HTTP without
changes to the source code.
Latest Version: 3.2 Last Update: May 24, 1999
5.7 La protection des mots de passe sur le réseau (suite)
- challenge / réponse NTLM :
- Microsoft a porté son système de challenge / réponse NTLM dans plusieurs
protocoles ouverts : HTTP, IMAP, LDAP, NNTP et POP3
- Avantages :
- Le mot de passe n'est plus envoyé en clair
- Inconvénients :
- Dans une implémentation modifiée d'un client :
la connaissance de l'empreinte du mot de passe
suffit à s'authentifier.
- Il s'agit d'extensions non documentées implémentées seulement dans
. les serveurs IIS et Exchange
. les clients Internet Explorer et Outlook.
- Internet Explorer refuse d'utiliser NTLM dans HTTP au travers
d'un relai
- fetchmail permet d'utiliser l'authentification NTLM dans IMAP.
5.8 La protection des mots de passe sur le réseau (suite et fin)
5.9 La protection des mots de passe applicatifs
- apache : les fichiers .htpasswd ne doivent pas être
accessibles par un quelconque moyen de partage de fichiers (ftp, http,
nfs...).
- wwwboard, discus board, etc. : ne pas utiliser ces systèmes
:-( à moins qu'il soit possible de marquer les fichiers de mots de
passe comme non accessibles.
- serveurs Netscape : le fichier id2entry.dbb (base
LDAP) ne doit pas être accessible par un quelconque moyen de partage de
fichiers.
- frontpage : protéger les fichiers *.pwd par des ACL.
6.1 Pourquoi durcir les mots de passe ?
- Constitution des mots de passe crackés
1887 (100.00 % ) Mots de passe crackés
952 ( 50.45 % ) Un mot en minuscules
336 ( 17.81 % ) Un mot en minuscules suivi du chiffre '1'
153 ( 8.11 % ) Un mot en minuscules suivi d'un chiffre autre que '1'
1 ( 0.05 % ) Un mot en minuscules suivi d'une majuscule
24 ( 1.27 % ) Un mot en minuscules suivi d'un autre caractère
13 ( 0.69 % ) Le chiffre '1' suivi d'un mot en minuscules
7 ( 0.37 % ) Un chiffre autre que '1' suivi d'un mot en minuscules
7 ( 0.37 % ) Un autre caractère suivi d'un mot en minuscules
183 ( 9.70 % ) Plusieurs chiffres suivis d'un mot en minuscules
3 ( 0.16 % ) Un mot en minuscules suivis de plusieurs chiffres
13 ( 0.69 % ) minuscule(s) chiffre(s) minuscule(s)
2 ( 0.11 % ) chiffre(s) minuscule(s) chiffre(s)
77 ( 4.08 % ) nombre
9 ( 0.48 % ) minuscules et chiffres
32 ( 1.70 % ) Une majuscule suivi de minuscule(s)
10 ( 0.53 % ) Une majuscule suivi de minuscule(s) et du chiffre '1'
6 ( 0.32 % ) Une majuscule suivi de minuscule(s) et d'un chiffre autre que '1'
1 ( 0.05 % ) Une majuscule suivi de minuscule(s) et de chiffres
1 ( 0.05 % ) Une majuscule suivi de minuscule(s) et d'une majuscule
1 ( 0.05 % ) Une majuscule suivi de minuscule(s) et d'un autre caractère
12 ( 0.64 % ) Un mot en majuscules
1 ( 0.05 % ) Un mot en majuscules suivi du chiffre '1'
2 ( 0.11 % ) Un mot en majuscules suivi d'un autre chiffre
1 ( 0.05 % ) Un mot en majuscules suivi de plusieurs chiffres
0 ( 0.00 % ) Un mot en majuscules suivi d'un autre caractère
1 ( 0.05 % ) Une suite de majuscule(s) et de minuscule(s)
0 ( 0.00 % ) Une suite de majuscule(s) et de chiffre(s)
1 ( 0.05 % ) Une suite de majuscule(s), de minuscule(s) et de chiffre(s)
38 ( 2.01 % ) Toute autre combinaison de caractères
6.2 Pourquoi durcir les mots de passe ? (suite)
- Les mots de passe choisis par les utilisateurs non avertis sont trop
simples
- Pour accéder à un système il suffit d'un seul mot de passe
- Les temps de crackage de plus en plus courts :
- chiffrement DES de 8 caractères en minuscules : 99 jours
- chiffrement LANMAN de 7 caractères en minuscules : 14 heures 30
- chiffrement LANMAN de 7 caractères alphanumériques : 5 jours et demi
- chiffrement LANMAN de 7 caractères (69 caractères) : 1 an et 4 mois
- chiffrement DES de 8 caractères (95 caractères) avec une machine "EFF" :
17,5 jours...
6.3 Pourquoi durcir les mots de passe ? (suite et fin)
6.4 Le durcissement des mots de passe sous Unix
- npasswd : par Clyde Hoover -
http://www.utexas.edu/cc/unix/software/npasswd/
- Remplace les commandes passwd , chfn et chsh
- Effectue sur les nouveaux mots de passe de nombreux tests à partir de
règles de transformations et de dictionnaires avant de les accepter.
- CrackLib :
- Module PAM basé sur CrackLib v2.7 d'Alec Muffett
(auteur de Crack)
- Accepte un nouveau mot de passe seulement si celui-ci n'est pas
crackable par Crack.
6.5 Le durcissement des mots de passe sous Windows NT
6.6 Quelques règles de constitution
- Il doit contenir 6 à 7 caractères au moins.
- Il doit utiliser :
- des caractères de contrôle,
- et/ou de ponctuation,
- et/ou des chiffres
- et/ou des lettres majuscules et minuscules.
- Il ne doit pas faire référence à une information :
- générale ou personnelle.
- liée à l'installation du système, à l'entreprise ou à l'organisation.
- Ne doit pas être un simple mot référencé dans un dictionnaire (français, anglais ou autre)
- Ne doit pas être un des exemples donnés dans le cours
6.7 Quelques règles de constitution (suite et fin)
- Méthodes simples pour obtenir de bons mots de passe faciles à retenir :
- combiner deux mots existants en introduisant des chiffres et/ou des
caractères de ponctuation,
- utiliser des mots écrits en phonétique,
- utiliser les premières lettres de vers, phrases, expressions,
adresses, etc.
- Exemples de bons mots de passe :
- Beau!C', Atout;Kc, C2much+, Love4evEr, 10Cquer, 13abilE, 47AdlDL,
HqcUafulv.
- Exemples de mauvais mots de passe
- racine, rootroot, toor, super, tOtO, vax, foobar, CB3506, 8786VL92,
charlotte, azerty, Paris, 28Jul92, 24/04/89.
- Beau!C', Atout;Kc, C2much+, Love4evEr, 10Cquer, 13abilE, 47AdlDL,
HqcUafulv.
|