Tweekers' Blog

Aller au contenu | Aller au menu | Aller à la recherche

General

Fil des billets

Il n'y a pas de site web libre

Il y a une erreur qui est souvent commise, c'est celle de penser qu'il existe des sites web "Libres" au même titre que vos logiciels sur votre machines sont libres. On pourrais citer comme exemple Identi.ca, le Twitter libre ou libre.fm, le last.fm libre. Ces sites web et les autres qui ont l'étiquette "libre" ne sont en réalité pas plus libre que leurs équivalents dis "fermés". Certes le code qui permet a ces sites de fonctionner est disponible sous une licence Open Source : Status.net pour Identi.ca, DotClear ou Wordpress pour mes blogs mais cela ne rends pas un site plus ouvert.
Tout comme dans un logiciel fermé, l'utilisateur n'a aucun contrôle sur le code exécuté. Rien ne garanti que le programme qui tourne sur le serveur web soit le même que celui que l'on télécharge sur le dépôt de sources. Et même si le code source est identique, l'hôte possède vos données et a plusieurs moyen pour en faire une utilisation détournée (analyse de fichiers de logs, ou de ses propres bases de données, capture de paquets réseaux).
Pourquoi s'en révolter ? Après tout chaque webmaster est libre de faire ce qui lui plait de ses serveurs, il est votre hôte et vous n'êtes qu'un invité et vous êtes responsable des données que vous lui transmettez. Contrairement a un logiciel propriétaire, un site web a un accès limité a vos données, chaque donnée importante qui sortira de chez vous par le réseau est un choix délibéré de votre part.
On peut aussi, à la manière de Richard Stallman, limiter fortement son utilisation du web et ne visiter ses propres sites web ou ceux de ses amis proches.

I have several free web browsers on my laptop, but I generally use my own machine only to talk with a few sites operated for or by the GNU Project, FSF or me.

"J'ai plusieurs navigateurs libres sur mon portable, mais j'utilise généralement ma propre machine pour discuter avec quelques sites construits pour ou par le projet GNU, la FSF ou moi même."

Nombreux sont ceux qui choisiront de ne pas être aussi extrême que Stallman. Il est cependant dommage que des services web soient favorisés par rapport a d'autres a cause d'une prétendue liberté du logiciel. Le seul site web ouvert c'est celui auquel on peut accéder par SSH ou FTP, autrement dit le votre.
Une autre façon de voir les choses c'est ne plus considérer le code source qui fait fonctionner le serveur mais uniquement les données. Nous n'avons pas accès au code source exécuté par la machine distante, l'ouverture d'un site sera donc définie par l'ouverture de ses données. La majorité des briques qui ont permis la construction d'internet sont Open Source : Linux, BSD, Apache, MySql, Php, Python, Perl, jQuery, Django, Symfony, DotClear, MediaWiki, etc, etc, etc.... Tout composant sensé être utilisé sur le web est voué a l'échec s'il n'est pas Open Source (a l'exception de Flash, qui est tenace ...). Ces composants a eux seuls ne sont pas intéréssants et peuvent être substitués a tout moment (Linux contre BSD, MySQL contre PostgreSQL, PHP contre Python, et ainsi de suite). La seule chose importante dans un site web ce sont les données. Les vôtres en priorité, mais aussi celles de tout le site.
La question qui se pose alors n'est pas de savoir si le code exécuté sur le serveur est totalement libre, quelle importance au final ? Personne ne peux contrôler ce qui est réellement exécuté sur le serveur et les outils modernes (frameworks, libraires, ...) poussent tous dans le même sens : écrire le moins de code possible pour déployer une application web efficace. L'important dans le web, ce n'est pas le code, ce sont les données comme le fait comprendre Tim Berners Lee sur Ted Talks.
Une fois que l'ont se focalise sur les données, les acteurs du web qui servent souvent de cibles pour les défenseurs du libre, comme Google, sont bien moins néfastes qu'on veux bien le faire croire. Pour rester sur l'exemple de Google, les protocoles utilisés pour les mails sont le POP, l'IMAP et le SMTP, pour la messagerie instantanée le protocole XMPP, pour Google Calendar il est possible d'exporter au format ical et ainsi de suite. D'autres débats peuvent être soulevés comme l'utilisation faite par Google de ces données mais c'est un autre sujet. En aucun cas vos données ne sont prisonnières d'un service web qui utilise des standards reconnus. Bien sur, l'utilisateur est responsable des sauvegardes de ses données sur ses propres machines.

D'une manière générale, les choses vont dans le bon sens, nombreux sont les sites a proposer une API pour leur site permettant à n'importe quel utilisateur de récupérer des données brutes. Cependant nous restons dans l'analogie du Minitel que Benjamin Bayart affectionne particulièrement. Pour se détacher de ce modèle il faut de nouveaux outils et de nouveaux protocoles (ou adapter les outils et protocoles existants pour les rendre plus simple d'accès). L'asymétrie dans les débits des offres ADSL actuelles est un frein au développement du Web 3.0. Cependant, les débits actuels, même en upload sont bien suffisant pour diffuser un contenu à une centaine de personnes. Au lieu de stocker l'information sur un seul et même endroit, elle est copiée de machine en machine, l'information est diffusée un peu à la manière des re-tweets sur Twitter. C'est le principe de Bittorrent, généralisé au Web: je diffuse tout ce que je télécharge. Un tel mode de fonctionnement permettrait un web décentralisé, non contrôlable et serait un grand pas pour sa neutralité. Bien sur cela soulève quelques questions : qu'en est il de la fiabilité des informations relayées ? Et de leur pérennité ? Pour la fiabilité il existe déjà des système permettant de signer des documents comme GnuPG et qui rends toute modification au document d'origine visible et / ou suspecte. Pour la pérennité, je fais bien plus confiance dans un schéma ou l'information est répliquée de machine en machine que dans un schéma où une information est stockée sur un seul et même serveur. Combien de fois ai je cliqué sur un lien vers une vidéo Youtube pour me rendre compte que la vidéo en question avait été supprimée (censurée) ? Le tout est de trouver un système pour qu'une URL ne corresponde plus a un fichier sur un serveur donné, mais à un document précis, quelle que soit sa localisation.
Dans les petites icônes que l'ont voit en bas de page des blogs : partager sur Delicious, Digg, Facebook et autre réseau social il manque une icône essentielle : partager sur mon propre serveur web.
Le cloud computing pourra être quelque chose de révolutionnaire et rester dans l'esprit du logiciel libre a partir du moment où les mailles de son réseau seront assez fine pour relier des individus entre eux sans les faire passer par de gros services web qui sont tous sans exceptions fermés, quelle que soit la licence des programme exécuté sur le serveur.

