Octopuce est un hébergeur fournissant le service maximal à ses clients. Nous hébergeons beaucoup de boîtes mail POP/IMAP et fournissons en même temps le service SMTP authentifié, qui permet d’envoyer des mails via votre hébergement.
Nous faisons donc notre possible pour que ce service fonctionne chez tout le monde. Récemment nous avons eu de gros problèmes avec le logiciel Outlook pour MacOsX, et voici ce que nous en avons déduit.
Introduction : les protocoles de mail, le mot de passe et les modes d’authentification
Sur le web, il existe 3 principaux protocoles de mail : POP et IMAP pour la réception des messages présents dans votre boîte, et SMTP pour l’envoi.
Ces 3 protocoles utilisent, pour identifier la personne qui se connecte, un système d’authentification. Ils peuvent aussi chiffrer la connexion, la rendant non interceptable par un tiers.
Il existe plusieurs modes d’authentification, le plus courant étant « PLAIN », qui consiste à envoyer le nom d’utilisateur et le mot de passe en clair au serveur, qui le hashe et compare le hash avec ce qu’il a dans sa base d’utilisateurs. Ainsi, on ne stocke pas en clair les mots de passe, mais on ne stocke qu’un « hash avec sel » (salted hash), une version dégradée du mot de passe, qui empêche de retrouver le mot de passe en clair.
Ainsi, si un serveur ou la base de données des mots de passe se fait pirater (non ça n’arrive pas qu’aux autres, il faut donc être prudent !), l’attaquant n’aura pas accès à vos mots de passe. Cela est d’autant plus important qu’il est connu que les internautes utilisent le même mot de passe un peu partout…
L’autre mode d’authentification classique est CRAM-MD5. Comme tous les autres modes d’authentification de sa catégorie, il repose sur un échange complexe entre le client et le serveur, qui fait que le mot de passe ne circule pas en clair sur le réseau (pratique pour les protocoles POP IMAP ou SMTP quand l’utilisateur n’a pas activé le chiffrement SSL ou TLS). Cependant, ces protocoles nécessites de disposer, sur le serveur, du mot de passe en clair, ce qui est une hérésie pour les raisons évoquées plus haut.
Aussi, à Octopuce, nous avons décidé il y a bien longtemps de stocker les mots de passe sous forme de « hash avec sel », donc cryptés.
Ce faisant, nos serveurs POP/IMAP/SMTP ne savent utiliser que l’authentification PLAIN, et pas CRAM-MD5 ou autres. Le mot de passe circule alors en clair dans la connexion, mais cela n’est pas un problème puisque nos utilisateurs peuvent chiffrer la connexion dans son ensemble grâce à SSL ou STARTTLS.
Outlook sur Mac est défaillant et on ne peut rien y faire
Revenons à notre Outlook pour MacOsX : dans les logiciels de mail, vous pouvez régler les paramètres d’accès à votre boîte aux lettres en choisissant :
- le protocole utilisé (POP ou IMAP pour la réception, SMTP pour l’émission) ;
- le port utilisé : les standards 110 pour POP, 143 pour IMAP, 25 pour SMTP, ou non standards, par exemple 587 pour SMTP, au cas où votre fournisseur d’accès à internet bloquerait le port SMTP 25 pour lutter contre le spam ;
- la sécurité de la connexion (chiffrement ou pas), on peut n’en utiliser aucune, ou SSL (utilisant alors un port différent : 993 pour l’IMAP, 995 pour le POP, et 465 pour le SMTP) ou STARTTLS, système de chiffrement utilisant le port standard de la connexion, mais chiffrant celle-ci ;
- le type d’authentification en jeu : aucune (utile uniquement en SMTP si d’autres système de reconnaissance sont en jeu), PLAIN, CRAM-MD5, NTLM, etc. Comme nous l’avons vu plus haut, nous conseillons donc PLAIN avec SSL ou STARTTLS, seule option pertinente à ce jour.
Or, si tous les logiciels que nous avons vu utilisés par nos clients savent très bien fonctionner dans de bonnes conditions (Thunderbird, Entourage, Mail pour MacOsX, voir Outlook pour Windows, même s’il reste le pire de tous de ce côté…), il advient que Microsoft Outlook pour MacOsX ne sait pas gérer des paramètres précis et corrects :
En effet, autant il est possible de choisir de faire du chiffrement ou pas (SSL/TLS ou Aucun), autant il est possible de choisir (via une case à cocher) d’utiliser une authentification sécurisée (CRAM ou NTLM) pour le serveur entrant (POP/IMAP) mais pas pour le serveur SORTANT SMTP, qui exige toujours une telle authentification, et refuse donc de s’identifier avec un login/mot de passe en clair (PLAIN) même si la connexion est chiffrée !
Pour preuve, une capture des paramètres d’Outlook montre que la case à cocher concerne le serveur entrant, et pas le serveur sortant (le « always use secure password« ) :
Ainsi, il est tout simplement impossible de s’identifier sur un serveur SMTP via Outlook pour MacOsX, si le mot de passe est crypté côté serveur !
Bien évidemment, nous avons trouvé une solution, qui consiste à déployer un système Pop-Before-Smtp, que nous détaillerons dans un prochain article.
Ce petit article était donc là pour vous montrer l’importance du support aux utilisateurs, et surtout pour vous inviter à ne jamais utiliser Outlook, a fortiori Outlook pour MacOsX, ces logiciels étant incapables de parler décemment les protocoles standards de l’Internet !