Bonjour à tous !
Vous connaissez probablement ProtonMail, un service de mél centré sur la sécurité. D'une part, les données sont stockées sur des disques intégralement chiffrés dans un datacenter directement contrôlé par ProtonMail, dans un ancien bunker en Suisse. D'autre part, les messages envoyés entre utilisateurs de ProtonMail (et bientôt, de PGP) sont chiffrés de bout en bout par un mot de passe qui n'est jamais envoyé au serveur.
ProtonMail a publié le code source de son client web. Néanmoins, le code du serveur reste propriétaire.
J'aime beaucoup l'interface de ProtonMail, mais je préfère conserver (pour le moment en tout cas) mon serveur e-mail actuel. J'ai donc créé le projet Neutron, un serveur open-source pour ProtonMail.
Le client web envoie des requêtes au serveur via une API HTTP REST. Le serveur doit donc correctement répondre aux requêtes du client.
Pour l'instant, le projet n'en est qu'à ses débuts. Les étapes sont les suivantes :
- Définir une interface pour le backend (fait): les emails et autres données pourront être stockées sur plusieurs supports (serveur IMAP, base de données SQL, disque dur…). Il faut donc définir une interface générique qui fera le lien entre Neutron et le support en question.
- Coder un serveur basique (presque terminé): à des fins de tests et pour vérifier le comportement du serveur, il est commode de créer un serveur "idiot" (avant d'attaquer le support de IMAP). Pour cela, il faut créer un backend qui stocke en mémoire les données et supporter l'ensemble de l'API de ProtonMail.
- Coder un backend: probablement un backend IMAP
Pour ceux qui sont intéressés, voici quelques liens :
- Démo : http://beta.webmail.emersion.fr (nom d'utilisateur :
neutron
, mots de passe :neutron
) - Code source sur GitHub : https://github.com/emersion/neutron