technique · réponse sourcée
Authentification SMTP : définition et mise en œuvre technique
L’authentification SMTP est un mécanisme de sécurité qui oblige un client de messagerie ou une application à prouver son identité auprès d’un serveur SMTP avant d’être autorisé à envoyer des e-mails. Elle empêche les relais ouverts en garantissant que seuls les utilisateurs autorisés peuvent faire transiter des messages par le serveur, généralement à l’aide d’un nom d’utilisateur et d’un mot de passe via l’extension AUTH.
Fonctionnement pas à pas
Le processus commence lorsque le client se connecte au serveur et émet la commande EHLO. Le serveur répond par la liste des extensions prises en charge, dont AUTH. Le client choisit alors un mécanisme d’authentification, comme PLAIN ou LOGIN, et transmet ses identifiants. Si le serveur valide ces identifiants auprès de sa base d’utilisateurs, il autorise le client à envoyer les commandes MAIL FROM et RCPT TO.
Pourquoi c’est important pour les expéditeurs
Sans authentification, un serveur se comporte comme un relais ouvert et permet à n’importe qui d’envoyer des e-mails. Son IP se retrouve alors rapidement sur des blocklists, car les spammeurs exploitent le port ouvert. Mettre en place l’authentification SMTP garantit que seules des applications légitimes peuvent envoyer des e-mails, une exigence fondamentale pour préserver une bonne réputation d’expéditeur et éviter que les messages soient rejetés par les serveurs de messagerie destinataires.
Notes opérationnelles et erreurs
Une erreur courante consiste à envoyer les identifiants sur des connexions non chiffrées. Pour éviter le vol d’identifiants, l’authentification doit toujours être associée à STARTTLS ou au TLS implicite. Autre problème fréquent : l’utilisation de méthodes d’authentification obsolètes que les fournisseurs modernes ne prennent plus en charge. Les développeurs peuvent utiliser les outils gratuits de SendHQ (https://sendhq.cc/tools) pour vérifier leurs configurations DNS et d’authentification.
Exemple concret de mise en œuvre
Dans une implémentation Python typique avec smtplib, le développeur se connecte au port 587, appelle starttls() pour sécuriser la connexion, puis invoque login(user, password). Cette séquence garantit que l’identité est vérifiée sur un canal chiffré avant que le serveur accepte le message pour le livrer à sa destination finale.
Méthodes d’authentification
Les méthodes les plus courantes sont PLAIN, qui envoie le mot de passe dans un format quasi en clair (Base64), et LOGIN, une méthode historique utilisée par les anciens clients. Les systèmes modernes privilégient souvent OAuth2 pour l’authentification SMTP : les applications utilisent alors des jetons au lieu de mots de passe statiques, ce qui réduit le risque d’exposition des identifiants dans les fichiers de configuration.
Les questions que posent les équipes
L’authentification SMTP est-elle la même chose que SPF ou DKIM ?
Non. L’authentification SMTP vérifie le client auprès du serveur pendant l’envoi. SPF et DKIM vérifient l’expéditeur auprès du serveur destinataire une fois l’e-mail envoyé.
Quel port est généralement utilisé pour le SMTP authentifié ?
Le port 587 est le standard pour la soumission d’e-mails avec authentification et STARTTLS, tandis que le port 465 est utilisé pour le TLS implicite.
Que se passe-t-il si l’authentification SMTP échoue ?
Le serveur renvoie le code d’erreur 535 Authentication Failed et rejette le message, qui ne peut alors être ni mis en file d’attente ni délivré.