Christophe HENRY

Ce site ne comporte aucune information d’intérêt, sauf pour celui qui la cherche — Ĉi-retejo ne enhavas informon interesan, krom por iu kiu ĝin serĉas — This website doesn’t have any information of interest, except for who looks for it

Système d'Informations Cryptées d'Urgence

17/12/2014 - Aucun commentaire

Logo SICU Le Système d'Informations Criptées d'Urgence est un projet de porte-clé contenant le dossier médical. Ça permettra d'avoir immédiatement de précieuses informations médicales en cas d'accident. Enfin, ça devrait... Parce que c'est mal parti. Fautes de spécifications, je ne peux qu'extrapoler que ce sera mal fait ou mal utilisé.

Pour restreindre l'accès aux données, il faudra bien chiffrer tout ça avec une clé, à utiliser sur place sans possibilité de se connecter à un serveur distant. Elle ne sera pas dans le porte-clé, qui ne contiendra que les informations illisibles. Elle sera dans le lecteur des urgentistes, lequel devra sûrement récupérer les informations à courte distance et les déchiffrer. Il n'est pas certain que ces lecteurs ne seront jamais détournés de leurs usages. De plus, que ce passera-t-il quand la clé de chiffrement sera divulguée ? On ne pourra pas mettre à jour tous les portes clés. Ou alors il faudra imposer la mise à jour régulière, avec la complexité d'usage que cela suppose. Un détail : on dit chiffré au lieu crypté.

Et c'est là qu'arrive l'autre grand problème : la lecture d'information devant être possible n'importe quand, il s'agit de porter sur soit en permanence un objet devant toujours répondre, sans confirmation du porteur. Pour qui veut tracer les allées et venues ce sera la fête permanente dans le métro.

Où stocker ce porte-clé ? Si on le met sur le jeu de clé de la moto/voiture, que se passera-t-il en cas de prêt ? Si on le met sur le pantalon, il faudra bien penser à le remettre. Du coup, il vaut mieux le conserver avec ses papiers d'identités. Là même où on pourra mettre toutes les informations utiles... D'ailleurs, je n'ai pas trouvé non plus de liste des informations stockées dessus. S'il faut agir en urgence, il devrait y figurer la photo, l'adresse, le groupe sanguin, les allergies, etc. Ce qui fait beaucoup, vu la faible sécurité intrinsèque du dispositif puisque la clé de déchiffrement sera disséminée partout.

C'est avec plaisir que je recevrai des contres-arguments, mais je n'ai pas beaucoup d'espoir pour un tel système. D'autant qu'il y a plus intelligent à faire, à mon humble avis : stocker un identifiant unique (un condensat) et quelques infos anodines (groupe sanguin, par ex.) et centraliser tout ça dans une base de données centrale. Il n'y a plus le problème de fraîcheur des données et l'accès aux données personnelles par les urgentistes sera assurée par l'accès centralisé. Ça a déjà été fait, avec le Dossier Médical Personnel et ça ne va pas fort selon Médiapart. L'article indique le problème de vie privée et du coût du dispositif.
Il est même question du dossier mobile proposé par l'Assemblée nationale en 2009, similaire sur le principe à ce dont il est question ici...

Tags de l'article :

Changer Firefox et les certificats HTTPS

15/07/2014 - 3 commentaires

Quelqu'un sait comment changer le comportement de Firefox pour les certificats HTTPS ? Visitant beaucoup de sites auto-signés, je voudrais m'éviter les messages systématiques et lourds sur la dangerosité de la connexion. C'est bien stupide, et je voudrais que ça change.

Firefox affiche un avertissement ennuyeux à passer lorsqu'on se connecte sur la première fois par un site auto-signé. Alors qu'il ne dit rien si on se connecte la première fois sur un site non signé. Or, dans les deux cas, l'authenticité du site n'est pas établie ! En plus, il est possible qu'une méchante autorité signe un certificat contrefait concernant un site signé déjà visité. Le navigateur acceptera silencieusement le nouveau certificat contrefait !

Voilà comment devrait se comporter Firefox.


Par défaut, les sites signés ou non ne provoquent aucun avertissement. Le chiffrement peut être indiqué avec l'icone habituelle, avec quelques variations pour indiquer le chiffrement utilisé ou non. Lors de la première présentation d'un certificat, rien n'est remonté à l'utilisateur. Ça marche, et c'est tout. C'est chiffré/signé, tant mieux. Sinon, tant pis.

Pour un site donné (ou un sous-domaine, etc), on peut indiquer l'obligation de passer par HTTPS et accepter le certificat fourni par le site.

Pour un site donné, on peut ignorer tout changement de certificat. Par exemple, les serveurs de Google changent souvent de certificat.

Pour un site donné, on peut fixer le certificat et faire afficher un avertissement, voire une interdiction, en cas de changement de certificat.

L'idée derrière tout ça, est de considérer HTTPS comme un service facultatif et invisible. Sauf, lorsque c'est vraiment important : recherche Google, site de banque, etc. bien déterminés et pour lesquels on veut effectivement la sécurité. On pourrait préciser que tous les certificats venant d'une autorité (ou d'un descendant) sont acceptés avec ou sans notification. Typiquement, en entreprise on signe les serveurs locaux avec une autorité locale. Dans ce cas, on est moins inquiet que sur le net.

Si quelqu'un a trouvé un truc, je lui en serais reconnaissant.

Tags de l'article :

Prélèvement bancaires sans frontière

09/07/2014 - Aucun commentaire

L'ancien système prélèvement est définitivement remplacé par le prélèvement SEPA (Single Euro Payments Area) à partir d'août 2014. Il n'y aura que ce moyen-là, et ça change tout. Ce qui suit se base sur l'article publié sur le site de QueChoisir.

SEPA UFC QueChoisir
La banque ne fait plus la vérification du mandat.

Avant, il fallait autoriser le créancier à prélever l'argent ; et la banque devait vérifier si le prélèvement était autorisé. Maintenant la banque ne vérifie plus le prélèvement. Elle ne le faisait pas non plus avant. Mais cela veut dire que dorénavant, et officiellement, quiconque a la possibilité technique de prélever un compte bancaire peut prélever partout où il veut. En cas de contestation, il devra présenter l'autorisation de prélèvement. Mais ça, c'est après ; et avec un peu de chance, ça ne se verra pas.

Pour révoquer le prélèvement, l'article indique « Alors qu’auparavant il fallait révoquer un prélèvement régulier auprès de votre fournisseur et de votre banque, il suffit désormais de révoquer ce prélèvement auprès du fournisseur (...) » Trop sympa, vraiment... Il faut juste faire confiance au créancier ! La révocation envoyée à la banque marche toujours, facturée, et il vaut mieux s'y tenir.

Cependant, tout n'est pas noir ! En effet, le nouveau système permet de mettre en place une liste blanche ou une liste noire. On peut n'autoriser qu'une liste limitative de prélèvement ou bien interdire certains prélèvements, voire interdire tout prélèvement. Bien entendu je n'ai vu ça nulle part ! Si quelqu'un trouve, qu'il le dise !

À l'heure actuelle, n'importe qui peut prélever n'importe quoi et les banques interdisent de s'y opposer préalablement. On ne peut le faire qu'à posteriori.

Tags de l'article :

Publicité dans Firefox, on y est. Goal :-(

26/06/2014 - Aucun commentaire

Mozilla a commencé à déployer de la publicité dans son navigateur auprès de gens qui n'ont rien demandé. À commencer par moi-même. Suivez toute l'action au Brésil avec le module Goal.com. Installez-le maintenant.

Moi aussi, je t'emmerde.


Un web plus juste, c'est dans nos cou{il}les.

Avec le quiproquo habituel sur à qui est destiné la justesse. Pas à moi. On dit que c'est par pragmatisme... Mais pourquoi l'état d'esprit des premiers jours de Firefox, quand il s'appelait Phoenix ou Firebird, n'existe plus ? À l'époque c'était bien plus dur, Internet Explorer a pourri une génération de développeurs web. Merci Firefox pour son ancienne philosophie. Et merde ! Maintenant.

Tags de l'article :

L'agrégateur Leed sort en version 1.6

01/03/2014 - Aucun commentaire

Je l'utilise (et y contribue) tous les jours pour ma veille technologique, je vous invite à l'essayer, à faire part de vos retours et même participer au développement :
  • En utilisant Leed et rapportant bogues, remarques et améliorations.
  • En traduisant Leed (actuellement français, anglais, espagnol et espéranto à venir).
  • En développant, que ce soient de nouvelles fonctionnalités ou de la consolidation de code existant.

Téléchargez :

Démonstration : http://projet.idleman.fr/leed/demonstration/

Tags de l'article :

Directory Tiles : bientôt de la publicité dans Firefox !

12/02/2014 - Aucun commentaire

J'utilise Firefox depuis le début, quand il s'appelait encore Firebird voire Netscape. C'est le navigateur qui m'a défendu contre les cochoncetés du web. La valeur sûre, le truc qui ne faillerait jamais. Ce que je viens de lire, c'est comme si (ma) Linux Debian affichait de la publicité pendant le démarrage du système.

Mozilla va mettre de la publicité dans Firefox
Écrit dans son blog, les signes évidents sont :
  • user experience, expérience utilisateur, terme introduit quand il s'agit de monétiser les actions de l'utilisateur.
  • partners, "partenaires", intervenants non mandatés par l'utilisateur s'infiltrant là où il ne faut pas.
  • We are excited, Nous sommes excités, imaginez un pervers blanchisseur de bitcoins excité par un lampadaire.

Ils vont afficher des publicités dans la page d'accueil de Firefox, celle indiquant les derniers sites visités. Normalement destinée à orienter l'utilisateur, cette page servira de perforation dans le fondement de la vie privée. Pour rester poli. Avec la pollution visuelle viendra habituellement, mais pas seulement :
  • les connexions réseau et la bande passante utilisée sans le consentement de l'utilisateur,
  • les intrusions dans la vie privée et l'envoi aux-dits partenaires,
  • le contrôle à terme des actions de l'utilisateur.

Que se passe-t-il ?

Tags de l'article :

Norefer - No fair

02/02/2014 - Aucun commentaire

Norefer propose un service retirant les référents quand on clique sur un lien. Mais ce remède est opportunément pire que le mal. Lorsqu'on utilise un service, toujours se demander quel est son modèle économique.

C'est quoi un référent ?


Lorsqu'un navigateur est configuré normalement, il envoie à chaque site visité le site d'où il vient. À chaque clic sur un lien (et autres images), le navigateur envoie la demande accompagnée de la page demandeuse. Cela a quelques intérêts techniques, mais cela a aussi un risque en terme de vie privée puisque le site destinataire a connaissance de la page d'avant, celle qui portait le lien.

La solution classique est de configurer son navigateur pour ne pas envoyer le référent. Sur Firefox cela se fait au moyens d'extensions. Le site Norefer se propose gracieusement de cacher ce référent pour vous. Effectivement, ça marche tout autant qu'aller en enfer se faire cuire des crêpes.

L'astuce


Le principe est que le site web ne propose plus de lien de type http://duckduckgo.com mais plutôt http://norefer.com/to/http://duckduckgo.com, et ce, pour tous les liens. Chaque clic va donc entraîner une requête non pas vers le site visé, mais vers norefer.com. Et voici ce qui se passe :

  1. On clique sur http://norefer.com/to/http://duckduckgo.com
  2. Norefer honore la requête en prenant connaissance de l'adresse de la machine, du navigateur, etc. comme n'importe quel autre serveur web
  3. Il fait une redirection https://norefer.com/out.php?to=http://duckduckgo.com
  4. Il renvoie une page, présentant ses services pendant une seconde, et redirige vers le site en question

Oui, mais la page web envoyée par Norefer révèle quelques surprises... La page comporte :
  • les éléments techniques nécessaires (en-tête, texte explicatif)
  • une publicité
  • une redirection faite via Google analytics

Analytics est le service de statistiques de fréquentation des sites web, fourni par Google. Comme il est très utilisé par les gestionnaires des sites web, Google peut connaître une très grosse part du parcours des personnes qui ne protègent pas leur vie privée.

La morale

  • Le site web utilisant Norefer se camoufle.
  • Norefer encaise l'argent provenant de la vente (très indirecte) de la vie privée de ses visiteurs et de la publicité qu'il affiche.
  • L'utilisateur paye avec sa vie privée un service qu'il n'a pas demandé.

Tags de l'article :

Plus méprisant que bilingue

10/01/2014 - Aucun commentaire

Ce billet fait suite à un message sur les annonces d'Ésperanto-France fustigeant ce qui était gratuit tandis que l'auteur lui-même pillait, sans s'en vanter, plein de ressources gratuites. Je reproduit ici ma réponse au parasite classique mais ô combien irritant. Sauf que ce coup-ci, j'ai répondu à blog-bilinguisme.fr.



(...) Certains sont même persuadés que l'espéranto est complètement idiot mais pour ceux-là, on ne peux plus rien faire !
Ce n'est pas stupide de penser l'idée de l'espéranto est idiot. C'est en fait l'idée même de langue construite qu'ils rejettent. Assez systématiquement, c'est l'anglais pragmatique qui s'impose. Et, si, on peut et doit faire quelque chose. C'est même la qu'il faut travailler. Je crois qu'il ne faut pas se battre pour l'espéranto, mais plutôt se battre pour faire admettre qu'on peut prendre son droit à communiquer (rajto komuniki, kiel dirus fama homo) au travers de langues construites.

Reste les nombreux ignorants. Nous avons besoin de leur montrer que l'espéranto est leur allié dans ce qu'ils désirent pour eux, comme par exemple améliorer le sort de leurs enfants par une bonne maitrise des langues.
Ça, c'est faux. L'espéranto est l'ennemi objectif de beaucoup de personnes, ignorants y compris. De leur point de vue (qui n'est pas le mien et probablement pas ceux d'ici) ils préfèrent apprendre une "vraie" langue qui assurera à eux et à leurs rejetons une certaine domination. Ils ne veulent pas d'une langue trop facile pour les autres. L'espéranto les obligerait à admettre qu'ils ont fait fausse route, ou du moins, qu'ils devront encore apprendre une autre langue.

Je viens de publier un interview qui montre les avantages de ceux qui sont très forts en allemand => Voir l'exemple au cours de cet interview [youtu.be/10dB6h8CEEg] C'est clair, pratique mais inaccessible pour beaucoup de français car l'allemand est en train de devenir une langue rare tandis que tous les autres ne rêvent que d'anglais.
Je connais pourtant un paquet de français qui pratiquent l'allemand (autant que faire se peut). De plus, je vois mal comment qualifier l'allemand de langue rare vu que les allemands sont très nombreux à l'échelle de l'Europe. Ce n'est pas par plaisir que ces français font ça : il y a du boulot en Allemagne.

Par contre, tout le monde peut s'approprier l'espéranto
C'est faux aussi. Pas pour moi, mais j'en ai vu quelques uns. Le côté facile de l'espéranto tend à rebuter parce que, je pense, les gens s'imaginent qu'avec si peu de complexité on véhicule peu d'information. Effectivement, l'espéranto est très flexible en profondeur (pas besoin d'expliquer ici...) mais apparemment très pauvre. Il existe des allergiques, des débutants éternels, etc. C'est ainsi, on n'est pas tous doués pour les langues. Et il reste la motivation. Mais admettons qu'en première approximation que (presque) tout le monde peut s'approprier l'espéranto...

pour le donner à ses enfants et en tirer un profit incroyable. Ce n'est pas très rapide mais c'est une stratégie qui fonctionne.
Apprendre une langue à ses enfants ne s'improvise pas. Je vois bien que vous avez de l'expérience dans ce domaine, mais savoir faire n'est pas savoir faire savoir. De plus, en admettant que l'enseignement se passe bien il y a le côté sectaire de l'espéranto.

C'est-à-dire que donner une capacité hors norme à un enfant peut le marginaliser s'il est en décalage avec le tout venant. Bien sûr, on peut faire correctement les choses. Mais ce n'est pas donné à tout le monde.

J'ai appelé cette démarche : L'attitude Fidji. => J'ai synthétisé toutes ces explications dans une vidéo de 2 heures dont le principe est présenté dans cette page (...) (PS : Vous serez peut-être étonné mais ce n'est pas gratuit car le gratuit ne vaut rien, ne conduit qu'au manque de moyens et aux décisions économiquement aberrantes.
Je m'inscrit en faux contre votre vision du gratuit allant opportunément dans le sens de vos affaires. Personnellement, je contribue à des projets "gratuits", dans des logiciels libres et l'espéranto. Les logiciels libres ont une trajectoire similaire à l'espéranto avec deux initiateurs (Torvald et Stallman) et une foule ayant poursuivi et amplifié le phénomène. Si vous consultez mon site web, vous verrez mes contributions "gratuites". Nous construisons l'internet, et peut-être les futurs services que vous utiliserez plus tard. Pour rappel, la majorité des ordinateurs que vous utilisez (téléphone, box internet, modems, etc.) sont à base d'un système notoirement "gratuit", Linux !

En particulier, votre blog bilingue bénéfice lourdement du gratuit :
  • votre hébergeur, OVH, utilise Linux pour votre serveur mutualisé.
  • Le service qui sert les pages est un logiciel libre, Apache.
  • Le langage qui fait tourner votre blogue est Php, libre encore.
  • Le moteur de votre blogue est Wordpress, libre bien entendu.
  • Le format PDF de vos documents est ouvert (gratuit !)
  • Vos pages Google+ sont gratuites ! Enfin, c'est vous le produit...
  • Youtube, pour vos vidéos, est GRATUIT ! C'est chez Google... C'est visiblement du gratuit qui rapporte, loin de l'échec.

Ceux qui veulent du gratuit peuvent trouver des tonnes d'informations sur mon blog et sur internet, ils peuvent surfer indéfiniment. Si vous avez 200 heures à perdre vous arriverez, peut-être, à trouver les mêmes informations que celles que je vends !).
Je comprends donc que vous disposez des informations que vous savez que les gens cherchent, mais vous les gardez derrière un péage ? C'est-à-dire que vous travaillez une seule fois, et ensuite vous encaissez la rente ?

Pour les autres qui sont pressés et qui veulent des résultats plus vite, la voie du gratuit conduit à l'échec.
Bêtise, puisque le "gratuit" contribue énormément tant au succès des logiciels libres que de l'espéranto. C'est grâce à Lernu et tous les autres sites prônant l'espéranto que la communauté vit. À vous écouter, il faudrait monétiser l'accès de vortaro.net ?

