Comment stocker les mots de passe de vos utilisateurs (Mathieu Pillard) - Sud Web 2011
-
0:07 - 0:08Bonjour alors moi c'est Mathieu
-
0:11 - 0:17et je vais vous parler des mots de passe parce que je trouve qu'à Sud Web
-
0:17 - 0:23comme à Paris Web finalement, il y a beaucoup trop de sujets front
-
0:23 - 0:29Donc c'est un sujet qui devrait concerner tout le monde en fait parce que
-
0:29 - 0:33quel que soit votre rôle dans un projet web
-
0:33 - 0:37vous êtes généralement les premiers utilisateurs du site et vous devriez vous souciez de
-
0:37 - 0:44comment vos développeurs, si vous êtes pas développeur ont stocké le mot de passe
-
0:44 - 0:48que probablement vous réutilisez de toute façon ailleurs ou pas
-
0:48 - 0:51si vous faites les choses très bien mais
-
0:51 - 0:52j'en connais pas mal
-
0:52 - 0:56qui réutilisent les mêmes mots de passe
-
0:56 - 0:59Donc le principe de base quand on parle de sécurité des mots de passe
-
0:59 - 1:01c'est de se dire que l'attaquant il a eu accès à votre base de données
-
1:01 - 1:04ll a tout le système à sa disposition
-
1:04 - 1:09Ensuite le principe de départ c'est de se dire comme je viens de dire
-
1:09 - 1:11que nos utilisateurs ils réutilisent les mêmes mots de passe partout
-
1:11 - 1:15et qu'on veut quand même les protéger un petit peu
-
1:15 - 1:18Donc conclusion, on peut pas vraiment arrêter
-
1:18 - 1:21l'attaquant qui a déjà eu accès à votre serveur
-
1:21 - 1:23mais on peut essayer de le ralentir
-
1:23 - 1:28Tout le principe du stockage de mot de passe c'est ça.
-
1:28 - 1:33Donc là je vais grosso modo expliquer les différentes méthodes qu'il ne faut pas appliquer
-
1:33 - 1:35pour stocker les mots de passe
-
1:35 - 1:38du plus simple au plus compliqué
-
1:38 - 1:42et on verra que même les méthodes compliquées sont pas forcément adaptées
-
1:42 - 1:45Donc la première c'est juste le stockage en clair, c'est simple il faut pas le faire
-
1:45 - 1:49J'espère que tous les développeurs sont au courant
-
1:49 - 1:51N'importe qui avec un accès à la base de données peut voir les mots de passe directement
-
1:51 - 1:53y compris vos propres développeurs et administrateurs
-
1:53 - 1:56ce qui pose quand même un grave problème de vie privée
-
1:56 - 2:01surtout si vous avez un site avec beaucoup d'utilisateurs, des profils très complets, etc.
-
2:01 - 2:07Deuxième méthode : stockage chiffré ou crypté si on veut faire du franglais
-
2:07 - 2:12C'est pas mieux non plus car vous avez forcément une clef de decryptage du mot du passe
-
2:12 - 2:16qui est forcément stockée à un endroit où on considère que l'attaquant y a eu accès
-
2:16 - 2:23donc c'est pareil, c'est à proscrire aussi.
-
2:23 - 2:26Alors là on commence à rentrer dans les trucs compliqués et j'ai fait plein de texte
-
2:26 - 2:31surtout pour ceux qui sont pas là et qui n'ont pas la chance d'être ici
-
2:31 - 2:34et qui pourront après regarder les slides
-
2:34 - 2:37Grosso modo c'est utiliser des algos qui sont fait pour faire des signatures
-
2:37 - 2:40donc MD5, SHA-1, etc.
-
2:40 - 2:46Ça donne une illusion de sécurité parce qu'on a l'impression que on a plus le truc en clair
-
2:46 - 2:51mais en fait c'est des algos qui sont fait pour être calculés très rapidement
-
2:51 - 2:56et vu que la puissance des machines qu'on a augmente à une vitesse folle
-
2:56 - 2:59au final c'est qu'une illusion de sécurité
-
2:59 - 3:02ça devient "craquable" très très rapidement, très très facilement
-
3:02 - 3:05donc là j'ai donné des exemples de chiffres, mais ils seront plus valable demain
-
3:05 - 3:09donc ça sert à rien, mais c'est juste pour vous donner une idée
-
3:09 - 3:17La méthode quatre qu'il faut pas faire et là ça commence à rentrer dans le troll
-
3:17 - 3:21c'est ce que à peu près tout le monde qui pense faire les choses bien fait
-
3:21 - 3:24c'est à dire utiliser les mêmes algos de hash mais avec ce qu'on appelle un salt
-
3:24 - 3:32qu'est un espèce de petit bout qu'on rajoute en plus avant généralement ce qu'on veut stocker
-
3:32 - 3:34donc le mot de passe
-
3:34 - 3:38c'est déjà beaucoup mieux mais vous êtes en train de réinventer la roue
-
3:38 - 3:42quand vous faîtes ça en système de stockage de données sécurisées
-
3:42 - 3:45il existe des méthodes qu'on va voir dans la slide d'après
-
3:45 - 3:47et ça reste vulnérable aux attaques de brute force au final
-
3:47 - 3:53ce que ça empêche c'est un truc que j'ai vaguement abordé dans la slide d'avant sans vous le dire
-
3:53 - 4:00c'était les rainbow tables, mais ça devient juste un détail tellement les ordinateurs de nos jours
-
4:00 - 4:02sont super puissants quoi.
-
4:02 - 4:04Donc on peut faire encore mieux que ça, même si c'est déjà pas mal
-
4:04 - 4:08si vous êtes là, c'est déjà sympa hein
-
4:08 - 4:14Donc le truc sympa c'est de garder le principe du salt,vous en mettez un par mot de passe
-
4:14 - 4:22comme ça vous empêchez l'attaquant de pouvoir recalculer avec un même salt
-
4:22 - 4:26Et vous utilisez des implémentations spécifiques dont le but est de ralentir la génération
-
4:26 - 4:30C'est à dire qu'au lieu d'avoir un truc, une empreinte du mot de passe
-
4:30 - 4:33qui se génère en 0,000x secondes
-
4:33 - 4:37vous avez un truc qui se génère en 500ms voire 1s
-
4:37 - 4:40En fait vous pouvez choisir avec ces types d'algorithmes
-
4:40 - 4:44la vitesse que vous voulez, donc vous choisissez ça avec un iteration count
-
4:44 - 4:48et vous vous choisissez ça, enfin ça dépend de l'algo mais vous choisissez un nombre
-
4:48 - 4:51qui vous semble correct pour ralentir suffisamment
-
4:51 - 4:57et vous avez vaguement une garantie que ça va être suffisamment compliqué à calculer
-
4:57 - 4:59pour que ça soit pas automatisable par un attaquant
-
4:59 - 5:03Donc au pire il va prendre des années à calculer un mot de passe
-
5:03 - 5:05et vous êtes tranquilles.
-
5:05 - 5:09Et le raffinement ultime c'est scrypt
-
5:09 - 5:14c'est une version encore améliorée de ça qui en plus d'être coûteuse en temps CPU
-
5:14 - 5:17elle est aussi coûteuse en mémoire car il commence à y avoir
-
5:17 - 5:26du hardware spécifique pour calculer même des algos genre bcrypt, etc.
-
5:26 - 5:30et donc au final le seul moyen qui nous reste pour lutter contre ça
-
5:30 - 5:34c'est en plus d'être coûteux en CPU, d'être coûteux aussi en mémoire
-
5:34 - 5:37pour empêcher ces matériels spécifiques de fonctionner
-
5:37 - 5:40Là on entre dans un raffinement vraiment extrême
-
5:40 - 5:44et pour l'instant y'a suffisament peu d'implémentations contrairement aux 3 autres que j'ai cité
-
5:44 - 5:46qui sont les gros trucs
-
5:46 - 5:48Y'a relativement peu d'implémentations
-
5:48 - 5:53Juste sachez que tous ces algos, ils se retrouvent dans des Operating System
-
5:53 - 5:57par exemple Linux utilse SHA-512 je pense
-
5:57 - 5:59FreeBSD ... non OpenBSD ils utilisent scrypt
-
5:59 - 6:05non OpenBSD utilise bcrypt et je sais plus qui veut utiliser scrypt
-
6:05 - 6:07si c'est openBSD ou un autre mais bref
-
6:07 - 6:11c'est des trucs qui sont éprouvés, qui sont fait pour stocker des mots de passe
-
6:11 - 6:13et c'est comme ça qu'ils sont utilisés.
-
6:13 - 6:18Donc ils sont beaucoup plus fiables que faire votre truc à la main avec un salt ou je ne sais quoi
-
6:18 - 6:23Et voilà j'ai plus le temps mais bonus n'oubliez pas d'éduquer vos utilisateurs
-
6:23 - 6:27Parce que s'ils n'utilisaient pas les mêmes mots de passe partout, on aurait pas les mêmes problèmes
-
6:27 - 6:31Incitez les si possibles à utiliser des mots de passe longs avec des caractères spéciaux, etc, etc.
-
6:31 - 6:37et ne cédez pas aux sirènes du "mais c'est plus facile d'avoir le mot de pase en clair pour l'utilisateur"
-
6:37 - 6:40c'est pas vrai, ça donne l'impression que c'est plus facile mais en fait
-
6:40 - 6:43quand il se fera piquer son mot de passe à cause de vous
-
6:43 - 6:47c'est vous qu'il ira venir voir et il ira emmerder votre support
-
6:47 - 6:49voilà et faîtes du HTTPS.
- Title:
- Comment stocker les mots de passe de vos utilisateurs (Mathieu Pillard) - Sud Web 2011
- Description:
-
Petit topo rapide des techniques employées pour stocker les mots de passe utilisateur dans les applications web et leurs problèmes.
Si vous pensez encore que stocker un password avec un algorithme de hash classique et un salt suffit, cette présentation est pour vous !
- Video Language:
- French
- Duration:
- 07:00