Auteur Sujet: Sécurité contre l'écoute lors de la connexion lafibre.info  (Lu 14241 fois)

0 Membres et 1 Invité sur ce sujet

Optrolight

  • Client Orange Fibre
  • Modérateur
  • *
  • Messages: 4 673
  • Grenoble (38) @Optrolight
    • Optroastro
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #12 le: 13 juillet 2013 à 12:17:05 »
Je suis daccord qu'il faut rester vigilent mais d'autre évenement de ce genre ont révéler par al suite exactement les fuites qu'il y a eu. Donc je ne fait pas une confiance aveugle mais je m'inquiète pas trop non plus.

corrector

  • Invité
Problème de l'usage de la concaténation dans un protocole cryptographique
« Réponse #13 le: 11 novembre 2013 à 05:15:01 »
donc au lieu d'envoyer le mot de passe, le script envoie :

hash = SHA-1(SHA-1(lower (login) || password) || sid)
On remarque qu'il y a là une fonction non injective : la concaténation de (login = toto, password = tata) donnera le même résultat qu'avec (login = totota, password = ta).

QUESTIONS

Pensez-vous que cela peut poser problème? Pourquoi?

Est-ce que l'usage de fonction non injective comme entrée d'une hachage cryptographique peut poser problème en général?

Marin

  • Client Bbox vdsl
  • Modérateur
  • *
  • Messages: 2 804
  • 73
Problème de l'usage de la concaténation dans un protocole cryptographique
« Réponse #14 le: 11 novembre 2013 à 07:43:30 »
Pensez-vous que cela peut poser problème?

Non.

Pourquoi?

Car le nom d'utilisateur est transmis en clair dans le paramètre POST user, ainsi il n'y a pas de confusion possible pour le serveur.

Est-ce que l'usage de fonction non injective comme entrée d'une hachage cryptographique peut poser problème en général?

Oui, dans le cas où il n'y aurait pas ce genre de vérification supplèmentaire.

corrector

  • Invité
Problème de l'usage de la concaténation dans un protocole cryptographique
« Réponse #15 le: 11 novembre 2013 à 17:59:10 »
Non.

Car le nom d'utilisateur est transmis en clair dans le paramètre POST user, ainsi il n'y a pas de confusion possible pour le serveur.
Mais le contenu peut être intercepté et modifié, ou bien le POST peut être refait avec un autre user...

Optrolight

  • Client Orange Fibre
  • Modérateur
  • *
  • Messages: 4 673
  • Grenoble (38) @Optrolight
    • Optroastro
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #16 le: 12 novembre 2013 à 20:14:16 »
Oui et donc il n'y aura plus correspondant id mot de pass non?

corrector

  • Invité
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #17 le: 12 novembre 2013 à 21:29:30 »
En fait la collision est "exploitable", mais les conditions pour la provoquer sont de connaitre les mots de passe.

Donc le problème n'existe pas (si on connait le mot de passe d'un autre compte aucune attaque cryptographique contre ce compte n'a de sens, on utilise le mdp point). Mais la concaténation non injective est un souci en général.
« Modifié: 17 mars 2014 à 01:24:49 par corrector »

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #18 le: 12 novembre 2013 à 23:30:03 »
Mouais, j'ai déjà vu ce genre de méthodologie.

Au final, tu ninja le cookie et hop

corrector

  • Invité
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #19 le: 13 novembre 2013 à 00:42:49 »
C'est pour ça qu'il faut quand même utiliser HTTPS.

Le système de hachage chez le client ne protège que le mdp contre l'écoute passive, mais si le reste est en clair, ça ne protège pas la session!

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #20 le: 13 novembre 2013 à 11:10:33 »
Tu peux me redire ce que tu entends par "écoute passive" ?

corrector

  • Invité
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #21 le: 13 novembre 2013 à 11:31:55 »
Prenons un forum sous SMF, qui n'est pas en HTTPS (contrairement à lafibre.info).

Faire un tcpdump sur la ligne où passent les données. Tu récupères les données échangées en HTTP, sans modifier quoi que ce soit.

Si tu fais ça sur un forum SMF, tu ne récupères pas le mdp, mais tu as le cookie HTTP.
« Modifié: 17 mars 2014 à 01:24:16 par corrector »

Electrocut

  • Abonné Orange Fibre
  • *
  • Messages: 512
  • Pont-Péan (35)
