La sécurité des processus de réinitialisation d’un mot de passe

Chaque e-service ayant un espace privé dispose généralement d’une section permettant aux utilisateurs ayant oublié leur mot de passe de le récupérer ou le changer, l’approche diffère d’un fournisseur de service à un autre, chaque approche se base sur un processus de récupération qui se déroule généralement sur plusieurs étapes, à travers chaque étape l’utilisateur doit fournir des informations permettant de confirmer son identité, ainsi la validation de toutes les étapes garantie à l’utilisateur un accès à son compte.

Par-contre que se passerai-t’il si l’une des étapes est contournée? les informations sur-lesquelles s’appuient les processus de récupération sont-elles fiables? Quelles sont les bonnes pratiques? C’est les questions auxquelles je vais essayer de répondre dans cet article.

« J’ai oublié mon mot de passe » est une nécessité

Combien de fois avez-vous réinitialisé votre mot de passe sur un service? avouez-le c’est embêtant d’oublier les informations de récupération (question secrète/email secondaire etc..), par-contre c’est rassurant le fait de regagner accès à son compte après avoir oublié ses identifiants n’est ce pas?

Évidement la fonction de récupération de son compte est une fonctionnalité vitale, le nombre des e-services se multiplie et aujourd’hui chaque internaute dispose d’une multitude de comptes sur plusieurs e-services. Il devient de plus en plus difficile de se rappeler de tous ses mots de passe sur chaque service, l’Auth2.0 a vu le jour pour résoudre cette problématique mais la tendance sur les nouveaux e-services est de demander à l’utilisateur de créer un mot de passe même s’il s’inscrit par le billet d’une Auth2.0 tel que Twitter et Facebook.

Récupérer ou réinitialiser?

La récupération consiste à envoyer par e-mail à l’utilisateur son ancien mot de passe ou de générer un nouveau mot de passe temporaire, cette approche fait partie des mauvaises pratiques. Si la logique de régénération est faillible, un attaquant peut mener une attaque de bruteforce pour gagner l’accès au compte utilisateur.

Aujourd’hui l’approche la plus adoptée par les géants d’internet c’est la génération d’un jeton, qui à travers un lien hypertexte unique permet de réinitialiser le mot de passe de l’utilisateur, le lien hypertexte est envoyé à l’adresse e-mail de secours de ce dernier, ainsi le service demande à l’utilisateur en échange de saisir les informations précédemment remplies le jour de l’inscription et principalement la question secrète ou l’adresse e-mail alternative, dans le cas contraire sur certains services de messagerie, l’utilisateur peut fournir des informations relatives à son compte comme les derniers échanges (sujets/emails/dossiers etc..), si les informations correspondent l’utilisateur reçoit un mail avec un lien de réinitialisation de son mot de passe, ces informations pouvant être facilement récupérées grâce au social engineering, c’est pourquoi des géants comme Google et Facebook ont rajouté la double vérification ou la vérification téléphonique, qui à ce jour, si on ne considère pas le grand budget dépensé pour les notifications et la vie privée des utilisateurs, reste la solution la plus efficace.

Les erreurs fatales:

  • Vérification insuffisante des paramètres de requêtes HTTP :
    Ces derniers mois des géants comme Google et Microsoft ont connu une vague de piratage des comptes utilisateurs dû au contournement des étapes de réinitialisation de mot de passe, la technique utilisée par les pirates consiste à bidouiller, avec des outils comme l’extension Firefox TamperData, les paramètres HTTP POST, ne vérifiant pas la validité des données postées le processus de réinitialisation renvoie l’attaquant sur la page de modification.
  • Référence à un objet non-sécurisé dans l’algorithme de génération du jeton (token) : cette faille et exploitable quand l’algorithme de régénération du jeton (token) de réinitialisation fait référence à un objet non sécurisé comme la date (timestamp) ou encore le nom d’utilisateur, par exemple avec le timestamp un attaquant peut en exerçant du reverse engineering régénérer un token et le reproduire pour avoir un lien de réinitialisation valide (Randomness Attack)
  • Attaque CSRF sur la page de modification des informations de récupération:
    Pour comprendre ce genre d’attaque, on considère un REGISTRAR qui dispose d’un processus de réinitialisation de mot de passe fiable, l’utilisateur renseigne son adresse email de secours et il reçoit un lien de réinitialisation, dans son espace membre il y a un lien qui lui permet de modifier les informations de récupération de mot de passe tel que la question secrète ou l’adresse e-mail alternative. Si le formulaire en question est vulnérable aux attaques CSRF un attaquant peut facilement modifier les informations de récupération rien qu’en lui amenant à cliquer sur un lien pendant qu’il est connecté à son compte, pour mieux comprendre la faille Cross Site Request Forgery rendez-vous sur cet article.
  • profils publics et confidentialité
    Contrairement à ce que vous pensez, vos profils publics en disent beaucoup sur vous, vos likes par exemple peuvent aider un attaquant à deviner la réponse à votre question secrète, il faut donc être vigilant dans le choix de ses réponses secrètes.