Si vous connaissez des gens pressés, j'ai conçu la même chose mais sous forme de cadeau (...) Et si vous êtes pressés pour vos cadeaux de Noël, vous trouverez qu'il a beaucoup de valeur pour vous;-) Joyeux Noël à tous. Et à bientôt pour ceux qui seront à NR.
Je leur dirai de passer leur chemin. C'est aussi insupportable que toutes les méthodes d'anglais (et d'allemand peut-être) toutes découpées en tranches pour veiller à ce que l'apprenant n'aie jamais l'impression de maîtriser son sujet.

À tous ceux qui aiment l'espéranto, les langues construites, les logiciels libres, les gens et l'auto-détermination : ne visez ni le gratuit, ni le payant. Visez ce qui est loyal, qui vous aide, vous propulse sans arrière-pensée. Si vous voulez savoir, allez sur Lernu et les autres, des gens qui savent vous attendent. Et quand vous saurez, vous attendrez les suivants.


Tags de l'article :

Routeur Linksys WA200G compromis (TCP-32764)

03/01/2014 - Aucun commentaire

Le routeur Linksys WA200G (et d'autres) comporte une porte dérobée. Selon mes tests, la faille ne fonctionne qu'en local, c'est-à-dire (filaire et wifi authentifié). Un exploit écrit en python permet de révéler :
  • le compte et le mot de passe administrateur,
  • le compte et le mot de passe wifi,
  • le compte et le mot de passe internet.
J'ai contrôlé les ports ouverts sur le modèle en question, depuis le réseau local (nmap -PN -p 0-65535 W.X.Y.Z). Les ports 80(HTTP) et 443(HTTPS) servent à l'administration locale du routeur. Le 32764 ouvre grand la porte.

Depuis l'extérieur, aucun port n'est joignable sauf le 8080 si on a activé l'administration distance. Et celui-ci n'est pas utilisable (pour autant que je sache) pour exploiter la faille.

En résumé, Tout possesseur d'un de ces routeurs peut se faire voler ses mots de passe dès que quelqu'un obtient une connexion au réseau local, fil ou wifi !

Information d'origine parue chez Korben.

Tags de l'article :

Un cookie n'est ni un fichier, ni un programme !

20/12/2013 - Aucun commentaire

Les cookies ne sont pas des fichiers, ni des programmes. Ce sont des données placées par les sites web, qui peuvent se matérialiser sous la forme de fichiers, mais pas seulement. C'est une des choses qui rendent la navigation distinguable d'une autre lorsqu'on est connecté. Internet Explorer stocke un cookie par fichier, mais Firefox les stocke dans une seule base de données nommée cookies.sqlite. Les cookies de session eux, ne sont conservés qu'en mémoire il me semble. Nous sommes bien loin du fichier.

Concernant les cookies revenant après leur suppression, c'est principalement dû à Flash. Il utilise son propre lieu de stockage de données locales. Les publicitaires ont donc mis au point une application Flash, invisible, dont le seul travail consiste à télécharger les données déjà connues et reconstituer les cookies correspondants. C'est d'ailleurs le principal intérêt du "rich media" que de fournir un moyen de contourner la volonté de l'utilisateur en s'écartant des normes habituelles des pages web telles HTTP ou Javascript.

La politique demandant à l'utilisateur s'il souhaite autoriser les cookies est une absurdité. Si l'utilisateur refuse, comment ce choix est-il retenu ? Avec un cookie ? En cas de refus, il faudra lui poser la question à chaque fois ? Quand c'est un message surgissant, c'est systématiquement dérangeant. Quand c'est relativement discret dans la page, l'utilisateur risque de passer à côté. De fait, bloquer les cookies n'est pas la garantie que le site ne trace pas. Il reste possible de personnaliser la page web servie au visiteur pour y inclure un identifiant. Bien sûr, c'est moins efficace que les cookies puisque cet identifiant disparaît à la fermeture de l'application. Il existe aussi d'autres techniques plus délicates pour tracer les gens, comme le décrit Evercookie.

Que faire ?


Installer Flashblock sous Firefox pour interdire Flash par défaut, exiger qu'on clique pour exécuter ces programmes. À ma connaissance, sauf Youtube et autres, il n'est presque jamais nécessaire d'autoriser Flash a s'exécuter systématiquement. On devrait aussi installer une extension comme Self destructing cookies qui permet de détruire les données locale dès qu'on quitte le site les utilisant.

Il y a bien d'autres choses encore à faire.

Tags de l'article :

Google valide le traçage par courriel

14/12/2013 - Aucun commentaire

Gmail n'affichait pas les images par défaut. Il fallait faire quelque chose pour les afficher, ce qui avait un gros impact sur la divulgation de données personnelles. En effet, lorsqu'un spammeur envoie une image particulière, elle peut être dotée d'un identifiant unique. Si elle est affichée, le spammeur récupère l'adresse de la machine l'ayant ouverte, donc sa position approximative entre autres. Tout cela a pour but de valider l'existence de l'adresse de courriel, et envoyer plus de spam. Jusqu'à récemment, les ressources externes telles que les images n'étaient pas rapatriées par défaut. Ce qui était très bien.

Récemment, Google a annoncé télécharger l'image par défaut. Ce n'est pas l'ordinateur de l'utilisateur qui télécharge, mais l'un des ordinateurs de Google. Cependant, le spammeur conserve la donnée la plus précieuse, l'identifiant attaché au récipiendaire. Pas l'heure car Google télécharge une fois l'image et sert la même image si nécessaire aux destinataires suivants. Il est même possible qu'il télécharge l'image dès réception du courriel, sans que l'utilisateur n'en aie pris connaissance.

https://support.google.com/mail/answer/145919
Dans ce texte, indique comment « ne pas afficher automatiquement les images ». Implicitement, ça veut dire qu'on ouvre les vannes et c'est à vous maintenant de les fermer. À la Facebook. Il précise aussi que « Dans certains cas, les expéditeurs peuvent être en mesure de savoir si un individu a ouvert un message avec des liens d'image uniques. Comme toujours, chaque message est analysé afin de détecter tout contenu suspect et, si un expéditeur ou un message est considéré comme potentiellement dangereux, les images sont masquées et un message vous demandant si vous voulez voir les images s'affiche. »

Comment ça marche ?


Selon la méthode traditionnelle, les images sont ainsi dans les pourriels :

lesite.fr/le/chemin/image.jpg?id=tiF4aig7du
Si la ressource est chargée telle quelle, le spammeur a gagné. Mais ce n'est probablement par comme ça que Google va agir. Il va probablement retirer l'identifiant :

lesite.fr/le/chemin/image.jpg
Ce n'est pas suffisant. D'une part on modifie le document reçu par le destinataire, d'autre part il est possible que l'information après le point d'interrogation avait une vraie utilité désirée. Il est aussi possible que le serveur du spammeur (ou de l'expéditeur loyal) refuse d'envoyer l'image s'il n'y a pas d'identifiant fourni. Google pourrait falsifier l'identifiant mais il reste possible que le serveur adverse vérifie l'authenticité de l'identifiant et ne serve pas l'image.

Cette mesure n'est pas efficace, parce qu'on peut très bien introduire l'identifiant unique dans le nom de l'image :

lesite.fr/le/chemin/image_tiF4aig7du.jpg
Si Google repère l'identifiant unique dans l'image et le retire ?

lesite.fr/le/chemin/image.jpg
Cela aboutira à une erreur et l'image ne sera pas chargée. En récupérant quelques unes de ce type d'image, il pourra bien voir que ce sont les mêmes et économiser de l'espace mémoire. Mais il devra quand même télécharger ces images. Et donc trahir le destinataire.

À ce stade, le fournisseur peut dire « il y a du contenu étrange, nous ne l'affichons pas. Voulez-vous l'afficher ? ». Effectivement. Alors il suffit d'utiliser des liens comme suit :
  • lesite.fr/le/chemin/wood.jpg
  • lesite.fr/le/chemin/tree.jpg
  • lesite.fr/le/chemin/serpent.jpg
Et de conserver une correspondance, côté spammeur, entre le nom de fichier et son destinataire. Et là, partie terminée.

Peut⁻être ? Mais alors ça obligerait le spammeur a avoir autant d'images que de spammé ?

En fait non, il suffit toujours d'une seule. Un lien tel que ceux ci-dessus aboutit normalement à une image. Mais il est trivial de le faire aboutir à un programme côté serveur. Ce programme prend connaissance de l'identifiant (avec la table mentionnée précédemment) et sert l'image attendue. Il peut aussi fournir plusieurs images, par exemple des images identiques pour wood.jpg et tree.jpg mais une autre pour serpent.

Le verdict est clair : si Google n'empêche pas le chargement de ressources distantes, telles que les images, alors il trahit les récipiendaires des courriels. Cela dit, ils n'en sont pas à leur première fois. Et cela pourrait aussi leur apporter des affaires. C'est un point de vue largement spéculatif, mais il est maintenant possible à Google de favoriser certains clients (j'ai dit client, pas utilisateur/marchandise) à travers des réglages favorables.

Tags de l'article :

Faites un magazine sans publicité et je reviens.

15/10/2013 - Aucun commentaire

J'ai reçu un courrier postal du magazine Marianne m'invitant à me réabonner. Voici le courriel envoyé au courrier des lecteurs de Marianne expliquant la situation. Dans le texte joint, c'est Maurice SZAFRAN (actuel PDG de Marianne) qui s'exprime, aussi je lui répond directement.

Cher M. Szafran,

J'ai reçu l'offre spéciale découverte au magazine papier « Marianne ».
Je ne m'abonnerai pas, cependant je préfère en faire état ici parce
que ce magazine le mérite bien.

Par le passé, je l'ai beaucoup lu. Il m'a beaucoup appris et enseigné
énormément de choses nouvelles. À la longue, je me suis aperçu que
l'un de mes principaux ennemis avait grandement contaminé « Marianne »
et que j'en était arrivé au bout. Je m'étais désabonné après avoir
compté le nombre de pages réellement informatives.

Faites un magazine sans publicité et je reviens. Tout simplement. Je
conjecture que votre chiffre d'affaire vient plus de la publicité que
du lectorat. En ce sens, vos lecteurs ne sont pas vos clients. Et vos
vrais clients ont des intérêts assez radicalement opposés aux miens.

Tags de l'article :

Charte de la laïcité

09/09/2013 - Aucun commentaire

Le gouvernement français vient de révéler la charte de la laïcité à l'école. Elle devrait être affichée dans tous les établissements scolaires et, fait étonnant, elle contient bien des choses pertinentes ! Ci-après le texte officiel ; la mise en gras est d'origine. Mes commentaires suivent après.

LA CHARTE DE LA LAÏCITÉ A L’ÉCOLE
La nation confie à l’école la mission de faire partager aux élèves les valeurs de la République.
La République est laïque.
1. La France est une République indivisible, laïque, démocratique et sociale. Elle assure l’égalité devant la loi, sur l’ensemble de son territoire, de tous les citoyens . Elle respecte toutes les croyances.
2. La République laïque organise la séparation des religions et de l’Etat. L’Etat est neutre à l’égard des convictions religieuses ou spirituelles. Il n’y a pas de religion d’Etat.
3. La laïcité garantit la liberté de conscience à tous. Chacun est libre de croire ou de ne pas croire. Elle permet la libre expression de ses convictions, dans le respect de celles d’autrui et dans les limites de l’ordre public.
4. La laïcité permet l’exercice de la citoyenneté, en conciliant la liberté de chacun avec l’égalité et la fraternité de tous dans le souci de l’intérêt général.
5. La République assure dans les établissements scolaires le respect de chacun de ces principes.
6. La laïcité de l’école offre aux élèves les conditions pour forger leur personnalité, exercer leur libre arbitre et faire l’apprentissage de la citoyenneté. Elle les protège de tout prosélytisme et de toute pression qui les empêcheraient de faire leurs propres choix.
7. La laïcité assure aux élèves l’accès à une culture commune et partagée.
8. La laïcité permet l’exercice de la liberté d’expression des élèves dans la limite du bon fonctionnement de l’école comme du respect des valeurs républicaines et du pluralisme des convictions
9. La laïcité implique le rejet de toutes les violences et de toutes les discriminations, garantit l’égalité entre les filles et les garçons et repose sur une culture du respect et de la compréhension de l’autre.
10. Il appartient à tous les personnels de transmettre aux élèves le sens et la valeur de la laïcité, ainsi que des autres principes fondamentaux de la République. Ils veillent à leur application dans le cadre scolaire. Il leur revient de porter la présente charte à la connaissance des parents d’élèves.
11. Les personnels ont un devoir de stricte neutralité : ils ne doivent pas manifester leurs convictions politiques ou religieuses dans l’exercice de leurs fonctions.
12. Les enseignements sont laïques. Afin de garantir aux élèves l’ouverture la plus objective possible à la diversité des visions du monde ainsi qu’à l’étendue et à la précision des savoirs, aucun sujet n’est a priori exclu du questionnement scientifique et pédagogique. Aucun élève ne peut invoquer une conviction religieuse ou politique pour contester à un enseignant le droit de traiter une question du programme.
13. Nul ne peut se prévaloir de son appartenance religieuse pour refuser de se conformer aux règles applicables dans l’école de la République.
14. Dans les établissements scolaires publics, les règles de vie des différents espaces, précisées dans le règlement intérieur, sont respectueuses de la laïcité. Le port de signes ou tenues par lesquels les élèves manifestent ostensiblement une appartenance religieuse est interdit.
15. Par leurs réflexions et leurs activités, les élèves contribuent à faire vivre la laïcité au sein de leur établissement.

Il y a beaucoup de choses qui coulent de source, mais qui vont mieux en le disant. Par contre, il y a de vrais éléments de bon sens plutôt surprenant de la part d'un groupement politique orienté à droite (UMP et PS) qui se couchent devant les religions. Je résume les parties vraiment intéressantes du texte.

3. (...)Chacun est libre de croire ou de ne pas croire.
9. La laïcité (...)garantit l’égalité entre les filles et les garçons
10. Il appartient à tous les personnels (...)de porter la présente charte à la connaissance des parents d’élèves.
12. (...)Aucun élève ne peut invoquer une conviction religieuse ou politique pour contester à un enseignant le droit de traiter une question du programme.
13. Nul ne peut se prévaloir de son appartenance religieuse pour refuser de se conformer aux règles applicables dans l’école de la République.

Je résume ces points intéressants : On ne peut pas rabaisser les filles sous prétexte de religion. L'école doit être active en faisant parvenir la charte à tous les parents d'élève. Une religion ne devrait plus permettre de déroger aux débats, ni aux règles et il n'est pas indispensable de choisir un camp.

Tags de l'article :

Recover a broken crypt boot in Debian

05/04/2013 - Aucun commentaire

I've got encrypted disks that runs a Debian system. All things went fine until I remove /etc/crypttab. I thought it was useless because this file is in an encrypted volume. Why would the system need this file if it's not reachable at boot? Indeed, I was wrong.

It worked until the next kernel update. Since then, I had to manually mount the encrypted stuff before the kernel loads.
cryptsetup luksOpen /dev/xxx diskName luks none
lvm
vgchange -ay diskName
The fatal kernel update ran update-grub which rebuilds that initrd image. This image is loaded at the very start, before the kernel itself, to provide it with useful things like access to the encrypted data! The initrd must be told to handle the encryption: which disks, which way to encrypt, which logical volume, and so on. This configuration was precisely erased when the update-grub did not see any /etc/crypttab. Of course, I put it back again but nothing worked anymore.

The solution is to modify the initrd at /conf/conf.d/cryptroot with:
target=disk_crypt,source=/dev/disk,key=none,lvm=my-lvm
I installed a Debian inside a virtual machine (Virtual Box) with an approaching configuration to get clues.

Tags de l'article :

Le sénat protège ses actifs immobiliers

08/03/2013 - Aucun commentaire

Des sénateurs ont déposé une proposition de loi visant à limiter la baisse de prix des commerçes en ligne. Cette limitation n'est pas corrélée à la rentabilité des commerçes en ligne mais à la compétitivité des commerçes de centre-ville. Pourquoi ne pas laisser faire la destruction créatrice chère à ceux qui n'ont pas à la subir ? Parce qu'ils vont la subir quand même. Ci-après le texte de la proposition de loi à laquelle j'ai ajouté mes interprétations dans une autre couleur.

Proposition de loi visant à protéger les commerçants de centre-ville
N° 362 -- SÉNAT -- SESSION ORDINAIRE DE 2012-2013 -- Enregistré à la Présidence du Sénat le 15 février 2013

PROPOSITION DE LOI
visant à protéger les commerçants de centre-ville,

PRÉSENTÉE
Par Mme Caroline CAYEUX, MM. Gérard LARCHER, Jean-Noël CARDOUX, Antoine LEFÈVRE, Mme Marie-Thérèse BRUGUIÈRE, MM. Raymond COUDERC, André TRILLARD, Joël BILLARD, Christian CAMBON, Jean-Paul FOURNIER, Robert LAUFOAULU, Charles REVET, Mlle Sophie JOISSAINS, MM. René BEAUMONT, Philippe LEROY, Bruno SIDO, Mme Marie-Annick DUCHÊNE, MM. Alain HOUPERT et Marcel-Pierre CLÉACH,


EXPOSÉ DES MOTIFS

Mesdames, Messieurs,

Le commerce de centre-ville connaît de graves difficultés depuis longtemps. C'est difficile d'y aller, les parkings sont hors de prix. Il y a quelques semaines nous apprenions que l'entreprise Virgin Megastore, qui emploie plus d'un millier de salariés, incapable de régler ses dettes, déposait son bilan, entreprise qui avait elle-même été responsable, comme d'autres grands distributeurs de produits culturels, de la disparition de nombreux magasins de vente de disques et autres commerces de centre-ville ! Elle reçoit à son tour la douleur qu'elle a infligée à d'autres. Cette entreprise est concurrencée par les grandes plateformes de distributions de ces produits, situées hors de France. Nous n'avons aucun moyen de les taxer ni de leur subtiliser leurs revenus, ce qui n'est pas souhaitable.

Le cas de cette célèbre entreprise reflète la situation dans laquelle se trouvent aujourd'hui des milliers de commerce de centre-ville, même de taille importante, qui doivent faire face à une concurrence impitoyable du commerce en ligne.

Tous les élus locaux sont conscients des difficultés que connaissent les commerçants de centre-ville et de la nécessité de pérenniser leur structure. En effet, de ces commerces dépendent la vitalité de nos territoires, mais également la pérennisation d'un lien entre les gens. Nous serions hélas forcés de vendre nos propriétés immobilières car nos locataires ne pourront ou ne voudront plus payer. Le lien serait rompu.

Il est du devoir de la représentation nationale, dans la continuité des lois Galland et Chatel, de mieux concilier les commerces de vente en ligne et les commerces de proximité, dans la continuité de la sauvegarde de nos rentes immobilières.

Aujourd'hui, indépendamment de la marge nécessaire à la pratique d'une activité commerciale, les prix pratiqués par les distributeurs de centre-ville sont souvent beaucoup plus importants que les prix pratiqués par leurs fournisseurs sur leur site de vente en ligne. Nous devrons à terme devoir baisser les loyers des baux commerciaux ou accepter la moins-value à la revente.

Les distributeurs de centre-ville sont ainsi réduits à de simple vitrine d'exposition ou les gens viennent repérer les produits pour ensuite les acheter en ligne. Les gens ont l'air d'avoir compris le système et cherchent à contourner ce que nous avons bâti.

Plusieurs élus locaux craignent donc pour la pérennisation de l'activité économique et commerciale de leurs centres villes et pensent qu'il faut mieux encadrer les relations fournisseurs et distributeurs.

La proposition de loi qui vous est soumise vise à empêcher que les fournisseurs puissent vendre sur leur site internet à un prix inférieur au prix auquel ils vendent aux distributeurs. Les prix des produits vendus en ligne pourraient ainsi demeurer inférieur, mais dans une proportion acceptable. Ainsi, nous pourrons continuer à encaisser les loyers sans travailler.

