Pure FTPd et MySQL, travaillant avec sha512

Je développe actuellement une application pour l'hébergement partagé, en utilisant un backend MySQL complet pour la machine. J'ai mis en place tous mes services, et ils sont assez opérationnels, mais j'ai un petit problème avec pure-ftpd.

Comme vous le savez peut-être, Pure-FTPd peut fonctionner avec MySQL grâce à pure-ftpd-mysql . Voici à quoi ressemble la configuration de base:

 MYSQLServer 127.0.0.1 MYSQLPort 3306 MYSQLSocket /var/run/mysqld/mysqld.sock MYSQLUser myftpdbuser MYSQLPassword myftpdbpassword MYSQLDatabase myftpdb MYSQLCrypt md5 # Here come the selection queries... 

Comme vous pouvez le voir, j'ai choisi md5 comme algorithm de encryption, mais c'est un problème. J'utilise Symfony2 et j'ai configuré l'encodeur pour sha512 pour mes users et quand je veux créer un count FTP avec le même mot de passe que l'un de mes users, je dois copyr le hash sha512 sur le count FTP.

C'est tout à fait satisfaisant, mais Pure-FTPd est configuré pour md5, donc il ne pourra pas vérifier ce mot de passe. Je voudrais garder sha512 autant que possible, étant donné que l'utilisation de md5 nécessitera certaines modifications de mon code pour le nouveau chiffrement.

Voici ce que l'exemple de configuration Pure-FTPd dit:

 # Mandatory : how passwords are stored # Valid values are : "cleartext", "crypt", "sha1", "md5" and "password" # ("password" = MySQL password() function) # You can also use "any" to try "crypt", "sha1", "md5" *and* "password" 

Voici donc ma question: est-ce que j'ai la possibilité de définir Pure-FTPd pour travailler avec sha512, en utilisant "crypt" par exemple? Peut-être que je pourrais utiliser la crypt et la configurer pour utiliser sha512 ailleurs, je ne sais pas …

MODIFIER

J'ai essayé de travailler avec les requêtes, mais je n'ai pas trouvé de truc. Voici la requête de mot de passe:

 MYSQLGetPW SELECT password FROM ftp_accounts WHERE username='\L' 

Solutions

Après quelques searchs, et avec la réponse que j'ai obtenue, j'ai déduit 3 solutions:

  • Développez une design de module d'authentification Pure-FTPd pour effectuer la requête MySQL et gérez le mécanisme de encryption de mot de passe. Cela implique de transférer l'algorithm PHP vers C (ou une autre langue), ce que j'ai fait en utilisant la bibliothèque OpenSSL. SHA512_CTX une structure SHA512_CTX et obtenez votre première synthèse. Iteratez 500 fois avec les bons parameters et effectuez un encoding base 64. Vous pouvez également utiliser le résultat hexadécimal, selon vos parameters Symfony.
  • Définissez la crypt(3) pour travailler avec des hachages salés SHA512 sous PureFTPd. Tricky, lorsque vous commencez à parler de 500 itérations.
  • Développez une command Symfony2 qui effectue l'authentification pour vous. Facile comme l'enfer, ça fonctionne comme un charme. Créez un script exécutable (disons /usr/bin/pureftpd-auth qui appelle simplement /path/to/php /path/to/app/console your:ftp:auth:command . chmod , donnez-lui un interprète approprié ( #!/bin/bash , …) et démarrez pure_authd et pureftpd sur un socket partagé pour les faire communiquer. Consultez http://download.pureftpd.org/pure-ftpd/doc/README.Authentication-Modules pour plus d'informations.

One Solution collect form web for “Pure FTPd et MySQL, travaillant avec sha512”

glibc 2,7 et plus supportent sha512, mais seulement de manière salée. Si vous avez des hachages salés SHA512, utiliser "crypte" devrait fonctionner immédiatement.

Si vous avez des sha512-hashes non salés: faites-les éviter – sérieusement. Il existe des bases de données pré-calculées disponibles, afin de searchr le hash à partir de ces bases de données vous donnera instantanément le mot de passe cleartext ou au less quelque chose qui fonctionnera pour une connection réussie. Le calcul des hachis à l'aide des GPU actuels est extrêmement rapide, de sorte qu'il faut éviter tout type de solution.

Par exemple, https://www.crackstation.net/ vous donne à la fois une interface Web agréable pour searchr à la fois des millions de passwords sans équité à partir de leur hash et une certaine éducation concernant les hachis salés vs unsaltes, en choisissant des sels (randomisés) corrects et " bon "algorithms de hachage.

En tant qu'exemple de la vie réelle, des millions de hachages de mot de passe sans lien entre linkedin et lastfm ont pénétré sur Internet et il n'a fallu que quelques jours pour find des passwords cleartext correspondants pour la plupart d'entre eux à l'aide de bases de données hash pré-calculées ou de tables arc-en-ciel . À l'aide de hachis salés, il est plus probable de prendre des mois ou des années pour find des données claires sur le text correspondant à vos hachages.

Si vous comprenez les risques de hachis non salés et que vous devez absolument mettre en œuvre sha512 sans salaire via MySQL, vous pouvez le faire en fournissant un skript personnalisé à pure-authd (c'est assez sortingvial). Voir http://download.pureftpd.org/pure-ftpd/doc/README.Authentication-Modules pour plus d'informations à ce sujet.

  • Comment find la version pure-ftpd installée?
  • Pure-ftpd avec MySQL - Crypt () ne me connecte pas avec des passwords hachés
  • pureftpd connaitant ftp sur terminal mais pas filezilla
  • Pure-ftpd 0 bytes Upload
  • PureFTP: refusant le téléchargement de certaines extensions de file
  • Prévenir la suppression de dossier spécifique dans CentOS
  • Ports pour le mode passif FTP
  • pure-ftpd donne un mauvais IP pour une connection passive en mode TLS
  • Comment lire un file FTP FTP?
  • Configuration Pure-FTPd sur Ubuntu 12.04
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.