Les listes grises - La méthode
La méthode du Greylisting
Le nom de la méthode vient de ce qu'il s'agit d'un croisement entre les listes noires et les listes blanches, avec une gestion pratiquement automatique. Cette automatisation constitue l'un des éléments clés de la méthode.
La méthode est très simple. Pour chaque message, nous n'analysons que trois informations (désignées sous le terme de triplet dans le reste du document) :
- L'adresse IP du système envoyant le message
- L'émetteur indiqué dans l'enveloppe du message, et
- Le destinataire indiqué dans l'enveloppe du message.
Ces éléments forment un triplet unique caractérisant une "relation" par courrier électronique. Nous définissons alors une règle simple :
Règle de rejet | Si le système n'a pas encore validé un triplet particulier, il rejette, temporairement et pendant une durée limitée, le message et tout autre présentant le même triplet |
---|
SMTP étant considéré comme non fiable, l'éventualité d'un rejet temporaire est prévue dans le protocole (cf RFC 821). Tout agent d'acheminement doit donc ré-essayer d'envoyer un message lorsqu'il reçoit un code d'erreur temporaire (lire la discussion traitant des agents non-conformes).
Lors des premières phases de test du Greylisting, à la mi-2003, nous avons observé que l'écrasante majorité du pourriel semble provenir d'applications conçues spécialement pour cette tâche. Ces outils semblent utiliser la technique du "fire-and-forget", c'est-à-dire qu'ils tentent d'envoyer le pourriel vers l'un des MX d'un domaine, mais ne gèrent pas la réémission comme doit le faire un véritable agent d'acheminement. Cela signifie que, dans notre environnement de tests, reposant sur une interprétation assez conservatrice des données obtenues, nous avons atteint une efficacité voisine de 95%, sans qu'aucun message légitime ne soit jamais bloqué de manière permanente.
Qui plus est, avec la prolifération des virus basés sur le courrier électronique, le Greylisting s'est aussi révélé particulièrement efficace sur ce plan, puisque le moteur SMTP des virus ne gère pas souvent la ré-émission. Ces virus étant plutôt volumineux, les gains en bande passante et en traitement sont notables si on les compare aux méthodes classiques de contrôle et nettoyage après réception d'un message.
Le coût de ce filtrage, en termes de ressources locales, est minime. Si l'on utilise une base locale afin de stocker les triplets et quelques autres données supplémentaires, le Greylisting ne provoque aucun échange supplémentaire sur le réseau. Comme le contenu du message n'est pas analysé, contrairement à bien d'autres méthodes de filtrage du pourriel, la capacité de traitement n'est pas fondamentalement entamée.
Il y a une conséquence visible, qui peut être considérée comme positive ou négative selon les situations. Le Greylisting provoque un délai dans l'acceptation d'un message, ce qui occasionne une charge de travail supplémentaire pour l'agent émetteur. D'un autre côté, cela provoque beaucoup plus de travail du côté des systèmes d'émission de pourriel. Nous espérons que cela augmentera le coût des envois massifs de pourriel, peut-être même au point de le rendre non-rentable pour certains.
Le plus intéressant est que, puisqu'il n'y a jamais un rejet permanent de message, dès que l'agent d'émission respecte les RFCs, aucun message ne devrait se perdre. Il n'y a pas de faux positifs.