Du neuf dans la video avec HTML5

J'écris ce billet depuis Firefox 3.6, fraichement sorti et qui possède quelques nouveautés et améliorations intéressantes. Ce qui a retenu mon attention dans les Release Notes, c'est le support de la video plein écran. Enfin ! Le format Flash n'a désormais plus aucun avantage par rapport au HTML 5 ! Coté performances, aucune amélioration, la lecture d'un OGG sur Firefox mettra a genoux vos anciennes machines.

Ceux qui ont Firefox 3.6 pourront tester avec la vidéo ci dessous (Daniel Holbach présentant les bases du packaging pour Ubuntu).

Tout aussi récemment, YouTube a décidé de suivre son petit frère DailyMotion et de se mettre a la balise <video>. Le problème, et pas des moindres, est que Youtube ne stocke pas ses vidéos au format OGG Theora mais en mp4 ou x264, du coup Youtube en HTML5 n'est compatible qu'avec Google Chrome. L'avenir nous dira si Firefox supportera davantage de codecs et/ou Google va penser à convertir les vidéos YouTube en OGG Theora.

Dernière nouvelle sur le HTML 5, c'est le lancement de TinyOgg, un projet soutenu par la FSF et proposant de convertir n'importe quelle video YouTube en Ogg/Theora. Bon, le problème c'est que justement ça ne supporte *que* YouTube, mais d'autres plateformes de partage video seront bientôt supportées. D'autres, d'accord mais pas toutes, c'est pourquoi j'ai proposé a Osama Khalid, créateur de TinyOgg, une méthode universelle pour récupérer les vidéos de n'importe quel site.
Le principe est pour l'instant tout a fait théorique mais s'inspire de la méthode que j'utilise pour trouver un lien vers une vidéo flv. Bien sur il existe des extensions pour Firefox telles que DownloadHelper, mais avoir une URL, cela permet de télécharger sur un serveur avec wget.
Voici la méthode manuelle : Je me rends sur un site proposant une vidéo en Flash et je lance la capture des paquets de mon réseau sur Wireshark. Je lance la lecture de la vidéo et repère une trame susceptible d'être la requète ou le swf demande le flv au serveur. Une fois le flv trouvé, je colle le champ Host avec la requète GET et je donne ça a wget qui télécharge la vidéo.
Ce hack est bien sympa, mais le but est d'automatiser toute cette procedure pour qu'un utilisateur puisse coller une URL, n'importe quelle URL (tant que le player n'utilise pas le protocole fermé RTMP), et récupérer son .ogg à la fin.
Dans la théorie, cela donne :

  • Xvfb installé sur le serveur pour permettre le lancement d'applications graphiques sans avoir besoin d'écran.
  • Firefox et le plugin Adobe Flash installés sur ce serveur
  • Un script python envoyant des XEvents via python-xlib pour faire des faux clics de souris, au cas ou un appui sur Play est nécessaire
  • Un sniffer (wireshark ou tcpdump) configuré pour capturer toutes les urls se terminant par .flv
  • mencoder ou ffmpeg2theora pour la conversion
J'aimerais mettre en place un prototype mais il me manque les connaissances en TCP/IP pour capturer les requètes contenant un .flv. Le reste n'est pas trop problématique.
Avis au experts du réseau, si vous souhaitez faire une grosse contribution aux formats ouverts, postez dans les commentaires la commande magique a base de tcpdump, wireshark ou tout autre sniffer pour récupérer les url des vidéos .flv.

Rappel : Qu'est ce qu'un fork ?