Telle est la proposition de loi que je vous demande d'adopter, chers amis, propriétaires, amis de propriétaires, et grands électeurs.

PROPOSITION DE LOI

Article unique

Le I de l'article L. 442-6 du code de commerce est complété par un alinéa 14° ainsi rédigé :

«14° De vendre sur un site internet à un prix inférieur au prix d'achat négocié entre fournisseur et distributeur, augmenté de la marge brute du distributeur, moins de trois mois après la mise sur le marché du produit par le fournisseur. »



Ce qui fait que l'article sus-mentionné devient :

Article L442-6
Modifié par LOI n°2010-874 du 27 juillet 2010 - art. 14 (V)

I.-Engage la responsabilité de son auteur et l'oblige à réparer le préjudice causé le fait, par tout producteur, commerçant, industriel ou personne immatriculée au répertoire des métiers :

1° D'obtenir ou de tenter d'obtenir d'un partenaire commercial un avantage
(...)
14° De vendre sur un site internet à un prix inférieur au prix d'achat négocié entre fournisseur et distributeur, augmenté de la marge brute du distributeur, moins de trois mois après la mise sur le marché du produit par le fournisseur.


Ce qu'on traduira par :
(il est interdit de)
14° De nuire aux vendeurs déjà établis en centre-ville payant un loyer à des spéculateurs ayant un pouvoir législatif.

Tags de l'article :

Viber ou le radin dans 60 millions de consommateurs

06/03/2013 - 1 commentaire

Le magazine 60 millions de consommateurs appâte le couillon. Dans son n°480 de mars 2013, page 61, il préconise d'installer l'application Viber sur Android. L'article de la série le coin du radin propose encore au couillon de base d'être nécessairement plus malin qu'un commercial avisé. Échec ! Voire complicité objective de 60 millions qui n'a jamais démontré de compétence avec tout ce qui comporte une puce, sauf un chien.

Voici l'article, titré appelez gratuitement, j'ai ajouté le gras et supprimé certaines parties inutiles :
Le radin a découvert avec enchantement qu'il pouvait envoyer des messages et appeler de son smartphone sans rien payer de plus. Et cela partout dans le monde, quel pied ! Il suffit de télécharger une application baptisée Viber, (...) Sans pub intempestive, de surcroît, il est même possible de recevoir des appels quand l'application est fermée. Un service parfait pour ceux qui ont un forfait limité dans le temps. Et ceux qui voyagent.

Je me pince le nez ! Je vais prendre tout ça par ordre chronologique.

radin

Ça n'existe pas. Généralement, toute économie se traduit par une perte quelque part ; ou bien ça voulait dire que le problème était déjà du côté du couillon. Genre « économisez le chauffage : en hiver, fermez vos fenêtres ». Le pognon qu'un radin reçois, soit il pique à quelqu'un, soit il évite de le donner à quelqu'un. C'est la théorie. Voilà la pratique : le couillon, plus malin que le commercial par hypothèse, croit éviter de donner son pognon, suppose qu'il le prend à quelqu'un alors qu'évidemment, c'est le contraire.

enchantement ... quel pied

Je désespère déjà du sort des femmes quand je vois la presse qui s'adresse à elles. Mais bon, ce genre de trucs étaient normalement cantonnés là-bas. Et bien non ! On a le droit aussi aux commentaires trolol-kikoo-tavu. Comment on les plume ces idiots, alors qu'on est trop malins...

pub intempestive

Le couillon doit nécessairement accepter de la pub s'il ne paye pas. Forcément. Parce que le gratuit, c'est forcément de la merde. De la part d'un magazine suspicieux vis-à-vis des articles à bas prix, il y a une logique. Cependant, on n'utilise pas un téléphone comme une machine à laver. La seule bonne dose de publicité, c'est zéro.

voyagent

C'est bien connu, la connexion internet ne coûte rien en France. Elle ne coûte d'autant plus rien quand on voyage... à l'étranger. Le couillon, quand il voyage, ne regarde pas à la dépense. Non non non, il ne va rien payer en téléphone. Juste un peu en frais internet. Une broutille, mais pas seulement.



En plus du ton affligeant qu'utilise le magazine, de l'incompétence crasse à l'œuvre, il se rend objectivement complice d'une arnaque. Qui est hélas assez récurrente sur Android. L'arnaque apparaît quand vous on s'intéresse aux privilèges que demande Viber à l'installation, on obtient ce qui suit. J'ai enlevé quelques détails techniques superflus, l'essentiel est là et déjà bien long. J'ai mis en gras les extraits importants.

  • Permet à l'application d'appeler des numéros de téléphone sans votre intervention. Cette autorisation peut entraîner des frais ou des appels imprévus. (...)
  • Permet à l'application d'envoyer des messages SMS. Cette autorisation peut entraîner des frais inattendus. (...)
  • Permet à l'application de prendre des photos et de filmer des vidéos avec l'appareil photo. Cette autorisation lui permet d'utiliser l'appareil photo à tout moment sans votre consentement.
  • Permet à l'application d'obtenir votre position exacte à l'aide du récepteur satellite GPS (Global Positioning System). (...)
  • Permet à l'application de recevoir et de traiter les SMS. Cette autorisation lui donne la possibilité de surveiller ou de supprimer les messages envoyés à votre appareil sans vous les montrer.
  • Permet à l'application de modifier les SMS stockés dans votre téléphone ou dans votre carte SIM. (...)
  • Permet à l'application de lire tous les SMS, quels que soient leur contenu et leur niveau de confidentialité.
  • Permet à l'application d'afficher la configuration Bluetooth de la tablette, ainsi que d'établir et d'accepter des connexions avec des appareils associés. (...)
  • Permet à l'application de lire les données concernant vos contacts qui sont stockées sur votre tablette, (...).
  • Permet à l'application d'accéder aux fonctionnalités téléphoniques de l'appareil. Cette autorisation permet à l'application de déterminer le numéro de téléphone et les identifiants de l'appareil, si un appel est actif et le numéro distant connecté par un appel.
  • Permet à l'application de récupérer des informations sur des tâches en cours d'exécution et récemment exécutées. L'application est ainsi susceptible d'obtenir des informations sur les applications utilisées sur l'appareil.

Voilà. On pense gruger le fournisseur de service téléphonique, mais on va l'engraisser sur la connexion internet ; surtout à l'étranger. Plus encore, on va engraisser, certes pas avec son propre pognon, un prestataire inconnu qui promet la lune. Le couillon va se mettre à poil et donner pour ainsi dire l'accès complet à son téléphone. Mais il va faire plus que se livrer lui-même. Il va dénoncer ses contacts à leur insu à une entreprise dont vous ne savez rien.

Revenus


Au fait. Comment l'entreprise Viber vit ? L'objectif d'une entreprise étant de moins dépenser d'argent qu'elle en gagne, qui paye le développement et la maintenance de l'application et les serveurs dédiés à la faire fonctionner ? Parce que si quelqu'un installe Viber et qu'une autre aussi, comment ils font pour se contacter sans qu'il n'y ait un intermédiaire pour fournir un genre de numéro de téléphone ? Viber doit maintenir les services en ligne pour que ça fonctionne, et cela a un coût.

Voici la partie intéressante de leurs conditions de confidentialité, en anglais seulement :
In order to provide you with Viber products you have requested, Viber may sometimes, if necessary, share your Personal Information (excluding your address book and related information) and traffic data with trusted partner service providers and/or agents, for example: banking organizations or other providers of payment and analytical services, customer support, or hosting services. Viber will always require these third parties to take appropriate organizational and technical measures to protect your personal data and traffic data and to observe the relevant legislation. Viber will never share your address book information with any third party, except as may be required by law (see below).

Je traduit l'esprit : Viber partagera vos informations personnelles avec un partenaire qui aura payé pour, à l'exception du carnet d'adresses. Les expressions telles que if necessary (arrivera un moment où ce sera nécessaire) et trusted partner (la confiance, ça s'achète) seront du vent dès que se profilera l'opportunité d'abuser de ses clients. Quand à leur promesse de ne pas divulguer le carnet d'adresses (sauf pour raisons légales etats-uniennes) c'est un faux-nez. Ce qu'il sont susceptibles de vendre n'est pas les coordonnées des gens mais les interconnexions entre eux.

Tout ça pour de la publicité ciblée ? De toutes façons quand vous utilisez un service, il faut toujours se demander comment il se finance, qui est le client, qui est le produit.

Tags de l'article :

Fossil, a versionning system all-in-one: short review

24/02/2013 - Aucun commentaire

Git branching model Besides big players like Mercurial and git exists Fossil. It is a Decentralized Version Control System as the two others. It's main difference is that not only does it embed the versionning system, but also provides a wiki and a bugtracker. So when you clone such a repository you also get the wiki and the bugtracker. This has obvious advantages: you don't need to connect to any server to update documentation or to fill in a bug. Do your job as you would do for your source code, and voilà!

Wiki

I gave it a try. I don't like the wiki itself. It's not that the syntax or whatsoever is not relevant, but there's a cumbersome problem synchronizing a wiki with the source code. Say there is a development branch and a stable branch. You update the wiki of the development branch, write things about what you develop. Then it's fine. Say you rewrite something about what already exists in the stable branch. How do you propagate these changes from development to stable branch? You could try a copy/paste, if there's not many modifications. But, normally, you think of a merge. And it works. But, how can you explain a merge at this stage: the production branch merges a development branch. Developers may think that a hotfix was just picked up!

The problem is solved on Mercurial/Git by maintaining a wiki in a separate repository.

Indeed, that 's a common problem. The same problem occurs when you deal with external libraries. In Subversion, you create vendor branches, in Mercurial, you create sub-repositories or the like. The wiki is almost useless as its lifetime is not correlated to that of the program. Indeed, Fossil itself don't use its wiki! They say We find that embedded documentation works better than wiki for documenting Fossil itself since embedded documentation is versioned along with the source code, and so given a particular version of source code, it is a simple matter to find the corresponding documentation.

Bug tracking

I'd rather dream of a sort of replicated database to which I can plug my own front end. In most of projects, we may either deal with bugs by email, dedicated software or something else. There's many ways to do this, each of them with advantages and inconveniences. So, why would we be happy with the only way of handling bugs?

This problem is not totally solved by the two others repository providers BitBucket and GitHub, as they provide both such a tool but without a way to synchronize it out of their website. Contrary to the wiki, it's not easy to store the contents of the bug tracker in a repository. If one existed, it would be awesome.

Rebase

The last important thing I'm concerned about, is the rebase. About rebase and all history-modifying tools, Fossil says (3.8 Audit Trail) Fossil deliberately avoids rewriting history. Fossil strives to follow the accountants philosophy of never erasing anything. Mistakes are fixed by entering a correction, with an explanation of why the correction is needed. This can make the history of a project messy, but it also makes it more honest. The lack of a "rebase" function is considered a feature of Fossil, not a bug. (I highlighted some words)

It's just stupid. Everyone would like to be perfect. But we know, that, hidden in the heart of our local repositories, we all are pigs. We all need, at a time, to rewrite the history. Especially to rebase.

Rebasing Here is an example. On the picture besides, you can see a typical use case:
* Someone made C0, C1, C2.
* Alice creates locally her commit C3.
* Bob push his commit C4.

If Alice pushes, she would create a new branch as her commit is linked to C2. What she can do is to pull the changes to her side, getting C4 and to rebase. Her commit C3 will be linked to C4. All the commits are now in a single line. Fossil wants the history to be fully visible. In this case, she would need to merge, leaving her dirty and unwanted branch at the sight of everyone.

Under Subversion, which is a centralized system, the problem is similar. Because people don't want to make dirty commits, they do late and risky commits. Please remind that in Subversion, any commit is equivalent to a push in the distributed systems. The very good point in distributed systems is that their permit such history manipulation before sending any commit. Personally, I sometimes used Mercurial in conjunction with Subversion to locally make some mercurial-commits, branching before making the subversion commit.

Is it used

Yes. Making a google query against a typical sentence visible in the web interface, I found some links:

So what?

I don't recommend the use of Fossil. The idea behind an embedded wiki and bugtracker is valuable, but not the lack of history management.

Tags de l'article :

"Journalistes"

21/02/2013 - Aucun commentaire

Au cours d'une manifestation d'agriculteurs, deux journalistes ont été pris à parti par des manifestants. Leur caméra a été détruite. Faut-il s'étonner que les journalistes ne soient pas les bienvenus ? Source, http://www.arretsurimages.net/contenu.php?id=5633 (payant).

Sans préjudice sur le pourquoi du comment, et même à supposer que des méchants manifestants ont tapé sur les gentils journalistes, cette histoire ne m'étonne pas. Depuis des années, des abrutis de "journalistes" arrivent avec leurs idées préconçues et la conclusion de leur article, commandé, déjà en tête. Alors quand ont les voit débarquer, ce n'est guère étonnant de voir le résultat. Si ça pouvait apprendre leur métier à cette profession largement orientée, ce serait super. Et sinon, il faut recommencer à repousser la désinformation. Encore.

Il a des exceptions. Par exemple ArrêtSurImage, MediaPart et le Canard enchaîné, pour citer les principaux. Sans publicité, il me semble, et (donc) sans donneur d'ordre. Les autres, financés aussi par la publicité, s'accrochent à nos impôts pour subsister. Qu'il crêvent. Et que leurs salariés retournent à l'école. Et que Google les dé-référence, mais bon, ils ont trouvé le moyen d'arnaquer l'État français, consentant, et ses "journalistes" sur commande pour recevoir un peu de lumière depuis Internet.

Je propose donc qu'ArrêtSurImage dépêche une équipe sur place pour voir comment ça se passe. Ce n'est pas son objectif, je sais, mais ce serait instructif.

Tags de l'article :

La sudo - kanto

24/01/2013 - 1 commentaire

La sudo

(Originale de Nino Ferrer, Teksto el Esperanto24)

Similas land' jena al Luiziano
Al Itali'
Vestaĵoj pende sekiĝas sur teraso
Kaj belas ĝi

rekanto:

Similas al Sud'
Longe daùras temp'
Kaj vivo sendub'
Pli ol jarmilion-on'
Ĉiam dum belsezon'

Infanoj multas kaj rulas sin dum ludo
Kun hundoj tri
Eĉ estas kat', ruĝaj fiŝoj kaj testudo
Ne mankas neni'

rekanto

Sed iam ajn nepros tempo por milito
Ja scias ni
Ni ĝin ne ŝatas kaj rifuzas sen spito
Kulpigas sorton ni

Domaĝe por Sud'
Ĉe ĉi latitud'
Jes vivintus ni
Pli ol jarmilion-on'
Ĉiam dum belsezon'

Tags de l'article :

Conte du pêcheur mexicain

19/12/2012 - 1 commentaire

Au bord de l’eau, dans un petit village côtier mexicain, un bateau rentre au port, ramenant plusieurs thons. L’Américain complimente le pêcheur mexicain sur la qualité de ses poissons et lui demande combien de temps il lui a fallu pour les capturer.

- Pas très longtemps, répond le Mexicain.

- Mais alors, pourquoi n’êtes-vous pas resté en mer plus longtemps pour en attraper plus ? demande l’Américain.

Le Mexicain répond que ces quelques poissons suffiront à subvenir aux besoins de sa famille. L’Américain demande alors :

- Mais que faites-vous le reste du temps ?

- Je fais la grasse matinée, je joue avec mes enfants, je fais la sieste avec ma femme. Le soir, je vais au village voir mes amis. Nous buvons du vin et jouons de la guitare. J’ai une vie bien remplie.

L’américain l’interrompt :

- J’ai un diplôme de l’Université de Harvard et je peux vous aider. Vous devriez commencer par pêcher plus longtemps. Avec les bénéfices dégagés, vous pourriez acheter un plus gros bateau. Avec l’argent que vous rapporterait ce bateau, vous pourriez en acheter un deuxième et ainsi de suite jusqu’à ce que vous possédiez une flotte de chalutiers. Au lieu de vendre vos poissons à un intermédiaire, vous pourriez négocier directement avec l’usine, et même ouvrir votre propre usine. Vous pourriez alors quitter votre petit village pour Mexico City, Los Angeles, puis peut-être New-York, d’où vous dirigeriez toutes vos affaires.

Le Mexicain demande alors :

- Combien de temps cela prendrait-il ?

- 15 à 20 ans, répond le banquier américain.

- Et après ?

- Après, c’est là que ça devient intéressant, répond l’Américain en riant, quand le moment sera venu, vous pourrez introduire votre société en bourse et vous gagnerez des millions.

- Des millions ? Mais après ?

- Après, vous pourrez prendre votre retraite, habiter dans un petit village côtier, faire la grasse matinée, jouer avec vos petits-enfants, faire la sieste avec votre femme et passer vos soirées à boire et à jouer de la guitare avec vos amis.

- A quoi bon perdre toutes ces années ! répondit le pêcheur, j’ai déjà tout ça ! Bonne journée monsieur !

© Auteur inconnu

Tags de l'article :

Divulgation de l'adresse du posteur d'image sur Imageshack.us

17/11/2012 - Aucun commentaire

Le site ImageShack est un service d'hébergement d'images. Après le téléversement, un lien permet de charger l'image depuis leur site. Leur site expose une interface d'accès permettant de récupérer des informations sur les images. Cet accès est protégé par un mot de passe. Ce dernier a été divulgué via Mikescoding qui en a publié une preuve de concept, utilisable depuis son site web.

Cependant, l'hébergeur semble avoir colmaté la faille puisque le site ne retourne plus les données escomptées.

Voici comment cela fonctionne :

  1. On part du lien d'une image, celle donnée en exemple chez Mikescoding :
    http://img236.imageshack.us/img236/3432/as8132329zz9.jpg.
  2. On extrait le nom de l'image sans son extension :
    as8132329zz9
  3. On calcule le condensat en utilisant le mot de passe :
    MD5("as8132329zz9"+"ta onomata")==d907da5f86d1e6db1c00e31eba07f20a
  4. On ne retient que les dix premiers caractères :
    d907da5f86
  5. On génère le lien en accolant le nom du fichier et le condensat :
    http://img236.imageshack.us/img236/3432/as8132329zz9.d907da5f86.xml

Informations obtenues

<imginfo xmlns="http://ns.imageshack.us/imginfo/7/" version="7" timestamp="1244589886">
  <rating>
    <ratings>0</ratings>
    <avg>0.0</avg>
  </rating>
  <files server="236" bucket="3432">
     <image size="661569" content-type="image/jpeg">as8132329zz9.jpg</image>
     <thumb size="2847" content-type="image/jpeg">as8132329zz9.th.jpg</thumb>
  </files>
  <resolution>
    <width>2457</width>
    <height>2411</height>
  </resolution>
  <class>r</class>
  <visibility>yes</visibility>
  <uploader>
    <ip>122.169.132.61</ip>
  </uploader>
</imginfo>
On extrait l'adresse IP : 122.169.132.61

Code source en Php

Il est à lancer en ligne de commande et ignore tous les mécanismes de vérification, mais il est plus facile à lire. Il fournit l'url à appeler pour récupérer le fichier XML contenant l'adresse IP. La version propre se trouve chez Mikescoding.

