# Problème cryptage SHA



## forstera (25 Mars 2020)

Bonjour, 
Je travaille pour une école et j'ai un projet d'authentification des utilisateurs au travers d'un annuaire LDAP. Je recois toutes les nuits un fichier avec les quelques 1200 users que j’insère/modifie/supprime de mon annuaire OpenLDAP. tout se passe bien jusqu'ici 

Le fichier des users que je reçois d'un annuaire Microsoft AD ne contient pas les mots de passe. Lors de la création du nouveau user dans mon LDAP, je crée donc un mot de passe temporaire. Les utilisateurs peuvent ensuite se connecter à une console web reliée à mon serveur OpenLDAP pour le modifier. 

Tout cela marche bien. Le problème se corse avec l'utilisation des ordinateurs macs de l'école. En effet, le mot de passe généré n'est pas reconnu par les postes. En tentant de comprendre (je ne suis pas expert en cryptage), j'ai constaté que le cryptage utilisé par mon serveur OpenLDAP est d'une part de type SHA et que, lors de la génération dudit mot de passe, un {sha} est ajouté avant le hash en lui-même.  Si je modifie ce petit complément précédent le hash et que je le mets en majuscule ({sha} -> {SHA}) alors, je peux m'authentifier sur mon MAC !   Je me dis donc super, problème réglé ! Mais hélas, en faisant cette opération,  les utilisateurs ne peuvent plus se connecter à la console web pour changer leur mot de passe car ils reçoivent un message d'erreur leur indiquant que leur mot de passe est invalide !

Bref, je me retrouve devant un casse-tête de 3 lettres qui doivent être en majuscules ou minuscules et je ne sais comment résoudre cela ... 
Si quelqu'un a une idée, c'est bien volontiers 
Merci à tous d'avance,


----------



## bompi (26 Mars 2020)

On voit à peu près le problème mais pourtant il reste des zones d'ombre.

Première question : pourquoi ne pas utiliser l'AD pour s'authentifier, avec OpenLDAP en "_pass-through_" ? Cela permettrait de n'avoir l'authentification que sur une seule plate-forme et ne garder que la gestion des droits spécifiques à Unix sur OpenLDAP.

Seconde question : as-tu essayé d'autres algorithmes de chiffrement, pour voir ?

Troisième question : macOS est supposé pouvoir s'intégrer à un MS Active Directory, pourquoi ne pas le faire ?


----------



## forstera (26 Mars 2020)

Merci pour le retour 
Effectivement, je n'ai pas voulu trop détaillé mais pour répondre aux questions de l'AD :
l'AD est géré par notre 'gouvernement' et n'est accessible que par des ordinateurs fournis et contrôlés par eux-mêmes. Nos ordinateurs MAC sont sous notre responsabilité et n'ont donc aucun accès à l'AD. Ceci est également valable pour un serveur qui n'est pas géré par eux. Mon serveur n'est pas autorisé à relayer une demande auprès de l'AD (ce sont des VLANs séparés). C'est pour cette raison que je reçois toutes les nuits un export partiel de leur AD que je dois insérer dans mon LDAP. Mais cet export ne contient pas les mots de passe ; je dois donc en générer un temporaire pour chaque nouvelle entrée.

Concernant d'autres algorithmes, oui j'en en testé plusieurs. Le seul qui fonctionne 'partiellement' est le SHA avec l'ajout en début de séquence du {SHA} . Cela fonctionne sur mon serveur mais n'est plus reconnu par le MAC.

Pourquoi pas un nouvau MS avec un AD ? Plusieurs raisons : Mon serveur OpenLDAP va me servir ensuite à authentifier mes utilisateurs au travers de plusieurs autres applications que vais installer (gestion de tickets, serveur OpenProject, etc) qui tous possèdent un module de connexion à un serveur OpenLDAP

J'ai également un serveur OpenLDAP qui tourne dans une autre école et certains profs enseignent dans les 2 écoles. L'étape suivante serait donc de synchroniser les deux serveurs.

Il me semble, mais cela demande confirmation car je ne suis pas expert, que l'algorithme utlisé par le serveur est obsolète et plus compatible avec les macs.

Merci


----------



## bompi (27 Mars 2020)