Les bonnes pratiques:

  • Pour les développeurs:
    • Sécuriser l’espace membre contre les attaques CSRF
    • Ne pas baser l’algorithme de réinitialisation de jeton sur une référence à un objet non sécurisé
    • Ne pas mettre des questions secrètes débiles comme: « Nom de votre jeune sœur » ou encore « le nom de votre chien », avec les réseaux sociaux ce genre d’informations est facilement trouvable.
  • Pour l’utilisateur:
    • Jamais le même mot de passe! : certains services stockent les mots de passes en texte brute sur leur bases de données, ces mots de passes n’étant pas cryptés.. avoir le même mot de passe sur plusieurs services n’est pas avantageux, pensez à mettre un mot de passe différent pour chaque service!
    • Ne communiquez jamais vos informations personnelles à un inconnu, n’acceptez pas sur Facebook ceux que vous connaissez pas, collecter des informations sur vous peut aider un attaquant à deviner la réponse à votre question secrète
    • Vous avez changé votre mot de passe et aussi les informations de récupération, c’est bien! par-contre si le e-service est basé sur l’Auth2.0 il faut penser à jeter un œil sur les applications ayant toujours accès à vos données, le changement de mot de passe n’impacte pas l’accès aux données personnelles à partir des applications tierces autorisées

GeekFtour, un évenement marocain par et pour les geeks

GeekFtour 2012
Tout internaute de la communauté marocaine connait GeekFtour, un événement unique qui s’organise chaque Ramadan et qui réuni les technophiles marocains, cet événement a vu le jour grâce à l’initiative de notre cher ami Moncif Aissaoui, qui en 2010 a eu l’ingénieuse idée d’organiser un ftour collectif pour réunir la communauté #twittoma et #bloghoma autour d’une table, l’événement a eu une forte présence au point d’obliger les organisateurs de répartir les invités sur deux endroits, l’endroit initialement prévu n’a pas suffit pour accueillir tout le monde. C’était donc un véritable succès d’un concept original qui a séduit l’opérateur telecom INWI, qui depuis la deuxième édition, est devenu le sponsor officiel de cette manifestation.

Les nouveautés de GeekFtour 2012

Pour cette édition, Evento enrichit le concept avec trois nouveautés majeurs: Encore plus de monde, Ramadan Gaming et Ignite GeekFtour:

  • La participation à l’événement restera gratuite et accueillera cette année 400 personnes
  • Ramadan Gaming, ou tout simplement un concours de jeux vidéos pour les gamers qui va commencer 3heures avant le ftour, une trentaine de Gamers s’affronteront et les gagnants partiront avec des prix à la fin de l’événement
  • Ignite GeekFtour: une série de conférences, de 5 minutes chacune, avec 20 secondes par slide, un exercice oral auquel 10 personnes se prêteront pour parler d’une thématique de leur choix, si vous ne connaissez pas le concept d’Ignite je vous invite à visiter le site web Ignite Maroc pour avoir une idée

Si n’avez pas encore réservé votre invitation, c’est par ici

Ce que j’attends de la communauté

Si on ne compte pas Maroc Web Awards, #GeekFtour est la seule manifestation majeure qui réuni la communauté web marocaine, cette chance est donc offerte deux fois par an et il faut en tirer un maximum et consolider les efforts de la communauté pour initier de nouveaux projet et surtout pour enrichir la scène web-sphère marocaine.

SI vous considérez cet événement comme une simple rencontre de geeks alors vous vous trompez, ça a toujours été un plaisir de se rencontrer et se prendre en photo, mais sachez qu’une bonne partie des participants sont la pour des opportunités d’affaires, pour recruter ou tout simplement pour du réseautage, soyez donc interactifs, n’ayez pas peur de vous présenter et montrer ce que vous savez faire, il y a de forte chance que vous trouvez des partenaires qui partagent les mêmes ambitions et qui ont besoin de vous!

En quelques mots: Je veux un échange efficace, inutile de se répartir en clans, et comme le dit toujours Rachid Jankari : إلى الأمام et rendez-vous samedi 11 août 2012 à 17:00 au Sofitel Casablanca Tour Blanche