|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- title: Développeurs, vous devriez avoir honte
- url: https://n.survol.fr/n/developpeurs-vous-devriez-avoir-honte-regles-de-mots-de-passe
- hash_url: f77e84e4666177057f83bf901b4c5b68
-
- <p>Je rage à chaque fois que je saisis un mot de passe fort et que le site m’envoie bouler parce que je n’ai pas de caractère autre qu’alphanumérique.</p>
-
-
-
- <p>Essayons quelque chose d’un peu plus smart pour évaluer la robustesse d’un mot de passe</p>
-
-
-
- <blockquote class="wp-block-quote is-style-large"><p>Développeurs, vous savez probablement tout ça, mais continuez à lire parce que la fin vous est adressée</p></blockquote>
-
-
-
- <p>Si j’en crois Hackernoon on peut calculer environ <a href="https://hackernoon.com/20-hours-18-and-11-million-passwords-cracked-c4513f61fdb1">800 millions de SHA256 par seconde sur un matériel qui coûte 0,82 € par heure</a> sur AWS. Ça fait 3,5 10^12 combinaisons par euro.</p>
-
-
-
- <p>Traduit autrement, voici le nombre de combinaisons qu’on peut tester, et le même chiffre écrit en puissance de deux (arrondi à la décimale inférieure) : </p>
-
-
-
- <table class="wp-block-table"><tbody><tr><td>1 €</td><td>3,5 × 10^12</td><td>2^41,6</td></tr><tr><td>10 €</td><td>3,5 × 10^13</td><td>2^44,9</td></tr><tr><td>100 €</td><td>3,5 × 10^14</td><td>2^48,3</td></tr><tr><td>1 000 €</td><td>3,5 × 10^15</td><td>2^51,6</td></tr><tr><td>10 000 €</td><td>3,5 × 10^16</td><td>2^54,9</td></tr><tr><td>100 000 €</td><td>3,5 × 10^17</td><td>2^58,2</td></tr></tbody></table><p>Quand on vous parle ailleurs de bits d’entropie, ça correspond à ces puissances de 2. Avec 1 000 € on peut tester toutes les combinaisons de SHA 256 d’une chaîne aléatoire de 51 bits.</p>
-
-
-
- <p>Ok, mais ça me dit quoi ? Une lettre c’est 26 combinaisons, environ 4,7 bits. Si vous ajoutez les majuscules vous doublez le nombre de combinaisons et vous ajoutez 1 bit. Si vous ajoutez les chiffres et quelques caractères spéciaux on arrive à à peine plus de 6 bits.</p>
-
-
-
- <p>Petit calcul, en utilisant juste les 26 lettres de l’alphabet, on peut tester toutes les combinaisons de 8 caractères pour moins de 1 €. Vu qu’on aura de bonnes chances de tomber dessus avant d’avoir testé <em>toutes</em> les combinaisons, autant dire que même avec 9 caractères, votre mot de passe ne vaut pas plus de 1 €.</p>
-
-
-
- <p>Combien faut-il de caractères pour se trouver relativement à l’abri (c’est à dire que la somme investie ne peut pas tester plus de 1% des combinaisons) ? Ça va dépendre de ce que vous y mettez comme types de caractères. J’ai fait les calculs pour vous :</p>
-
-
-
- <table class="wp-block-table alignwide"><tbody><tr><td/><td>a-z</td><td>a-z<br/>A-Z</td><td>a-z<br/>A-Z <br/>0–9</td><td>a-z<br/>A-Z<br/>0–9<br/>+-%</td></tr><tr><td><strong>1 €</strong></td><td>11</td><td>9</td><td>9</td><td>8</td></tr><tr><td><strong>10 €</strong></td><td>11</td><td>10</td><td>9</td><td>9</td></tr><tr><td><strong>100 €</strong></td><td>12</td><td>10</td><td>10</td><td>10</td></tr><tr><td><strong>1 000 €</strong></td><td>13</td><td>11</td><td>10</td><td>10</td></tr><tr><td><strong>10 000 €</strong></td><td>14</td><td>11</td><td>11</td><td>11</td></tr><tr><td><strong>100 000 €</strong></td><td>14</td><td>12</td><td>11</td><td>11</td></tr></tbody></table><p>Et là magie : 8 caractères, même avec des chiffres, des majuscules et des symboles, ça résiste tout juste à 1 €. Et encore, là c’est en partant du principe que vous choisissez réellement les caractères de façon aléatoire, pas que vous ajoutez juste un symbole à la fin ou que vous transformez un E en 3.</p>
-
-
-
- <p>Vous voulez que votre mot de passe résiste à un voisin malveillant prêt à mettre plus de 10 € sur la table ? Prévoyez au moins 10 caractères.</p>
-
-
-
- <p>Et là, seconde magie : Si vous mettez 10 caractères on se moque de savoir si vous y avez mis des chiffres ou symboles. La longueur a bien plus d’importance que l’éventail de caractères utilisé.</p>
-
-
-
- <hr class="wp-block-separator"/><p>Maintenant que vous savez ça, tous les sites qui vous imposent au moins une majuscule et un symbole mais qui vous laissent ne mettre que 8 caractères : Poubelle.</p>
-
-
-
- <p>Je ne suis pas en train de vous apprendre à faire un mot de passe fort. Vous devriez utiliser un gestionnaire de mots de passe et le générateur automatique qui y est inclus.</p>
-
-
-
- <p>Je suis en train d’essayer de rendre honteux tous les développeurs qui acceptent de mettre ces règles à la con sur les sites web dont ils ont la charge : Vous imposez des mots de passe qui sont à la fois imbitables et peu robustes.</p>
-
-
-
- <hr class="wp-block-separator"/><p>Vous voulez faire mieux ? </p>
-
-
-
- <p>Regardez dans quelle colonne est l’utilisateur en fonction des caractères qu’il a déjà tapé et donnez-lui un indicateur en fonction de la longueur de son mot de passe.</p>
-
-
-
- <ul><li>Mot de passe refusé s’il est sur « <a href="https://haveibeenpwned.com/">Have I Been Pwned?</a> »</li><li>Moins de 10 € ? mot de passe insuffisant, refusé</li><li>Moins de 100 € ? mot de passe faible, couleur rouge</li><li>Moins de 1 000 € ? mot de passe moyen, couleur orange</li><li>Mot de passe sûr, couleur verte, à partir de 10 000 €</li></ul><p>Si vous gérez un site central, par exemple un réseau social public, vous pouvez probablement relever tout ça d’un cran.</p>
-
-
-
- <p>Si ça donne accès à des données sensibles, à des possibilités d’achat, à la boite e-mail ou à l’opérateur téléphonique, mieux vaux relever tout ça de deux crans.</p>
-
-
-
- <p>Le tout prend probablement moins de 10 lignes en javascript. C’est une honte que vous acceptiez encore d’implémenter des règles à la con « au moins une majuscule, un chiffre et un symbole, voici les symboles autorisés […] ». </p>
-
-
-
- <p>Développeurs, vous devriez avoir honte.</p>
|