J'aurais aimé faire un billet un peu plus élaboré comme par exemple parler de l'appel système fork() ou étudier l'évolution des fourchettes a travers les âges ... mais il est quelques fois nécessaire de revenir sur des concepts de base que l'on pensait acquis pour beaucoup.
Je me suis rendu compte que de nombreuses personnes ont une conception très inexacte de ce qu'est un fork, ou du moins en ce qui concerne les distributions GNU/Linux. Quand je dis de nombreuses personnes, je ne parle pas de Linuxiens novices qui ont bouffé du Windows pendant 15 ans et rentrent dans le monde merveilleux d'Unix et de l'Open Source. Non, je parle de bloggeurs reconnus, de vétérans, qui ont plusieurs années d'expérience dans le logiciel libre, et je peux balancer des noms. Cyrille Borne, Frédéric Bezies, Christophe Gallaire, vous faites parti des gens qui ont une conception fausse du terme fork, voila c'est dit.
Reprenons tout depuis le début.
Un fork est l'acte de reprendre le code source d'un projet pour fonder un autre projet totalement indépendant. Ce nouveau projet va rarement contribuer du code au projet d'origine. Un fork viens dans la plupart des cas d'un désaccord au sein d'une équipe de développement quand plusieurs groupes n'arrivent pas a trouver un terrain d'entente sur l'évolution du futur d'un logiciel. Un fork part d'une intention précise : celle de rentrer en compétition, voire de remplacer le projet de base.
On prendra comme définition de référence celle donnée par Eric Raymond dans le Jargon File.
Ce n'est pas un concept très compliqué mais il s'arrête à cette définition. L'étendre au delà engendre une utilisation abusive du terme fork comme nous allons le voir. Beaucoup d'utilisateurs de Linux, comme par exemple les bloggeurs cités plus haut, on tendance a appeler les dérivées d'une distribution un fork. Dire qu'une distribution est le fork d'une autre est très rarement vrai. Prenons l'exemple le plus simple : les dérivées d'Ubuntu. Ceux ci sont souvent qualifiés, dans la majorité des cas a tort, de forks. Que ce soit parmi les dérivées officielles (Kubuntu, edubuntu, mythbuntu,...) ou des non-officielles (CrunchBang, OpenGEU, ...) aucune de ces distributions ne sont des forks.
Regardons de plus prêt :
- Les distributions en question utilisent elles la même plateforme de développement qu'Ubuntu (Launchpad) ? Oui
- Les distributions en question utilisent elles les mêmes dépôts qu'Ubuntu ? Oui
- Les distributions en question fournissent elles des logiciels supplémentaires ou modifiés par rapport a Ubuntu ? Très rarement
- Les distributions en question ont elles pour but de rentrer en compétition et/ou de remplacer Ubuntu ? Non
- Les distributions en question ont elles un autre but que d'apporter a l'utilisateur une autre offre logicielle installée par défaut ? Non
Dans la majorité des cas, aucune modification du code source n'est faite, elles ont uniquement lieu sur les artworks et les fichiers de configuration.
On va même aller jusqu'à parler de temps et d'efforts perdus pour la conception de ces distributions (car étant des 'forks' on leur donne aussi le titre de 'distribution', ce qui est tout de même un peu moins faux). C'est mal connaitre la réalité des choses. Un repackaging d'une image ISO d'Ubuntu n'est couteux ni en temps, ni en efforts sauf si l'on considère qu'un après midi est un temps énorme gâché pour la communauté du logiciel libre...
On pourra reprocher de nombreuses choses a ceux qui souhaitent concocter leur propre version d'Ubuntu, de gâcher de la bande passante en distribuant des ISO et non des scripts de post-installation, ou de ne pas tirer parti de l'outil tasksel par exemple mais certainement pas de diviser la communauté, ou de rajouter une dose de chaos dans les distributions existantes.
Pour aller plus loin, on peut même aller jusqu'à affirmer qu'Ubuntu n'est pas un fork de Debian. Certes les dépôts et le bugtracker sont différents et le but d'Ubuntu est clairement de rester en position dominante par rapport aux autres distributions mais Ubuntu et Debian restent deux projets qui communiquent énormément entre eux, et le code de Debian est sans cesse repris, a intervalles réguliers, tous les 6 mois. La FAQ Debian mentionne Ubuntu et Knoppix mais n'emploie nulle part l'appellation 'fork' (elle indique que ce sont des distributions *basées sur* Debian).
Si tous ces projets ne sont pas des forks alors que sont ils ? J'aurais tendance a dire, très simplement : des Logiciels Libres. En tant qu'utilisateur de logiciel libre, je considère comme un droit fondamental de pouvoir étudier, modifier et distribuer tout logiciel que j'utilise.
Ne pas avoir saisi cela, crier au fork la où il n'y en a pas, c'est en quelque sorte montrer que l'on a pas totalement saisi l'essence du logiciel libre.

Tweekers : le réseau social Open Source - 1: Cahier des charges

Ce billet est la continuation directe du précédent ( Comment aider la communauté du Libre ? ) où j'exposais l'idée un site communautaire pour faciliter le développement des logiciels Open Source.
J'ai eu plusieurs commentaires encourageants qui ont confirmé que l'idée valait la peine qu'on s'y penche dessus. Aujourdh'ui marque donc la première étape de développement qui est la publication de la première version du cahier des charges.

Télécharger le cahier des charges (format ODF, 10 pages)

Ce projet est aussi l'occasion de tester un autre modèle de développement, que je n'ai pas vraiment eu l'occasion de rencontrer parmi les logiciels Open Source : Tout est rendu public avant même que la moindre ligne de code soit écrite. On saute l'étape Cathédrale et on passe directement au Bazaar. Je ne met pas tout mes espoirs dans cette méthode de développement, mais je pense qu'elle peut être une solution envisageable pour concevoir des projets de taille conséquentes.
Cette méthode de développement aura au moins l'avantage de rendre les documents d'élaboration du projet public (cahier des charges, maquettes, schéma de BDD...), contraremenent à ce que j'avais critiqué par le passé en disant que la disponibilité du code source seul n'était pas suffisant pour encourager les contributeurs a participer.
Rien qu'en exposant l'idée de base dans le précédent billet, j'ai eu des commentaires qui ont mis le doigt sur des points importants sur lesquels je ne m'était pas attardé et j'espère que la publication du cahier des charges permettra a tout le monde d'exprimer ses idées sur le développement du projet.

Et maintenant ?