//SOURCE: http://mikescoding.com/imageshack/index.phps
$secretWord = "ta onomata";
$url = "http://img236.imageshack.us/img236/3432/as8132329zz9.jpg";
preg_match('#^(.*)/([^/]+)\.[^.]*$#', $url, $matches);
$path = $matches[1];
$fileName = $matches[2];
$hashStart = substr(md5($fileName.$secretWord), 0, 10);
$xmlUrl = $path.$fileName.".".$hashStart.".xml";
echo "url: $url\n";
echo "md5: $hashStart\n";
echo "xml: $xmlUrl\n";
Qui renvoit :

url: http://img236.imageshack.us/img236/3432/as8132329zz9.jpg
md5: d907da5f86
xml: http://img236.imageshack.us/img236/3432as8132329zz9.d907da5f86.xml

Analyse

J'espère que le mot de passe n'était propre qu'à un seul partenaire. S'il faut l'invalider, ça n'impactera que lui. Sinon, ça veut dire qu'il faut communiquer le nouveau mot de passe à tout le monde. La bonne pratique serait de fournir à chacun des partenaires une clé unique, révocable et spécifique à lui. Cela se fait pour les flux de syndication (RSS) nécessitant une authentification, la clé est inclue dans la requête et révocable par le fournisseur ou par l'utilisateur en cas de divulgation.

Tags de l'article :

Small birthday management

11/09/2012 - Aucun commentaire

Instead of using heavy software, one can prefer using very small tools to do one single action. I did this with the birthday program. As a command line program, it has no graphical interface. The user just have to make a text file containing the birthdays and to call the executable birthday.

For instance, say I made a ~/.birthdays as is:

Linus Torvalds=28/12/1969
Richard Stallman=16/03/1953

When I launch birthday, the program searches for birthdays within 21 days, which is the default behavior. If there's none, nothing appears. Otherwise, messages about birthdays appears. For instance, I typed birthday -W999 to make it search all birthdays (within 999 days...):

Linus Torvalds is 43 years old in 3 months, 2 weeks and 3 days' time.                                                                                                               
Richard Stallman is 60 years old in 6 months and 5 days' time.

Te best is to do something to automatically check the birthdays. Here comes the crontab -e. Just insert the command at the reboot and you will get a local message when something outputs. It's also possible to insert the command in your ~/.bashrc when you connect to the command line.

The project is hosted on SourceForge and is available in Debian Linux.

Tags de l'article :

Cryptanalyse de HashMask

09/05/2012 - 7 commentaires

Le chiffre de Vernam est démontré incassable, mais difficilement utilisable en pratique car il faut, entre autres, ne pas réutiliser la clé. L'algorithme HashMask est équivalent à un Vernam affaibli, où il ne faut pas réutiliser la clé mais qui est bien plus courte.

Analyse


La clé sert de générateur à une suite périodique et pseudo-aléatoire constituant le masque. Le masque est ensuite appliqué via un ou-exclusif.

chiffré = clair XOR masque(clé)

Comme nous le verrons plus bas, le masque est plutôt robuste. C'est sûrement très difficile d'entrer par cette porte blindée. Alors on entre par la fenêtre. À une clé donnée correspond un masque et un seul. Si on chiffre deux messages avec cette clé, nous obtenons ceci :

C1 = m1 XOR masque
C2 = m2 XOR masque

C'est la faiblesse fatale typique du Vernam, le masque jetable, dont il ne faut pas réutiliser la clé sous peine d'être vulnérable à l'attaque par mot probable. Pas la peine de chercher la clé, puisqu'il suffit d'extraire le masque. Cet algorithme est inutilisable en pratique, puisqu'il faut refaire une clé à chaque fois.

Cependant, poursuivons l'étude du masque. Le vrai chiffrement invulnérable, Vernam, est contraignant du fait de la taille de la clé, qui doit être au moins égale à celle du clair. Est-il possible de sacrifier un peu la sécurité au profit de plus de fonctionnalité, c'est-à-dire avec un simple mot de passe à transmettre ?

Dans la suite, nous supposerons que le mot de passe n'est pas vulnérable à une attaque par force brute.

Le masque


L'algorithme opère un ou-exclusif entre le clair et le masque. Chaque bit du masque est extrait du flot du masque. Il s'agit d'un chiffrement par flot.

Description


Le flot est composé de segments de 256 bits, générés au moyen de l'algorithme suivant :

SI vide(segment) ALORS segment = hash(clé)
segment = hash(segment+clé) // concaténation, "a"+"b"="ab"
ENVOI segment

descriptif Qui fournit les sorties suivantes, toutes de 256 bits :
1:
hash(hash(clé)+clé)
2:
hash(hash(hash(clé)+clé)+clé)
3:
hash(hash(hash(hash(clé)+clé)+clé)+clé)
4:
(...)

Ne pas utiliser
hash(clé)
comme premier segment généré permet de ne pas être vulnérable à une attaque par dictionnaire. La fonction de hachage (à sens unique) est SHA-256. La salage avec la clé empêche l'utilisation de tables arc-en-ciel. Cela correspond au mode d'opération Output Feedback, hash(clé) étant le vecteur d'initialisation.

Dès lors que le flot rencontre à nouveau le même segment, on a trouvé un cycle puisque chaque segment est toujours fonction du segment précédent, à clé fixée. Comme il y a un nombre limité de segments possibles (2^256 =~ 10^77), on tombe forcément sur un cycle. Un masque est donc composé d'une séquence de segment suivie d'un cycle de séquence de segment. Compte tenu de la méthode utilisée, je conjecture que la longueur des cycles est très grande et très probablement toujours plus grande que le clair. Si ce n'était pas suffisant, on pourrait utiliser d'autres algorithme de hachage tels que SHA-512...

Cela veut dire qu'en pratique, on extrait une suite imprévisible, qui pourrait faire l'affaire en tant que masque jetable mais seulement parmi un sous-ensemble des masques possibles, déterminés par l'espace des clés. Évidemment, il n'y a pas toutes les possibilités de masque comme pour le Vernam, et c'est pour ça que cet algorithme n'est pas inconditionnellement invulnérable, même si on n'utilise qu'une seule fois la clé. À supposer que la suite pseudo-aléatoire est robuste, et que la clé est choisie judicieusement, la sécurité semble intéressante. Une attaque classique nécessiterait un clair grand par rapport à un masque doté d'une période hypothétiquement très grande.

Attaques sur le masque


En fait, l'implémentation de référence stocke le nom de fichier à la fin du chiffré. Cela ouvre l'accès aux derniers bits du masque, ce mot probable permet de débuter la cryptanalyse. Cela a pour but, visiblement, de transmettre un fichier au nom générique, le vrai nom de fichier n'étant connu que lors du déchiffrement. On ignorera cette faille de sécurité car la fonctionnalité qu'elle apporterait est faible par rapport au risque pris.

Lors d'un chiffrement à clair connu, on retrouve facilement les segments. la connaissance d'un segment permet de caractériser très probablement la clé et de deviner si deux chiffrés utilisent la même clé. La connaissance de deux segments (consécutifs serait le mieux) ouvre une attaque par force brute sur la clé car l'un est toujours fonction de l'autre et de la clé. La connaissance de tous les segments utilisées pour un chiffré donné ne permet pas de déduire les segments suivants, du fait du salage avec la clé.

La période du masque est la plus courte distance entre deux segments identiques. La connaître est équivalent à connaître la clé. Et réciproquement.

Cryptanalyse


Problème posé


Soient C1, C2, C3 les trois chiffrés d'un clair c avec les clés k1, k2, et k3. De même, soient D1, D2, D3 les trois chiffrés d'un clair d avec les clés k1, k2 et k3. On sait que le texte de c est inclus dans d. Le texte original du problème est ici.

Étant connus c, C1, C2, C3, D1, D2, D3, trouver d. On ne connaît pas les clés k1, k2 et k3.

Preuve formelle de la résolution


On suppose que tous les fichiers font la même taille, et on a :

C1 = H(k1,c) et C2 = H(k2,c) et C3 = H(k3,c) avec H notre fonction de chiffrement.
D1 = H(k1,d) et D2 = H(k2,d) et D3 = H(k3,d)

On a vu précédemment qu'en général : X = H(clé,Y) = Y ⊕ masque(clé)

Avec M1, M2 et M3 les masques correspondants aux clés k1, k2 et k3 :

C1 = c ⊕ M1 et C2 = c ⊕ M2 et C3 = c ⊕ M3
D1 = d ⊕ M1 et D2 = d ⊕ M2 et D3 = d ⊕ M3.

Il vient que :
d = D1 ⊕ M1 ainsi que M1 = C1 ⊕ c
d = D2 ⊕ M2 ainsi que M2 = C2 ⊕ c
d = D3 ⊕ M3 ainsi que M3 = C3 ⊕ c

Et donc :
d = D1 ⊕ C1 ⊕ c
d = D2 ⊕ C2 ⊕ c
d = D3 ⊕ C3 ⊕ c

C1, C2, C3, D1, D2, D3 et c étant connus, on dispose de trois façons de retrouver le clair d.

Cette méthode ne peut pas décrypter au-delà de la longueur du clair c connu. Les informations concernant le clair d, situées au-delà de la longueur de c sont inaccessibles parce qu'on ne sait pas calculer le masque au-delà du clair.

Question ouvertes


Cet algorithme n'a rien inventé, RC4 est basé sur un principe similaire. Il a été cassé, mais en contexte de réutilisation de la clé.

Quelle est en moyenne la longueur du masque ?

Peut-on prédire les segments suivants à partir d'un segment connu ? De deux ? De trois ? etc.

Peut-on retrouver la clé à partir d'un segment ? De deux ? etc.

Quelle est la probabilité que deux clés soient dépendantes ? C'est-à-dire que l'une génère une séquence incluse dans l'autre.

Encore une fois, merci à Dimitri MESTDAGH, le développeur de l'implémentation de référence et à Philippe LHEUREUX, le concepteur de l'algorithme.

EDIT: code source ici.

Tags de l'article :

Cryptanalyse de l'algorithme CENAv03

22/04/2012 - 3 commentaires

J'ai cassé l'algorithme CENA en m'aidant de l'implémentation de référence. Le langage de programmation utilisé est Php. le code source en licence libre GPLv3+ est téléchargeable ici.

Je me suis contenté d'attaquer assez souvent un seul caractère. La technique est donc basique ici.

Dans la suite, il ne sera jamais question d'octet, mais toujours de caractère. Et pour conserver une relative simplicité, il sera fait mention de lettres clair et de lettres chiffrées. On ne considère que les lettres de l'alphabet. L'implémentation n'utilise jamais de dispositif aléatoire, mais simplement pseudo-aléatoire, mais cela n'a pas de conséquence pour la suite.

Descriptif de l'algorithme de chiffrement

descriptif
Chaque caractère est chiffré isolément en fonction d'une clé. La variante de chiffrement de chaque caractère est entièrement déterminé par sa position dans le clair. Chaque caractère clair aboutit à 17 caractères (de '0' à '9') chiffrés. Voici la succession de traitement que subit une lettre :

Vigenère fixé


Le caractère subit d'abord l'algorithme de Vigenère utilisant une clé fixée une fois pour toute. Le caractère de rang 0 (première position) n'est pas modifié, le deuxième est décalé de 1, le troisième de deux, etc.

Expansion


À chaque caractère, on associe un nombre de 6 chiffres pris dans un intervalle déterminé dans la clé. Tous les nombres de l'intervalle ramènent au même clair. Par exemple, A est transformé en un nombre entre 305126 et 308475. L'intervalle est fonction de la clé, et reste fixe pendant le chiffrement.
Le chiffré est passé de 1 caractères à 6 caractères.

Brouillage


Les 6 chiffres précédents sont mélangés dans 11 chiffres aléatoires. L'implémentation utilise une phase ajoutant 10 chiffres et une phase ajoutant 1 chiffre. Cela donne l'illusion que ça ajoute de la complexité parce que la clé est plus difficile à générer et à utiliser, mais en fait c'est tout à fait inutile. Le chiffré est passé maintenant de 6 caractères à 17 caractères.

Analyse de l'algorithme

énigma
Il est a clé de taille fixe, déterminer la longueur de la clé est donc utile. En fait, il suffirait de tester les longueurs de clé de 32 à 64 caractères, ce qui donne 33 possibilités. En fait, on peut faire plus simple !

L'algorithme chiffre caractère par caractère, on peut donc ne se focaliser que sur le premier caractère. Cette approche permet de s'affranchir du Vigenère fixé, car le Vigenère au rang zéro (première position) retourne exactement le caractère en entrée. Donc le Vigenère peut être ignoré.

L'expansion est le point faible de l'algorithme. Par construction, pour une position donnée (mais nous restons toujours au premier caractère) l'ensemble des valeurs attribuables à un caractère commence toujours par les mêmes deux premiers chiffres, le troisième variant assez peu. En reprenant l'exemple de la lettre 'A', les nombres qui lui sont associés vont de 305126 à 308475. Les trois premiers chiffres sont donc 305, 306, 307 et 308.

Le brouillage ajoute 7 chiffres aléatoires. C'est la partie la plus utile de l'algorithme et noye l'information dans un brouillard aléatoire.

Cryptanalyse

descriptif

Sans connaître l'algorithme, on analyse les rapports clairs/chiffrés. On constate que la taille des chiffrés est toujours égale à 17 fois celle du clair. En ne chiffrant qu'un seul caractère de façon répétitive, on s'aperçoit vite que 2 des dix-sept caractères ne varient pas, certains variant un peu plus et d'autres sont quasiment aléatoires. En chiffrant deux caractères identiques, on s'aperçoit que les chiffres non-aléatoires restent les mêmes mais que leur position à changé. À cette étape, on sait déjà que (à une clé donnée) la substitution ne dépend que du caractère et que la transposition ne dépend que de la position du caractère. La cryptanalyse ici consiste à retrouver une clé en soumettant à volonté des clairs. En fait, la vraie clé n'est retrouvée mais seulement une clé inverse. En poussant plus loin l'analyse, il serait possible de créer une clé et de chiffrer des messages.

Rangs utiles


Première étape, on détermine les rangs utiles. À une position donnée correspond une répartition donnée des caractères expansés. Par exemple, les rangs 11, 16 et 1 portent de l'information pour le première caractère chiffré. Les rangs 7, 1 et 13 correspondent au deuxième caractère chiffré. Je demande de très nombreuses fois le chiffrement de certains caractères, un à la fois. Cela fournit le spectre associé à la position : pour chaque rang (de 0 à 16) on détermine la probabilité d'occurrence des chiffres. Dans la pratique, on ne conserve que les 3 meilleurs rangs. Dans un caractère chiffré, on est donc capable de connaître les bons caractères parmis les 17.

Dictionnaire


Deuxième étape, on demande un grand nombre de fois le chiffrement de tous les caractères, toujours un à la fois. Les 17 chiffres sont filtrés grâce aux rangs utiles collectés à la première étape, dans la pratique, 3. Grâce au grand nombre d'essais, j'en arrive à déterminer toutes les combinaisons possibles de 3 chiffres. Concrètement, cela revient à déterminer les trois premiers chiffres correspondant à chaque lettre. Par exemple l'expansion de la lettre 'A' est l'ensemble des nombres entre 305126 et 308475 inclus. Le "3" et le "0" apparaissent toujours à la même position dans les chiffrés tandis qu'une position ne contient que "5,"6","7" ou "8". Ce faisant, on récolte pour chaque lettre en clair ces trois nombres caractérisant son expansion. En fait, il existe des cas où il y a ambiguïté. Ces cas ouvrent la voie à l'analyse fréquentielle pour les éliminer, mais qui ne sera pas traitée ici.

Clé inverse


Troisième étape, calcul de la clé inverse. Elle porte toujours sur un seul et premier caractère, ce qui élimine le vigenère du début. En combinant les deux étapes précédentes, on détermine quels 3 chiffres on doit lire parmi les 17 et quelle est la (parfois les) lettre en clair liée à ces 3 chiffres.

Le déchiffrement au moyen de la clé inverse se déroule comme suit :
  • On ne conserve que les trois chiffres utiles.
  • On regarde à quel caractère correspond ces trois chiffres utiles.

Comment améliorer la cryptanalyse ?


Elle ne porte que sur un caractère, ce qui oblige à faire des milliers de requêtes de chiffrement de un caractère. On peut chiffrer un seul gros fichier contenant toutes les lettres par paquets de quelques milliers. Le débrouillage est réalisé en testant les 33 hypothèses de longueur de la clé. Avec la bonne longueur du clé, la prééminence des 3 chiffres apparaît.

L'analyse fréquentielle peut, sous réserve d'avoir un clair et un chiffré de longueur suffisante, lever les dernières ambiguïtés et permettre de reconstituer la clé d'origine.

Et la longueur de la clé ?


La phase de cryptanalyse n'a pas vraiment besoin de la longueur de la clé. En fait, il faut la déterminer seulement s'il faudra déchiffrer des messages de longueur supérieure et pour généraliser le déchiffrement. La longueur de la clé est tout de même calculée pendant la cryptanalyse. Pendant le débrouillage, on reboucle sur la clé lorsqu'on retrouve les mêmes positions caractéristiques.

Comment améliorer l'algorithme ?

descriptif
Injection de l'intru : la phase d'injection de l'intru est inutile car elle est équivalente à rajouter un caractère de brouillage. À supprimer.

Brouillage : le brouillage lui-même peut être contourné par une analyse fréquentielle. En effet, le brouillage est aléatoire, contrairement aux informations entrées en clair.

Expansion : elle a grandement permis de casser l'algorithme. En fait, on peut l'améliorer comme suit. L'algorithme partitionne un intervalle de nombres en associant à chaque intervalle une lettre. Par exemple, si on sait que 305126 et 308475 désigne la lettre 'A', alors on sait que tous les nombres entre les deux désignent aussi 'A'.
Pour faire mieux, on pourrait associer à chaque nombre de l'intervalle une lettre de sorte à ce que chaque lettre soit associée à la même quantité de nombre, mais qu'il n'est pas possible de prévoir à quelle lettre est associée un nombre. Par contre, il faudra utiliser une clé de 899999 caractères pour l'expansion... Cela éviterait de pouvoir extraire les 3 chiffres caractéristiques d'une lettre.

Comment faire mieux que l'algorithme ?


Utiliser un vigenère a clé fixée n'est d'aucune utilité et n'a pas freiné la cryptanalyse, autant l'abandonner. Le brouillage ralentit la cryptanalyse, mais n'est pas efficace, donc autant l'abandonner aussi. L'expansion est une fausse bonne idée, et il serait plus efficace de faire un simple vigenère. Par exemple, on pourrait générer une clé infinie au moyen d'un tirage aléatoire provenant d'une suite déterminée par la clé. Par exemple, fixer le sel de la clé (srand() en Php) permet de faire autant de tirages pseudo-aléatoires que voulu... Évidemment, mais si c'est plus efficace, cela reste faible.

En gros, il serait plus efficace de faire du Vigenère au moyen d'une clé pseudo-aléatoire. Mais même comme ça, ce n'est pas gagné contre les techniques d'aujourd'hui.

Merci à Dimitri MESTDAGH, le développeur de l'implémentation de référence et à Philippe LHEUREUX, le concepteur de l'algorithme.

