Mots de passe, attaque brute force, sécurité

A la question votre mot de passe est-il sûr, la réponse est … vérifiez-donc !

Je me posais cette question depuis quelque temps ce qui est l’occasion de faire un petit article sur la chose. La recherche de mots de passe ne se déroule pas comme dans les films, en testant sur le site tous les mots de passe possible ; on ne trouve pas non plus les digit un à un ; effet cinématographique mais mathématiquement idiot …
La recherche de mots-de-passe est généralement possible à partir du moment où celui qui veut le cracker va le posséder. Pas évident me direz-vous mais combien t’entre nous utilisent le même password pour la maison, le travail, l’internet… autant d’opportunités pour un pirate éventuel de se le procurer. D’où la première règle : à son environnement son propre mot-de-passe ; ou en posséder plusieurs par classe de sécurité.

Bref obtenir des passwords n’est pas très compliqué, toutefois, ceux-ci sont cryptés selon des méthodes non réversibles, c’est à dire qu’il ne sera pas possible de décrypter le mot de passe lu. Par ailleurs, la version cryptée ne permet pas de présager du nombre de lettres ni du type de lettres. Le décryptage se fait donc par comparaison, il suffit donc d’essayer toutes les combinaisons possibles, de les crypter et de comparer le résultat obtenu avec celui recherché. Si les deux chaines cryptées sont identique le mot-de-passe courant sera le bon. Simple donc !

C’est là que les math entre en jeu. Combien de temps faut-il pour trouver la chaîne initiale ? Tout celà dépend du nombre de combinaisons possibles, lors d’une attaque brutale c’est le nombre de [caractères différents] à la puissance [nombre de caractères de la chaîne]. Le temps est donc fonction de la taille de la chaine et des caractères utilisés. Voici quelques exemples :

Sur un Athlon XP 2400@1.5GHz :
Chaine numérique pure :

  • 7 digits : 5 secondes
  • 8 digits : 1 minute

Chaine alphabétique en minuscules:

  • 6 digits : 6 secondes
  • 7 digits : 2 minutes
  • 8 digits : 14 minutes

Chaine alpha_num minuscules/majuscules:

  • 4 digits : 7 secondes
  • 5 digits : 8 minutes
  • 6 digits : 84 minutes

Chaine tous caractères:

  • 4 digits : 38 secondes
  • 5 digits : 1 heure
  • 6 digits : 100 heures

Suivant ses résultats, je tire deux conclusion, l’usage de chaines composée d’une maj, d’un symbol spécial suffit pour obliger l’usage d’une recherche tous caractères et c’est dans ce cas que les performances sont vraiment amoindries. Car la logique veut que l’attaquant essayes les combinaisons les plus simples en premier avant le mode tout caractère vu l’ecart significatif dans les temps de traitement.
La seconde conclusion concerne la taille, il est evident qu’une chaîne avec une longueur inférieur à 5 est une pure folie !

Suis-je alors sauvé si mon mot de passe fait plus de 8 digits ?
Et bien non, tout simplement car l’usage veut que l’on utilise des mots de passe simplement mémorisable, souvent nom, prenoms, date de naissance, nom commun… Cet usage est facilement compréhensible, la mémoire humaine ayant ses liminites. Les outils de recherche ont donc pris en compte cet aspect de la nature humaine et utilisent des dictionnaires. C’est une simple liste de mots communs qui servira de référence : plutot que de chercher parmi toutes les chaînes, cherchons parmi celles que notre mémoire nous conduira à favoriser. Le programme sera capable de composer des variantes classiques à partir de cette liste : ajout de majuscules, chiffres, caractères spéciaux. Alors, combien de temps faut-il pour trouver un mot de passe commun ?

Sur un Athlon XP 2400@1.5GHz, avec un dictionnaire de 237000 mots français et des règles de transformation standard, comptez moins de 5 minutes pour tester toutes les possibilités.

Et ce, bien sure, quelque soit la taille de la chaîne choisie. Cette méthode étant la plus efficasse, c’est la principale utilisée.