Une feuille de route préliminaire figure a la fin du document, la prochaine étape est la publication de maquettes d'écrans prévue pour prévue ce vendredi. Je prendrais en considération toutes les participations. Et pas besoin d'être un expert d'Inkscape pour apporter sa contribution, une maquette griffonée sur un vieux bout de papier peut aussi bien faire l'affaire. (Et si vous n'avez pas de scanner, un appareil photo est bien suffisant). Ce n'est pas un concours de design, le but est uniquement de structurer les pages de l'application.

Vos avis m'intéressent


Vous pouvez me faire part de vos remarques sur les commentaires de ce blog, ou en utilisant mon adresse mail / jabber : strycore@gmail.com . J'ai reçu plusieurs propositions pour aider au développement dans les commentaires du billet précédent, sachez juste que vous n'avez pas besoin de compétences de développement a ce stade de l'application et donc que la contribution est ouverte a tout le monde.

HADOPI in the middle

Les réactions a la loi HADOPI ont été tellement nombreuses que j'ai jugé inutile de faire un billet la dessus étant donné que tout à déja été dit et que de toutes manières cette loi n'a pas changé le point de vue que j'ai depuis des années. Sur Internet et en particulier dans la communauté du logiciel libre, j'ai pu lire de très bons articles, beaucoup de chose inutiles (le blackout ... sérieusement, si vous voulez faire quelque chose d'utile passez tout en HTTPS , la au moins ça servira a quelque chose, un carré noir n'apportera rien a personne.) et quelques énormités. Ce sont donc ces quelques énormités ou plutôt une seule qui m'a poussé a écrire ce billet.
J'ai plusieurs fois lu des choses du genre "oh, le mouchard du gouvernement je m'en fous, je le mettrai dans une machine virtuelle et il verra rien", par exemple chez Swâmi Petaramesh.
Alors je vais pas y aller par quatres chemins, je vais juste montrer qu'une attaque du type man-in-the-middle est la chose la plus simple du monde a réaliser...
D'abord le concept : Sur votre réseau local, une machine veux attaquer le reste du réseau, l'attaquant va lancer des requêtes ARP sur l'ensemble des machines, en gros pour dire "coucou, je suis le routeur". Suite a cela, tout le trafic va passer par la machine de l'attaquant. Pour la démonstration, j'ai utilisé le logiciel ettercap qui facilite grandement la tache. Ettercap, en plus de réaliser l'attaque MITM a quelques fonctionnalités sympatiques, voyez plutôt le screenshot suivant (cliquez pour agrandir)

Capture-ettercap_NG-0.7.3.png

On voit non seulement la liste des sites visités par toutes les machines du réseau, mais aussi le mot de passe en clair des connections aux sites Web non-sécurisés.
Ce n'est qu'un exemple, il est possible de récupérer absolument toutes les données qui transitent sur le réseau (a l'aide de Wireshark par exemple).
Si vous voulez essayer, voila un tuto, qui explique bien mieux que moi : http://openmaniak.com/ettercap.php

Voila, tout ça pour dire que lorsque je vois des personnes prêtes à autoriser dans leur réseau domestique (que ce soit dans une machine virtuelle ou sur un vieux pc au fond du placard ...) un programme aussi dangereux et intrusif que celui que tout le monde imagine,cela me perturbe vraiment.
La seule présence de la Freebox chez moi (qui se met a jour toute seule, dont le code source est totalement fermé) me dérange suffisamment pour que je n'aille pas empirer les choses avec un logiciel manifestement mauvais pour moi même...
Un tel logiciel, si jamais il existe n'a rien a faire dans le réseau de toute personne qui attache un tant soit peu de valeurs au logiciel libre tellement ses principes en sont éloignés. J'espère que les internautes seront nombreux a faire preuve de désobéissance civile et refuseront, dans leur parc informatique entier, tout logiciel d'insécurisation imposé (ou fortement conseillé) par le gouvernement.

Je profite de ce billet pour soulever certaines questions a propos du chiffrement des sites Web. Est il vraiment nécessaire d'afficher un message d'erreur intimidant et faire cliquer 4 fois l'utilisateur dans Firefox a chaque fois que l'on a affaire a un site utilisant un certificat SSL auto-signé ? Je n'ai rien contre les organismes officiels délivrant des certificats, grâce a eux nous pouvons effectuer des achats sur internet et après tout c'est un peu Verisign qui a permis a Ubuntu de voir le jour. Mais je pense que les sites auto-signés doivent se démocratiser, Si les FAI ne voient que des informations chiffrées alors toute tentative de filtrage sera rendue inefficace. Aujourd'hui nous utilisons essentiellement pour le transfert de données le même schéma que celui de la carte postale : libre a la poste, aux facteurs de regarder les messages. Or dans la réalité nous n'envoyons presque pas de cartes postale, les lettres sont mises dans une enveloppe et ces enveloppes ne sont pas certifiées par un quelconque organisme délivrant des enveloppes payantes. Les correspondances n'en restent pas moins confidentielles. Tout comme les envois postaux, "l'enveloppe" doit se généraliser sur Internet, et les logiciels libres doivent êtres modifiés pour en faire leur comportement par défaut.

Web public, web privé : comment évoluer vers le Web 3.0

Une question qui reviens sur le tapis de plus en plus souvent est la question de la protection de la vie privée sur Internet. Le Web 2.0, les réseaux sociaux ont changé le comportement des internautes ces dernières années mais pas forcement dans le bon sens. Le grand public utilise joyeusement tout les nouveaux outils mis a leur dispositions (Facebook, MySpace, Gmail, FlickR,...) sans forcément se soucier des implications qui peuvent se cacher derrière. Les utilisateurs de logiciels libres les plus engagés auront quand à eu une attitude de méfiance pouvant aller au rejet le plus total pour les cas les plus extrêmes.
Les peurs liées aux applications web sont justifiées : Dans la très grande majorité il s'agit de logiciels propriétaires qui contrairement aux logiciels traditionnels, s'exécutent sur un serveur distant au lieu de s'exécuter sur votre machine. Sur ce point la, il n'y a aucune raison de différencier les clients lourds des applications web : un logiciel est conçu pour traiter des données, et que ce que soit votre processeur ou un serveur distant qui s'en occupe est strictement la même chose : vous ne possédez pas de contrôle sur vos données. Pire encore, vous n'êtes plus propriétaires de vos données puisqu'elles ne sont plus stockées sur votre disque dur.
Et inutile de séparer les 'gentils' SourceForge ou Launchpad des 'méchants' Google et Facebook , ils fonctionnent sur le même principe même si l'ont peut spéculer de manière incertaine sur leur motivations par rapport a l'utilisateur final. Et même quand le code source de Launchpad sera ouvert, cela ne changera pas grand chose en pratique. Vos données ne seront pas hébergées sur votre machine et il n'y aura aucun moyen d'aller vérifier que les sources exécutées correspondent en tout point a celles publiées.
Doit on pour autant rejeter en masses tout les outils collaboratifs et toutes les applications du Web 2.0 ? Il est évident que non ! J'irais jusqu'à qualifier cette attitude de paranoïaque, hermétique et stupide.
Sur Internet, c'est avant tout l'utilisateur qui doit être conscient de ses actions, du fait qu'il publie des données personnelles (et non privées, mais j'y reviendrais). L'internaute doit faire le choix de confier certaines données a un acteur tiers afin d'en assurer la visibilité par le plus grand nombre.
Avant de continuer je voudrais faire une parenthèse pour mentionner la conférence de Benjamin Bayard intitulée "Internet libre ou Minitel 2.0" qui cerne très bien le sujet.

Le cas de Marc L. : données personnelles et privées


Le magazine Le Tigre à récemment effectué une expérience très intéressante : On prends un individu lambda choisi au hasard parmi les utilisateurs des réseaux sociaux et on fouille le web a la recherche d'informations le concernant afin d'aboutir à un résumé de sa vie personnelle. Un vrai travail de détective en quelque sorte. Quand Marc L. a pris connaissance de l'article il est est tombé des nues car il ne se rendait surement pas compte à quel point sa vie était exposée sur le net.
Pourtant , le magazine Le Tigre n'a rien fait de mal, il s'est contenter de rassembler des informations visibles par tout le monde et d'en faire la synthèse. Le problème viens en totalité de la 'victime' et de son manque de prise de conscience vis à vis de ses actes sur le Web.
Il n'est pas nécessaire pour autant nécessaire se vivre caché mais le point primordial est de faire la différence entre données personnelles et donnés privées. Les données personnelles sont nominatives, par exemple l'affichage de votre adresse sur les pages blanches, ou le nom des bloggeurs sur Planet April. Le fait d'avoir des données personnelles sur la toile n'est pas un inconvénient, loin de la. Cela nous offre une visibilité par tous, nos 15 minutes de gloire en quelque sorte. C'est a mon avis un élément important et bouleversant du comportement de notre société. Auparavant seule les personnalités sélectionnées par les médias avaient droit a une reconnaissance et une renommée, avec Internet c'en est fini : chacun peut montrer de quoi il est capable sans avoir a subir de discriminations. Espérons que ce changement contribuera a terme à réduire le culte de la personnalité dont jouissent quelques privilégiés choisis par les médias traditionnels.
Les données privées quand à elles sont celles qui n'ont aucune raison d'être vues par d'autres personnes que vos proches, ou des personnes que vous choisissez au cas par cas. Cela signifie qu'il est totalement stupide de faire confiance a un acteur tel que Facebook pour diffuser de telles informations en se disant que son profil ne sera visité que par des personnes de confiance.
D'une manière générale on peut dire que toute information que vous ne souhaiteriez pas voir figurer dans le fichier Edvige, ou dans les pages Blanches ne doit être publiée sur le Web.
Les logiciels propriétaires du Web n'ont aucun défaut de ce point de vue, si Facebook vends vos données a des publicitaires, c'est VOTRE faute, si Google anaylse vos mails de GMail VOUS êtes responsables, si Microsoft censure vos conversations MSN, VOUS ne pouvez vous en prendre qu'a vous même. Personne ne vous oblige a publier telle ou telle information sur le web public et la confiance que vous accordez aux acteurs qui gèrent vos données ne doit jamais dépasser la valeur de ces informations.
Enfin quand je dit que vous êtes responsable de vos agissements sur le net, c'est en théorie bien sur... Dans la réalité, il y a un gros travail de sensibilisation a faire chez les internautes pour contrer le sentiment de mise en confiance qu'offre délibérément les gros acteurs du Web. C'est triste a dire mais il y a eu une réelle régression faite ces dernières années sur l'attitude à avoir sur Internet. Lorsqu'Internet n'était peuplé que de geeks, il existait une réelle séparation entre les communications publiques et privées, aujourd'hui tout est en train de se confondre car les outils propriétaires offrent un confort d'utilisation formidable alors que les outils utilisés traditionnellement n'ont pas bougé en 20 ans alors que le web accueille de plus en plus de nouveau venus néophytes.

Le réseau sous 4 angles différents


On peut voir Internet comme un échange entre un internaute et un ou plusieurs autres internautes a l'autre bout du tuyau. Ces communications peuvent être soit publiques, soit privées. Un émetteur, un destinataire, privé ou public : cela donne 4 configurations différentes.
Il est important de préciser que les communications privées doivent l'être en tout point de la chaine de communication, car vous n'êtes pas sans savoir que les gouvernements souhaitent contrôler le traffic (DADVSI, rapport Olivennes, etc...) et qu'un transfert peut être intercepté à n'importe quel endroit de la chaine.
1. Public - public
Inutile de s'étendre longuement sur ce cas, c'est celui que vous connaissez tous car il est utilisé dans 99% des cas : surf sur le Web, conversations sur IRC ou MSN, échange de mails, P2P non crypté, etc...
2. Public - privé
C'est une configuration a part et qui ne nous intéresse pas dans le cas présent : vous essayez d'intercepter une communication privée et de la décrypter: c'est du cracking. En revanche nous souhaitons nous protéger de ce genre d'attaques et c'est pour cela que nos communications privées doivent l'être réellement et avec des cryptages forts.
3. Privé - public
Vous souhaitez masquer votre identité pour accéder a des données disponibles sur Internet ou pour publier des données sans dévoiler votre identité. Vous pouvez utiliser un serveur proxy anonyme si vous lui faites confiance ou surfer hors de votre domicile ou de votre lieu de travail en n'utilisant aucune information qui puisse vous identifier (login, adresse mail, adresse MAC de votre carte WIFI ...).
4. Privé - privé
C'est a l'heure actuelle le domaine le plus important à développer, Les données doivent sortir de votre carte réseau en étant chiffrées et être déchiffrées chez l'interlocuteur. De nombreux outils et protocoles permettent cela : SSL (HTTPS, FTPS), SSH (connection directe, tunnels, VPN ), clés PGP ou GPG, réseaux friend2friend.

Il est très important de se focaliser sur le dernier point pour que le net pour que le net soit la propriété des internautes et non de quelques sociétés et des gouvernements. Comme je l'ai dit précédemment les outils nécessaires existent depuis plus de 20 ans, il s'agit maintenant de les rendre accessible au grand public comme le sont les outils existants pour le Web 2.0.
Internet a été crée par la communauté du logiciel libre et il est en train de se faire bouffer par des corporations qui ne méritent pas notre confiance même si elles proposent des services avantageux et confortables qui peuvent être utilisés a bon escient. La communauté du logiciel libre doit reprendre la main sur le transfert de données privées et ne pas rester immobile en tombant dans la paranoïa la plus complète.

Du nouveau sur le blog

Le blog a enfin migré sur Dotclear 2, l'opération a été rendue possible par la possibilité de faire cohabiter MySQL (utilisé par dotclear 1 et par Tweekers ) et PostgreSQL, moteur de base de donnée obligatoire pour installer Dotclear 2 sur les serveurs Free.
Outre le fait qu'il a fallu attendre quelques jours avant d'avoir la base activée, l'opération s'est déroulée sans problème y compris la migration de DotClear 1 vers la version 2.
Autre nouveauté, plus importante c'est mon adhésion a l'April et l'intégration du blog au Planete April. Ce billet devrait donc être le premier a être publié, bonjour le Planet :)
J'en profite pour rappeler que l'April a mis en place une campagne d'adhésion, avec pour objectif 5000 membres, j'encourage donc toute personne voulant défendre le logiciel libre a rejoindre l'association.

Deux programmes pour améliorer le bureau Windows

Après avoir longtemps cherché a retrouver certaines fonctionnalités du bureau Linux sous Windows, j'ai enfin trouvé des solutions très satisfaisantes pour combler certains manques de l'OS Microsoftien.
La première fonctionnalité est la possibilité de scroller le contenu d'une fenêtre sans pour autant la rendre active et l'amener au premier plan. En effet il est très pratique de pouvoir faire défiler un texte sur une fenêtre au second plan ou inversement, il est rageant de devoir activer une fenêtre, scroller a la bonne position et réactiver la première fenêtre.
Heureusement, le programme DeskAngel réussi a combler cette lacune, et apporte même d'autres améliorations comme la possibilité de jouer sur la transparence d'une fenêtre, d'enrouler une fenêtre (en n'affichant que la barre de titre) ou encore de forcer une fenêtre a rester au premier plan avec un clic droit sur la barre de titre. J'ai choisi de désactiver la fonction 'Mid Button function' car elle maximise la fenêtre avec le clic du milieu, monopolisant le bouton de la molette, la fonction d'enroulement est incompatible avec le 2ème programme que je vais décrire et sera aussi désactivé.
L'autre programme en question est WinMover et il permet de redimensionner et déplacer les fenêtres sans avoir a déplacer sa souris sur les bords. Comme sur Linux, il est possible de déplacer une fenêtre avec Alt + Bouton Gauche et de redimensionner avec Alt + Bouton Droit. Quand on est habitué a avoir ce comportement sur Linux, ça fait beaucoup de bien de le retrouver sur Windows!

