web-dev-qa-db-fra.com

Quel est l'intérêt de hacher les numéros de téléphone?

Certains services (par exemple ProtonMail) prétendent stocker hachages de numéros de téléphone, au lieu des numéros de téléphone eux-mêmes (alors qu'ils ne disent pas comment ils le hachent). Maintenant, étant donné que le nombre de numéros de téléphone potentiellement valides est très faible (environ 26 bits d'informations dans un numéro de téléphone à 8 chiffres), il devrait être assez facile de récupérer un numéro de téléphone à partir de son hachage.

Alors à quoi ça sert?

41
BlenderBender

ProtonMail peut demander votre numéro de téléphone pour effectuer une vérification humaine:

  • ProtonMail détecte que vous essayez de créer plusieurs comptes.
  • Il vous demande un numéro de téléphone, pour vous envoyer un token par SMS.
  • Vous devez envoyer ce jeton à ProtonMail pour prouver que vous êtes le propriétaire du numéro de téléphone.

Ensuite, ProtonMail n'a plus besoin de votre numéro de téléphone, mais il doit toujours l'utiliser pour empêcher les spammeurs de créer plusieurs comptes.

Le hachage du numéro de téléphone lui permet de ne pas stocker le numéro d'origine et d'empêcher quelqu'un d'utiliser le même numéro deux fois.

De leur FAQ :

Cependant, l'utilisation du même numéro de téléphone entraînera l'obtention du même hachage cryptographique, donc en comparant les hachages, nous pouvons détecter la réutilisation du numéro de téléphone ou des adresses e-mail pour la vérification humaine.

Ainsi, ProtonMail ne semble pas utiliser de sels uniques.

Nous savons également grâce à n Tweet de Bart Butler (ProtonMail CTO) que:

  • ProtonMail rince régulièrement les hachages stockés.
  • Les hachages stockés ne sont liés à aucun compte.

Bart Butler a également tweeté :

Nous utilisons un hachage de mot de passe lent (avec un sel) et vidons la liste et tournons le sel à intervalles irréguliers.

En conclusion: les forcer brutalement est possible, mais ce n'est ni pratique ni utile.

61
Benoit Esnard

Le hachage est utile comme carte indirecte, même s'il n'est pas aussi sécurisé qu'une configuration de hachage typique. L'un des plus grands avantages est purement social. Le hachage (même un hachage faible) trace une ligne claire dans le sable pour un employé sur ce qu'il est acceptable de voir. Mettre en place des obstacles à l'affichage du vrai numéro de téléphone aidera garder les gens honnêtes honnêtes.

il devrait être assez facile de récupérer un numéro de téléphone à partir de son hachage

Facile est un terme relatif. Certes, cette configuration de hachage peut ne pas aider beaucoup contre un attaquant déterminé qui est prêt à effectuer le hachage. Mais vous devez aussi penser aux 99% des autres employés ayant accès aux données qui ne savent même pas ce qu'est vraiment un hachage, et encore moins comment les casser.

10
ryanyuyu

Le point est de ne pas les stocker en texte clair.

C'est probablement à peu près tout. Comme D.W. a souligné dans ses commentaires, que la réponse de Benoit, vous indique la raison pourquoi ils stockent les numéros de téléphone et que ils les hachent. ProtonMail ne vous dit pas pourquoi ils les hachent. Nous ne pouvons que spéculer à ce sujet, jusqu'à ce qu'un employé de ProtonMail nous en explique la raison exacte.

La raison la plus probable est (à mon avis) la suivante:

ProtonMail est une entreprise dont le modèle commercial est basé sur des produits sécurisés et la protection de la vie privée d'un client. S'ils vous disaient qu'ils avaient enregistré des numéros de téléphone en clair, ce serait assez bizarre. Les hacher a beaucoup plus de sens à cet égard, vous ne pensez pas?
D'un autre côté, ProtonMail ne relie pas les hachages de numéros de téléphone aux profils d'utilisateurs, ils les vident régulièrement et comme vous l'avez dit vous-même, il n'y a pas grand-chose à gagner d'un numéro de téléphone.

Hachage de numéros de téléphone s'ils doivent les stocker vaut mieux que de ne pas les hacher. Voilà pourquoi ils le font.
Renforce-t-elle beaucoup la sécurité? Non.
Est-ce mieux que de les stocker en clair? Oui.

6
Tom K.

Il y a deux raisons de stocker des numéros de téléphone hachés, l'une est utile, l'autre non:

1) Permet de vérifier l'utilisateur. Ici, un hachage lent salé est utile. Bien que le forçage brutal d'un numéro de téléphone soit plus rapide qu'un mot de passe, il offre toujours une sécurité supplémentaire.

2) Faites semblant de fournir une recherche plus sûre (c'est-à-dire chez plusieurs concurrents de WhatsApp). Ici, vous ne pouvez pas saler le hachage, car vous ne pourrez pas rechercher le hachage si vous ne connaissez que le numéro de téléphone. Cela signifie qu'une table Rainbow est facile à créer car l'espace de recherche des hachages non salés est vraiment petit.

Notez que 1) fournit toujours une preuve d'existence facile lorsque vous avez la base de données. Hachez votre numéro de téléphone avec tous les sels utilisés dans la base de données et recherchez-le. S'il y est stocké, vous le trouverez.

1
allo