Références



Le code source est disponible ici.

Tags de l'article :

Système d'Informations Cryptées d'Urgence

17/12/2014 - Aucun commentaire

Logo SICU Le Système d'Informations Criptées d'Urgence est un projet de porte-clé contenant le dossier médical. Ça permettra d'avoir immédiatement de précieuses informations médicales en cas d'accident. Enfin, ça devrait... Parce que c'est mal parti. Fautes de spécifications, je ne peux qu'extrapoler que ce sera mal fait ou mal utilisé.

Pour restreindre l'accès aux données, il faudra bien chiffrer tout ça avec une clé, à utiliser sur place sans possibilité de se connecter à un serveur distant. Elle ne sera pas dans le porte-clé, qui ne contiendra que les informations illisibles. Elle sera dans le lecteur des urgentistes, lequel devra sûrement récupérer les informations à courte distance et les déchiffrer. Il n'est pas certain que ces lecteurs ne seront jamais détournés de leurs usages. De plus, que ce passera-t-il quand la clé de chiffrement sera divulguée ? On ne pourra pas mettre à jour tous les portes clés. Ou alors il faudra imposer la mise à jour régulière, avec la complexité d'usage que cela suppose. Un détail : on dit chiffré au lieu crypté.

Et c'est là qu'arrive l'autre grand problème : la lecture d'information devant être possible n'importe quand, il s'agit de porter sur soit en permanence un objet devant toujours répondre, sans confirmation du porteur. Pour qui veut tracer les allées et venues ce sera la fête permanente dans le métro.

Où stocker ce porte-clé ? Si on le met sur le jeu de clé de la moto/voiture, que se passera-t-il en cas de prêt ? Si on le met sur le pantalon, il faudra bien penser à le remettre. Du coup, il vaut mieux le conserver avec ses papiers d'identités. Là même où on pourra mettre toutes les informations utiles... D'ailleurs, je n'ai pas trouvé non plus de liste des informations stockées dessus. S'il faut agir en urgence, il devrait y figurer la photo, l'adresse, le groupe sanguin, les allergies, etc. Ce qui fait beaucoup, vu la faible sécurité intrinsèque du dispositif puisque la clé de déchiffrement sera disséminée partout.

C'est avec plaisir que je recevrai des contres-arguments, mais je n'ai pas beaucoup d'espoir pour un tel système. D'autant qu'il y a plus intelligent à faire, à mon humble avis : stocker un identifiant unique (un condensat) et quelques infos anodines (groupe sanguin, par ex.) et centraliser tout ça dans une base de données centrale. Il n'y a plus le problème de fraîcheur des données et l'accès aux données personnelles par les urgentistes sera assurée par l'accès centralisé. Ça a déjà été fait, avec le Dossier Médical Personnel et ça ne va pas fort selon Médiapart. L'article indique le problème de vie privée et du coût du dispositif.
Il est même question du dossier mobile proposé par l'Assemblée nationale en 2009, similaire sur le principe à ce dont il est question ici...

Tags de l'article :

Changer Firefox et les certificats HTTPS

15/07/2014 - 3 commentaires

Quelqu'un sait comment changer le comportement de Firefox pour les certificats HTTPS ? Visitant beaucoup de sites auto-signés, je voudrais m'éviter les messages systématiques et lourds sur la dangerosité de la connexion. C'est bien stupide, et je voudrais que ça change.

Firefox affiche un avertissement ennuyeux à passer lorsqu'on se connecte sur la première fois par un site auto-signé. Alors qu'il ne dit rien si on se connecte la première fois sur un site non signé. Or, dans les deux cas, l'authenticité du site n'est pas établie ! En plus, il est possible qu'une méchante autorité signe un certificat contrefait concernant un site signé déjà visité. Le navigateur acceptera silencieusement le nouveau certificat contrefait !

Voilà comment devrait se comporter Firefox.


Par défaut, les sites signés ou non ne provoquent aucun avertissement. Le chiffrement peut être indiqué avec l'icone habituelle, avec quelques variations pour indiquer le chiffrement utilisé ou non. Lors de la première présentation d'un certificat, rien n'est remonté à l'utilisateur. Ça marche, et c'est tout. C'est chiffré/signé, tant mieux. Sinon, tant pis.

Pour un site donné (ou un sous-domaine, etc), on peut indiquer l'obligation de passer par HTTPS et accepter le certificat fourni par le site.

Pour un site donné, on peut ignorer tout changement de certificat. Par exemple, les serveurs de Google changent souvent de certificat.

Pour un site donné, on peut fixer le certificat et faire afficher un avertissement, voire une interdiction, en cas de changement de certificat.

L'idée derrière tout ça, est de considérer HTTPS comme un service facultatif et invisible. Sauf, lorsque c'est vraiment important : recherche Google, site de banque, etc. bien déterminés et pour lesquels on veut effectivement la sécurité. On pourrait préciser que tous les certificats venant d'une autorité (ou d'un descendant) sont acceptés avec ou sans notification. Typiquement, en entreprise on signe les serveurs locaux avec une autorité locale. Dans ce cas, on est moins inquiet que sur le net.

Si quelqu'un a trouvé un truc, je lui en serais reconnaissant.

Tags de l'article :

Prélèvement bancaires sans frontière

09/07/2014 - Aucun commentaire

L'ancien système prélèvement est définitivement remplacé par le prélèvement SEPA (Single Euro Payments Area) à partir d'août 2014. Il n'y aura que ce moyen-là, et ça change tout. Ce qui suit se base sur l'article publié sur le site de QueChoisir.

SEPA UFC QueChoisir
La banque ne fait plus la vérification du mandat.

Avant, il fallait autoriser le créancier à prélever l'argent ; et la banque devait vérifier si le prélèvement était autorisé. Maintenant la banque ne vérifie plus le prélèvement. Elle ne le faisait pas non plus avant. Mais cela veut dire que dorénavant, et officiellement, quiconque a la possibilité technique de prélever un compte bancaire peut prélever partout où il veut. En cas de contestation, il devra présenter l'autorisation de prélèvement. Mais ça, c'est après ; et avec un peu de chance, ça ne se verra pas.

Pour révoquer le prélèvement, l'article indique « Alors qu’auparavant il fallait révoquer un prélèvement régulier auprès de votre fournisseur et de votre banque, il suffit désormais de révoquer ce prélèvement auprès du fournisseur (...) » Trop sympa, vraiment... Il faut juste faire confiance au créancier ! La révocation envoyée à la banque marche toujours, facturée, et il vaut mieux s'y tenir.

Cependant, tout n'est pas noir ! En effet, le nouveau système permet de mettre en place une liste blanche ou une liste noire. On peut n'autoriser qu'une liste limitative de prélèvement ou bien interdire certains prélèvements, voire interdire tout prélèvement. Bien entendu je n'ai vu ça nulle part ! Si quelqu'un trouve, qu'il le dise !

À l'heure actuelle, n'importe qui peut prélever n'importe quoi et les banques interdisent de s'y opposer préalablement. On ne peut le faire qu'à posteriori.

Tags de l'article :

Publicité dans Firefox, on y est. Goal :-(

26/06/2014 - Aucun commentaire

Mozilla a commencé à déployer de la publicité dans son navigateur auprès de gens qui n'ont rien demandé. À commencer par moi-même. Suivez toute l'action au Brésil avec le module Goal.com. Installez-le maintenant.

Moi aussi, je t'emmerde.


Un web plus juste, c'est dans nos cou{il}les.

Avec le quiproquo habituel sur à qui est destiné la justesse. Pas à moi. On dit que c'est par pragmatisme... Mais pourquoi l'état d'esprit des premiers jours de Firefox, quand il s'appelait Phoenix ou Firebird, n'existe plus ? À l'époque c'était bien plus dur, Internet Explorer a pourri une génération de développeurs web. Merci Firefox pour son ancienne philosophie. Et merde ! Maintenant.

Tags de l'article :

L'agrégateur Leed sort en version 1.6

01/03/2014 - Aucun commentaire

Je l'utilise (et y contribue) tous les jours pour ma veille technologique, je vous invite à l'essayer, à faire part de vos retours et même participer au développement :
  • En utilisant Leed et rapportant bogues, remarques et améliorations.
  • En traduisant Leed (actuellement français, anglais, espagnol et espéranto à venir).
  • En développant, que ce soient de nouvelles fonctionnalités ou de la consolidation de code existant.

Téléchargez :

Démonstration : http://projet.idleman.fr/leed/demonstration/

Tags de l'article :

Directory Tiles : bientôt de la publicité dans Firefox !

12/02/2014 - Aucun commentaire

J'utilise Firefox depuis le début, quand il s'appelait encore Firebird voire Netscape. C'est le navigateur qui m'a défendu contre les cochoncetés du web. La valeur sûre, le truc qui ne faillerait jamais. Ce que je viens de lire, c'est comme si (ma) Linux Debian affichait de la publicité pendant le démarrage du système.

Mozilla va mettre de la publicité dans Firefox
Écrit dans son blog, les signes évidents sont :
  • user experience, expérience utilisateur, terme introduit quand il s'agit de monétiser les actions de l'utilisateur.
  • partners, "partenaires", intervenants non mandatés par l'utilisateur s'infiltrant là où il ne faut pas.
  • We are excited, Nous sommes excités, imaginez un pervers blanchisseur de bitcoins excité par un lampadaire.

Ils vont afficher des publicités dans la page d'accueil de Firefox, celle indiquant les derniers sites visités. Normalement destinée à orienter l'utilisateur, cette page servira de perforation dans le fondement de la vie privée. Pour rester poli. Avec la pollution visuelle viendra habituellement, mais pas seulement :
  • les connexions réseau et la bande passante utilisée sans le consentement de l'utilisateur,
  • les intrusions dans la vie privée et l'envoi aux-dits partenaires,
  • le contrôle à terme des actions de l'utilisateur.

Que se passe-t-il ?

Tags de l'article :

Norefer - No fair

02/02/2014 - Aucun commentaire

Norefer propose un service retirant les référents quand on clique sur un lien. Mais ce remède est opportunément pire que le mal. Lorsqu'on utilise un service, toujours se demander quel est son modèle économique.

C'est quoi un référent ?


Lorsqu'un navigateur est configuré normalement, il envoie à chaque site visité le site d'où il vient. À chaque clic sur un lien (et autres images), le navigateur envoie la demande accompagnée de la page demandeuse. Cela a quelques intérêts techniques, mais cela a aussi un risque en terme de vie privée puisque le site destinataire a connaissance de la page d'avant, celle qui portait le lien.

La solution classique est de configurer son navigateur pour ne pas envoyer le référent. Sur Firefox cela se fait au moyens d'extensions. Le site Norefer se propose gracieusement de cacher ce référent pour vous. Effectivement, ça marche tout autant qu'aller en enfer se faire cuire des crêpes.

L'astuce


Le principe est que le site web ne propose plus de lien de type http://duckduckgo.com mais plutôt http://norefer.com/to/http://duckduckgo.com, et ce, pour tous les liens. Chaque clic va donc entraîner une requête non pas vers le site visé, mais vers norefer.com. Et voici ce qui se passe :

  1. On clique sur http://norefer.com/to/http://duckduckgo.com
  2. Norefer honore la requête en prenant connaissance de l'adresse de la machine, du navigateur, etc. comme n'importe quel autre serveur web
  3. Il fait une redirection https://norefer.com/out.php?to=http://duckduckgo.com
  4. Il renvoie une page, présentant ses services pendant une seconde, et redirige vers le site en question

Oui, mais la page web envoyée par Norefer révèle quelques surprises... La page comporte :
  • les éléments techniques nécessaires (en-tête, texte explicatif)
  • une publicité
  • une redirection faite via Google analytics

Analytics est le service de statistiques de fréquentation des sites web, fourni par Google. Comme il est très utilisé par les gestionnaires des sites web, Google peut connaître une très grosse part du parcours des personnes qui ne protègent pas leur vie privée.

La morale

  • Le site web utilisant Norefer se camoufle.
  • Norefer encaise l'argent provenant de la vente (très indirecte) de la vie privée de ses visiteurs et de la publicité qu'il affiche.
  • L'utilisateur paye avec sa vie privée un service qu'il n'a pas demandé.

Tags de l'article :

Plus méprisant que bilingue

10/01/2014 - Aucun commentaire

Ce billet fait suite à un message sur les annonces d'Ésperanto-France fustigeant ce qui était gratuit tandis que l'auteur lui-même pillait, sans s'en vanter, plein de ressources gratuites. Je reproduit ici ma réponse au parasite classique mais ô combien irritant. Sauf que ce coup-ci, j'ai répondu à blog-bilinguisme.fr.



(...) Certains sont même persuadés que l'espéranto est complètement idiot mais pour ceux-là, on ne peux plus rien faire !
Ce n'est pas stupide de penser l'idée de l'espéranto est idiot. C'est en fait l'idée même de langue construite qu'ils rejettent. Assez systématiquement, c'est l'anglais pragmatique qui s'impose. Et, si, on peut et doit faire quelque chose. C'est même la qu'il faut travailler. Je crois qu'il ne faut pas se battre pour l'espéranto, mais plutôt se battre pour faire admettre qu'on peut prendre son droit à communiquer (rajto komuniki, kiel dirus fama homo) au travers de langues construites.

Reste les nombreux ignorants. Nous avons besoin de leur montrer que l'espéranto est leur allié dans ce qu'ils désirent pour eux, comme par exemple améliorer le sort de leurs enfants par une bonne maitrise des langues.
Ça, c'est faux. L'espéranto est l'ennemi objectif de beaucoup de personnes, ignorants y compris. De leur point de vue (qui n'est pas le mien et probablement pas ceux d'ici) ils préfèrent apprendre une "vraie" langue qui assurera à eux et à leurs rejetons une certaine domination. Ils ne veulent pas d'une langue trop facile pour les autres. L'espéranto les obligerait à admettre qu'ils ont fait fausse route, ou du moins, qu'ils devront encore apprendre une autre langue.

Je viens de publier un interview qui montre les avantages de ceux qui sont très forts en allemand => Voir l'exemple au cours de cet interview [youtu.be/10dB6h8CEEg] C'est clair, pratique mais inaccessible pour beaucoup de français car l'allemand est en train de devenir une langue rare tandis que tous les autres ne rêvent que d'anglais.
Je connais pourtant un paquet de français qui pratiquent l'allemand (autant que faire se peut). De plus, je vois mal comment qualifier l'allemand de langue rare vu que les allemands sont très nombreux à l'échelle de l'Europe. Ce n'est pas par plaisir que ces français font ça : il y a du boulot en Allemagne.

Par contre, tout le monde peut s'approprier l'espéranto
C'est faux aussi. Pas pour moi, mais j'en ai vu quelques uns. Le côté facile de l'espéranto tend à rebuter parce que, je pense, les gens s'imaginent qu'avec si peu de complexité on véhicule peu d'information. Effectivement, l'espéranto est très flexible en profondeur (pas besoin d'expliquer ici...) mais apparemment très pauvre. Il existe des allergiques, des débutants éternels, etc. C'est ainsi, on n'est pas tous doués pour les langues. Et il reste la motivation. Mais admettons qu'en première approximation que (presque) tout le monde peut s'approprier l'espéranto...

pour le donner à ses enfants et en tirer un profit incroyable. Ce n'est pas très rapide mais c'est une stratégie qui fonctionne.
Apprendre une langue à ses enfants ne s'improvise pas. Je vois bien que vous avez de l'expérience dans ce domaine, mais savoir faire n'est pas savoir faire savoir. De plus, en admettant que l'enseignement se passe bien il y a le côté sectaire de l'espéranto.

C'est-à-dire que donner une capacité hors norme à un enfant peut le marginaliser s'il est en décalage avec le tout venant. Bien sûr, on peut faire correctement les choses. Mais ce n'est pas donné à tout le monde.

J'ai appelé cette démarche : L'attitude Fidji. => J'ai synthétisé toutes ces explications dans une vidéo de 2 heures dont le principe est présenté dans cette page (...) (PS : Vous serez peut-être étonné mais ce n'est pas gratuit car le gratuit ne vaut rien, ne conduit qu'au manque de moyens et aux décisions économiquement aberrantes.
Je m'inscrit en faux contre votre vision du gratuit allant opportunément dans le sens de vos affaires. Personnellement, je contribue à des projets "gratuits", dans des logiciels libres et l'espéranto. Les logiciels libres ont une trajectoire similaire à l'espéranto avec deux initiateurs (Torvald et Stallman) et une foule ayant poursuivi et amplifié le phénomène. Si vous consultez mon site web, vous verrez mes contributions "gratuites". Nous construisons l'internet, et peut-être les futurs services que vous utiliserez plus tard. Pour rappel, la majorité des ordinateurs que vous utilisez (téléphone, box internet, modems, etc.) sont à base d'un système notoirement "gratuit", Linux !

En particulier, votre blog bilingue bénéfice lourdement du gratuit :
  • votre hébergeur, OVH, utilise Linux pour votre serveur mutualisé.
  • Le service qui sert les pages est un logiciel libre, Apache.
  • Le langage qui fait tourner votre blogue est Php, libre encore.
  • Le moteur de votre blogue est Wordpress, libre bien entendu.
  • Le format PDF de vos documents est ouvert (gratuit !)
  • Vos pages Google+ sont gratuites ! Enfin, c'est vous le produit...
  • Youtube, pour vos vidéos, est GRATUIT ! C'est chez Google... C'est visiblement du gratuit qui rapporte, loin de l'échec.

Ceux qui veulent du gratuit peuvent trouver des tonnes d'informations sur mon blog et sur internet, ils peuvent surfer indéfiniment. Si vous avez 200 heures à perdre vous arriverez, peut-être, à trouver les mêmes informations que celles que je vends !).
Je comprends donc que vous disposez des informations que vous savez que les gens cherchent, mais vous les gardez derrière un péage ? C'est-à-dire que vous travaillez une seule fois, et ensuite vous encaissez la rente ?

Pour les autres qui sont pressés et qui veulent des résultats plus vite, la voie du gratuit conduit à l'échec.
Bêtise, puisque le "gratuit" contribue énormément tant au succès des logiciels libres que de l'espéranto. C'est grâce à Lernu et tous les autres sites prônant l'espéranto que la communauté vit. À vous écouter, il faudrait monétiser l'accès de vortaro.net ?

