Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 11/03/2012, à 14:40

utnubu42

Hachage et salage utilisés dans /etc/shadow

Bonjour à tous.

Je voudrais savoir, par simple curiosité, comment sont cryptés les mots de passes dans le fichier /etc/shadow
Voila une ligne de mon fichier :
bidon:$6$JZ1idS/T$iFqQmqk9Lt/UPRsEoAWk2KExp/HA9z80cmN3MB2vda6JBhMEG2Krs0gCCzEUs1JQadfT/vqWz42rM4X403HoE/

D'après ce que je sais, le $6 indique que le mot de passe est haché en SHA-512, le $JZ1idS/T est le salage et le reste c'est le mot de passe haché.

Je voudrais donc comprendre comment sont salés les mots de passe et pourquoi ici le hash est en caractères ASCII et non des chiffres en hexadécimal.

Merci d'avance

Hors ligne

#2 Le 12/03/2012, à 23:52

VoucyusDo

Re : Hachage et salage utilisés dans /etc/shadow

A vue de nez, il s'agit d'un encodage base64 (64 caractères possibles: a-z A-Z 0-9 + et /). L'intérêt d'un tel codage est de donner des nombres plus courts (6 bits par caractères, 2⁶=64) qu'en hexa (4 bits par caractères, 2⁴=16). Je suppose que sha512 produit des hash longs et difficiles à manipuler en hexa, d'où le codage en base64 pour les raccourcirs.

Généralement, le salage est effectué en concaténant le mot de passe et le sel. sha512 étant un algorithme cryptographique (les résultats semblent aléatoire au regard des données en entrée, une variation d'un seul caractère donne un hash totalement différent), il devient impossible d'utiliser une "rainbow table" (liste des hashs de tous les mots du dictionnaire et un grand nombre de combinaisons simples).

En espérant avoir répondu aux questions, n'hésite pas à préciser les points qui ne te semblent pas clairs


Sent from my Ubuntu box

Hors ligne

#3 Le 13/03/2012, à 00:32

sputnick

Re : Hachage et salage utilisés dans /etc/shadow

Salut,

voir http://sputnick-area.net/pasteme/312
copier le script C dans crypt.c, puis

gcc -lcrypt -o /tmp/crypt crypt.c
/tmp/crypt salt

C'est donc la fonction crypt() qui genere les mots de passe.

man 5 shadow
man 3 crypt

Dernière modification par sputnick (Le 13/03/2012, à 01:03)


bashfr.org(random);
<arciks1994> dou tu connai qel age j'ai ?

Hors ligne

#4 Le 13/03/2012, à 00:54

pires57

Re : Hachage et salage utilisés dans /etc/shadow

unistd.h big_smile je vient de l'utiliser pour faire autre chose cella la tongue


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.

Hors ligne

#5 Le 13/03/2012, à 01:08

sputnick

Re : Hachage et salage utilisés dans /etc/shadow

VoucyusDo a écrit :

A vue de nez, il s'agit d'un encodage base64 (64 caractères possibles: a-z A-Z 0-9 + et /). L'intérêt d'un tel codage est de donner des nombres plus courts (6 bits par caractères, 2⁶=64) qu'en hexa (4 bits par caractères, 2⁴=16). Je suppose que sha512 produit des hash longs et difficiles à manipuler en hexa, d'où le codage en base64 pour les raccourcirs.

Généralement, le salage est effectué en concaténant le mot de passe et le sel. sha512 étant un algorithme cryptographique (les résultats semblent aléatoire au regard des données en entrée, une variation d'un seul caractère donne un hash totalement différent), il devient impossible d'utiliser une "rainbow table" (liste des hashs de tous les mots du dictionnaire et un grand nombre de combinaisons simples).

En espérant avoir répondu aux questions, n'hésite pas à préciser les points qui ne te semblent pas clairs

Hummmmmhhh....

Heureusement que c'est *pas* du base64, car base64 est réversible !

$ base64 <<< azerty
YXplcnR5Cg==
$ base64 -d <<< "YXplcnR5Cg=="
azerty

Un résumé comme sha* md5 etc, ne permet pas d’être réversible à moins d'avoir une rainbow table et pas de salt (grain de sel).
man 3 crypt


man 3 crypt a écrit :

               ID  | Method
               ---------------------------------------------------------

*              1   | MD5
               2a  | Blowfish (not in mainline glibc; added in some
                   | Linux distributions)
               5   | SHA-256 (since glibc 2.7)
               6   | SHA-512 (since glibc 2.7)


bashfr.org(random);
<arciks1994> dou tu connai qel age j'ai ?

Hors ligne

#6 Le 13/03/2012, à 23:20

VoucyusDo

Re : Hachage et salage utilisés dans /etc/shadow

Par base64 j'entends la méthode codage du résultat de la fonction de hash sha512. L'algorithme produit une suite d'octets qui n'est pas aisément représentable en caractères ASCII imprimables. Pour l'afficher on pourrait la représenter sous la forme d'un nombre décimal (base 10), binaire (base 2), octal (base 8), hexadécimal (base 16), etc. En fonction du codage utilisé, la taille de la chaîne obtenue est plus ou moins longue (512 caractères en base 2, 155 en base 10, 128 en base 16). Base64 est simplement une autre méthode de codage qui emploie 64 caractères imprimables (0-9A-Za-Z+/).

Je confirme que base64 est réversible: ce n'est pas un algorithme de cryptage mais une manière d'écrire des valeurs numériques.


Sent from my Ubuntu box

Hors ligne

Haut de page ↑