Mise à jour du générateur htpasswd : bcrypt, coût réglable et Apache MD5
Notre générateur htpasswd vous laisse désormais choisir entre bcrypt avec un coût réglable et Apache MD5 / APR1. Bcrypt est sélectionné par défaut, avec un coût de 10 ; les coûts 11 et 12 sont disponibles dans Options. APR1 reste disponible lorsqu’un serveur existant exige cet ancien format.
L’outil sert ainsi à protéger un nouveau répertoire Apache par mot de passe comme à maintenir une installation ayant des contraintes de compatibilité. Vous pouvez générer une entrée dans votre navigateur, la copier dans un fichier de mots de passe existant ou la télécharger pour l’installer sur votre serveur.
Que produit réellement un générateur htpasswd ?
Un fichier .htpasswd contient des entrées de la forme username:hash. Apache lit ce fichier lorsqu’il vérifie l’accès à une zone protégée, comme une préproduction ou une prévisualisation pour un client. L’empreinte représente le mot de passe ; ce n’est pas le mot de passe à saisir dans la demande de connexion du navigateur.
Le hachage est une opération à sens unique, pas un chiffrement muni d’une clé de déchiffrement. Une personne qui obtient une empreinte peut tout de même essayer des mots de passe candidats pour trouver celui qui lui correspond. La méthode de hachage et la robustesse du mot de passe comptent donc toutes les deux. Un hachage de mot de passe volontairement lent rend chaque essai plus coûteux. Le guide de stockage des mots de passe de l’OWASP (en anglais) explique cette distinction.
bcrypt ou Apache MD5 : lequel choisir ?
| Format dans le générateur | Préfixe de sortie | Usage adapté |
|---|---|---|
| bcrypt | $2y$ | Le choix recommandé parmi ces deux formats lorsque votre installation Apache le prend en charge. |
| Apache MD5 / APR1 | $apr1$ | Compatibilité avec une ancienne installation qui exige précisément APR1. |
APR1 est le format de mot de passe MD5 salé et itéré d’Apache. Ce n’est pas une simple somme de contrôle MD5 : coller un condensé MD5 ordinaire dans le fichier de mots de passe n’est pas équivalent. Apache décrit les deux formats et leurs préfixes dans sa référence des formats de mots de passe, dont une partie de l’explication de bcrypt reste en anglais.
Bcrypt permet d’augmenter le travail nécessaire pour calculer et vérifier une empreinte. Pour cet outil destiné à Apache, c’est l’option à privilégier par rapport à APR1. Cela n’en fait pas une recommandation universelle pour tout nouveau système d’authentification : l’OWASP recommande Argon2id pour le stockage des mots de passe des nouvelles applications lorsqu’il est disponible, et fournit des conseils distincts pour les systèmes utilisant bcrypt. Choisissez parmi les formats réellement pris en charge par votre serveur.
Les deux options de notre générateur utilisent un nouveau sel aléatoire. Générer deux fois une entrée pour le même mot de passe produit donc des empreintes différentes qui permettent toutes les deux de vérifier ce mot de passe. Vous n’avez pas besoin de copier ou de configurer le sel séparément.
Que signifie le coût bcrypt ?
Le coût est un facteur de travail, pas un prix ni une longueur de mot de passe. Ouvrez Options lorsque bcrypt est sélectionné pour choisir 10, 11 ou 12.
| Coût | Travail de hachage approximatif par rapport au coût 10 | Effet pratique |
|---|---|---|
| 10 | 1 fois | Valeur par défaut du générateur. |
| 11 | 2 fois | Davantage de travail pour chaque génération et vérification. |
| 12 | 4 fois | Encore plus de travail, avec un impact accru sur les performances. |
Le facteur augmente de façon exponentielle : ajouter un au coût double approximativement le travail principal de hachage. Cela ne signifie pas dix ou douze simples passages de hachage. La documentation bcrypt d’OpenBSD (en anglais) explique comment cette valeur logarithmique est enregistrée dans l’empreinte.
Par exemple, une entrée bcrypt générée avec un coût de 10 commence par username:$2y$10$. Les caractères suivants contiennent le sel et l’empreinte. Apache lit le coût dans l’entrée ; il n’y a donc pas de directive de coût distincte à ajouter à votre configuration d’authentification.
Un coût plus élevé demande aussi plus de temps à votre serveur lorsqu’il vérifie les identifiants. Essayez la valeur par défaut, puis testez les réglages supérieurs en fonction de la capacité du serveur et du trafic attendu. Le temps de génération dans le navigateur ne suffit pas à prévoir les performances du serveur. Le manuel htpasswd d’Apache décrit les options de ligne de commande correspondantes, -B et -C ; notre valeur par défaut de 10 est propre à l’outil web.
Créez et installez une entrée
- Ouvrez le générateur htpasswd et saisissez un nom d’utilisateur et un mot de passe. Vous pouvez aussi choisir Mot de passe aléatoire ; enregistrez ce mot de passe avant de quitter la page.
- Gardez bcrypt sélectionné pour un serveur compatible. Ouvrez Options pour régler son coût, ou sélectionnez Apache MD5 / APR1 si votre installation l’exige.
- Sélectionnez Générer l’entrée, puis Copier l’entrée ou Télécharger le fichier. Les téléchargements portent le nom
htpasswd.txt; renommez le fichier en.htpasswdsur votre serveur si c’est le nom utilisé dans votre configuration. - Ajoutez l’entrée au fichier de mots de passe du serveur en préservant les autres utilisateurs. Remplacez une entrée existante pour le même nom d’utilisateur plutôt que d’ajouter un doublon.
Changer le coût ne met pas à jour les entrées déjà installées sur le serveur. Générez une nouvelle entrée avec le mot de passe et les nouveaux réglages, puis remplacez l’ancienne. L’outil ne peut pas convertir une empreinte APR1 existante en bcrypt sans le mot de passe.
Conservez le fichier de mots de passe hors du répertoire public du site. Configurez Apache pour l’utiliser et servez la zone protégée en HTTPS : l’authentification Basic exige le chiffrement du transport même lorsque le mot de passe stocké utilise bcrypt. Générer un fichier ne suffit pas à protéger l’accès. L’outil comprend un exemple de configuration et le guide d’authentification Apache explique les réglages du serveur.
Un traitement local et des limites plus claires
L’outil génère les empreintes dans votre navigateur sans envoyer votre nom d’utilisateur ou votre mot de passe. Il vérifie aussi les saisies avant le calcul : bcrypt accepte jusqu’à 72 octets UTF-8, et notre option APR1 jusqu’à 255 octets. Les caractères accentués et les émojis peuvent occuper plusieurs octets. Les mots de passe trop longs sont refusés au lieu d’être raccourcis silencieusement.
Modifier les identifiants ou les réglages de hachage efface l’ancien résultat, ce qui réduit le risque de copier une entrée correspondant à des réglages déjà modifiés. Le travail n’est pas conservé après un rechargement. Le chargement ordinaire des pages produit toujours des requêtes réseau ; notre guide pour examiner les requêtes réseau d’un site montre comment observer cette activité.
D’autres ressources pour votre prochain projet web
Vous préparez une prévisualisation pour un client ? Utilisez le générateur de Lorem Ipsum pour remplir la maquette et découvrez ses nouvelles options HTML et listes. Pour diagnostiquer des échanges HTTP, le créateur de commandes cURL prépare des requêtes de base, tandis que notre guide des commandes cURL présente d’autres options et exemples pour le terminal.
Créez votre entrée de mot de passe Apache avec le format et le coût adaptés à votre serveur.