Donc, que va faire (logiquement) un pirate qui souhaitera connaitre votre mdp ?

  • 1. Lancer une attaque par dictionnaire
  • 2. Lancer une attaque par date (8 digits)
  • 3. Lancer une attaque alpha lower (7 digits)<.LI>
  • 4. Lancer une attaque alpha upper (7 digits).
  • 5. Lancer une attaque alpha (5 digits)

Un pirate qui ne vous en veut pas particulièrement à vous devrait grosso-modo s’en arrêter là car il trouvera sans doute 30 à 40% de mots de passe en suivant ces règles. Et ce dans un temps d’environ 10 minutes. Pour éviter ce genre d’attaque, les règles pour choisir un bon mot de passe sont donc les suivantes :

  • Utiliser au moins 1 digit + 1 symbol spécial + 1 majuscule.
  • Utliser une logueur d’au moins 8 caractères
  • Banir les mots usuels

Alors comment avec celà tourver un mot qui soit mémorisable facilement … Je vous propose une solution simple : utiliser la phonétique choisissons par exemple le prénom paulcomme base :

  • Ne pas le trouver dans le dico : pol
  • Augmenter la taille et complexifier : pPoOlL
  • Ajouter des carcatères spéciaux : [pPoOlL]

Voila 8 digit plutot simple à mémoriser surtout si le mot de base est familier. Pour augmenter la taille il suffit de choisir un mot plus long. Votre cerveau doit alors mémoriser la méthode et non le mot-de-passe en lui même.

Si maintenant vous devez vous protéger de quelqu’un qui cherche à vous ataquer personnellement, le choix du mot de passe est plus compliqué, mais basé sur le même principe, toutefois, il y a des règles supplémentaires à prendre en compte tout d’abord imaginez : le temps qu’il pourra y consacrer et ses ressources : s’il me faut 100h pour trouver un mot quelconque de 6 caractères, ce calcul peut etre très simplement distribué permettant de transfomer ces 100h en 100 fois 1 heure en utilisant 100 machines… Par rapport à celà, vous devez donc prévoir de modifier votre mot de passe au moins 1 fois dans ce temps de calcul qui dépend donc des ressources du pirate. Si vous ne le changez que tous les mois, il aura un mois pour calculer. A partir de là, 8 digits quelconque est à peine fiable ; 10 ou 12 semblent être une meilleure solution. Reprenons un exemple simple à mémoriser : vacances devient : [vVaAcCaAnNcCeEsS] avec 18 caractères ; plutot simple à retenir non ?!?

Face à celà, vous n’etes cependant pas à l’abrit, la dernière methode employable et l’analyse sociale : si vous utilisez la méthode ci-dessus, votre mot-de-passe ne vaudra rien : étant publié, il peut être employé comme motif dans une attaque par dictionnaire. Plus généralement, si vous passez ou avez reçu des consignes dans votre entreprise pour la création de mot-de-passe, il suffira au pirate de se renseigner sur ces consignes, les exemples donnés pour appuyer sa recherche. Bref, la methode de construction étant la clef, elle doit vous être propre. L’avantage ensuite et que vous pouvez changer le mot chaque mois sans changer la methode… par éxemple : janvier2006 devient *janvieR!2006, simple et correct ; adaptable chaque mois.

Les erreurs à ne pas commettre :

  • Les mots-de-passe aléatoires qui finissent sur un post-it sous le clavier
  • Le donner à qui que ce soit : la méthode (clef du mot-de-passe) devient publique
  • Ne pas diffuser un mot de passe critique sur un autre média que celui pour lequel il est prévu : ne pas utiliser le mdp du travail pour s’inscrire sur un site Internet : c’est rendre public le mot de passe ET la methode

Bref, il faut des methodes différentes selon les contextes. Ensuite, il existe des tas d’autre façon de générer/utiliser de très long mots de passe : biometrie ou classeur de mdp sur carte à puce …

Pour finir, vous pouvez tester vous même la fiabilité du mot-de-passe choisi avec des outils comme John-The-Ripper (JTR) avec ou sans KMD5, unhash … facilement téléchargeables sur internet, dictionnaires y compris.

Kézako l’Ajax ?