Si vous connaissez des gens pressés, j'ai conçu la même chose mais sous forme de cadeau (...) Et si vous êtes pressés pour vos cadeaux de Noël, vous trouverez qu'il a beaucoup de valeur pour vous;-) Joyeux Noël à tous. Et à bientôt pour ceux qui seront à NR.
Je leur dirai de passer leur chemin. C'est aussi insupportable que toutes les méthodes d'anglais (et d'allemand peut-être) toutes découpées en tranches pour veiller à ce que l'apprenant n'aie jamais l'impression de maîtriser son sujet.

À tous ceux qui aiment l'espéranto, les langues construites, les logiciels libres, les gens et l'auto-détermination : ne visez ni le gratuit, ni le payant. Visez ce qui est loyal, qui vous aide, vous propulse sans arrière-pensée. Si vous voulez savoir, allez sur Lernu et les autres, des gens qui savent vous attendent. Et quand vous saurez, vous attendrez les suivants.


Tags de l'article :

Routeur Linksys WA200G compromis (TCP-32764)

03/01/2014 - Aucun commentaire

Le routeur Linksys WA200G (et d'autres) comporte une porte dérobée. Selon mes tests, la faille ne fonctionne qu'en local, c'est-à-dire (filaire et wifi authentifié). Un exploit écrit en python permet de révéler :
  • le compte et le mot de passe administrateur,
  • le compte et le mot de passe wifi,
  • le compte et le mot de passe internet.
J'ai contrôlé les ports ouverts sur le modèle en question, depuis le réseau local (nmap -PN -p 0-65535 W.X.Y.Z). Les ports 80(HTTP) et 443(HTTPS) servent à l'administration locale du routeur. Le 32764 ouvre grand la porte.

Depuis l'extérieur, aucun port n'est joignable sauf le 8080 si on a activé l'administration distance. Et celui-ci n'est pas utilisable (pour autant que je sache) pour exploiter la faille.

En résumé, Tout possesseur d'un de ces routeurs peut se faire voler ses mots de passe dès que quelqu'un obtient une connexion au réseau local, fil ou wifi !

Information d'origine parue chez Korben.

Tags de l'article :

Un cookie n'est ni un fichier, ni un programme !

20/12/2013 - Aucun commentaire

Les cookies ne sont pas des fichiers, ni des programmes. Ce sont des données placées par les sites web, qui peuvent se matérialiser sous la forme de fichiers, mais pas seulement. C'est une des choses qui rendent la navigation distinguable d'une autre lorsqu'on est connecté. Internet Explorer stocke un cookie par fichier, mais Firefox les stocke dans une seule base de données nommée cookies.sqlite. Les cookies de session eux, ne sont conservés qu'en mémoire il me semble. Nous sommes bien loin du fichier.

Concernant les cookies revenant après leur suppression, c'est principalement dû à Flash. Il utilise son propre lieu de stockage de données locales. Les publicitaires ont donc mis au point une application Flash, invisible, dont le seul travail consiste à télécharger les données déjà connues et reconstituer les cookies correspondants. C'est d'ailleurs le principal intérêt du "rich media" que de fournir un moyen de contourner la volonté de l'utilisateur en s'écartant des normes habituelles des pages web telles HTTP ou Javascript.

La politique demandant à l'utilisateur s'il souhaite autoriser les cookies est une absurdité. Si l'utilisateur refuse, comment ce choix est-il retenu ? Avec un cookie ? En cas de refus, il faudra lui poser la question à chaque fois ? Quand c'est un message surgissant, c'est systématiquement dérangeant. Quand c'est relativement discret dans la page, l'utilisateur risque de passer à côté. De fait, bloquer les cookies n'est pas la garantie que le site ne trace pas. Il reste possible de personnaliser la page web servie au visiteur pour y inclure un identifiant. Bien sûr, c'est moins efficace que les cookies puisque cet identifiant disparaît à la fermeture de l'application. Il existe aussi d'autres techniques plus délicates pour tracer les gens, comme le décrit Evercookie.

Que faire ?


Installer Flashblock sous Firefox pour interdire Flash par défaut, exiger qu'on clique pour exécuter ces programmes. À ma connaissance, sauf Youtube et autres, il n'est presque jamais nécessaire d'autoriser Flash a s'exécuter systématiquement. On devrait aussi installer une extension comme Self destructing cookies qui permet de détruire les données locale dès qu'on quitte le site les utilisant.

Il y a bien d'autres choses encore à faire.

Tags de l'article :

Google valide le traçage par courriel

14/12/2013 - Aucun commentaire

Gmail n'affichait pas les images par défaut. Il fallait faire quelque chose pour les afficher, ce qui avait un gros impact sur la divulgation de données personnelles. En effet, lorsqu'un spammeur envoie une image particulière, elle peut être dotée d'un identifiant unique. Si elle est affichée, le spammeur récupère l'adresse de la machine l'ayant ouverte, donc sa position approximative entre autres. Tout cela a pour but de valider l'existence de l'adresse de courriel, et envoyer plus de spam. Jusqu'à récemment, les ressources externes telles que les images n'étaient pas rapatriées par défaut. Ce qui était très bien.

Récemment, Google a annoncé télécharger l'image par défaut. Ce n'est pas l'ordinateur de l'utilisateur qui télécharge, mais l'un des ordinateurs de Google. Cependant, le spammeur conserve la donnée la plus précieuse, l'identifiant attaché au récipiendaire. Pas l'heure car Google télécharge une fois l'image et sert la même image si nécessaire aux destinataires suivants. Il est même possible qu'il télécharge l'image dès réception du courriel, sans que l'utilisateur n'en aie pris connaissance.

https://support.google.com/mail/answer/145919
Dans ce texte, indique comment « ne pas afficher automatiquement les images ». Implicitement, ça veut dire qu'on ouvre les vannes et c'est à vous maintenant de les fermer. À la Facebook. Il précise aussi que « Dans certains cas, les expéditeurs peuvent être en mesure de savoir si un individu a ouvert un message avec des liens d'image uniques. Comme toujours, chaque message est analysé afin de détecter tout contenu suspect et, si un expéditeur ou un message est considéré comme potentiellement dangereux, les images sont masquées et un message vous demandant si vous voulez voir les images s'affiche. »

Comment ça marche ?


Selon la méthode traditionnelle, les images sont ainsi dans les pourriels :

lesite.fr/le/chemin/image.jpg?id=tiF4aig7du
Si la ressource est chargée telle quelle, le spammeur a gagné. Mais ce n'est probablement par comme ça que Google va agir. Il va probablement retirer l'identifiant :

lesite.fr/le/chemin/image.jpg
Ce n'est pas suffisant. D'une part on modifie le document reçu par le destinataire, d'autre part il est possible que l'information après le point d'interrogation avait une vraie utilité désirée. Il est aussi possible que le serveur du spammeur (ou de l'expéditeur loyal) refuse d'envoyer l'image s'il n'y a pas d'identifiant fourni. Google pourrait falsifier l'identifiant mais il reste possible que le serveur adverse vérifie l'authenticité de l'identifiant et ne serve pas l'image.

Cette mesure n'est pas efficace, parce qu'on peut très bien introduire l'identifiant unique dans le nom de l'image :

lesite.fr/le/chemin/image_tiF4aig7du.jpg
Si Google repère l'identifiant unique dans l'image et le retire ?

lesite.fr/le/chemin/image.jpg
Cela aboutira à une erreur et l'image ne sera pas chargée. En récupérant quelques unes de ce type d'image, il pourra bien voir que ce sont les mêmes et économiser de l'espace mémoire. Mais il devra quand même télécharger ces images. Et donc trahir le destinataire.

À ce stade, le fournisseur peut dire « il y a du contenu étrange, nous ne l'affichons pas. Voulez-vous l'afficher ? ». Effectivement. Alors il suffit d'utiliser des liens comme suit :
  • lesite.fr/le/chemin/wood.jpg
  • lesite.fr/le/chemin/tree.jpg
  • lesite.fr/le/chemin/serpent.jpg
Et de conserver une correspondance, côté spammeur, entre le nom de fichier et son destinataire. Et là, partie terminée.

Peut⁻être ? Mais alors ça obligerait le spammeur a avoir autant d'images que de spammé ?

En fait non, il suffit toujours d'une seule. Un lien tel que ceux ci-dessus aboutit normalement à une image. Mais il est trivial de le faire aboutir à un programme côté serveur. Ce programme prend connaissance de l'identifiant (avec la table mentionnée précédemment) et sert l'image attendue. Il peut aussi fournir plusieurs images, par exemple des images identiques pour wood.jpg et tree.jpg mais une autre pour serpent.

Le verdict est clair : si Google n'empêche pas le chargement de ressources distantes, telles que les images, alors il trahit les récipiendaires des courriels. Cela dit, ils n'en sont pas à leur première fois. Et cela pourrait aussi leur apporter des affaires. C'est un point de vue largement spéculatif, mais il est maintenant possible à Google de favoriser certains clients (j'ai dit client, pas utilisateur/marchandise) à travers des réglages favorables.

Tags de l'article :

Faites un magazine sans publicité et je reviens.

15/10/2013 - Aucun commentaire

J'ai reçu un courrier postal du magazine Marianne m'invitant à me réabonner. Voici le courriel envoyé au courrier des lecteurs de Marianne expliquant la situation. Dans le texte joint, c'est Maurice SZAFRAN (actuel PDG de Marianne) qui s'exprime, aussi je lui répond directement.

Cher M. Szafran,

J'ai reçu l'offre spéciale découverte au magazine papier « Marianne ».
Je ne m'abonnerai pas, cependant je préfère en faire état ici parce
que ce magazine le mérite bien.

Par le passé, je l'ai beaucoup lu. Il m'a beaucoup appris et enseigné
énormément de choses nouvelles. À la longue, je me suis aperçu que
l'un de mes principaux ennemis avait grandement contaminé « Marianne »
et que j'en était arrivé au bout. Je m'étais désabonné après avoir
compté le nombre de pages réellement informatives.

Faites un magazine sans publicité et je reviens. Tout simplement. Je
conjecture que votre chiffre d'affaire vient plus de la publicité que
du lectorat. En ce sens, vos lecteurs ne sont pas vos clients. Et vos
vrais clients ont des intérêts assez radicalement opposés aux miens.

Tags de l'article :

Charte de la laïcité

09/09/2013 - Aucun commentaire

Le gouvernement français vient de révéler la charte de la laïcité à l'école. Elle devrait être affichée dans tous les établissements scolaires et, fait étonnant, elle contient bien des choses pertinentes ! Ci-après le texte officiel ; la mise en gras est d'origine. Mes commentaires suivent après.

LA CHARTE DE LA LAÏCITÉ A L’ÉCOLE
La nation confie à l’école la mission de faire partager aux élèves les valeurs de la République.
La République est laïque.
1. La France est une République indivisible, laïque, démocratique et sociale. Elle assure l’égalité devant la loi, sur l’ensemble de son territoire, de tous les citoyens . Elle respecte toutes les croyances.
2. La République laïque organise la séparation des religions et de l’Etat. L’Etat est neutre à l’égard des convictions religieuses ou spirituelles. Il n’y a pas de religion d’Etat.
3. La laïcité garantit la liberté de conscience à tous. Chacun est libre de croire ou de ne pas croire. Elle permet la libre expression de ses convictions, dans le respect de celles d’autrui et dans les limites de l’ordre public.
4. La laïcité permet l’exercice de la citoyenneté, en conciliant la liberté de chacun avec l’égalité et la fraternité de tous dans le souci de l’intérêt général.
5. La République assure dans les établissements scolaires le respect de chacun de ces principes.
6. La laïcité de l’école offre aux élèves les conditions pour forger leur personnalité, exercer leur libre arbitre et faire l’apprentissage de la citoyenneté. Elle les protège de tout prosélytisme et de toute pression qui les empêcheraient de faire leurs propres choix.
7. La laïcité assure aux élèves l’accès à une culture commune et partagée.
8. La laïcité permet l’exercice de la liberté d’expression des élèves dans la limite du bon fonctionnement de l’école comme du respect des valeurs républicaines et du pluralisme des convictions
9. La laïcité implique le rejet de toutes les violences et de toutes les discriminations, garantit l’égalité entre les filles et les garçons et repose sur une culture du respect et de la compréhension de l’autre.
10. Il appartient à tous les personnels de transmettre aux élèves le sens et la valeur de la laïcité, ainsi que des autres principes fondamentaux de la République. Ils veillent à leur application dans le cadre scolaire. Il leur revient de porter la présente charte à la connaissance des parents d’élèves.
11. Les personnels ont un devoir de stricte neutralité : ils ne doivent pas manifester leurs convictions politiques ou religieuses dans l’exercice de leurs fonctions.
12. Les enseignements sont laïques. Afin de garantir aux élèves l’ouverture la plus objective possible à la diversité des visions du monde ainsi qu’à l’étendue et à la précision des savoirs, aucun sujet n’est a priori exclu du questionnement scientifique et pédagogique. Aucun élève ne peut invoquer une conviction religieuse ou politique pour contester à un enseignant le droit de traiter une question du programme.
13. Nul ne peut se prévaloir de son appartenance religieuse pour refuser de se conformer aux règles applicables dans l’école de la République.
14. Dans les établissements scolaires publics, les règles de vie des différents espaces, précisées dans le règlement intérieur, sont respectueuses de la laïcité. Le port de signes ou tenues par lesquels les élèves manifestent ostensiblement une appartenance religieuse est interdit.
15. Par leurs réflexions et leurs activités, les élèves contribuent à faire vivre la laïcité au sein de leur établissement.

Il y a beaucoup de choses qui coulent de source, mais qui vont mieux en le disant. Par contre, il y a de vrais éléments de bon sens plutôt surprenant de la part d'un groupement politique orienté à droite (UMP et PS) qui se couchent devant les religions. Je résume les parties vraiment intéressantes du texte.

3. (...)Chacun est libre de croire ou de ne pas croire.
9. La laïcité (...)garantit l’égalité entre les filles et les garçons
10. Il appartient à tous les personnels (...)de porter la présente charte à la connaissance des parents d’élèves.
12. (...)Aucun élève ne peut invoquer une conviction religieuse ou politique pour contester à un enseignant le droit de traiter une question du programme.
13. Nul ne peut se prévaloir de son appartenance religieuse pour refuser de se conformer aux règles applicables dans l’école de la République.

Je résume ces points intéressants : On ne peut pas rabaisser les filles sous prétexte de religion. L'école doit être active en faisant parvenir la charte à tous les parents d'élève. Une religion ne devrait plus permettre de déroger aux débats, ni aux règles et il n'est pas indispensable de choisir un camp.

Tags de l'article :

Recover a broken crypt boot in Debian

05/04/2013 - Aucun commentaire

I've got encrypted disks that runs a Debian system. All things went fine until I remove /etc/crypttab. I thought it was useless because this file is in an encrypted volume. Why would the system need this file if it's not reachable at boot? Indeed, I was wrong.

It worked until the next kernel update. Since then, I had to manually mount the encrypted stuff before the kernel loads.
cryptsetup luksOpen /dev/xxx diskName luks none
lvm
vgchange -ay diskName
The fatal kernel update ran update-grub which rebuilds that initrd image. This image is loaded at the very start, before the kernel itself, to provide it with useful things like access to the encrypted data! The initrd must be told to handle the encryption: which disks, which way to encrypt, which logical volume, and so on. This configuration was precisely erased when the update-grub did not see any /etc/crypttab. Of course, I put it back again but nothing worked anymore.

The solution is to modify the initrd at /conf/conf.d/cryptroot with:
target=disk_crypt,source=/dev/disk,key=none,lvm=my-lvm
I installed a Debian inside a virtual machine (Virtual Box) with an approaching configuration to get clues.

Tags de l'article :

Le sénat protège ses actifs immobiliers

08/03/2013 - Aucun commentaire

Des sénateurs ont déposé une proposition de loi visant à limiter la baisse de prix des commerçes en ligne. Cette limitation n'est pas corrélée à la rentabilité des commerçes en ligne mais à la compétitivité des commerçes de centre-ville. Pourquoi ne pas laisser faire la destruction créatrice chère à ceux qui n'ont pas à la subir ? Parce qu'ils vont la subir quand même. Ci-après le texte de la proposition de loi à laquelle j'ai ajouté mes interprétations dans une autre couleur.

Proposition de loi visant à protéger les commerçants de centre-ville
N° 362 -- SÉNAT -- SESSION ORDINAIRE DE 2012-2013 -- Enregistré à la Présidence du Sénat le 15 février 2013

PROPOSITION DE LOI
visant à protéger les commerçants de centre-ville,

PRÉSENTÉE
Par Mme Caroline CAYEUX, MM. Gérard LARCHER, Jean-Noël CARDOUX, Antoine LEFÈVRE, Mme Marie-Thérèse BRUGUIÈRE, MM. Raymond COUDERC, André TRILLARD, Joël BILLARD, Christian CAMBON, Jean-Paul FOURNIER, Robert LAUFOAULU, Charles REVET, Mlle Sophie JOISSAINS, MM. René BEAUMONT, Philippe LEROY, Bruno SIDO, Mme Marie-Annick DUCHÊNE, MM. Alain HOUPERT et Marcel-Pierre CLÉACH,


EXPOSÉ DES MOTIFS

Mesdames, Messieurs,

Le commerce de centre-ville connaît de graves difficultés depuis longtemps. C'est difficile d'y aller, les parkings sont hors de prix. Il y a quelques semaines nous apprenions que l'entreprise Virgin Megastore, qui emploie plus d'un millier de salariés, incapable de régler ses dettes, déposait son bilan, entreprise qui avait elle-même été responsable, comme d'autres grands distributeurs de produits culturels, de la disparition de nombreux magasins de vente de disques et autres commerces de centre-ville ! Elle reçoit à son tour la douleur qu'elle a infligée à d'autres. Cette entreprise est concurrencée par les grandes plateformes de distributions de ces produits, situées hors de France. Nous n'avons aucun moyen de les taxer ni de leur subtiliser leurs revenus, ce qui n'est pas souhaitable.

Le cas de cette célèbre entreprise reflète la situation dans laquelle se trouvent aujourd'hui des milliers de commerce de centre-ville, même de taille importante, qui doivent faire face à une concurrence impitoyable du commerce en ligne.

Tous les élus locaux sont conscients des difficultés que connaissent les commerçants de centre-ville et de la nécessité de pérenniser leur structure. En effet, de ces commerces dépendent la vitalité de nos territoires, mais également la pérennisation d'un lien entre les gens. Nous serions hélas forcés de vendre nos propriétés immobilières car nos locataires ne pourront ou ne voudront plus payer. Le lien serait rompu.

Il est du devoir de la représentation nationale, dans la continuité des lois Galland et Chatel, de mieux concilier les commerces de vente en ligne et les commerces de proximité, dans la continuité de la sauvegarde de nos rentes immobilières.

Aujourd'hui, indépendamment de la marge nécessaire à la pratique d'une activité commerciale, les prix pratiqués par les distributeurs de centre-ville sont souvent beaucoup plus importants que les prix pratiqués par leurs fournisseurs sur leur site de vente en ligne. Nous devrons à terme devoir baisser les loyers des baux commerciaux ou accepter la moins-value à la revente.

Les distributeurs de centre-ville sont ainsi réduits à de simple vitrine d'exposition ou les gens viennent repérer les produits pour ensuite les acheter en ligne. Les gens ont l'air d'avoir compris le système et cherchent à contourner ce que nous avons bâti.

Plusieurs élus locaux craignent donc pour la pérennisation de l'activité économique et commerciale de leurs centres villes et pensent qu'il faut mieux encadrer les relations fournisseurs et distributeurs.

La proposition de loi qui vous est soumise vise à empêcher que les fournisseurs puissent vendre sur leur site internet à un prix inférieur au prix auquel ils vendent aux distributeurs. Les prix des produits vendus en ligne pourraient ainsi demeurer inférieur, mais dans une proportion acceptable. Ainsi, nous pourrons continuer à encaisser les loyers sans travailler.

