Veille technique (3)

le

Mail

L'email est l'enfant battu d'Internet. Indispensable, irremplaçable, il est le format standard d'échange asynchrone de message. Incapable d'évoluer, il se fait grignoter par la messagerie instantané, inonder par les pourriels et privatiser par les messageries de Facebook et Twitter. Le webmail lui a donné une seconde chance.

Le mail n'a pas été conçu pour son usage actuel. Pour une technologie des années 70, ça reste acceptable (les pattes d'eph ont moins bien vieillie). Il est prévu pour envoyer des messages de machines à machines, via le protocole SMTP. Ce principe fonctionne avec des machines directement accessible sur le réseau, et plutôt persistante, ce qui ne corresponds absolument plus à la topologie actuelle. On a donc délégué ce travail à des serveurs, qui sont maintenant des Behemoth avec Gmail/Yahoomail/Hotmail, et rajouter des protocoles un peu naïf, POP3 puis IMAP4, pour récupérer son courrier sur ses machines, tranquillement derrière sa connexion temporaire et NATé. Les implémentations serveurs ont des bugs, ainsi que les clients, et comme l'inertie est la base de la stabilité, le contournement des bugs et une qualité vanté par les produits. Produit dont le nombre tends à s'amenuiser. La fossilisation de Thunderbird est une mauvaise nouvelle, mais l'éradication de Cyrus, l'innovateur caractériel, par Dovecot l'ascète donne un espoir.

Le mail a raté le passage au dynamique. Dommage, c'est ce qui donne toute la force du web. Le fantasme de piper différents modules qui parsent et reparsent les mêmes contenus mal normalisés c'est avéré être un cauchemar pour les administrateurs. Des simplification sont apparus, comme le LMTP pour le routage local, et surtout Amavis, qui regroupe tous les filtres à merde dans une même application Perl. Anti Virus, whitelist, Spamassassin, filtres bayesiens ... hop, tout ça est emballé et configuré de manière cohérente.

L'authentification est un poème, plutôt que de tout passer dans un tuyau SSL, le mail a tenté différents système complexe d'échange de clef, avec SASL, qui, en prime tire PAM comme dépendance.

La recherche, bien pratique pour les appareils légers qui n'ont qu'une partie des données cachées en local et un petit accès au réseau, est implémenté par peu de clients, et de toutes façons, coté serveur, c'est guère plus glorieux, Dovecot se contentant d'indexer en lazy.

Les mails sont liés aux carnets d'adresse, l'astuce de la collecte automatique des adresses dans les mails reçus atteint vite ses limites. La réponse officiel est le LDAP, mais c'est assez dur de coordonner un carnet au sein d'une entreprise, et des produits comme OpenLdap sont loin de faire rêver. Il y a un espoir avec ldapjs qui est une excellente bibliothèque permettant d'implémenter son propre serveur LDAP, ce qui concrètement se résume à implémenter une vue sur un référentiel que l'on choisi. C'est un outil développé par Joyent, pour gérer les authentifications dans sa solution cloud, avec Riak comme moteur de stockage, c'est donc un produit battle hardened. Le LDAP n'est pas en odeur de sainteté dans les réseaux mobiles, et est de toutes façons peu utilisé dans les réseau public, c'est plutôt un outil d'entreprise (avec Active Directory par exemple). iOS a donc choisi de le bannir et de favoriser CardDAV, une extension de WebDAV. De toutes façons, il gérait déjà le CalDAV pour les calendrier. Cette norme fait tout passer sur de l'HTTP et favorise la création et modification de hiérarchie avec des droits spécifiques. Rien n'est prévu pour pousser des modifications sur les clients, mais la synchronisation et le polling semble suffire.

Les mails sont grégaires, ils arrivent en masse, il faut donc arriver à gérer et ranger ce flot pour ne pas se noyer. Une norme existe pour centraliser ces règles, Sieve, pour qu'elle s'exécute sur le serveur, et non pas différemment selon le client que l'on utilise. A l'usage, ces règles sont pénibles à écrire, le langage est mal fichu, il est difficile de créer des UI pour faciliter son adoption (c'était une des armes secrètes de SquirrelMail avant que RoundCube ne le mange). Il existe même un protocole pour son édition à distance, donner un accès SSH sur le serveur de mail étant une mauvaise idée. Cette norme, sieved est vieille et moche, et seul un obscur produit KDE l'implémente. De toutes façons ça ne passe pas par de l'HTTP, c'est donc difficile à utiliser sur un réseau paranoïaque. De toutes façons, l'idée de rangement automatique dans un dossier est un piège, c'est le meilleur moyen de l'oublier. Le mail devient alors une référence que l'on consultera à la demande, et non plus une news. Gmail a amené la notion de vue, et l'on choisi son dossier de référence selon son humeur. Pressé (important et non lu) ou tranquille (boite de réception). Cette idée est extensible : pub, boulot, famille, mailing technique, alerte technique ... Elle peut passer un tagging neutre (mutualisé), qui servirait ensuite de base à des règles personnelles. Les outils open sources sont malheureusement peu adapté à ce genre de fonctions. Les modifications coté client, à base d'IMAP IDLE peut être une solution, mais s'insérer dans le flot de filtrage est plus simple. Il faut alors négocier avec l'admin, on se retrouve dans le cas où Spamassassin se contente de mettre une note, laissant à l'utilisateur le choix de l'action à faire. Un commercial lira tout pour ne pas rater un prospect, les autres pourront bannir les infréquentables.

La notion de vue est plus problématique, quand on voit la fierté de Dovecot à gérer les clients pourris, on n'est pas très motivé pour mettre un joli Python/Erlang/Golang en front pour gérer tout ça. Ça risque de marcher jusqu'à ce qu'un nouveau client captif apparaisse (natif à l'OS, par exemple), l'équivalent d'un IE6, pour qu'il faille contre-bugger sans casser la compatibilité avec l'existant.

