Archive for May, 2006

La Guerre des Messagerie Instantanée — épisode 4: un nouvel Espoir

Friday, May 19th, 2006

Ce billet est le second d’une série de 3 billets (pardonnez la numérotation du titre qui va avec mes blagues nulles):
la trilogie de la Guerre des Messageries Instantanées.
(voir le premier épisode)

La Guerre des Messageries Instantanées -- Episode 2
La Guerre des Messageries Instantanées — Episode 2
Logo originel par la Jabber Software Foundation sous CC-by modifié par mes soins (même licence)

Voici donc Jabber, le petit protocole ouvert qui vient chambouler des empires.
Je parlerai en particulier de ce dernier. Que les afficianidos de SIP ne m’en veulent pas, car autant je respecte ce projet bien avancé également, autant je préfère ne pas parler de ce que je connais mal.

La Force de l’Ouverture

J’ai déjà parlé de fermeture dans le billet précédent. A priori l’ouverture, c’est donc l’inverse.
Cependant pour mieux comprendre ce qu’est un protocole ouvert, voici un extrait de la LEN[1]:

On entend par standard ouvert tout protocole de communication, d’interconnexion ou d’échange et tout format de données interopérable et dont les spécifications techniques sont publiques et sans restriction d’accès ni de mise en œuvre.

Décortiquons le sens de cette définition en extrayant les 2 points clés:

  • Langage connu: son dictionnaire autant que sa grammaire (“spécifications techniques [...] publiques”).
    N’importe qui donc a le droit d’apprendre ce langage. Vous pouvez apprendre le Tibétain, le Portugais, l’Arabe, ou toute langue vivante en achetant une grammaire et un dictionnaire de la langue en question. Ben là c’est pareil. Vous pouvez vous procurer sans restriction d’accès (donc notamment gratuitement) la grammaire et le vocabulaire de Jabber/XMPP (le nom normalisé du protocole de Jabber est XMPP).
  • Droit d’utilisation: vous avez le droit d’utiliser le langage pour ce que vous voulez, même commercialement: “sans restriction [...] de mise en oeuvre”.
    Imaginez que vous appreniez le japonais (puisqu’on a vu que vous aviez le droit), mais que vous n’ayiez par contre pas le droit de l’utiliser, ou du moins, seulement sous certaines conditions; par exemple si le gouvernement japonais exigeait de faire payer une licence d’utilisation du japonais à but commercial. Ainsi, hop vous écrivez un livre que vous comptez vendre au Japon, ben vous devez raquer. Ridicule non?
    Et pourtant c’est ainsi que fonctionnent beaucoup de protocoles. On veut parfois faire croire que vous avez le droit d’utiliser en vous montrant les spécifications, mais une petite clause en minuscule vous informe que toute utilisation commerciale est payante.

    Pire encore, on ne vous fournit même pas toujours les spécifications du langage, mais une interface de programmation. Ce serait comme si pour parler en russe, on vous fournissait un traducteur. Vous n’avez pas le droit d’apprendre le russe et de le parler directement, seulement d’utiliser votre traducteur (sans pouvoir vérifier s’il vous traduit bien).
    C’est ce que tente actuellement de faire AOL avec son projet OpenAIM. Notez comme l’entreprise joue sur l’ambiguité du mot “open” pour faire croire à une ouverture, bien qu’il ne s’agit en rien d’un protocole ouvert. En lisant la FAQ, on constate qu’utiliser les librairies de programmation pour des projets commerciaux, ou bien dans le but de faire fonctionner sur des engins portables (téléphones, PDA, etc.) recquiert une licence payante.
    Je sais que certaines personnes rétorqueraient qu’il est normal d’être rétribué pour un produit ou un service. Et notez bien que je suis entièrement d’accord. Là il s’agit d’un autre problème, commercial déjà avec utilisation abusive de monopole supprimant toute juste concurrence, technique ensuite avec le besoin de l’intéropérabilité des standards qui font avancer la technologie, éthique enfin.[2]
    Bon tous les autres, c’est encore pire, ils ne fournissent ni le dictionnaire et la grammaire pour apprendre, ni le traducteur. Y a plus que le décodage archéologique qui marche.

Jabber est donc adepte de l’ouverture?

