Étiquette : password

  • Triple vali­da­tion de mot de passe

    Non véri­fié mais ça semble une bonne idée :

    Face­book stores three hashes of your pass­word (let’s say it’s « pAss­word »):
    * « pAss­word » – the pass­word as it is
    * « PaSSWORD » – the pass­word, case inver­ted, in case you have caps lock on
    * « PAss­word » – the pass­word with its first letter capi­ta­li­zed, for those with mobile devices that insist on Capi­ta­li­zing Every­thing

    Comme indiqué dans un commen­taire, il n’y a pas forcé­ment besoin de stocker trois mots de passe chif­frés, on peut se conten­ter de modi­fier le mot de passe en clair par deux fois pour le faire corres­pondre aux diffé­rents types d’er­reur si le premier essai ne fonc­tionne pas.

    Pour la version « verrouillage majus­cule activé », je leur souhaite bonne chance dès qu’on touche au numé­rique ou aux ponc­tua­tions. Suivant l’agen­ce­ment clavier ça peut donner des centaines de combi­nai­sons. Heureu­se­ment que les gens n’uti­lisent pas de mots de passe sérieux.

  • Vol de mots de passe

    Drop­box a – encore – eu une faille de sécu­rité. Des mots de passe ont été volés. Visi­ble­ment le mien en fait partie.

    Hi Eric,

    Recently, pass­words have been stolen from some Inter­net services. This is a problem because many people use the same pass­word on multiple services, which is unsafe.

    As a precau­tion, we’ve reset your pass­word and you can create a new one here.

    We haven’t detec­ted any suspi­cious acti­vity in your Drop­box, but we’re proac­ti­vely taking steps to keep users safe.

    We know it’s easy to use a single pass­word across different websites, but this means if any one site is compro­mi­sed, all your accounts are at risk. If you’ve ever used the same pass­word for more than one website, you should create new unique pass­words for each of them. Tools like 1Pass­word do this for you and can help make your accounts safer.

    Best,

    – The Drop­box Team

    Des failles et des échecs ça arrive. Aucun service n’est immu­nisé, pas mal le vôtre super-sécu­risé.

    Point posi­tif : Ils commu­niquent dessus et prennent l’ac­tion la plus sensée à ce niveau en forçant un chan­ge­ment de mot de passe, au risque de bloquer tota­le­ment l’ac­cès à ceux qui ont changé leur email mais utilisent encore l’an­cien compte Drop­box. Ils commu­niquent aussi sur l’im­pact possible si on utilise un seul mot de passe pour plusieurs service, ce qui est très bien­venu.

    Sur les points néga­tifs tout de même : Ils ne précisent pas si le mot de passe a été déli­vré avec un hachage correct ou s’il a été divul­gué en clair. L’ab­sence de préci­sion implique un doute assez peu récon­for­tant.

    Les solu­tions

    Ce qui me gêne c’est qu’on retourne dans les solu­tions habi­tuelles qui sont bien en théo­rie mais pas les plus solides en réalité.

    Utili­ser un mot de passe unique par service ? C’est un délire pour l’es­sen­tiel des utili­sa­teurs et même pour les geeks c’est loin d’être évident. De ce que j’en ai vu même ces derniers utilisent géné­ra­le­ment un mot de passe unique pour les deux ou trois services prin­ci­paux (dont l’adresse email prin­ci­pale) mais après c’est un ou deux mots de passe communs pour l’en­semble des services suivant leur niveau de sécu­rité.

    Le conseil d’uti­li­ser 1pass­word est bon mais il est de peu d’aide en dépla­ce­ment, et ça reste un service à 50 $ pour le bureau­tique plus encore 15 $ pour la version iPhone.

    Drop­box affirme travailler à une authen­ti­fi­ca­tion en deux étapes, une par mot de passe et l’autre par un média plus person­nel, par SMS par exemple. C’est une très bonne nouvelle, mais c’est aussi agaçant. Je ne veux pas avoir 150 méthodes d’au­then­ti­fi­ca­tions en deux étapes, une pour chaque service, qui fonc­tionnent diffé­rem­ment à chaque fois. C’est encore plus vrai si, comme trop souvent, les SMS sont réser­vés aux rési­dents des États Unis.

    Voir autre­ment

    Il est vrai­ment temps de voir autre­ment et de ne pas cher­cher à réin­ven­ter la roue. Il est temps d’uti­li­ser des authen­ti­fi­ca­tions centra­li­sées comme Open ID, WebID, Brow­serID ou d’autres. L’avan­tage c’est qu’a­vec un seul (ou deux, trois) mot(s) de passe à rete­nir on peut le(s) faire très complexe.

    Mieux : On peut acti­ver une authen­ti­fi­ca­tion plus sûre, à base de certi­fi­cats SSL ou de relai par télé­phone. Ça devient possible parce qu’on ne passe pas par 150 services diffé­rents avec leurs méthodes diffé­rentes.

    J’ai fait le choix de Google parce que son authen­ti­fi­ca­tion en deux étapes me conve­nait et que l’au­then­ti­fi­ca­tion dépor­tée sur Google était une des plus répan­due. D’autres utili­se­ront un Open ID qui authen­ti­fie sur la base d’un certi­fi­cat SSL. Certains pour­ront utili­ser les deux ou encore d’autres solu­tions, suivant le service visé. Il y a le choix, y compris avec des proto­coles décen­tra­li­sés (désolé pour les termes, ça fait une authen­ti­fi­ca­tion centra­li­sée par un proto­cole décen­tra­lisé, vous pouvez propo­ser de meilleurs termes en commen­taire) si vous ne voulez pas repo­ser sur un acteur tiers.

    L’im­por­tant c’est d’ar­rê­ter de croire que la phase d’au­then­ti­fi­ca­tion doit forcé­ment se faire sur chaque service indé­pen­dam­ment. C’est quelque chose de trop sensible et trop parti­cu­lier pour croire qu’on a un réel béné­fice à réin­ven­ter la roue.

  • Authen­ti­fi­ca­tion forte

    Une authen­ti­fi­ca­tion par mot de passe sur le web est vite problé­ma­tique. Avec la multi­pli­ca­tion des sites web, chacun avec son compte, on a vite fait d’uti­li­ser le même mot de passe pour un même type de site, voire le même mot de passe partout. Tôt où tard on finit par s’au­then­ti­fier sur une machine publique, chez un voisin, sur un wifi public, ou alors un des services finit par avoir une faille de sécu­rité, voire quelqu’un a posé un spyware sur notre machine habi­tuelle.

    Problé­ma­tique simple : Je veux que personne ne puisse s’au­then­ti­fier sur mes comptes frau­du­leu­se­ment, et le mot de passe n’est pas la solu­tion.

    Mots de passes uniques

    Pallia­tif simple : Je génère un mot de passe par site. Je l’ai fait un temps, mais on atteint vite les limite de ce qu’on peut rete­nir de tête, même en utili­sant une astuce pour déter­mi­ner le mot de passe en fonc­tion du site (genre faire chan­ger une partie du mot de passe en fonc­tion du site). Au final la faci­lité reprend le dessus et on utilise trop souvent le même, ou des trop proches.

    C’est encore plus vrai pour les mots de passe « sensibles » (comptes mails prin­ci­paux, machines perso, machine pro) où le mot de passe devrait être complexe, diffé­rent à chaque fois, et renou­velé au mini­mum à chaque chan­ge­ment de société ou de pres­ta­taire. Jusqu’à quatre mots de passe forts c’est encore gérable, après ça devient ingé­rable, surtout si certains sont peu utili­sés (donc vite oubliés).

    Géné­ra­teurs auto­ma­tiques de mots de passe

    Dans la même lignée on peut utili­ser un système auto­ma­tique pour géné­rer un mot de passe à partir du nom ou de l’URL du service, ou aléa­toi­re­ment en tenant à jour une liste de mots de passe. C’est mieux, mais on reste dépen­dant de cet algo­rithme. Si je suis à l’ex­té­rieur, je risque de ne plus y avoir accès. Ensuite ça ne pallie qu’une partie du problème : ça n’em­pêche pas le mot de passe de se diffu­ser, et d’être utilisé frau­du­leu­se­ment par un tiers. Ça limite juste les dégâts si c’est le service tiers qui a un problème de sécu­rité.

    OpenID

    OpenID c’est une manière de résoudre le problème par l’autre bout. On centra­lise la gestion de l’au­then­ti­fi­ca­tion sur un seul site, et tous peuvent ensuite y faire appel. Du coup je n’ai aucun seul mot de passe à rete­nir : celui de mon compte openid. Je peux faire en sorte qu’il soit complexe, trans­mis sur une connexion sécu­ri­sée, et je ne crains pas les failles appli­ca­tives des services tiers.

    Ça résout certaines ques­tions, mais en pose d’autres : Comment est-ce que je m’au­then­ti­fie sur le serveur OpenId ? si c’est un mot de passe alors j’ai un risque d’au­tant plus grand s’il est décou­vert. Tous mes services en dépendent.

    RSA SecurID

    SecurID c’est le système clas­sique en entre­prise. On vous donne une sorte de porte clef person­nel qui génère un mot de passe unique toutes les 15 secondes. Natu­rel­le­ment chaque porte clef est initia­lisé diffé­rem­ment donc seul le votre donne accès à votre compte. Le mot de passe est à usage unique, et tota­le­ment sans inté­rêt passé une minute. Les risques d’ac­cès frau­du­leux sont donc forte­ment limi­tés.

    Malheu­reu­se­ment ça ne semble pas vrai­ment conve­nir à un usage person­nel courant. Tout d’abord je n’ai qu’un seul support physique, et aucun accès de secours. Si je perds mon accès, je dois me repo­ser sur un admi­nis­tra­teur tiers qui me redonne un nouveau support et le lie à mon compte.

    En vacances, ou simple­ment si je n’ai pas ma veste avec moi, il peut arri­ver que je n’ai pas mon support. Sous réserve que je consi­dère mon accès comme « sans risques » je souhaite pouvoir passer sans le jeton d’au­then­ti­fi­ca­tion forte. Là je n’avais pas ce choix.

    Ensuite le jeton repose sur un système de clefs et de secrets qui est détenu par Veri­sign. C’est un point qui est sensible pour moi, d’au­tant qu’il y a eu une faille chez eux récem­ment et qu’on se demande si les secrets n’ont pas été divul­gués. Un système open source sans serveur tiers me semble indis­pen­sable.

    Enfin, pour éviter qu’il suffise de voler le porte clef plas­tique pour avoir accès à mon compte, je devais ajou­ter un PIN de quatre chiffres. Ce qui m’étonne c’est que ce PIN n’est pas à saisir sur le porte clef, mais à côté du jeton d’au­then­ti­fi­ca­tion, dans le formu­laire web. Quiconque regarde mon clavier, écoute sur le réseau, ou a réussi à poser un spyware sur ma machine connai­tra ce PIN. Bref, il n’est pas si secret que ça.

    Pour ma société, voire pour l’ac­cès à mon compte en banque (et encore), pourquoi pas. Pour le reste, bof bof.

    Google 2 steps veri­fi­ca­tion

    Le système Google est pour moi un peu plus souple déjà. Il utilise une appli­ca­tion sur mon smart­phone et pas un porte clef tiers mais le système semble simi­laire. Ca n’a l’air de rien mais le télé­phone a beau­coup plus de chances d’être avec moi. Il inter­vient après l’au­then­ti­fi­ca­tion par mot de passe (d’où le nom de « deux étapes ») et on peut forcer la seconde étape à ne pas être rede­man­dée à chaque fois pour la même machine qu’on sait « sûre ».

    Pour autant je ne suis pas toujours avec mon télé­phone, et il peut tomber hors batte­rie. Dans ces condi­tions, et si j’ai confiance dans le poste et la connexion sur lesquels je suis, j’au­rai aimé pouvoir saisir un mot de passe spéci­fique qui zappe l’au­then­ti­fi­ca­tion forte. Ça fonc­tionne tant que c’est excep­tion­nel mais Google ne me le propose pas. Google me propose par contre de géné­rer une série de mots de passe à usage unique. Malheu­reu­se­ment l’usage unique est poten­tiel­le­ment gênant et surtout ça implique de les noter quelque part, avec le risque de les perdre ou de se les faire voler. Bref, on peut mieux faire même si j’ap­pré­cie l’in­ten­tion.

    Pour ne pas risquer de perdre des accès et comme il n’y a pas d’ad­mi­nis­tra­teur humain tiers, je peux propo­ser à Google un second numéro de télé­phone qui sert en backup, si jamais je perds le premier. Là aussi c’est posi­tif. Main­te­nant person­nel­le­ment j’ai un télé­phone perso, un de boulot, je risque parfois d’avoir l’un et pas l’autre. J’au­rai aimé auto­ri­ser les deux à me servir pour l’au­then­ti­fi­ca­tion forte et ce n’est pas proposé.

    Point posi­tif, google garde une compa­ti­bi­lité avec toutes les appli­ca­tions qui conti­nuent à utili­ser un simple mot de passe comme inter­face. Je peux faire géné­rer autant de mot de passe que je veux (ils sont longs et complexes) et les affec­ter à des appli­ca­tions. J’ai ensuite la liste des appli­ca­tions dans mon inter­face d’ad­mi­nis­tra­tion et je peux en ajou­ter ou en reti­rer à la volée. Le résul­tat c’est que je peux vali­der ou refu­ser chaque appli­ca­tion indé­pen­dam­ment, sans secret partagé entre toutes.

    Côté sécu­rité, rien ne m’in­dique qu’il est impos­sible de copier le logi­ciel présent sur mon télé­phone portable (ou les mots de passe à usage unique que j’ai en backup) et l’uti­li­ser sans que je ne le sache. Tech­nique­ment ça ne prend pas long­temps pour quelqu’un qui a accès à mon télé­phone, 10 minutes au plus. J’au­rai aimé un système qui détecte que deux télé­phones distincts utilisent la même clef et me l’in­dique. Si c’est présent Google n’en parle pas.

    Enfin, tout ça est « google-only ». Je peux certes utili­ser google en openid, mais ça reste centra­lisé. J’au­rai aimé quelque chose d’uti­li­sable partout, y compris sur mes serveurs.

    Clefs SSH

    En rédi­geant tout ça je me suis rendu compte que j’uti­li­sais déjà un système assez ressem­blant : les clefs SSH. Pour me connec­ter à mes serveurs j’uti­lise des clefs privées. J’ai une clef par source, toutes diffé­rentes. Je peux auto­ri­ser faci­le­ment une nouvelle source, ou en griller une exis­tante, sans mettre à jour. J’ai aussi un mot de passe de secours que je peux utili­ser quand je suis à l’ex­té­rieur.

    Malheu­reu­se­ment là c’est unique­ment pour ssh, et mes authen­ti­fi­ca­tions se font à 90% sur des formu­laires web. Ca demande aussi d’avoir ses clefs ssh sur soi, or le scéna­rio d’au­then­ti­fi­ca­tion forte est surtout utile juste­ment quand je suis ailleurs que chez moi, ou avec une machine qui n’est pas une machine de confiance.

    Je n’ai non plus aucun système qui m’as­sure que ma clef n’a pas été copiée et utili­sée par un tiers.

    Et vous ? Qu’a­vez-vous pour vos authen­ti­fi­ca­tions fortes ?

    En regar­dant j’ai­me­rai :

    • Authen­ti­fi­ca­tion par un système de clefs privée/publique géré par une appli sur mon télé­phone portable
      • Possi­bi­lité de gérer une liste de clefs auto­ri­sées (une par télé­phone portable) pour ajou­ter/reti­rer faci­le­ment un accès
      • Le jeton renvoyé par le télé­phone est obtenu par une combi­nai­son d’un mot de passe ou PIN et de la clef (il faut les deux, et donc le mot de passe n’est pas saisit sur le PC public mais sur mon propre télé­phone)
      • Un système de numéro incré­men­tal est asso­cié au jeton d’ac­cès afin de repé­rer si un tiers utilise une de mes clefs après l’avoir copiée (si le numéro est égal ou plus faible que la dernière fois le serveur refuse l’ac­cès, je saurai donc que quelqu’un utilise ma clef ailleurs et je pour­rai la suppri­mer des auto­ri­sa­tions)
    • Authen­ti­fi­ca­tion alter­na­tive par un mot de passe que je choi­sis moi, pour quand je n’ai pas mes télé­phones et que je suis prêt à prendre le risque
    • Authen­ti­fi­ca­tion alter­na­tive par mot de passe pour les API, logi­ciels, etc. (mot de passe généré, long/complexe)
      • Possi­bi­lité de gérer une liste de mots de passe auto­ri­sés (un par appli­ca­tion/API) pour ajou­ter/reti­rer faci­le­ment un accès