Autoscan Network : son réseau en un coup d'oeil

Autoscan Network est un très bon outil pour avoir une vue d'ensemble de son réseau local en un coup d'oeil.
Au démarrage il demande sur quelle interface réseau est branché le réseau local puis il va scanner toutes les machines accessibles et donner un maximum d'informations, le tout avec une présentation très plaisante.
Ainsi, il est possible de savoir sur chaque machine, quels ports sont accessibles, de connaitre le nom de partage réseau SMB, le système d'exploitation qui fait tourner la machine, l'adresse IP, MAC, etc...

Une fois votre réseau scanné, il est possible d'ajouter une alerte d'intrusion qui va se déclencher a chaque nouvelle machine qui arrive sur le réseau. Chose qui peux être utile pour un admin réseau dans une entreprise, ou plus modestement, pour vérifier qu'on ne se connecte pas a votre réseau Wifi a votre insu.

Autoscan Network est disponible sur Windows et Linux (et accessoirement sur les téléphones Nokia N810), il n'est cependant pas disponible sous forme de paquet pour les distributions Linux. Il vous faudra télécharger le programme sur le site : http://autoscan-network.com puis l'installer a l'aide d'un installeur graphique très bien conçu. Autoscan Network est aussi disponible dans l'excellente distribution axée sécurité : Backtrack 3, comme ca vous pouvez toujours l'avoir dans votre poche ^^