Jabber quant à lui est un langage développé par la Jabber Software Foundation, dont le but est de développer un langage totalement intéropérable pour la communication temps réel, utilisable par tous et pour tout.
Concrètement cela signifie que n’importe qui peut (et est encouragé à) écrire son propre logiciel, adapté à ses besoins. Une entreprise peut vendre son logiciel, l’utiliser à but commercial, ou bien faire un logiciel en interne adapté aux besoins de communication de l’entreprise, qui ne sont pas forcément les mêmes que ceux d’un particulier.
De même les utilisateurs simples choisissent le serveur de leur choix (avec les services qui lui plaisent), de même que le logiciel qu’ils préfèrent parmi la multitude existante.

De nombreuses entreprises jouent le jeu en proposant leurs serveurs Jabber au grand public, et notamment Google avec Google Talk (réseau public, c’est à dire communicant avec le reste du réseau Jabber), le réseau de site de rencontre Meetic (réseau privé), le SkyMessenger (réseau privé du réseau de blog et radiophonique Skyrock), etc.

Adapté au Monde Professionnel

Une caractéristique primordiale de Jabber est son architecture décentralisée: un réseau informatique quelconque marche le plus souvent avec des serveurs et des clients. Le client est, en informatique, le logiciel chez le particulier. Le serveur est le logiciel distant qui va gérer les connexions, et ainsi raccorder les communications des clients (à une époque, le téléphone avait des standardistes qui raccordaient à la main les communications: ils jouaient le rôle de serveur).
Dans les réseaux propriétaires, ces serveurs sont dans les ordinateurs de l’entreprise. Ainsi quand vous envoyez un message MSN, il passe par les ordinateurs de Microsoft. C’est un système dit centralisé, et ça pose plusieurs problèmes:

  • La sécurité intellectuelle: qui sait ce que deviennent vos conversations? Là je vous vois venir à rire. “ahaha encore un avec des théories du complot! Mais personne ne va lire toutes les conversations MSN du monde!“. Effectivement… pas un être humain du moins. Mais un robot si.
    Un robot en informatique n’est pas forcément une machine humanoïde en métal, mais peut tout simplement être un programme. Or des programmes existent, qui servent à scanner des données à la recherche de mots clés (c’est ce qu’utilisent les moteurs de recherche pour alimenter leurs bases de données en scannant les sites web du monde). Cela peut sembler ridicule, et pourtant on a eu la preuve que de tels pratiques sont utilisées notamment dans le réseau MSN. En effet, une affaire qui a peu fait parler d’elle fut celle de la censure de certains mots dans MSN. Essayez par exemple d’écrire “download.php” ou “gallery.php” dans un message pour un ami. Vous verrez que votre message n’arrivera jamais au correspondant. C’est une suite de caractères extrèmement courante pour les adresses de téléchargements de fichiers, ou bien pour les galleries de photos. Evidemment Microsoft pourrait arguer qu’ainsi, l’entreprise lutte contre le piratage (download.php) ou la pédophilie (gallery.php). Cela signifie donc que d’office, si vous envoyez un lien de téléchargement à un ami, Microsoft considèrera que c’est un téléchargement illégal? Et donc aussi, vous ne pourriez pas envoyer un lien vers votre gallerie de photos de vacances sans que Microsoft estime que ce sont sûrement des images illégales? Microsoft donc traiterait ses clients de personnes malhonnêtes? Bien sûr d’autres théories concernent une pseudo-sécurité pour contrer des propagations de virus par MSN[3]. Ce serait donc ainsi que Microsoft verrait la sécurité? Par la censure pure de tout contenu potentiellement risqué? C’est une façon de voir les choses oui. On appelle cela aussi une dictature (sécurité par le silence) quand on parle d’une politique de gouvernement. Dans tous les cas, malgré que ce problème est connu depuis plusieurs mois, puisque Microsoft n’a daigné faire aucun communiqué officiel, il n’y a pas non plus d’excuse officiel, alors… à quoi bon s’imaginer des choses, hein? Facile.

    Nous avons donc un cas concret de censure qui fut visible. Mais maintenant puisqu’on a la preuve que des robots lisent bien les messages qui passent par les serveurs Microsoft, qu’est-ce qui nous prouve que d’autres actions moins évidentes ne sont (ou seront) pas entreprises pour d’autres mots clé? Qui sait si dans un régime totalitaire où la répression serait courante, Microsoft ne pourrait vous dénoncer pour des choses que vous diriez contre le gouvernement en place, lequel viendrait exploser votre porte (je rappelle que Microsoft, Yahoo, Google, et Sco ont un contrat plus que douteux dans ce sens avec le gouvernement chinois. D’ailleurs Yahoo a déjà fait envoyé en prison deux “dissidents” chinois)?
    Et qui nous prouve que chaque fois que vous donnez un numéro de carte bancaire par msn, Microsoft ne le stocke dans une banque de données, pour se donner la possibilité de pouvoir utiliser l’information plus tard? Même si cette dernière allégation semble farfelue, je veux bien mettre en avant que c’est toutefois possible, et nous n’en saurions rien! J’ai déjà eu à demander un numéro de carte bancaire d’un ami lorsque j’habitais au Danemark, parce que ma carte bancaire ne voulait pas marcher, et que j’avais une galère. Je peux vous dire qu’un réseau décentralisé comme Jabber fait bien plus confiance, surtout que dans la norme, Jabber propose la possibilité de crypter vos conversations, de manière client-serveur (par SSL), ou même client-client (par des clés GnuPG par exemple). Une chose est sûre: sachant ce que je sais, jamais je n’aurais fait cette demande par MSN.

    L’éducation Nationale a d’ailleurs réagi en 2005 en interdisant Skype au sein de ses institutions car il n’y avait pas moyen de contrôler la confidentialité des communications, et donc la sécurité (comme l’espionnage industriel). C’est pour moi une bonne chose, on se demande pourquoi ils ne font pas la même chose pour tous les autres protocoles fermés.
  • La sécurité technique: la décentralisation signifie également le pouvoir de contrôle dillué. Si vous en avez les moyens, ce pouvoir peut même vous être attribué. Ainsi, supposez que la ferme de serveur MSN ait un problème. Et bien, tout un secteur du réseau pourrait être tout bonnement coupé. C’est déjà arrivé. Par exemple, je me rappelle mon frère se plaignant que MSN ne voulait plus se connecter. Le lendemain, il revient rassuré: “non, c’est bon, c’était toute la France qui n’avait plus MSN”. Ah… s’il le dit, c’est bon alors.
    Mais sous jabber, si votre serveur a un problème, ça signifie qu’uniquement les personnes sous votre serveur ont un problème, donc pas vos amis par exemple. Evidemment l’égoïste s’en fiche que ça marche chez les autres; mais quand on réfléchit, cela signifie que le réseau ne peut jamais être tué. C’est ainsi que fonctionne par exemple l’Internet, et c’est ce qui fait sa force, sa puissance, et l’impossibilité d’en prendre le contrôle total. C’est donc une force vive et un moyen d’expression instoppable contre les dictatures par exemple. Et si votre serveur tombe en rade, et que vous avez un besoin urgent de contacter vos amis, vous pourrez toujours au pire cas faire un compte de secours sur un autre serveur. Par contre, si Microsoft décide du jour au lendemain de rendre MSN payant (et il en a le droit), que pouvez-vous faire? Rien, sinon vous faire marcher dessus.

    Pour une entreprise-utilisatrice aussi, la décentralisation est une arme particulièrement puissante. Une entreprise peut par exemple gérer son propre serveur Jabber. Si elle le veut, elle peut rendre son réseau Jabber privé (uniquement comme moyen de communication interne à l’entreprise), ou bien l’ouvrir au reste du réseau. Cela lui permet tout d’abord d’être totalement indépendante, et donc de ne pas dépendre du bon vouloir (ou du support technique en cas de problème) d’une entreprise tierce. Si le réseau MSN tombe, l’entreprise n’a plus de moyen interne de communiquer. Le réseau Jabber ne peut pas tomber, et même sans être lié à l’Internet (problème de connexion avec leur fournisseur d’accès), l’entreprise a son système de communication interne. En outre, l’entreprise contrôle en interne les communications, donc pas de problème d’espionnage industriel par la technique. Sans parler d’une personnalisation des logins en cas d’ouverture au reste du réseau: les employés par exemple possèdent une adresse de messagerie avec le nom de l’entreprise, tout comme pour les mails d’une entreprise avec ses propres serveurs mails. Il n’en est pas de même avec les comptes d’autres réseaux (c’est un détail, mais ça fait plus “pro”, et je sais que c’est un point qui peut toucher certains).

