Les nouveaux services de messagerie électronique
La sécurisation
Smtp-auth (RFC 4954)
Cette extension du protocole SMTP propose un mécanisme de contrôle d'accès. C'est un protocole de transfert des courriels sur Internet qui inclut une étape d'authentification au cours de laquelle le client se connecte explicitement au serveur pour l'envoi des courriels. Les serveurs qui supportent le protocole SMTP-AUTH (qui peuvent dialoguer en usant d'une authentification préalable) peuvent être paramétrés pour n'accepter que des clients capables de s'authentifier (clients possédant cette extension) et ainsi certifier d'une autorisation d'accès pour ces derniers.
Smtp-aut peut être utilisé pour n'autoriser que certains utilisateurs à relayer des courriers et donc refuser les autres clients tels que les spammers. Il ne garantit par contre pas l'authenticité de l'enveloppe SMTP ni l'information d'en-tête appelée From: de la recommandation RFC 2822. Par exemple, le Spoofing où un utilisateur peut se faire passer pour quelqu'un d'autre est possible avec Smtp-auth (seule l'action d'envoi de courriers est ici contrôlée).
L'extension Smtp-auth permet également à un serveur de courriers d'indiquer à un autre serveur que l'expéditeur a été authentifié lors du relayage de courriers. En général, cela nécessite au serveur cible de faire confiance au premier serveur. C'est pour cette raison que ce protocole est peu utilisé sur Internet. Le destinataire d'un courrier ne peut pas savoir si l'expéditeur a été authentifié, c'est pourquoi Smtp-auth n'est qu'une solution partielle au problème du spam.
On peut conclure que même si Smtp-auth est une solution plus sécurisée que SMTP, il comporte cependant des faiblesses. Si les utilisateurs authentifiés sont autorisés à émettre des courriers depuis certaines adresses IP, rien n'indique qu'un utilisateur frauduleux ne pourra pas violer un compte utilisateur pour utiliser le serveur de courriers.
TLS & SASL
-
TLS (RFC5246)
Le TLS pour Transport Layer Security, est un protocole de sécurisation des échanges sur Internet. Il fonctionne suivant un mode client-serveur et fournit les objectifs de sécurité suivants :
- l'authentification du serveur ;
- la confidentialité des données échangées ;
- l'intégrité des données échangées ;
- de manière optionnelle, l'authentification ou l'authentification forte du client avec l'utilisation d'un certificat numérique ;
- la spontanéité, c.-à-d. qu'un client peut se connecter de façon transparente à un serveur auquel il se connecte pour la première fois ;
- la transparence, qui a contribué certainement à sa popularité. Du fait que les protocoles de la couche d'application n'aient pas à être modifiés pour utiliser une connexion sécurisée par TLS.
Sur un serveur de mssagerie il faut bien identifier les deux types de flux à sécuriser. Le flux de transport de courrier, qui utilise le protocole SMTP et le flux de relève de boîte aux lettres qui utilise le plus souvent POP3 et IMAP.
Le protocole SMTP dispose d'une extension STARTTLS définie par la RFC 2487. Cette extension permet :
- l'authentification forte des serveurs SMTP (via un certificat),
- l'établissement d'une session TLS (chiffrée) entre 2 serveurs,
- l'authentification forte des clients SMTP (via un certificat),
- l'établissement d'une session TLS (chiffrée) entre le client et le serveur,
Les protocoles POP3 et IMAP sont très largement utilisés pour relever ou consulter les boîtes aux lettres. Le problème c'est que ces protocoles transmettent l'authentification username/password en clair (sauf cas particuliers).
La RFC 2595 répond à ce problème en introduisant l'extension STARTTLS. Tout comme pour SMTP, cette commande permet de passer en mode TLS une fois la connexion établie. Elle permet également, comme pour SMTP, d'authentifier de façon forte le client et de remplacer le couple username/password par un certificat client.
Il est possible d’utiliser le protocole TLS pour garantir l’authentification ainsi que la confidentialité des échanges. Mais ce n’est pas suffisant, lors d’une transaction, le protocole TLS est mis en place entre le client à l’initiative de la connexion et le serveur. Dès que la transaction est finie et le message recu par le serveur, le message n’est plus sécurisé et rien ne garantit que le serveur suivant supporte a nouveau le TLS.
-
SASL (RFC4422)
Le SASL pour Simple Authentication and Security Layer est un cadre d'authentification et d'autorisation standardisé par l'IETF.
Ce cadre découple les mécanismes d'authentification des protocoles d'application, permettant en théorie à n'importe quel mécanisme d'authentification pris en charge par SASL d'être employé à partir de n'importe quel protocole d'application capable d'utiliser SASL. Les mécanismes d'authentification peuvent également opérer l'autorisation par serveur mandataire, une technique permettant à un utilisateur d'assumer l'identité d'un autre. Les mécanismes d'authentification peuvent également fournir une couche d'intégrité des données laquelle permet d'offrir des services de sécurité des données et de confidentialité des données. Un exemple connu d'une telle couche d'intégrité des données est DIGEST-MD5. Les protocoles d'application qui proposent SASL prennent très souvent en charge le protocole de sécurisation des échanges TLS en complément des services offerts par SASL.
DKIM (RFC 4871)
Ce protocole permet la signature électronique du corps du message et certaines entêtes. Il garantit donc l’authenticité du domaine expéditeur et l’intégrité du message.
DKIM signifie DomainKeys Identified Mail, c'est une technologie de signature des messages dont l'objet est de pouvoir certifier qu'un message est intègre et qu'il provient bien du domaine de son auteur.
Le DKIM utilise du chiffrement asymétrique pour garantir l'intégrité du corps du message et de certaines de ses entêtes. L'entête From: fait bien entendu partie des entêtes signée. La signature ainsi construite, insérée dans une nouvelle entête du message, peut être vérifiée par tout destinataire en exploitant la clef publique du domaine concerné. Celle-ci est publiée dans le DNS. On peut comparer cette technologie à OpenPGP et S/MIME, deux autres techniques permettant la signature de message et qui renforce l'arsenal des dispositifs de lutte contre le spam et plus particulièrement de l'hameçonnage.
S/MIME (RFC 1847)
Cette extension permet de gérer à la fois les signatures numériques et le cryptage des données. Différentes fonctionnalités sont donc à disposition :
- Authentification
- Non répudiation
- Intégrité des données
- le cryptage des messages
- Confidentialité
- Intégrité des données
- Les signatures numériques ;
- Le cryptage des messages.
Les signatures numériques sont les services S/MIME le plus communément utilisés. Comme leur nom l'indique, les signatures numériques sont les équivalents numériques des signatures officielles. Elles permettent certaines fonctionnalités telles que :
- Authentification : Une signature sert à valider une identité. Elle permet au destinataire d'un message de savoir que ce dernier a bien été expédié par la personne ou l'entreprise qui prétend l'avoir fait.
- Non répudiation : Le caractère unique d'une signature empêche son propriétaire de la réfuter. Il est facile pour un expéditeur de nier être à l'origine d'un message SMTP.
- Intégrité des données : Cela permet de garantir que le message électronique reçu est bien le même que celui qui a été signé et envoyé, et qu'il n'a pas été modifié en cours de route.
- Confidentialité Le cryptage des messages permet de protéger le contenu d'un message électronique. Seul le destinataire indiqué peut voir le contenu du message.
- Intégrité des données À l'instar des signatures numériques, le cryptage des messages assure des services d'intégrité des données
Exemple de signature et chiffrement d'un courriel
- Le message est capturé.
- Le Certificat X.509 de l'expéditeur est récupéré => utilisatation de sa clef privé pour signature
- Le Certificat X.509 du destinataire est récupéré => utilisation de sa clef publique pour chiffrer
- Une opération de signature est effectuée sur le message à l'aide de la clef privé de l'expéditeur afin de produire une signature numérique.
- La signature numérique est ajoutée au message.
- L'opération de cryptage est effectuée sur le message à l'aide de la clef publique du destinataire afin de produire un message crypté.
- Le message d'origine est remplacé par un message crypté.