Plus d'informations sur la doc d'Ubuntu : http://doc.ubuntu-fr.org/autoscan

Modification des serveurs Soulseek dans Nicotine

Les serveurs soulseek ont changé en Juin 2008, cependant aucune mise a jour de nicotine n'a été publiée depuis Septembre 2007

Pour mettre a jour votre configuration de nicotine executez dans le répertoire du programme ( /usr/share/python-support/nicotine/pynicotine sur ubuntu ) les commandes suivantes :

sudo find -name "*" -type f -exec sed -i "s/server.slsknet.org:2240/sk6.slsknet.org:2242/g" {} \;
sudo find -name "*" -type f -exec sed -i "s/server.slsknet.org/sk6.slsknet.org/g" {} \;

Know your enemy

Now something must be done
bout vengeance, a badge and a gun
cause Ill rip the mike, rip the stage, rip the system
I was born to rage against 'em
Now something must be done
Now action must be taken
We dont need the key, we'll break in
Rage against the machine - Know your enemy (1992)

Lire la suite...

Sauvegarder automatiquement ses bases MySQL

Le script suivant vous permettra d'effectuer des sauvegardes régulières de vos bases de données. Attention , ces sauvegardes ne sont pas incrémentales donc sur des bases importantes, les sauvegardes peuvent être imposantes.