Conclusion de la Seconde Partie de notre Trilogie

Pour résumer, avec Jabber je n’ai pas accès à un réseau de messagerie instantanée, j’ai accès à un système de réseau de réseaux. Si ça vous fait penser au web et à l’Internet, c’est normal, le concept est identique. Si ça vous fait penser à tous les moyens de communication existant, c’est encore normal. Si ça ne vous fait pas penser à MSN, c’est toujours normal.
Ainsi avec Jabber, vous n’êtes plus dépendant d’une unique entreprise qui vous mêprise. Vous choisissez le fournisseur de service qui vous convient. Vous choisissez le logiciel qui vous convient. Et si l’un des deux ne vous plaît plus, vous pouvez toujours en changer indépendamment. Par contre vos contacts sont toujours accessibles.
Si vous êtes une entreprise (une association, un organisme quelconque), vous pouvez même créer votre propre réseau Jabber, lié ou non au réseau global.
Dans tous les cas, vous maîtrisez vos données, vos conversations, vous avez le droit et la possibilité de crypter ces dernières pour que personne (même pas les serveurs intermédiaires) ne puisse espionner (dans la limite des possibilités techniques actuelles évidemment).
Finalement avec Jabber, vous gardez un vrai contrôle.

Le prochain (et dernier) épisode vous racontera l’avenir radieux de Jabber pour finir de vous persuader. :-)

