Activer la prise en charge du hachage basé sur Blowfish pour Crypt

13

Comment activer la prise en charge de crypt_blowfish pour les mots de passe masqués et PHP sur un serveur Linux (Debian)?

Je fais référence au bcrypt basé sur Blowfish de style OpenBSD , connu en PHP sous le nom de CRYPT_BLOWFISH.

Pour autant que je sache, il n'y a pas de paquet Debian pour lui, quelles autres options ai-je pour activer cet algorithme de hachage pour PHP?

Remarque:
la fonction crypt () de PHP s'interface relativement directement avec la fonction crypt (3) de la bibliothèque C fournie par le système d'exploitation sous-jacent.

La mise à jour du nom des
packages n'est pas aussi claire qu'elle pourrait (devrait) l'être.
Le package PEAR Crypt_Blowfish est un remplacement direct de l'extension MCrypt de PHP, permettant un cryptage bidirectionnel rapide de Blowfish .

Le paquet Debian BCrypt est également une implémentation de l'algorithme «normal» de Blowfish bidirectionnel.

Ce que je recherche, c'est l'implémentation de hachage Bcrypt pour le hachage des mots de passe.

Jacco
la source
"pear install Crypt_blowfish" ne fonctionne-t-il pas?
cori
Le paquet pear crypt_blowfish est l'algorithme de cryptage bidirectionnel «normal» de Blowfish. Je recherche l'algorithme de hachage basé sur Blowfish.
Jacco
ah, maintenant je vois le problème.
cori
Je ne savais pas que vous pourriez avoir une prime plus élevée sur une question que votre représentant actuel. Intéressant.
Copas
Le représentant est déduit immédiatement, il avait donc environ 200 représentants et a maintenant environ 50.
ceejayoz

Réponses:

9

Le paquet que vous devez installer dans debian est libpam-unix2.

Ensuite, vous devrez modifier les fichiers suivants sous /etc/pam.d/et modifier toute pam_unix.soutilisation en pam_unix2.so:

  • compte commun
  • common-auth
  • mot de passe commun
  • session commune

Enfin, éditez le common-passwordfichier et remplacez le paramètre "md5" par "blowfish".

Les mots de passe mis à jour après ces modifications seront hachés à l'aide de Blowfish. Les mots de passe cachés existants ne sont pas modifiés. La source

Pour utiliser Blowfish en PHP, vous fournissez un sel Blowfish à crypt(). Comme ça:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

Vous devez d'abord vérifier si CRYPT_BLOWFISH == 1. Et vous devrez utiliser un sel assez long, qui est égal (ou supérieur à) 22 caractères. La source

hayalci
la source
Hmmm, après avoir apporté ces modifications, CRYPT_BLOWFISH n'est toujours pas égal à 1, pour une raison quelconque.
Kzqai
1
Une mise en garde: si votre version de pam_unix2 ne prend pas en charge l'algorithme de hachage actuellement utilisé pour le mot de passe d'un utilisateur, cet utilisateur ne pourra peut-être pas se connecter. Je pense que c'est ce que j'ai rencontré sur ma boîte Debian; certains comptes utilisaient SHA512 et ne pouvaient pas se connecter, mais un compte utilisant MD5 le pouvait. Vous pouvez définir ces mots de passe à partir de root, car passwdne demande pas l'ancien mot de passe lors de l'exécution à partir de root. Important: gardez votre session root ouverte jusqu'à ce que vous soyez sûr de pouvoir vous reconnecter!
Tom Zych