Telle est la proposition de loi que je vous demande d'adopter, chers amis, propriétaires, amis de propriétaires, et grands électeurs.

PROPOSITION DE LOI

Article unique

Le I de l'article L. 442-6 du code de commerce est complété par un alinéa 14° ainsi rédigé :

«14° De vendre sur un site internet à un prix inférieur au prix d'achat négocié entre fournisseur et distributeur, augmenté de la marge brute du distributeur, moins de trois mois après la mise sur le marché du produit par le fournisseur. »



Ce qui fait que l'article sus-mentionné devient :

Article L442-6
Modifié par LOI n°2010-874 du 27 juillet 2010 - art. 14 (V)

I.-Engage la responsabilité de son auteur et l'oblige à réparer le préjudice causé le fait, par tout producteur, commerçant, industriel ou personne immatriculée au répertoire des métiers :

1° D'obtenir ou de tenter d'obtenir d'un partenaire commercial un avantage
(...)
14° De vendre sur un site internet à un prix inférieur au prix d'achat négocié entre fournisseur et distributeur, augmenté de la marge brute du distributeur, moins de trois mois après la mise sur le marché du produit par le fournisseur.


Ce qu'on traduira par :
(il est interdit de)
14° De nuire aux vendeurs déjà établis en centre-ville payant un loyer à des spéculateurs ayant un pouvoir législatif.

Tags de l'article :

Viber ou le radin dans 60 millions de consommateurs

06/03/2013 - 1 commentaire

Le magazine 60 millions de consommateurs appâte le couillon. Dans son n°480 de mars 2013, page 61, il préconise d'installer l'application Viber sur Android. L'article de la série le coin du radin propose encore au couillon de base d'être nécessairement plus malin qu'un commercial avisé. Échec ! Voire complicité objective de 60 millions qui n'a jamais démontré de compétence avec tout ce qui comporte une puce, sauf un chien.

Voici l'article, titré appelez gratuitement, j'ai ajouté le gras et supprimé certaines parties inutiles :
Le radin a découvert avec enchantement qu'il pouvait envoyer des messages et appeler de son smartphone sans rien payer de plus. Et cela partout dans le monde, quel pied ! Il suffit de télécharger une application baptisée Viber, (...) Sans pub intempestive, de surcroît, il est même possible de recevoir des appels quand l'application est fermée. Un service parfait pour ceux qui ont un forfait limité dans le temps. Et ceux qui voyagent.

Je me pince le nez ! Je vais prendre tout ça par ordre chronologique.

radin

Ça n'existe pas. Généralement, toute économie se traduit par une perte quelque part ; ou bien ça voulait dire que le problème était déjà du côté du couillon. Genre « économisez le chauffage : en hiver, fermez vos fenêtres ». Le pognon qu'un radin reçois, soit il pique à quelqu'un, soit il évite de le donner à quelqu'un. C'est la théorie. Voilà la pratique : le couillon, plus malin que le commercial par hypothèse, croit éviter de donner son pognon, suppose qu'il le prend à quelqu'un alors qu'évidemment, c'est le contraire.

enchantement ... quel pied

Je désespère déjà du sort des femmes quand je vois la presse qui s'adresse à elles. Mais bon, ce genre de trucs étaient normalement cantonnés là-bas. Et bien non ! On a le droit aussi aux commentaires trolol-kikoo-tavu. Comment on les plume ces idiots, alors qu'on est trop malins...

pub intempestive

Le couillon doit nécessairement accepter de la pub s'il ne paye pas. Forcément. Parce que le gratuit, c'est forcément de la merde. De la part d'un magazine suspicieux vis-à-vis des articles à bas prix, il y a une logique. Cependant, on n'utilise pas un téléphone comme une machine à laver. La seule bonne dose de publicité, c'est zéro.

voyagent

C'est bien connu, la connexion internet ne coûte rien en France. Elle ne coûte d'autant plus rien quand on voyage... à l'étranger. Le couillon, quand il voyage, ne regarde pas à la dépense. Non non non, il ne va rien payer en téléphone. Juste un peu en frais internet. Une broutille, mais pas seulement.



En plus du ton affligeant qu'utilise le magazine, de l'incompétence crasse à l'œuvre, il se rend objectivement complice d'une arnaque. Qui est hélas assez récurrente sur Android. L'arnaque apparaît quand vous on s'intéresse aux privilèges que demande Viber à l'installation, on obtient ce qui suit. J'ai enlevé quelques détails techniques superflus, l'essentiel est là et déjà bien long. J'ai mis en gras les extraits importants.

  • Permet à l'application d'appeler des numéros de téléphone sans votre intervention. Cette autorisation peut entraîner des frais ou des appels imprévus. (...)
  • Permet à l'application d'envoyer des messages SMS. Cette autorisation peut entraîner des frais inattendus. (...)
  • Permet à l'application de prendre des photos et de filmer des vidéos avec l'appareil photo. Cette autorisation lui permet d'utiliser l'appareil photo à tout moment sans votre consentement.
  • Permet à l'application d'obtenir votre position exacte à l'aide du récepteur satellite GPS (Global Positioning System). (...)
  • Permet à l'application de recevoir et de traiter les SMS. Cette autorisation lui donne la possibilité de surveiller ou de supprimer les messages envoyés à votre appareil sans vous les montrer.
  • Permet à l'application de modifier les SMS stockés dans votre téléphone ou dans votre carte SIM. (...)
  • Permet à l'application de lire tous les SMS, quels que soient leur contenu et leur niveau de confidentialité.
  • Permet à l'application d'afficher la configuration Bluetooth de la tablette, ainsi que d'établir et d'accepter des connexions avec des appareils associés. (...)
  • Permet à l'application de lire les données concernant vos contacts qui sont stockées sur votre tablette, (...).
  • Permet à l'application d'accéder aux fonctionnalités téléphoniques de l'appareil. Cette autorisation permet à l'application de déterminer le numéro de téléphone et les identifiants de l'appareil, si un appel est actif et le numéro distant connecté par un appel.
  • Permet à l'application de récupérer des informations sur des tâches en cours d'exécution et récemment exécutées. L'application est ainsi susceptible d'obtenir des informations sur les applications utilisées sur l'appareil.

Voilà. On pense gruger le fournisseur de service téléphonique, mais on va l'engraisser sur la connexion internet ; surtout à l'étranger. Plus encore, on va engraisser, certes pas avec son propre pognon, un prestataire inconnu qui promet la lune. Le couillon va se mettre à poil et donner pour ainsi dire l'accès complet à son téléphone. Mais il va faire plus que se livrer lui-même. Il va dénoncer ses contacts à leur insu à une entreprise dont vous ne savez rien.

Revenus


Au fait. Comment l'entreprise Viber vit ? L'objectif d'une entreprise étant de moins dépenser d'argent qu'elle en gagne, qui paye le développement et la maintenance de l'application et les serveurs dédiés à la faire fonctionner ? Parce que si quelqu'un installe Viber et qu'une autre aussi, comment ils font pour se contacter sans qu'il n'y ait un intermédiaire pour fournir un genre de numéro de téléphone ? Viber doit maintenir les services en ligne pour que ça fonctionne, et cela a un coût.

Voici la partie intéressante de leurs conditions de confidentialité, en anglais seulement :
In order to provide you with Viber products you have requested, Viber may sometimes, if necessary, share your Personal Information (excluding your address book and related information) and traffic data with trusted partner service providers and/or agents, for example: banking organizations or other providers of payment and analytical services, customer support, or hosting services. Viber will always require these third parties to take appropriate organizational and technical measures to protect your personal data and traffic data and to observe the relevant legislation. Viber will never share your address book information with any third party, except as may be required by law (see below).

Je traduit l'esprit : Viber partagera vos informations personnelles avec un partenaire qui aura payé pour, à l'exception du carnet d'adresses. Les expressions telles que if necessary (arrivera un moment où ce sera nécessaire) et trusted partner (la confiance, ça s'achète) seront du vent dès que se profilera l'opportunité d'abuser de ses clients. Quand à leur promesse de ne pas divulguer le carnet d'adresses (sauf pour raisons légales etats-uniennes) c'est un faux-nez. Ce qu'il sont susceptibles de vendre n'est pas les coordonnées des gens mais les interconnexions entre eux.

Tout ça pour de la publicité ciblée ? De toutes façons quand vous utilisez un service, il faut toujours se demander comment il se finance, qui est le client, qui est le produit.

Tags de l'article :

Fossil, a versionning system all-in-one: short review

24/02/2013 - Aucun commentaire

Git branching model Besides big players like Mercurial and git exists Fossil. It is a Decentralized Version Control System as the two others. It's main difference is that not only does it embed the versionning system, but also provides a wiki and a bugtracker. So when you clone such a repository you also get the wiki and the bugtracker. This has obvious advantages: you don't need to connect to any server to update documentation or to fill in a bug. Do your job as you would do for your source code, and voilà!

Wiki

I gave it a try. I don't like the wiki itself. It's not that the syntax or whatsoever is not relevant, but there's a cumbersome problem synchronizing a wiki with the source code. Say there is a development branch and a stable branch. You update the wiki of the development branch, write things about what you develop. Then it's fine. Say you rewrite something about what already exists in the stable branch. How do you propagate these changes from development to stable branch? You could try a copy/paste, if there's not many modifications. But, normally, you think of a merge. And it works. But, how can you explain a merge at this stage: the production branch merges a development branch. Developers may think that a hotfix was just picked up!

The problem is solved on Mercurial/Git by maintaining a wiki in a separate repository.

Indeed, that 's a common problem. The same problem occurs when you deal with external libraries. In Subversion, you create vendor branches, in Mercurial, you create sub-repositories or the like. The wiki is almost useless as its lifetime is not correlated to that of the program. Indeed, Fossil itself don't use its wiki! They say We find that embedded documentation works better than wiki for documenting Fossil itself since embedded documentation is versioned along with the source code, and so given a particular version of source code, it is a simple matter to find the corresponding documentation.

Bug tracking

I'd rather dream of a sort of replicated database to which I can plug my own front end. In most of projects, we may either deal with bugs by email, dedicated software or something else. There's many ways to do this, each of them with advantages and inconveniences. So, why would we be happy with the only way of handling bugs?

This problem is not totally solved by the two others repository providers BitBucket and GitHub, as they provide both such a tool but without a way to synchronize it out of their website. Contrary to the wiki, it's not easy to store the contents of the bug tracker in a repository. If one existed, it would be awesome.

Rebase

The last important thing I'm concerned about, is the rebase. About rebase and all history-modifying tools, Fossil says (3.8 Audit Trail) Fossil deliberately avoids rewriting history. Fossil strives to follow the accountants philosophy of never erasing anything. Mistakes are fixed by entering a correction, with an explanation of why the correction is needed. This can make the history of a project messy, but it also makes it more honest. The lack of a "rebase" function is considered a feature of Fossil, not a bug. (I highlighted some words)

It's just stupid. Everyone would like to be perfect. But we know, that, hidden in the heart of our local repositories, we all are pigs. We all need, at a time, to rewrite the history. Especially to rebase.

Rebasing Here is an example. On the picture besides, you can see a typical use case:
* Someone made C0, C1, C2.
* Alice creates locally her commit C3.
* Bob push his commit C4.

If Alice pushes, she would create a new branch as her commit is linked to C2. What she can do is to pull the changes to her side, getting C4 and to rebase. Her commit C3 will be linked to C4. All the commits are now in a single line. Fossil wants the history to be fully visible. In this case, she would need to merge, leaving her dirty and unwanted branch at the sight of everyone.

Under Subversion, which is a centralized system, the problem is similar. Because people don't want to make dirty commits, they do late and risky commits. Please remind that in Subversion, any commit is equivalent to a push in the distributed systems. The very good point in distributed systems is that their permit such history manipulation before sending any commit. Personally, I sometimes used Mercurial in conjunction with Subversion to locally make some mercurial-commits, branching before making the subversion commit.

Is it used

Yes. Making a google query against a typical sentence visible in the web interface, I found some links:

So what?

I don't recommend the use of Fossil. The idea behind an embedded wiki and bugtracker is valuable, but not the lack of history management.

Tags de l'article :

"Journalistes"

21/02/2013 - Aucun commentaire

Au cours d'une manifestation d'agriculteurs, deux journalistes ont été pris à parti par des manifestants. Leur caméra a été détruite. Faut-il s'étonner que les journalistes ne soient pas les bienvenus ? Source, http://www.arretsurimages.net/contenu.php?id=5633 (payant).

Sans préjudice sur le pourquoi du comment, et même à supposer que des méchants manifestants ont tapé sur les gentils journalistes, cette histoire ne m'étonne pas. Depuis des années, des abrutis de "journalistes" arrivent avec leurs idées préconçues et la conclusion de leur article, commandé, déjà en tête. Alors quand ont les voit débarquer, ce n'est guère étonnant de voir le résultat. Si ça pouvait apprendre leur métier à cette profession largement orientée, ce serait super. Et sinon, il faut recommencer à repousser la désinformation. Encore.

Il a des exceptions. Par exemple ArrêtSurImage, MediaPart et le Canard enchaîné, pour citer les principaux. Sans publicité, il me semble, et (donc) sans donneur d'ordre. Les autres, financés aussi par la publicité, s'accrochent à nos impôts pour subsister. Qu'il crêvent. Et que leurs salariés retournent à l'école. Et que Google les dé-référence, mais bon, ils ont trouvé le moyen d'arnaquer l'État français, consentant, et ses "journalistes" sur commande pour recevoir un peu de lumière depuis Internet.

Je propose donc qu'ArrêtSurImage dépêche une équipe sur place pour voir comment ça se passe. Ce n'est pas son objectif, je sais, mais ce serait instructif.

Tags de l'article :

La sudo - kanto

24/01/2013 - 1 commentaire

La sudo

(Originale de Nino Ferrer, Teksto el Esperanto24)

Similas land' jena al Luiziano
Al Itali'
Vestaĵoj pende sekiĝas sur teraso
Kaj belas ĝi

rekanto:

Similas al Sud'
Longe daùras temp'
Kaj vivo sendub'
Pli ol jarmilion-on'
Ĉiam dum belsezon'

Infanoj multas kaj rulas sin dum ludo
Kun hundoj tri
Eĉ estas kat', ruĝaj fiŝoj kaj testudo
Ne mankas neni'

rekanto

Sed iam ajn nepros tempo por milito
Ja scias ni
Ni ĝin ne ŝatas kaj rifuzas sen spito
Kulpigas sorton ni

Domaĝe por Sud'
Ĉe ĉi latitud'
Jes vivintus ni
Pli ol jarmilion-on'
Ĉiam dum belsezon'

Tags de l'article :

Conte du pêcheur mexicain

19/12/2012 - 1 commentaire

Au bord de l’eau, dans un petit village côtier mexicain, un bateau rentre au port, ramenant plusieurs thons. L’Américain complimente le pêcheur mexicain sur la qualité de ses poissons et lui demande combien de temps il lui a fallu pour les capturer.

- Pas très longtemps, répond le Mexicain.

- Mais alors, pourquoi n’êtes-vous pas resté en mer plus longtemps pour en attraper plus ? demande l’Américain.

Le Mexicain répond que ces quelques poissons suffiront à subvenir aux besoins de sa famille. L’Américain demande alors :

- Mais que faites-vous le reste du temps ?

- Je fais la grasse matinée, je joue avec mes enfants, je fais la sieste avec ma femme. Le soir, je vais au village voir mes amis. Nous buvons du vin et jouons de la guitare. J’ai une vie bien remplie.

L’américain l’interrompt :

- J’ai un diplôme de l’Université de Harvard et je peux vous aider. Vous devriez commencer par pêcher plus longtemps. Avec les bénéfices dégagés, vous pourriez acheter un plus gros bateau. Avec l’argent que vous rapporterait ce bateau, vous pourriez en acheter un deuxième et ainsi de suite jusqu’à ce que vous possédiez une flotte de chalutiers. Au lieu de vendre vos poissons à un intermédiaire, vous pourriez négocier directement avec l’usine, et même ouvrir votre propre usine. Vous pourriez alors quitter votre petit village pour Mexico City, Los Angeles, puis peut-être New-York, d’où vous dirigeriez toutes vos affaires.

Le Mexicain demande alors :

- Combien de temps cela prendrait-il ?

- 15 à 20 ans, répond le banquier américain.

- Et après ?

- Après, c’est là que ça devient intéressant, répond l’Américain en riant, quand le moment sera venu, vous pourrez introduire votre société en bourse et vous gagnerez des millions.

- Des millions ? Mais après ?

- Après, vous pourrez prendre votre retraite, habiter dans un petit village côtier, faire la grasse matinée, jouer avec vos petits-enfants, faire la sieste avec votre femme et passer vos soirées à boire et à jouer de la guitare avec vos amis.

- A quoi bon perdre toutes ces années ! répondit le pêcheur, j’ai déjà tout ça ! Bonne journée monsieur !

© Auteur inconnu

Tags de l'article :

Divulgation de l'adresse du posteur d'image sur Imageshack.us

17/11/2012 - Aucun commentaire

Le site ImageShack est un service d'hébergement d'images. Après le téléversement, un lien permet de charger l'image depuis leur site. Leur site expose une interface d'accès permettant de récupérer des informations sur les images. Cet accès est protégé par un mot de passe. Ce dernier a été divulgué via Mikescoding qui en a publié une preuve de concept, utilisable depuis son site web.

Cependant, l'hébergeur semble avoir colmaté la faille puisque le site ne retourne plus les données escomptées.

Voici comment cela fonctionne :

  1. On part du lien d'une image, celle donnée en exemple chez Mikescoding :
    http://img236.imageshack.us/img236/3432/as8132329zz9.jpg.
  2. On extrait le nom de l'image sans son extension :
    as8132329zz9
  3. On calcule le condensat en utilisant le mot de passe :
    MD5("as8132329zz9"+"ta onomata")==d907da5f86d1e6db1c00e31eba07f20a
  4. On ne retient que les dix premiers caractères :
    d907da5f86
  5. On génère le lien en accolant le nom du fichier et le condensat :
    http://img236.imageshack.us/img236/3432/as8132329zz9.d907da5f86.xml

Informations obtenues

<imginfo xmlns="http://ns.imageshack.us/imginfo/7/" version="7" timestamp="1244589886">
  <rating>
    <ratings>0</ratings>
    <avg>0.0</avg>
  </rating>
  <files server="236" bucket="3432">
     <image size="661569" content-type="image/jpeg">as8132329zz9.jpg</image>
     <thumb size="2847" content-type="image/jpeg">as8132329zz9.th.jpg</thumb>
  </files>
  <resolution>
    <width>2457</width>
    <height>2411</height>
  </resolution>
  <class>r</class>
  <visibility>yes</visibility>
  <uploader>
    <ip>122.169.132.61</ip>
  </uploader>
</imginfo>
On extrait l'adresse IP : 122.169.132.61

Code source en Php

Il est à lancer en ligne de commande et ignore tous les mécanismes de vérification, mais il est plus facile à lire. Il fournit l'url à appeler pour récupérer le fichier XML contenant l'adresse IP. La version propre se trouve chez Mikescoding.