[1] Titre 1er, Chapitre 1er, Article 4: Loi pour la confiance dans l’économie numérique.

[2] Pour les personnes intéressées, je pourrais parler dans un billet ultérieur de moyens pour concilier le respect des standards et de la concurrence avec des moyens de gagner de l’argent. Et même… comment faire de l’argent tout en faisant des logiciels Libres. :-)

[3]Personne ne peut vérifier la sémantique du langage pour y détecter des failles de sécurité. De même avec l’existence d’un unique logiciel (de source fermé en plus), il est également très facile de trouver des failles communes à tous au niveau logiciel. Il y a donc double source de failles, car personne ne peut vérifier ni le langage, ni le logiciel. Ainsi des virus ont trouvé à maintes reprises des trous de sécurité dans le protocole ou le client pour infecter les utilisateurs.

La Guerre des Messagerie Instantanée — épisode 1: la menace des fantômes…

Thursday, May 18th, 2006

Ce billet est le premier d’une série de 3 billets:
la trilogie de la Guerre des Messageries Instantanées.

La Guerre des Messageries Instantanées -- Episode 1
La Guerre des Messageries Instantanées — Episode 1
(image satirique à partir des logos MSN et AIM par moi-même)

J’avais commencé cette série de billets il y a un certain temps déjà. Je profite de l’imminence de l’Open Discussion Day pour me forcer à les finir.
J’en profite aussi pour saluer un des piliers de Jabber, lequel a récemment trouvé la mort: Peter Millard. Je ne vais ni m’attarder sur le sujet, ni me prononcer sur sa vie, je trouverais cela insultant envers sa famille et ses amis car je ne connaissais pas cet homme (ce serait donc un larmoiement hypocrite, chose que je déteste). Seulement il mérite d’être retenu pour son œuvre.

Pour ce premier épisode, je vous raconterai l’histoire des messageries instantanées. Ben oui, il faut bien que quelqu’un vous fasse un peu l’histoire des choses importantes. Non parce que les rois de France, les guerres mondiales, tout ça, c’est cool un moment, mais les jeunes de nos jours, ils s’en foutent. Eux, ce qu’ils souhaitent, ce que vous souhaitez, c’est discuter avec vos clients, vos potes, vos collègues, votre famille sur MSN, voire même carrêment parler en direct avec eux à l’autre bout du monde pour presque rien avec Skype. Elle est pas belle la vie moderne?

Les débuts

Originellement la messagerie instantanée s’est massivement répandue sur le net grâce à ICQ (1996) de la société Mirabilis, lequel peut être considéré comme le père de la messagerie instantanée grand public (jusque là, les systèmes messagers restaient des protocoles de niches pour des utilisateurs très spécifiques et n’avaient pas “décollé”). Une fois le mouvement lancé, ICQ a vite été rejoint, puis supplanté par des réseaux comme AIM (le réseau d’AOL, leader mondial de la messagerie instantané; notons qu’entretemps, ICQ a été racheté par AOL, et que les 2 réseaux sont devenus compatibles: on peut communiquer de l’un à l’autre), le réseau Yahoo!, et MSN (porté au sommet en France grâce à la désormais célèbre technique de vente forcée de Microsoft).[1]

Fermés de Corps et d’Esprit…