#!/bin/bash
mkdir /home/`whoami`/backup/sql/`date +%Y-%m-%d` -p
cd /home/`whoami`/backup/sql/`date +%Y-%m-%d`
mysqldump -u root -pMot_de_passe base1 > base1.sql
mysqldump -u root -pMot_de_passe base2 > base2.sql
cd ..
tar -czf `date +%Y-%m-%d`.tar.gz `date +%Y-%m-%d`
rm `date +%Y-%m-%d`/base1.sql
rm `date +%Y-%m-%d`/base2.sql
rmdir `date +%Y-%m-%d`

En clair, ce script crée un répertoire avec la date du jour, sauvegarde le contenu des bases base1 et base2 dans des fichiers sql puis compresse le dossier dans une archive tar.gz et finalement efface les fichiers sql et le répertoire.

Il faudra ensuite programmer la sauvegarde avec cron pour effectuer la sauvegarde a intervalles réguliers. Pour faire cela on utilise la commande crontab -e qui ouvre le fichier crontab en édition. Pour faire une sauvegarde journalière a minuit on insèrera une ligne sous la forme suivante :

0 0 * * * /home/user/sqlbackup.sh

lutte anti malware : de précieuses informations

Le site The Honeynet Project propose une série de document et d'outils pour lutter contre les bots qui parcourent internet. Les outils servent, comme le nom le suggère, de d'attirer les bots et de récolter des information sur eux.

Reste a savoir si ces informations peuvent servir a lancer des contre attaques visant les spammeurs de facon automatisée.

Back to Ubuntu II

Pour la 2ème fois, je me prépare a retourner d'une autre distribution vers Ubuntu. Il y a quelques mois c'était Debian que je testais avec l'intention de rester dessus mais malheureusement les choix de cette distribution quand aux logiciels non libres m'ont fait retourner vers Ubuntu Edgy. Le second point qui m'a fait retourner vers Edgy est la communauté présente pour cette distribution.
Ubuntu marche en effet très bien chez moi , et c'est la distribution que je conseille a tout ceux qui veulent passer sous Linux, il serait idiot de ma part d'utiliser une autre distribution car celles ci fonctionnent différemment sur de nombreux point et je ne pourrais pas apporter le support nécessaire a ceux qui veulent faire le pas vers Linux.
Retournons il y a quelques semaines en arrière, a l'époque ou j'utilisais Edgy. J'utilisais alors la version beta de Feisty sur mon portable qui fonctionnais (et qui fonctionne toujours) a merveille. Cela me donna envie de passer mon poste principal sous Feisty, mais malheureusement le support du RAID logiciel était défectueux. J'ai verifié la presence du bug sur le lauchpad d'Ubuntu et m'y suis abonné. Mais en attendant je me retrouvais coincé avec une Feisty qui ne depassait pas les premières étapes du boot. J'ai alors décidé d'essayer la distribution qui m'attirais le plus , j'ai nommé Gentoo , la distribution pour geek ultime !
Installer une Gentoo demande du temps, beaucoup de temps ! La ou il faut passer 20 minutes sous Ubuntu , il faudra compter 2 jours pour avoir un système opérationnel avec Gentoo (compilation oblige).
L'installation est très instructive quand au fonctionnement de Linux , et une fois terminée j'ai retrouvé avec plaisir le même environnement que sur Edgy (beryl , amarok , etc ... ).
Ayant passé plusieurs années sur windows je suis encore bufflé par la facilité avec laquelle on peut importer ses réglages personnels sur une nouvelle installation. Il suffit de garder son repertoire home et nous revoila sur un environnement identique au pixel près a l'installation précédente !
Avec le temps , je m'apercois vite que je n'ai pas configuré beaucoup certaines choses essentielles sur ma Gentoo ... Je n'ai pas accès a mon graveur DVD , les cartes SD ne sont pas montées automatiquement , les réglages de MySQL utilisent un jeu de caractères bizarre qui ne prennent pas en compte les accents et ainsi de suite.
Je suis parti avec une idée de base très simple : s'il est possible de faire quelque chose sur Linux, il est possible de le faire sous Gentoo. Je suis toujours de cet avis mais cette affirmation reste vraie a mes yeux pour ubuntu aussi. Sur Gentoo , il est necessaire de comprendre le fonctionnement des choses, ce qui reste dans ma logique jusqu'a un certain point ...
Compiler un noyau ou configurer Gnome sont des choses que je n'hésite pas a apprendre mais pour d'autres choses que j'appelerais des détails primordiaux , j'aime quand ca marche 'out of the box'.
Quand j'insère une SD card dans mon lecteur j'aime voir le pop up qui propose d'importer les photos (si cette carte contiens des photos) et je ne veux pas avoir recours a des commandes, et cela Ubuntu le propose par défaut.
Sur Gentoo, le programme qui sert a installer des programmes s'appelle emerge , et en dehors du fait qu'il compile les programmes en fonction des options préalablement choisies , j'ai trouvé qu'il manquait quelques fonctionnalités par rapport a apt. Il est nécessaire de savoir jouer avec des 'flags' et des 'masks' pour installer certains paquets et ce n'est pas évident au premier abord ...
Globalement, j'ai trouvé peu d'avantages a emerge par rapport a apt , et le temps necessaire a la compilation des programmes freine grandement l'installation de nouveaux programmes.
Avec le temps je me suis retrouvé a passer beaucoup de temps sur mon portable et Feisty ainsi que sur mon serveur Dapper qu'auparavant pour palier aux manques de Gentoo. (manques que j'aurais pu combler mais que je n'ai pas fait par manque d'envie).
Pour finir de parler de Gentoo , il est necessaire de briser un mythe commun : Gentoo n'est pas plus rapide qu'Ubuntu , il l'est probablement si on utilise sa machine pour une utilisation réduite mais pour une utilisation semblable a celle que je faisait sous ubuntu , il n'y avait aucun gain de vitesse remarquable mis a part au démarrage de la machine.
Nous avons la version finale de Feisty qui sors dans quelques heures, et je m'apprete a reinstaller un système pour revenir a ma distribution de choix. (le bug du RAID a été corrigé entre temps et de toute facon je n'ai plus de RAID, préférant une partition /home séparée sur un des 2 disques.)

