Idées pour une messagerie électronique moderne
Après avoir décrit le pourquoi du comment de la fin du E-mail, que c'est une technologie d'il y a 40 ans qu'il faut remplacer pour une autre moderne, et bien je me suis attelé à concevoir cette nouvelle messagerie électronique. Finalement, c'est tellement simple que je me demande pourquoi on ne l'utilise pas déjà !
Cahier des charges d'une messagerie électronique moderne.
- PAS DE SPAM. Je crois que c'est le point qui va le plus intéresser les gens ! Ceci implique un filtrage des expéditeurs. Comme sur une messagerie instantanée, on ne communique qu'avec ses propres contact.
- Envoi de contenu riche. (Mise en forme HTML css. C'est le plus simple)
- Envoi de fichiers attachés. (pour que les gens qui n'utilise la messagerie que comme moyen de transport pour fichier word ne soient pas perdus !)
- Possibilité de fournir à ses contact une adresse de messagerie simple. (Faudra refaire les cartes de visite !)
- La sécurité. Donc, cryptage et signature électronique supportée.
- Un accusé de réception du message envoyé.
- Possibilité de signaler un status. (en vacances, prêt à répondre dans les 3 minutes, répondra demain, très occupé... etc...)
- Possibilité de créer facilement des listes de diffusion.
Architecture basée sur les flux Atom.
Principe de fonctionnement
Comment concevoir une messagerie qui correspond au cahier des charges ci-dessus ?
L'idée ici est de se baser sur une communication par flux Atom. Comme je l'ai imaginé, le principe est finalement très simple, il est basé uniquement sur des technologies que l'on utilise déjà largement.
De nombreuses personnes communiquent des informations à qui veut bien s'y intéresser par l'intermédiaire de blogs. Le blog est destiné à être publique. Cependant, on peut très bien imaginer communiquer en privé sur un blog avec accès restreint. Ce genre de communication est uni-directionnelle. Cependant, on peut imaginer utiliser le même principe dans les deux sens et ainsi assurer une communication bi-directionnelle.
Voilà, le principe est là. Avec chacun de ses contacts on établis des voies de communications dans les 2 sens.
Toutefois, le principe du blog, (même s'il ressemble au webmail) est un peu contraignant. Je ne vais probablement pas tous les jours faire le tour de tous les blogs de mes amis pour voir si par hasard ils auraient pas laisser un message pour moi ! Il faut automatiser la chose.
Cet automatisme existe déjà et est justement très utilisé sur les blogs dans ce but. Il s'agit des flux rss/atom. Périodiquement, mon agrégateur de flux va faire le tour de tous les blogs pour récupérer un petit fichier xml qui contenant une sorte de liste de modification du site web. Ainsi, je suis averti automatiquement de toute modification sur les sites m'intéressant, sans avoir à les visiter.
Le principe de cette messagerie va donc être de créer des flux publics et privés. Puis de scruter les flux de ses contacts pour voir s'ils ont des messages à mon intention. Toute la technologie nécessaire est déjà disponible. Il ne reste plus qu'à mettre en place une manière simple de tout relier pour une utilisation quotidienne agréable.
Liste des flux
- Flux public optionnel. C'est le blog, les infos à son propos que l'on veut publier au vaste monde.
- Flux de paramètres personnels. Il indique de manière normalisée en Atom, le nom du contact, éventuellement une Vcard ou Hcard, ainsi que la liste des url des flux nécessaires au fonctionnement de la messagerie. (url de status, url de demande d'affiliation). C'est cette url qui va désormais servir d'adresse mail à diffuser sur ces cartes de visite.
- flux de status. A l'image de ce que l'on trouve pour les messagerie instantanée, il indique le status de la personne. (occupée, en vacance, répond de suite, répond plus tard, date de dernière connexion). Cette information permet, par exemple, à un contact de déterminer la fiabilité qu'a un message d'être pris en compte par son interlocuteur dans un certain délai. S'il voit que son interlocuteur est en vacances, il utilisera peut être une autre moyen de communication.
- Flux atom privé de communication. Ce genre de flux va être créer pour chaque contact et dans chaque sens. L'url doit être gardée secrète pour garantir que la conversation soit privée. L'url de ce flux est constituée d'une clé hexadécimal de 32 caractères, (3.4*10^38 possibilités) à l'image de ce que google calendar propose comme url privée d'échange de calendrier au format atom.
La confidentialité de la conversation entre 2 contacts repose sur le secret de cette url, il faut donc bien la protéger dans le client de messagerie. Pour renforcer la sécurité, il est possible de protéger l'accès au flux par une authentification http. (mot de passe ou certificats, etc..)
- une url de demande d'ajout de contact. Par une requête, il est possible de faire une demande pour établir un canal de communication entre 2 personne. Lors de la demande, hormis peut être une petite phrase d'explication, il est fourni l'url d'un flux privé que le demandeur propose pour diffuser ses messages à destination du destinataire. Si la demande est acceptée, le contact retourne l'url privé proposée par le demandeur, afin que celui-ci puisse savoir de manière fiable que sa demande est acceptée. (l'url fait office de secret partagé).
Les flux privés peuvent être diffusés de manière restreinte dans le cas ou l'on veut faire des diffusions multicast. Des groupes de diffusion. Cependant, pour supprimer un destinataire, il faut refaire une nouvelle adresse privée et la redifusser à tous les contacts autorisés. Il n'y a pas moyen d'interdire l'accès à un seul contact. (sauf à l'aide d'une authentification http)
Pour s'occuper de la gestion de sa boite mail, un utilisateur va aussi utiliser des flux.
- flux de demandes pendantes d'acceptation de contact. (L'url de demande d'acceptation de contact est le seul point faible du système qui risque du spam et des attaques DOS. Il faut éventuellement trouver des moyens de le protéger.)
- Flux de gestion des messages lu. C'est en quelques sorte l'historique des accès au flux. Si un flux privé destiné à une seule personne est téléchargé. On suppose que le contact à récupérer le nouveau message qui lui était destiné. Ainsi, il est possible de faire un accusé de réception. Il est également possible, suivant la connaissance des habitudes de son contact, de remarquer tout accès suspect au flux et donc de démasquer une lecture non autorisée !! Ce qui permet de changer d'url le cas échéant.
Le fonctionnement d'une telle messagerie fonctionne dans le sens inverse du e-mail. Avec le e-mail, c'est l'expéditeur qui dépose un message sur le serveur du destinataire. Avec ce nouveau type de messagerie par flux Atom. C'est le destinataire qui va chercher chez tous ces contacts si éventuellement il n'y aurait pas des messages pour lui. Ce principe peu paraître paradoxal et plus contraignant, mais c'est bien ce principe qui garanti que le destinataire peu se prémunir du spam. Chacun peut rompre à tout moment une communication.
Avec un fonctionnement basé sur les flux atom, on peut dès maintenant utiliser des outils déjà existant. Notamment tous les outils de podcasting. Ce qui permet de proposer une messagerie par message vocaux ou même vidéo. (toujours en différé)