Je suppose que dans ta dernière phrase tu fais allusion à l'algorithme SHA, dont il existe diverses versions.

Par ailleurs, je suppose aussi que ton parc contient des ordinateurs sous macOS (versions ?) et sous Windows (versions ?), éventuellement autre chose (Linux notamment).

Pour les Macs, tu as le problème {SHA}/{sha}. Pour les autres, cela donne quoi ? Les deux fonctionnent, ou un seul fonctionne et lequel ?
Par ailleurs, quelle est cette console Web, au juste ? Parce que, par exemple, si {SHA} permet de s'authentifier pour tous les ordinateurs, alors il suffit de la changer ou de la modifier pour qu'elle fonctionne elle-aussi avec ce préfixe.


----------



## forstera (27 Mars 2020)

Hello,
Oui effectivement, je fais allusion à l'algorithme SHA.
Pour l'instant, dans mon parc, je n'ai que des MACbook pro High Sierra 10.13.6    Le système d'authentification central tourne sous Linux , c'est un système appelé ClearOS qui regroupe plusieurs outils. (samba, OpenLDAP, dhcp, firewall, etc...)

Je pense que le problème chez ClearOS est qu'ils ont différents modules qui ont chacun leur méthode authentification et, comme tu le dis bien pour SHA, tous n'ont pas la même version.

donc, lorsque je génère un mot de passe en utilisant SHA (majuscule), je peux ouvrir une session sur les MAC et je peux m'authentifier sur la console web de mon ClearOS. Ils ont dont le même algorithme. Par contre, une fois connecté à la console web, si je souhaite modifier mot de passe, ClearOS va me demander mon mot de passe actuel ainsi que le nouveau mot de passe désiré. Et là, ça bloque sur l'authentification du mot de passe actuel. J'en conclus donc que ce module de contrôle utilise un autre algorithme.

Si maintenant je génére un mot de passe utilisant {sha} minuscule, je vais pouvoir me logger à ma console Clearos et changer mon mot de passe.
par contre, si je tente d'ouvrir une session sur mon mac, ça ne fonctionne pas ...

c'est un peut une partie à 3 ...

En conclusion, j'ai

Login web console : SHA + sha
Changement mot de passe dans web console : sha
Login sur MAC : SHA

Et je viens de faire une nouvelle découverte 
Une fois connecté à mon MAC, je peux changer le mot de passe. Cette fois, l'algorithme utilisé sera SSHA. 
Et je peux toujours me connecter à ma console mais ne peut pas changer le mot de passe.  J'ai donc les possibilités suivantes : 

Login web console : SHA + sha + SSHA
Changement mot de passe dans web console : sha
Login sur MAC : SHA + SSHA


----------



## bompi (27 Mars 2020)

Côté ClearOS, il n'y a rien dans les forums ? Tu as ouvert un ticket ou un fil de discussion ?
Parce qu'il y a une incohérence à corriger (si possible dans le sens qui t'arrange).

En tout cas, ce qui est le plus simple, c'est bien de corriger la modification de mot de passe.
Soit ClearOS corrige le bug (mais avec quel délai ?) soit tu as un paramètre à changer quelque part.
Soit tu fais toi-même une page de modification de mot de passe qui ne serait pas buggée, au moins en attendant.

Par ailleurs, on peut craindre qu'un jour il y ait autre chose que des Macs : là, il faudra croiser les doigts. Ou anticiper.


----------



## forstera (27 Mars 2020)

Effectivement, j'ai également posté sur le forum ClearOS mais aucune réponse. J'ai également ouvet un ticket chez eux mais là non plus, aucune réponse pour l'instant.
Et effectivement, j'ai trouvé un outil web qui va court-circuiter la console web de clearos, C'est un outils web appelé self-service password permettant un reset de son mot de passe. Il se connecte directement à l'OpenLDAP.

Pour répondre à ta question concernant les autres types d'ordinateurs dans un futur proche, alors effectivement c'est prévu. Lorsque je génére les mots de passes, il y a ceux dont j'ai parlé mais également d'autres (Samba, MicrosoftNT,  etc) pour permettre la connexion avec d'autres appareils. Ceux-là ne semblent pas poser problème... De plus, l'outil que j'ai trouvé génère également ces mots de passe lors d'un changement


----------