Anti spam : accessibilité et activisme

Voici ce que j'espere être le dernier épisode de mon combat contre le spam sur ce blog , après le filtre baéysien appliqué sur les commentaires et les trackbacks j'ai mis en place un CAPTCHA mais dans sa version accessible. Le CAPTCHA (test de turing permettant de différencier un humain d'une machine) est la plupart du temps une image 'brouillée' qui est illisible par un robot (et parfois par un humain ...) , c'est pour cela que j'ai choisi un CAPTCHA n'affichant pas d'image mais posant une question nécessitant un minimum de logique et de compréhension de la langue.
Au bout de quelques jours je verrais s'il est efficace , je pense que ce sera le cas.
Ce plugin est accessible ici

Se protéger du spam est une bonne chose, mais j'ai reflechi sur les méthodes qui pouvaient exister pour le combattre activement.
Pour ceux qui ont de la bande passante en rab, le site de Artists against 419 va télécharger des images lourdes en boucle sur les sites de scam (fausses banques utilisées avec le phising) , on arrive rapidement a des débits élevés (350 Ko/s pour ma part) et on constate en temps réel les sites de spammeurs battre de l'aile.
Autre technique trouvée sur le net , prendre l'adresse d'un spammeur et répondre a son mail en prennant soin de répéter plusieurs fois l'adresse dans les expediteurs, pour finir on attache un pièce bien lourde (les sources du kernel ? :D), l'inconvénient de ce procédé est que les spammeur utilisent souvent une fausse adresse mail.
Le site Spam poison propose une page remplie d'adresse mail de spammeurs , le but étant de diriger les robots sur ce site afin de leur faire envoyer du spam a d'autres spammeur ;)
Du coté de la ligne de commande, j'ai essayé rapidement l'attaque DoS (Denial of Service) en faisant un sudo ping -f <ip_du_spammeur> , ceci répété et mis dans un script ne contenant que cette commande et dépassant le mégaoctet (les commandes sont séparées par le caractère & , ce qui provoque leur lancement presque simultanément) . J'ai lancé ce script sur 3 shells , et c'est très violent , j'ai eu un débit de 3000 Ko/s sur mon moniteur réseau avant que ma machine refuse totalement de répondre XD . Pas grand intéret a échelle individuelle mais je suppose qu'en étant quelques dizaines on peut faire crasher un petit site.
Plus intéressant la commande whois permet de récupérer des informations sur une IP ou un nom de domaine , ceci comprends sa localisation , son fournisseur d'acces, et bien souvent une adresse mail 'abuse' qui permet de contacter le FAI en cas d'abus (de spam dans notre cas).
Pour les utilisateur plus avancés la commande nmap -Ss <ip> permet de connaitre les ports ouverts sur la machine distante , mais il y a fort a parier que si vous savez exploiter cette liste de ports ouverts , vous connaissez depuis longtemps cette commande ;) Pour les autres, aucun intéret.
Avant de se lancer dans des attaques de spammeurs il est utile de préciser que bon nombre de ceux ci sont des personnes tout a fait normales et innocentes mais qui ont la malchance d'utiliser un système d'exploitation non sécurisé qui deviens après infection par un virus un véritable serveur de spam.
En sachant cela , distribuer des CD de Linux deviens aussi une méthode pour lutter contre le spam ;)

Windows Vista Double OEM pour tout le monde

Peut etre que certains ne connaissent pas le principe de la licence OEM de Windows : Ce sont les versions de Windows livrées avec des ordinateurs préfabriqués (Dell, HP, Acer, ...). Cette version ne détermine pas le type de windows (qui peut être Pro ou Familial) mais contrôle l'utilisation de la license : Une license OEM ne peut être installée que sur un seul ordinateur et chaque changement de pièces sur l'ordinateur fait perdre un certain nombre de 'points' (oui comme pour le permis: changer les pièces de son PC c'est comme conduire en état d'ivresse ...)
Bref, pour Windows Vista , il y aura probablement une version OEM mais la version 'normale' se verra limitée : on peut installer Windows Vista sur un autre PC , une fois, pas deux.
On l'aura compris : Microsoft ne veux pas que son nouveau système soit piraté, ça ne peut être que bénéfique pour lui. Bénéfique aussi pour les OS libres et gratuit qui vont commencer a devenir le centre d'intérêt de personnes ne pouvant plus utiliser un système récent gratuitement (bien qu'illégalement dans le cas de windows).
A ce sujet, je prépare un test de Windows Vista (aujourd'hui disponible en RC2), en le mettant face à face a Unbuntu Edgy Eft (ou a Linux en général). Le but étant de faire une mise au point détaillée des systèmes d'exploitations disponibles en 2007. Quels sont leur avantages , leur inconvénients, leurs public ...
A paraître aux alentours de la sortie de Edgy Eft (théoriquement le 23 Octobre)

Premier billet

Ca fait quelques temps que l'idée me trotte dans la tête : tiens si j'ouvrais un blog ?
Donc voila c'est fait. Au menu du logiciel libre, de la musique, des news a propos de mes sites qui n'avancent pas et plus encore. Plus en détail voici les sites sur lesquels je travaille actuellement :

  • Tweekers : Aide et astuces en informatique
  • Strycore : Activisme contre la DADVSI , les DRM et ce genre de mauvaises choses, musiques alternatives , partage de musique
  • MyMDB : Partage de vidéothèques entre cinéphiles
Ainsi que d'autres projet non commencés : un site de recettes de cuisines, et deprexim.com le site deprexim.

Mis a part ces sites je parlerais aussi de mes découvertes sur Linux et particulièrement la distribution Ubuntu qui a réussi a me faire abandonner Windows.