Return to Video

Comment stocker les mots de passe de vos utilisateurs (Mathieu Pillard) - Sud Web 2011

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

more » « less
Video Language:
French
Duration:
07:00
Frank Taillandier added a translation

French subtitles

Revisions