A
« Réponse #22 le: 25 octobre 2014 à 18:22:19 »
Bonjour :)

Dans le cadre du boulot, j'ai besoin de mettre en place un système d'authentification, avec BDD de données d'authentification.
Du coup, je repasse sur ce topic, pour m'inspirer des pratiques dans ce domaine ;)

Je comprends donc que dans le cas de l'authentification sur lafibre.info, le serveur stocke dans sa base, les éléments suivants :
  • login
  • hpw=SHA-1(lower (login) || password)

La phase d'authentification se déroule ainsi :
  • Le serveur envoie "sid" aléatoire
  • Le client retourne hash = SHA-1(SHA-1(lower (login) || password) || sid)
  • Le serveur récalcule hash = SHA-1(hpw || sid), et compare le résultat

Je crois voir plusieurs problèmes :

1- Si une personne vole la base utilisateurs, elle peut s'authentifier en tant que n'importe qui.

En effet, en récupérant SHA-1(lower (login) || password), elle peut dorénavant construire la réponse hash = SHA-1(SHA-1(lower (login) || password) || sid).
En d'autres termes, la propriété 2 énoncée par corrector n'est pas couverte :
2) il ne puisse pas usurper l'identité d'un utilisateur : pour ça, il faut donc que la base ne contienne pas les données qui permettent de s'authentifier auprès du serveur

2- La fonction de hachage est basée sur l'algorithme SHA1.

D'après ce que j'ai lu ailleurs, afin de limiter les risques d'attaques par bruteforce, il est conseillé d'utiliser plutôt des fonctions de hachage "lente", telle que bcrypt.

-> Effectivement, la solution de vivien évite que le mot de passe ne transite, durant la phase authentification.
Cependant, en cas de vol de la base utilisateur, l'attaquant peut faire ce qu'il veut.

Sachant que lafibre.info utilise dorénavant du HTTPS, ne vaudrait-t-il pas mieux que le client envoie carrèment son mot de passe, lors de l'authentification ?
Pour vérifier le mot de passe, le serveur calculerait alors SHA-1(lower (login) || password), et vérifierait que le résultat correspond bien à la valeur stockée.
Dès lors, un vol de SHA-1(lower (login) || password) ne permettrait plus de s'authentifier.

Ais-je bien compris ? Avez-vous des remarques à ce sujet ?

Electrocut

  • Abonné Orange Fibre
  • *
  • Messages: 512
  • Pont-Péan (35)
Sécurité contre l'écoute lors de la connexion lafibre.info
« Réponse #23 le: 25 octobre 2014 à 18:55:11 »
Je poursuis un peu ma réflexion.

J'ai lu que la bonne pratique, pour le stockage d'informations d'authentification utilisateur sur un serveur, était de stocker en base de donnée, pour chaque utilisateur les éléments suivants :
  • login
  • hash = bcrypt (pepper || password || salt)
  • salt
salt étant choisi aléatoirement, différent pour chaque utilisateur
pepper étant codé en dur quelque part (idéalement, offusqué).

Avec une telle méthode de stockage côté serveur, peut-t-on protéger la confidentialité du mot de passe, durant la phase d'authentification ? (sans reposer sur la sécurisation de la couche transport)
En effet, pour que le serveur puisse calculer (et vérifier) bcrypt (pepper || password || salt), je ne vois pas d'autre solution de procéder que d'envoyer le mot de passe en clair (ex : authentification HTTP Basic).

Procéder autrement (ex : que le serveur envoie pepper et salt au client, pour que celui-ci calcule bcrypt (pepper || password || salt)) nous ferait retomber dans travers décrit dans mon précédent post (un vol de BDD permettant alors de s'authentifier)

J'en tire donc la conclusion suivante. Il faut choisir son camp entre 2 méthodes :
  • soit transmettre le mot de passe, et on peut mettre en place un mécanisme de sel, poivre, côté serveur, permettant de limiter l'impact d'un vol de données utilisateurs côté serveur
  • soit ne pas transmettre le mot de passe, mais seulement le résultat d'un calcul basé sur celui-ci (ex : HTTP Digest, CHAP, méthode "vivien"), mais dans ce cas, les données d’authentification stockées côté serveur sont davantage vulnérables

La meilleur méthode étant donc la 1 + HTTPS.

Ma réflexion (et sa conclusion) sont-t-elles correctes ?
D'avance merci pour vos éclaircissement ou corrections  ;)