Non ! Ajax n’est ni un nouveau produit révolutionnaires permettant de nétoyer votre navigateur Ouaib en un clin d’oeil, ni la nouvelle cyber-équipe de foot d’Amsterdam …

C’est en fait beaucoup mieux que tout cela réuni ! Ajax est une méthode permettant de développer des interface Ouaib interactive sans qu’il soit nécessaire de recharger entièrement la page. Cette méthode est basée sur l’usage de la commande Javascript XMLHttpRequest qui permet aux navigateurs de soumettre et recevoir des données depuis le serveur. Les échanges sont généralement effectués en XML. Les données sont traitées par des Javascripts qui s’exécutent sur le client, en tâche de fond. Les échanges sont asynchrones : il est possible de rafraichir plusieurs partie distinctes d’une page Web sans se soucier de l’ensemble.

Ajax cache sous son doux nom l’acronyme Asynchronous Javascript And Xml. Bien que cette technologie soit très nouvelle, elle emploie des techniques anciennes déjà éprouvées : la méthode XMLHttpRequest date de plusieurs années et les JavaScripts remontent aux premières heures de l’Internet. L’usage très fort des CSS (feuilles de style) s’est lui aussi démocratisé.

L’usage conjoint de ses 3 technologies permet la réalisation de site Web permettant la manipulation dynamique d’objets comme des fenêtres, les listes, des tableaux, des arbres… rafraichis dynamiquement,  l’ergonomie d’un client lourd peut être ainsi recrée sur une application en ligne.

Ajax or not Ajax ?

Celà fait plusieurs jours que je voulais écrire un post à ce propos. Après la lecture de cet article et différentes remarques que l’on m’a faites, je souhaite donner mon opinion.

Rappelons brièvement les faits. L’utilisation des technologies Ajax apporte son lot de bonnes choses mais aussi les inconvénients qui vont avec. Essayons de faire la synthèse de tout ça.

Nous avons vu qu’Ajax permet l’appel de code distant, et la récupération de valeurs permettant leur affichage sans rechargement de page et ceci à l’aide de javascript. Le premier soucis qui pointe le bout de son nez est bien sûr l’utilisation de javascript. Il y aurait 78% de navigateurs compatibles avec Ajax ce qui est toutefois pas mal. Cependant au niveau accessibilité l’utilisation abusive de javascript est plus que dangereuse. Une personne non voyante ne pourra pas accéder à une information affichée suite à un appel javascript. Or je tiens beaucoup à l’accessibilité des sites web.

Pourquoi prôner Ajax alors ? Je pense que cette technologie a de nombreux mérites. Là aussi on l’utilise parfois à des fins qui ne sont pas très utiles. Ergonomiquement parlant, il est souvent aussi pratique de charger une autre page plutôt que d’avoir l’information directement. De plus les moteurs de recherche ne sont pas du tout friands de javascript. Malgré tous les points négatifs dont je viens de faire part, je reste convaincu qu’Ajax a de l’avenir. Avez-vous testé le service Meeboo ? Il vous permet de vous connecter à la plupart des messageries instantanées avec un client Web superbe. Voilà une application où Ajax a de l’intérêt par exemple.

Mes convictions personnelles sont donc l’utilisation de cette technologie à des endroits bien particuliers d’un site Internet. La partie administration ( Backoffice ) est très souvent simplifiée grâce à ce genre d’outils. Ajax offre aussi l’opportunité de créer des applications au sein d’un site et c’est une autre de ses grandes qualités.

Pour conclure je dirais donc que la navigation sur un site public doit rester ergonomique, simple et accessible mais qu’il ne faut pas oublier Ajax pour la création d’une application WEB poussée ou la gestion du backoffice.

meebo.com, vive Ajax !

Le site www.meebo.com permet en effet de se connecter aux messageries instantanées classiques (MSN, ICQ, JABBER …) depuis un navigateur web, sans aucune installation sur le poste ni applet ! Du coup le système franchi très simplement les firewall et autre proxy, même les plus récalcitrants ! Une révolution !