Une autre couche de drame, et non la moindre, est la notion de mise en commun. Le mail restant un outil individualiste. Cyrus a inventé le partage de dossier IMAP, repris par Dovecot. On peut imaginer un dossier prospect lu par plusieurs commerciaux, évitant ainsi une redondance. Ce système est peu utilisé. Le partage de mail s'effectue principalement par mailing list. Les infâmes Sympa et Mailman, confis dans leur sucre, lourd, moche, et indéboulonnable.

Zed Shaw, polémiste pragmatique, a proposé un framework dynamique SMTP, plutôt que de passer par le classique pipe d'un serveur SMTP, Lamson est lui même un serveur SMTP. Ce produit sert de base à Librelist. Lamson assure toute la partie pénible, comme normaliser les mails (il gère même les soucis d'encodage en python, c'est dire le niveau du type) et de proposer des règles de routage simple, pour permettre la construction d'application métier, ce qu'assure les frameworks HTTP depuis des années.

Le spam reste la plaie du mail. Non seulement ça emmerde les utilisateurs dont le 1 sur 1000 assez con pour cliquer justifie d'éclabousser les 999 autres, mais aussi des admins qui doivent serrer les fesses pour que les mails légitimes arrivent à destination. Un blacklistage fait toujours mauvais genre. De toutes façons, rien que la gestion des bounces, les mails d'erreur en retour est déjà un sport. Ce n'est pas normalisé, le comportement est à peu prés standard selon les serveurs, Postfix ne s'en tirant pas trop mal. On a du mal à détecter si le mail est faux, périmé, ou si la boite est juste pleine. Il existe des normes de signatures de mails, par serveur, et non pas par utilisateur, avec la clef public dans le DNS, mais je ne sais pas à quel point c'est utilisé (comme vérification et pour l'envoi), malgré son adoption par les énormes Facebook et Gmail. De toutes façons, un administrateur de serveur mail a toujours sous la main quelque poulets à égorger pour s'attirer les faveurs des esprits vaudou.

La mail est indispensable et cassé, ce qui laisse place à de multiples offres. Gmail, pour l'ergonomie, qui donne la flemme aux libristes de faire évoluer RoundCube et Thunderbird. Breeze, qui vient de sortir, pour la gestion des mailings listes. MailChimp pour le mass mailing commercial. D'autres, comme Mandrill, issu de Mailchimp, se contente d'assurer de l'envoi massif de mail sans se faire qualifier de spammer. On bascule de la notion d'application à celle de service, ce qui ne favorise pas du tout le libre.

Hardware

La bataille RasperryPi vs Beagle Bone continue tranquillement, avec leur approches petit boutiste et grand boutienne, mais c'est une saine émulation qui permet de vulgariser la notion de micro serveurs, qui participera aux webs des objets, mais surtout au micro cloud qui est une réel avancé pour le libre et la décentralisation d'internet.

Cela fait quelques temps sans nouvelles de La FreedomBox, un sous projet Debian. Le SheevaPlug semble être un mauvais cheval, démarrer sur du matériel moins cher et plus populaire devrait les aider.

plugcomputer, plus orienté hardware, et plus concret, reste une référence.

Plus concret, refuge.io propose une solution de machine à recopier les données (avec un site pour les visualiser), dans l'idée de rassembler divers sources de données, mais aussi de redonder le stockage pour offrir une meilleur résilience à la censure.

Il faut aussi surveiller les appareils à base d'openwrt (et de ses dérivés, comme dd-wrt), du vrai linux embarqué sur des machines à très faible consommation. Ubiquity propose du materiel flashable en openwrt de manière plus ou moins compliqué, mais aussi du matériel directement en openwrt, comme ses RouterStation qui valent moins de 80$ toute nu.

OpenWRT sert de base aux Fonera, mais les derniers modèles ne sont pas encore flashable. Linksys (appartenant à Cisco), est à l'origine de cet OS sans avoir rien demandé. Il continue à fournir le WRT54GL (L comme Linux) périmé mais qui fait tant plaisir aux geeks. Mauvaise nouvelle, Cisco va arrêter (et revendre?) sa branche grand public. La relève est prise par Ubiquity, plutôt dans le haut de gamme et les réseaux extérieur pour le tiers monde (ils ont plus de revendeur au Kosovo qu'en France) et Buffalo qui se complait dans les références compliqués et les sous variantes d'un même produit. Certains produit sous directement sous openwrt (ils appellent ça OS pour les pros), d'autres sont flashables, avec toujours l'angoisse de tomber sur une sous variante non encore reconnue.

Pour les fans du fer à souder, une nouvelle variant d'Arduino vient de sortir : Pinoccio, une variante de l'Arduino Mega, conçu pour l'internet des objets, avec une batterie au lithium, un lecteur SD, une sonde de température, une led RGB, un emplacement pour une puce wifi (qui double le prix de la carte) et surtout un Zigbee, le tout pour un encombrement minime. La page Indiegogo résume bien ses capacités ainsi que sa taille. 50$ tout nu, pour un outil spécialisé, c'est une bonne affaire.


Partager cet article :