//SOURCE: http://mikescoding.com/imageshack/index.phps
$secretWord = "ta onomata";
$url = "http://img236.imageshack.us/img236/3432/as8132329zz9.jpg";
preg_match('#^(.*)/([^/]+)\.[^.]*$#', $url, $matches);
$path = $matches[1];
$fileName = $matches[2];
$hashStart = substr(md5($fileName.$secretWord), 0, 10);
$xmlUrl = $path.$fileName.".".$hashStart.".xml";
echo "url: $url\n";
echo "md5: $hashStart\n";
echo "xml: $xmlUrl\n";
Qui renvoit :

url: http://img236.imageshack.us/img236/3432/as8132329zz9.jpg
md5: d907da5f86
xml: http://img236.imageshack.us/img236/3432as8132329zz9.d907da5f86.xml

Analyse

J'espère que le mot de passe n'était propre qu'à un seul partenaire. S'il faut l'invalider, ça n'impactera que lui. Sinon, ça veut dire qu'il faut communiquer le nouveau mot de passe à tout le monde. La bonne pratique serait de fournir à chacun des partenaires une clé unique, révocable et spécifique à lui. Cela se fait pour les flux de syndication (RSS) nécessitant une authentification, la clé est inclue dans la requête et révocable par le fournisseur ou par l'utilisateur en cas de divulgation.

Tags de l'article :

Small birthday management

11/09/2012 - Aucun commentaire

Instead of using heavy software, one can prefer using very small tools to do one single action. I did this with the birthday program. As a command line program, it has no graphical interface. The user just have to make a text file containing the birthdays and to call the executable birthday.

For instance, say I made a ~/.birthdays as is:

Linus Torvalds=28/12/1969
Richard Stallman=16/03/1953

When I launch birthday, the program searches for birthdays within 21 days, which is the default behavior. If there's none, nothing appears. Otherwise, messages about birthdays appears. For instance, I typed birthday -W999 to make it search all birthdays (within 999 days...):

Linus Torvalds is 43 years old in 3 months, 2 weeks and 3 days' time.                                                                                                               
Richard Stallman is 60 years old in 6 months and 5 days' time.

Te best is to do something to automatically check the birthdays. Here comes the crontab -e. Just insert the command at the reboot and you will get a local message when something outputs. It's also possible to insert the command in your ~/.bashrc when you connect to the command line.

The project is hosted on SourceForge and is available in Debian Linux.

Tags de l'article :

Cryptanalyse de HashMask

09/05/2012 - 7 commentaires

Le chiffre de Vernam est démontré incassable, mais difficilement utilisable en pratique car il faut, entre autres, ne pas réutiliser la clé. L'algorithme HashMask est équivalent à un Vernam affaibli, où il ne faut pas réutiliser la clé mais qui est bien plus courte.

Analyse


La clé sert de générateur à une suite périodique et pseudo-aléatoire constituant le masque. Le masque est ensuite appliqué via un ou-exclusif.

chiffré = clair XOR masque(clé)

Comme nous le verrons plus bas, le masque est plutôt robuste. C'est sûrement très difficile d'entrer par cette porte blindée. Alors on entre par la fenêtre. À une clé donnée correspond un masque et un seul. Si on chiffre deux messages avec cette clé, nous obtenons ceci :

C1 = m1 XOR masque
C2 = m2 XOR masque

C'est la faiblesse fatale typique du Vernam, le masque jetable, dont il ne faut pas réutiliser la clé sous peine d'être vulnérable à l'attaque par mot probable. Pas la peine de chercher la clé, puisqu'il suffit d'extraire le masque. Cet algorithme est inutilisable en pratique, puisqu'il faut refaire une clé à chaque fois.

Cependant, poursuivons l'étude du masque. Le vrai chiffrement invulnérable, Vernam, est contraignant du fait de la taille de la clé, qui doit être au moins égale à celle du clair. Est-il possible de sacrifier un peu la sécurité au profit de plus de fonctionnalité, c'est-à-dire avec un simple mot de passe à transmettre ?

Dans la suite, nous supposerons que le mot de passe n'est pas vulnérable à une attaque par force brute.

Le masque


L'algorithme opère un ou-exclusif entre le clair et le masque. Chaque bit du masque est extrait du flot du masque. Il s'agit d'un chiffrement par flot.

Description


Le flot est composé de segments de 256 bits, générés au moyen de l'algorithme suivant :

SI vide(segment) ALORS segment = hash(clé)
segment = hash(segment+clé) // concaténation, "a"+"b"="ab"
ENVOI segment

descriptif Qui fournit les sorties suivantes, toutes de 256 bits :
1:
hash(hash(clé)+clé)
2:
hash(hash(hash(clé)+clé)+clé)
3:
hash(hash(hash(hash(clé)+clé)+clé)+clé)
4:
(...)

Ne pas utiliser
hash(clé)
comme premier segment généré permet de ne pas être vulnérable à une attaque par dictionnaire. La fonction de hachage (à sens unique) est SHA-256. La salage avec la clé empêche l'utilisation de tables arc-en-ciel. Cela correspond au mode d'opération Output Feedback, hash(clé) étant le vecteur d'initialisation.

Dès lors que le flot rencontre à nouveau le même segment, on a trouvé un cycle puisque chaque segment est toujours fonction du segment précédent, à clé fixée. Comme il y a un nombre limité de segments possibles (2^256 =~ 10^77), on tombe forcément sur un cycle. Un masque est donc composé d'une séquence de segment suivie d'un cycle de séquence de segment. Compte tenu de la méthode utilisée, je conjecture que la longueur des cycles est très grande et très probablement toujours plus grande que le clair. Si ce n'était pas suffisant, on pourrait utiliser d'autres algorithme de hachage tels que SHA-512...

Cela veut dire qu'en pratique, on extrait une suite imprévisible, qui pourrait faire l'affaire en tant que masque jetable mais seulement parmi un sous-ensemble des masques possibles, déterminés par l'espace des clés. Évidemment, il n'y a pas toutes les possibilités de masque comme pour le Vernam, et c'est pour ça que cet algorithme n'est pas inconditionnellement invulnérable, même si on n'utilise qu'une seule fois la clé. À supposer que la suite pseudo-aléatoire est robuste, et que la clé est choisie judicieusement, la sécurité semble intéressante. Une attaque classique nécessiterait un clair grand par rapport à un masque doté d'une période hypothétiquement très grande.

Attaques sur le masque


En fait, l'implémentation de référence stocke le nom de fichier à la fin du chiffré. Cela ouvre l'accès aux derniers bits du masque, ce mot probable permet de débuter la cryptanalyse. Cela a pour but, visiblement, de transmettre un fichier au nom générique, le vrai nom de fichier n'étant connu que lors du déchiffrement. On ignorera cette faille de sécurité car la fonctionnalité qu'elle apporterait est faible par rapport au risque pris.

Lors d'un chiffrement à clair connu, on retrouve facilement les segments. la connaissance d'un segment permet de caractériser très probablement la clé et de deviner si deux chiffrés utilisent la même clé. La connaissance de deux segments (consécutifs serait le mieux) ouvre une attaque par force brute sur la clé car l'un est toujours fonction de l'autre et de la clé. La connaissance de tous les segments utilisées pour un chiffré donné ne permet pas de déduire les segments suivants, du fait du salage avec la clé.

La période du masque est la plus courte distance entre deux segments identiques. La connaître est équivalent à connaître la clé. Et réciproquement.

Cryptanalyse


Problème posé


Soient C1, C2, C3 les trois chiffrés d'un clair c avec les clés k1, k2, et k3. De même, soient D1, D2, D3 les trois chiffrés d'un clair d avec les clés k1, k2 et k3. On sait que le texte de c est inclus dans d. Le texte original du problème est ici.

Étant connus c, C1, C2, C3, D1, D2, D3, trouver d. On ne connaît pas les clés k1, k2 et k3.

Preuve formelle de la résolution


On suppose que tous les fichiers font la même taille, et on a :

C1 = H(k1,c) et C2 = H(k2,c) et C3 = H(k3,c) avec H notre fonction de chiffrement.
D1 = H(k1,d) et D2 = H(k2,d) et D3 = H(k3,d)

On a vu précédemment qu'en général : X = H(clé,Y) = Y ⊕ masque(clé)

Avec M1, M2 et M3 les masques correspondants aux clés k1, k2 et k3 :

C1 = c ⊕ M1 et C2 = c ⊕ M2 et C3 = c ⊕ M3
D1 = d ⊕ M1 et D2 = d ⊕ M2 et D3 = d ⊕ M3.

Il vient que :
d = D1 ⊕ M1 ainsi que M1 = C1 ⊕ c
d = D2 ⊕ M2 ainsi que M2 = C2 ⊕ c
d = D3 ⊕ M3 ainsi que M3 = C3 ⊕ c

Et donc :
d = D1 ⊕ C1 ⊕ c
d = D2 ⊕ C2 ⊕ c
d = D3 ⊕ C3 ⊕ c

C1, C2, C3, D1, D2, D3 et c étant connus, on dispose de trois façons de retrouver le clair d.

Cette méthode ne peut pas décrypter au-delà de la longueur du clair c connu. Les informations concernant le clair d, situées au-delà de la longueur de c sont inaccessibles parce qu'on ne sait pas calculer le masque au-delà du clair.

Question ouvertes


Cet algorithme n'a rien inventé, RC4 est basé sur un principe similaire. Il a été cassé, mais en contexte de réutilisation de la clé.

Quelle est en moyenne la longueur du masque ?

Peut-on prédire les segments suivants à partir d'un segment connu ? De deux ? De trois ? etc.

Peut-on retrouver la clé à partir d'un segment ? De deux ? etc.

Quelle est la probabilité que deux clés soient dépendantes ? C'est-à-dire que l'une génère une séquence incluse dans l'autre.

Encore une fois, merci à Dimitri MESTDAGH, le développeur de l'implémentation de référence et à Philippe LHEUREUX, le concepteur de l'algorithme.

EDIT: code source ici.

Tags de l'article :

Cryptanalyse de l'algorithme CENAv03

22/04/2012 - 3 commentaires

J'ai cassé l'algorithme CENA en m'aidant de l'implémentation de référence. Le langage de programmation utilisé est Php. le code source en licence libre GPLv3+ est téléchargeable ici.

Je me suis contenté d'attaquer assez souvent un seul caractère. La technique est donc basique ici.

Dans la suite, il ne sera jamais question d'octet, mais toujours de caractère. Et pour conserver une relative simplicité, il sera fait mention de lettres clair et de lettres chiffrées. On ne considère que les lettres de l'alphabet. L'implémentation n'utilise jamais de dispositif aléatoire, mais simplement pseudo-aléatoire, mais cela n'a pas de conséquence pour la suite.

Descriptif de l'algorithme de chiffrement

descriptif
Chaque caractère est chiffré isolément en fonction d'une clé. La variante de chiffrement de chaque caractère est entièrement déterminé par sa position dans le clair. Chaque caractère clair aboutit à 17 caractères (de '0' à '9') chiffrés. Voici la succession de traitement que subit une lettre :

Vigenère fixé


Le caractère subit d'abord l'algorithme de Vigenère utilisant une clé fixée une fois pour toute. Le caractère de rang 0 (première position) n'est pas modifié, le deuxième est décalé de 1, le troisième de deux, etc.

Expansion


À chaque caractère, on associe un nombre de 6 chiffres pris dans un intervalle déterminé dans la clé. Tous les nombres de l'intervalle ramènent au même clair. Par exemple, A est transformé en un nombre entre 305126 et 308475. L'intervalle est fonction de la clé, et reste fixe pendant le chiffrement.
Le chiffré est passé de 1 caractères à 6 caractères.

Brouillage


Les 6 chiffres précédents sont mélangés dans 11 chiffres aléatoires. L'implémentation utilise une phase ajoutant 10 chiffres et une phase ajoutant 1 chiffre. Cela donne l'illusion que ça ajoute de la complexité parce que la clé est plus difficile à générer et à utiliser, mais en fait c'est tout à fait inutile. Le chiffré est passé maintenant de 6 caractères à 17 caractères.

Analyse de l'algorithme

énigma
Il est a clé de taille fixe, déterminer la longueur de la clé est donc utile. En fait, il suffirait de tester les longueurs de clé de 32 à 64 caractères, ce qui donne 33 possibilités. En fait, on peut faire plus simple !

L'algorithme chiffre caractère par caractère, on peut donc ne se focaliser que sur le premier caractère. Cette approche permet de s'affranchir du Vigenère fixé, car le Vigenère au rang zéro (première position) retourne exactement le caractère en entrée. Donc le Vigenère peut être ignoré.

L'expansion est le point faible de l'algorithme. Par construction, pour une position donnée (mais nous restons toujours au premier caractère) l'ensemble des valeurs attribuables à un caractère commence toujours par les mêmes deux premiers chiffres, le troisième variant assez peu. En reprenant l'exemple de la lettre 'A', les nombres qui lui sont associés vont de 305126 à 308475. Les trois premiers chiffres sont donc 305, 306, 307 et 308.

Le brouillage ajoute 7 chiffres aléatoires. C'est la partie la plus utile de l'algorithme et noye l'information dans un brouillard aléatoire.

Cryptanalyse

descriptif

Sans connaître l'algorithme, on analyse les rapports clairs/chiffrés. On constate que la taille des chiffrés est toujours égale à 17 fois celle du clair. En ne chiffrant qu'un seul caractère de façon répétitive, on s'aperçoit vite que 2 des dix-sept caractères ne varient pas, certains variant un peu plus et d'autres sont quasiment aléatoires. En chiffrant deux caractères identiques, on s'aperçoit que les chiffres non-aléatoires restent les mêmes mais que leur position à changé. À cette étape, on sait déjà que (à une clé donnée) la substitution ne dépend que du caractère et que la transposition ne dépend que de la position du caractère. La cryptanalyse ici consiste à retrouver une clé en soumettant à volonté des clairs. En fait, la vraie clé n'est retrouvée mais seulement une clé inverse. En poussant plus loin l'analyse, il serait possible de créer une clé et de chiffrer des messages.

Rangs utiles


Première étape, on détermine les rangs utiles. À une position donnée correspond une répartition donnée des caractères expansés. Par exemple, les rangs 11, 16 et 1 portent de l'information pour le première caractère chiffré. Les rangs 7, 1 et 13 correspondent au deuxième caractère chiffré. Je demande de très nombreuses fois le chiffrement de certains caractères, un à la fois. Cela fournit le spectre associé à la position : pour chaque rang (de 0 à 16) on détermine la probabilité d'occurrence des chiffres. Dans la pratique, on ne conserve que les 3 meilleurs rangs. Dans un caractère chiffré, on est donc capable de connaître les bons caractères parmis les 17.

Dictionnaire


Deuxième étape, on demande un grand nombre de fois le chiffrement de tous les caractères, toujours un à la fois. Les 17 chiffres sont filtrés grâce aux rangs utiles collectés à la première étape, dans la pratique, 3. Grâce au grand nombre d'essais, j'en arrive à déterminer toutes les combinaisons possibles de 3 chiffres. Concrètement, cela revient à déterminer les trois premiers chiffres correspondant à chaque lettre. Par exemple l'expansion de la lettre 'A' est l'ensemble des nombres entre 305126 et 308475 inclus. Le "3" et le "0" apparaissent toujours à la même position dans les chiffrés tandis qu'une position ne contient que "5,"6","7" ou "8". Ce faisant, on récolte pour chaque lettre en clair ces trois nombres caractérisant son expansion. En fait, il existe des cas où il y a ambiguïté. Ces cas ouvrent la voie à l'analyse fréquentielle pour les éliminer, mais qui ne sera pas traitée ici.

Clé inverse


Troisième étape, calcul de la clé inverse. Elle porte toujours sur un seul et premier caractère, ce qui élimine le vigenère du début. En combinant les deux étapes précédentes, on détermine quels 3 chiffres on doit lire parmi les 17 et quelle est la (parfois les) lettre en clair liée à ces 3 chiffres.

Le déchiffrement au moyen de la clé inverse se déroule comme suit :
  • On ne conserve que les trois chiffres utiles.
  • On regarde à quel caractère correspond ces trois chiffres utiles.

Comment améliorer la cryptanalyse ?


Elle ne porte que sur un caractère, ce qui oblige à faire des milliers de requêtes de chiffrement de un caractère. On peut chiffrer un seul gros fichier contenant toutes les lettres par paquets de quelques milliers. Le débrouillage est réalisé en testant les 33 hypothèses de longueur de la clé. Avec la bonne longueur du clé, la prééminence des 3 chiffres apparaît.

L'analyse fréquentielle peut, sous réserve d'avoir un clair et un chiffré de longueur suffisante, lever les dernières ambiguïtés et permettre de reconstituer la clé d'origine.

Et la longueur de la clé ?


La phase de cryptanalyse n'a pas vraiment besoin de la longueur de la clé. En fait, il faut la déterminer seulement s'il faudra déchiffrer des messages de longueur supérieure et pour généraliser le déchiffrement. La longueur de la clé est tout de même calculée pendant la cryptanalyse. Pendant le débrouillage, on reboucle sur la clé lorsqu'on retrouve les mêmes positions caractéristiques.

Comment améliorer l'algorithme ?

descriptif
Injection de l'intru : la phase d'injection de l'intru est inutile car elle est équivalente à rajouter un caractère de brouillage. À supprimer.

Brouillage : le brouillage lui-même peut être contourné par une analyse fréquentielle. En effet, le brouillage est aléatoire, contrairement aux informations entrées en clair.

Expansion : elle a grandement permis de casser l'algorithme. En fait, on peut l'améliorer comme suit. L'algorithme partitionne un intervalle de nombres en associant à chaque intervalle une lettre. Par exemple, si on sait que 305126 et 308475 désigne la lettre 'A', alors on sait que tous les nombres entre les deux désignent aussi 'A'.
Pour faire mieux, on pourrait associer à chaque nombre de l'intervalle une lettre de sorte à ce que chaque lettre soit associée à la même quantité de nombre, mais qu'il n'est pas possible de prévoir à quelle lettre est associée un nombre. Par contre, il faudra utiliser une clé de 899999 caractères pour l'expansion... Cela éviterait de pouvoir extraire les 3 chiffres caractéristiques d'une lettre.

Comment faire mieux que l'algorithme ?


Utiliser un vigenère a clé fixée n'est d'aucune utilité et n'a pas freiné la cryptanalyse, autant l'abandonner. Le brouillage ralentit la cryptanalyse, mais n'est pas efficace, donc autant l'abandonner aussi. L'expansion est une fausse bonne idée, et il serait plus efficace de faire un simple vigenère. Par exemple, on pourrait générer une clé infinie au moyen d'un tirage aléatoire provenant d'une suite déterminée par la clé. Par exemple, fixer le sel de la clé (srand() en Php) permet de faire autant de tirages pseudo-aléatoires que voulu... Évidemment, mais si c'est plus efficace, cela reste faible.

En gros, il serait plus efficace de faire du Vigenère au moyen d'une clé pseudo-aléatoire. Mais même comme ça, ce n'est pas gagné contre les techniques d'aujourd'hui.

Merci à Dimitri MESTDAGH, le développeur de l'implémentation de référence et à Philippe LHEUREUX, le concepteur de l'algorithme.

Références



Le code source est disponible ici.

Tags de l'article :