Meebo utilise un “client” Ajax permettant d’avoir le confort d’un client lourd au sein d’une page web avec des flux réseaux restreints. Bref un outil vraiment pratique. a visiter absolument.

Un client AIM en Ajax !

Le site www.meebo.com propose la connexion aux différents clients de messageries instantanées, que ce soit MSN, ICQ, Jabber, GTalk ou Yahoo ! Messenger. Ce site utilise une technologie Ajax pour l’affichage du client. Le résultat est aussi convivial que le clients lourds, les soucis de proxy / firewall en moins.

La technologie Ajax se prête particulièrement bien à la réalisation d’un client léger/riche de messagerie instantanée, on pourrait même presque dire que cette technologie permet la réalisation d’une telle application. Le fonctionnement asynchrone de la messagerie instantanée nécessite en effet une communication constante avec le serveur pour la réception de message dans un usage web. Avant l’arrivée d’Ajax, ce rafraichissement nécessitait le réaffichage complet de la page ou des manipulations de frame un peu complexe, si bien que ce type d’application n’existait qu’à titre expérimental.

Ajax apporte une solution en permettant de ne rafraichir que les messages instantanés et non la totalité de la page. Cette nouvelle fonctionnalité permet de restreindre au stricte nécessaire les échanges entre le client et le serveur mais permet aussi de ne raffraichir que les communications ayant évolué. Le résultat est une fluidité de l’application parfaite et l’illusion de l’utilisation du client lourd traditionnel.

Outre ce mode de communication, l’application de meebo.com profite de tous les attrait d’Ajax en proposant le déplacement des éléments applicatif au sein de la fenêtre de navigation par exemple. Bref, on se croirait dans un vrai client de messagerie. Sauf que là : pas besoin d’installation, pas besoin d’autorisations particulières sur le firewall ou le proxy : tous les échanges se font en http.

Pour ma part, je leur tire mon chapeaux !

Procés et piratage du musique

14 800 : c’est le nombre de procès en piratage que le RIAA a intenté à des particuliers durant les deux dernières années. Le RIAA est l’association américaine des marchands vivant légitimement du travail des artistes. Mais les mélomanes (les faux, ceux qui écoutent, pas ceux qui vendent) se laissent de moins en moins faire et n’acceptent plus les « accords à l’amiable » pourtant équitables consistant à faire payer pour l’exemple des fillettes de 14 ans et des grands-pères de 70. Aujourd’hui, explique le National Law Journal, il n’est pas rare que les poursuivis contre-attaquent et accusent le RIAA pour procès non fondé et abus de pouvoir. En Europe, les homologues de ces vendeurs de produits dérivés de la création musicale, que l’on désigne sous le nom générique de « major »*, tentent, souvent avec bonheur, de convaincre les élus de faire passer des lois leur assurant une rente de situation. Bien maigre rente, doit-on dire, car les impôts sur les CD vierges, les DVD, les lecteurs MP3 etc ne se comptent parfois qu’en centimes d’euro. Un symbole, une misère quoi. Et ce n’est pas ça qui parviendra à combler les dépenses faramineuses qu’occasionnent les coûteuses enquêtes montrant combien les « jeunes n’achètent plus de CD » et considérant le « piratage sur Internet comme un moyen pratique d’écouter de la musique ». Il faut absolument éviter le retour aux périodes sombres de l’histoire, quand personne n’achetait le dernier CD de MM J.S. Bach, W.A. Mozart ou L.V. Beethoven. Mais à l’époque, la police était laxiste, et l’on passait n’importe quoi dans les malles-postes. Y compris des partitions. C’est en ce temps là que l’on aurait dû sévir. En imposant une taxe de 3 Deniers sur les outils de reproduction : plume d’oie, cendre, noir de fumée…