Tous ces réseaux ont une chose en commun: leur fermeture. Cette fermeture se caractérise par deux points:

  • Le protocole est fermé[2]: personne — hormis les entreprises concernées — ne savent réellement comment marchent ces réseaux. Par analogie avec des langages — car c’en sont à certains points de vues — on peut affirmer que nous ne connaissons ni la grammaire, ni le dictionnaire de ces protocoles. Donc pour les comprendre, les informaticiens tiers décodent par ce que l’on appelle la rétro-ingéniérie.
    L’une des conséquences est la perte de temps (imaginez le temps gagné si Champollion avait trouvé un dictionnaire et une grammaire pour déchiffrer les hyéroglyphes?!). Une autre est un décodage parfois imparfait (d’où le fait que des logiciels tiers peuvent mal implémenter certaines fonctionnalités).

    Pourquoi donc veut-on décoder ces protocoles?
    Par exemple parce que le logiciel officiel ne plaît pas ou ne convient pas à nos besoins. Ou encore certains veulent pouvoir se balader sur plusieurs réseaux simultanément pour parler à des amis dispersés, et pour cela ils veulent pouvoir utiliser un unique logiciel multi-protocole, au lieu de devoir en installer et en lancer plusieurs. Enfin certains systèmes d’exploitation ne possèdent pas de client officiel. MSN messenger par exemple n’existe que pour les systèmes Windows (et encore pas tous!) et Mac OS. On oublie alors les systèmes GNU, les systèmes Unix, les systèmes BSD, et bien d’autres moins connus… Comment font-ils pour parler à leurs amis? N’ont-ils pas le droit? D’autres raisons encore peuvent expliquer le besoin de décoder ces protocoles fermés.

    Vous pourriez me dire “mais pourquoi les entreprises ne fournissent pas les caractéristiques des langages? Ce serait bien plus simple“. Je vous conseillerais d’aller le leur expliquer, mais beaucoup de gens ont abandonné de raisonner avec les logiques commerciales et désirs de monopole.

    Plus de détails quant à la notion de protocoles ou formats ouverts et fermés peuvent se trouver dans l’excellent site formats-ouvert.org de Thierry Stoehr.
  • Le réseau lui-même est fermé: qu’est-ce à dire? Et bien qu’il n’est pas possible de dialoguer avec quelqu’un d’un réseau autre que le sien propre. La plupart des gens trouvent cela normal, car ils se sont habitués à cet état de fait, cette technologie ayant connue son essor avec des réseaux fermés. Mais transposons maintenant au monde des réseaux téléphoniques. Trouveriez-vous normal de ne pas pouvoir appeler votre copine sous Bouygues parce que vous êtes sous Orange? Trouveriez-vous logique que votre ligne fixe Neuf telecom ne puisse appeler que d’autres téléphones Neuf Telecom, et pas votre famille qui utilise France Telecom? Alors pourquoi estimez-vous raisonable que votre compte MSN ne puisse pas vous permettre de dialoguer avec votre ami polonais qui utilise gadu-gadu? Non ça ne l’est pas.

    En ce sens, dernièrement les grands de la messagerie propriétaire font des efforts puisqu’on parle d’alliances pour rendre des réseaux compatibles (cela reste cependant principalement des rumeurs, ou bien des projets assez discrets. Aux dernières nouvelles, j’ai entendu parler d’alliances Google/AOL et Microsoft/Yahoo. Mais rien de bien établi donc). Pourtant ce sont malheureusement plutôt des alliances de pouvoir qu’un désir d’intéropérabilité (le but étant de supplanter les autres réseaux et de les faire couler en s’associant avec un autre mastodonte du milieu), sinon pourquoi ne pas tout simplement ouvrir leur réseau en le rendant interropérable avec tous les autres?

Au secours Obiwan Kenobi!!!

Comme des Zorro numériques des temps moderne, certains protocoles se sont manifestés ces dernières années. Parmi eux sont Jabber/XMPP, ou encore SIP/SIMPLE (Jabber est originellement davantage orienté textuel comme MSN/Yahoo!/AIM, et SIP est plutôt orienté téléphonie par IP comme Skype, bien que ça tend à se recouper avec le temps), les 2 protocoles ayant — au contraire de leurs homologues propriétaires — pour avantages majeurs d’être des protocoles ouverts, normalisés (par l’IETF), et d’avoir des buts et des espoirs d’interopérabilité.

A suivre…

[1] Il existe aussi d’autres réseaux méconnus dans nos contrées francophone, comme Gadu-Gadu, réseau majeur en Pologne par exemple.

[2] Certains pensent que des protocoles comme MSN ont été ouverts. Un simulacre d’ouverture a en effet été entrepris en 1999, mais rien n’a filtré sur les modifications des 11 versions sorties depuis.