Rappelons également qu’il existe de nos jours, dans chaque ville, des médiathèques auprès desquelles il est possible de récupérer des CD musicaux sans avoir à débourser un centime… tarifs d’inscription non compris. Cet insupportable vecteur de piratage, cette scandaleuse habitude qui conforte les auditeurs dans une attitude d’irrespect financier devrait être combattue avec la dernière énergie. Les bibliothèques également, qui offrent à des lecteurs avides le contenu d’ouvrages pour lesquels ils ne versent pas même une roupie. L’incendie de la bibliothèque d’Alexandrie, on devrait en faire un jour de fête nationale. Et puis tous ces gens qui sifflotent dans la rue et diffusent des musiques sans payer de droit à la Sacem… A bien y regarder même, la taxe « anticopie » intégrée à l’abonnement Internet se justifie également. Car il ne faudrait pas oublier qu’originellement, Internet n’était qu’une immense bibliothèque d’Universitaires et étudiants, qui voyaient par là un moyen pratique d’échange d’idées et d’ouvrages. Gratuitement, bien entendu, si le lecteur peut nous pardonner l’usage de ce mot excessivement indécent. Fort heureusement, cette dangereuse orientation, que l’on pourrait qualifier de cryptocommuniste, a été récupérée à temps et remise dans le droit chemin du profit, de l’efficacité et de l’économie de marché. Et s’il n’existe conceptuellement aucune différence entre une bibliothèque et Internet, il ne doit pas, non plus, exister de différence de « paradigme de facturation » entre ces deux genres de structures. Après tout, l’OCDE nous a bien assuré que le début du XXIeme siècle serait placé sous le signe du développement de la vente de services. Et une bibliothèque, si c’est pas du service à l’état brut…

KDM et dual screen

Petit problème que j’ai pu rencontrer lors d’une utilisation de dual-screen : KDM demarre sur le premier écran qui n’est pas toujours celui que l’on souhaite utilisé par défaut.
Pour modifier celà il existe une option qui peut être ajoutée dans le fichier kdmrc (/etc/opt/kde3/share/config/kdm/kdmrc sur suse) :
Dans la section [X-*-Greeter], ajouter la ligne GreeterScreen=1 par exemple pour que celui-ci soit affiché sur l’ecran n°1 …

Test de Opensuse GNU/Linux 10.0

En avant propos, je tiens à dire que je suis un utilisateur convaincu et ravi de Suse depuis 4 ans environ et de puis la Suse 8. Je ne suis pas un fan de la dernière option de la dernière version du dernier soft qui vient de sortir, mais je demande plutot à mes systèmes d’être stable, de tourner 24/24 et de me fournir les outils nécessaire à mon utilisation : development web/java/vhdl/c/c++, bureautique de base et internet. Voila pour le cadre de façon général. Coté existant en place j’ai actuellement 2 serveurs en suse 9.0 + 1 serveur et 1 poste de travail en suse 9.2. A l’occasion d’un crash, dont vert de honte, je vous tairai la cause, je suis passé en Suse 10 ; j’en profite pour livrer mes premières impressions :

Comme a l’habitude, je n’aime pas bien utiliser les distributions sur CD :

  • Parce que changer les cd c’est chiant
  • Parce que ca coute
  • Parce que donner 1.5 euro aux auteurs compositeurs pour graver une distribution Linux me désole
  • Parce que de toute façon les cd ne servent qu’une dizaine de fois grand max, avant d’etre obsoletes

Bref, je décide d’installer une version en réseau et fais donc comme d’habitude un mirroir de l’instal live en local pour une installation future. Là, je dois dire que j’ai rencontré ma première déception, lorsque je me suis rendu compte que je venais de télépcharger 30Go incluant les version 32bits, 64 bits, ppc … + les sources. Suse m’a habitué à mieux organiser ses répertoire pour eviter celà ! La synchronisation, une fois ménage fait avec le mirroir n’est donc pas vraiment évidente avec une ligne d’exclusion dans le wget plutot gigantesque. Mais finalement s’est fait. Je grave le cd de boot et démarre l’install.

Installation réseau de le suse 10.0

Tout commence bien, jusqu’à ce que … l’installation propose un partitionnement par défaut assez interressant puisqu’il a m’a directement proposé de formater l’espace disque contenant la source de donnée … original ! Ceci étant dit, la proposition par défaut n’etant que rarement interressant, c’est juste une bonne blague qui m’aura fait sourir. Là ou j’ai moins rigolé c’est lorsque l’install a planté à cause de paramètres incohérents dans mon partitionnement, relatif à l’usage de Raid1. Car, bien sure, je venait de passer 30 minutes à faire ma sélection de packages. J’ai ensuite beaucoup moins rigolé lorsque ce même temps passé a de nouveau été perdu alors qu’en plein milieu de l’installation le disque contenant les données s’est auto-démonté … opération mystérieuse et désastreuse.

Installation CD de la Suse 10.0

Après avoir passé pas mal de temps sur de nouveau essais, j’ai dû me résoudre a passer sur une install CD. J’ai donc téléchargé et gravé les 3 premiers espérant que cela suffise. j’ai ensuite choisi une installation par défaut et j’ai une nouvelle fois été trés déçu de constater qu’il me fallait graver le cd4 pour 50 Mo et le CD 5 pour 2Mo … n’aurait-il pas été possible de mettre ces 52 Mo sur le CD 2 ou 3 alors que ceux-ci ne sont pas par défaut utilisés à 100% pour une install standard ?!?
Bref, l’installation se passe bien, mon système boote, je suis heureux .. mais jusqu’à ce que …

Les moins de la suse 10.0

Outre l’installation désastreuse, je ne suis pas satisfait par certains points :
Le dual head d’abord : avec les Suse 9.0 et 9.2, l’installation s’est passée sans problème, mes deux écrans etaient configurés de façon indépendante et leur résolution différait sans problème. Lors de l’installation, la configuration proposée par défaut n’a tout d’abord pas permie de démarrer X-Windows. Une fois reconfigurée, je suis maintenant contraint d’avoir un écran dans sa résolution normale : 1280×1024 et un second écran en virtual screen 1024×1024 car ne supportant pas de fréquence plus élevée. La configuration de Xorg ne me permettant pas de modifier cela. Outre ce problème, l’ecran primaire n’est pas mon écran principal … du coup il a été nécessaire de modifié les paramètres de kdm (GreeterScreen) pour ne pas être obligé d’alumer les deux écrans pour se logguer. Je vous ennuie avec mes cas particuliers perso mais ce que je trouve domage c’est qu’il s’agisse d’une forte régression par rapport à ce qu’apportait la version 9.2.

Second point négatif : les outils Java ne sont pas distribués dans la version de base, il est necessaire de les télépcharger à part, l’opération n’est pas très compliquée mais elle n’est pas non plus facile pour tout le monde et de fait, il n’y a pas de JRE de base ; domage pour la consultation sur Internet.

Ensuite, la Suse 10 n’est pas non plus livrée avec les outils nécessaire à la lecture de MP3 (ni de divx mais là je suis habitué). La raison est totalement louable, distribuer un player de MP3 sous GPL revient à violer un breuvet logiciel (ce qui met bien en évidence le risque pour l’open source à la généralisation des breuvet logiciel) toutefois, en Europe ces breuvet ne sont heureusement pas applicable et une version Europe avec MP3 aurait évité une fastidieuse étape de recompilation des outils livrés. La version 9.2 (et 9.0) intégrait sans aucun scrupule les librairies adéquates.

Pour l’instant j’en suis là, et j’espere que ce sera tout

Les plus de la suse 10.0

Bien sure il n’y a pas que du moins et pour preuve la distrib est toujours installé sur mon poste. Le mieux se résume tout simplement à des nouvelles versions des logiciels habituels, OpenOffice 2, noyau 2.6.13, Kde 3.4… Ca a l’air stable et les performances sont correctes mais ceci est subjectif.

En Bref

Suse m’a habitué a des version xx.0 toujours un peu moins bonnes que les xx.1, xx.2 ou xx.3. mon conseil est donc plutot d’attendre la version suivante pour une migration plannifiée mais si c’est forcé, la 10.0 fera l’affaire ; plutot à partir de cd a moins que vous ayez plus de chance que moi. Attention aux utilisateurs de dual-screen et mp3. Mais en tout cas, je reste fidèle (pour cette fois).

Pour mettre a jour votre suse avec les package (non officiel) répondant à vos besoins multimédia, voir le lien “Custom” ci-contre …