Greylisting is een methode om ongewenste e-mail (spam) tegen te gaan op het niveau van de SMTP-mailserver. Het idee is dat er naast een witte lijst en een optionele zwarte lijst ook een grijze lijst is waarmee wordt bepaald of een onbekende mailserver gezond of ongezond gedrag vertoont.
Gezonde mailserver
Met een gezonde mailserver, ook wel MTA genoemd (MTA – Mail Transfer Agent), wordt gedoeld op een server die niet voor spamdoeleinden is opgezet. Een voorbeeld hiervan is de mailserver van een internetprovider (bijvoorbeeld Chello, XS4All, Planet, Ziggo) of e-mailprovider (bijvoorbeeld Hotmail). Een beperking van greylisting is dat spam ontvangen kan worden via deze providers, als deze niet zelf aan goede bescherming en/of filtering doen.
Ongezonde mailserver
Met een ongezonde mailserver wordt een server bedoeld die opgezet is om grote hoeveelheden ongewenste (spam) berichten te versturen naar een groot aantal e-mailadressen. Soms zijn deze servers via een worm geïnstalleerd op PC's van nietsvermoedende gebruikers.
De werking
Of er greylisting wordt toegepast, wordt ten eerste bepaald door de whitelist en de optionele blacklist. Als het IP-adres van een inkomende verbinding niet op de whitelist staat, kan de verzendende MTA in eerste instantie niet communiceren met de ontvangende MTA. Daar zit dan eerst nog een nep-MTA tussen, die op basis van de greylist en de optionele blacklist bepaalt hoe de communicatie verder verloopt.
De optionele blacklist dient om servers te identificeren die enkel voor spam gebruikt worden. De ontvangende server zal nooit een bericht accepteren van servers op deze lijst. Eventueel wordt er door de nep-MTA ook nog getreiterd door extra langzaam te reageren (tarpit).
Als het IP-adres van de inkomende verbinding niet op de whitelist of de blacklist staat, komt het op de greylist terecht. De nep-MTA zal zich in het begin gedragen als een normale mailserver, en al gaande informatie verzamelen over het bericht dat de verzendende MTA wil afleveren. Het tijdstip van de eerste poging wordt genoteerd en vaak de HELO/EHLO-begroeting (een geldige domeinnaam). Soms worden ook verzender en ontvanger op de SMTP-envelop genoteerd. (Deze adressen kunnen anders zijn dan de verzender en ontvanger(s) in het e-mailbericht.) Echter, wanneer de benodigde gegevens genoteerd zijn, wordt de verbinding door de ontvanger verbroken, zonder de inhoud van het bericht te accepteren. Dit gebeurt met een weigeringsmelding (meestal code 451) die de ontvangende mailserver geeft aan de versturende mailserver. Een "gezonde" versturende mailserver zal het bericht bewaren en het op een later tijdstip nogmaals proberen.
Zodra de gezonde versturende mailserver het na een tijdje nogmaals probeert, zal de ontvangende mailserver de genoteerde gegevens controleren en op basis van de ingestelde tijd het bericht toelaten of wederom weigeren. Wanneer het tijdstip van acceptatie is aangebroken, zal bij de volgende poging het IP-adres op de whitelist komen te staan. Afhankelijk van de implementatie wordt de mail dan meteen geaccepteerd of pas bij de poging erna.
Het idee hierachter is dat een gezonde mailserver een wachtrij bijhoudt en het na paar minuten nogmaals probeert. Een "ongezonde" mailserver (spamserver) kan zich dit meestal niet veroorloven omdat anders zijn eigen wachtrijen vollopen. Het gevolg zou zijn dat het langer duurt om alle (spam)berichten te versturen, waardoor de opbrengst per server afneemt.
Voordelen
Vanwege het feit dat weinig spamservers met deze techniek om kunnen gaan wordt er weinig ongewenste mail geaccepteerd door de ontvangende server.
Omdat de inhoud van berichten waarvan de versturende server niet op de whitelist staat, geweigerd wordt, bereikt het bericht de spamfilters nog niet. De taak om de inhoud van het bericht te analyseren op spam, wordt de ontvangende server dus bespaard. Spamfilters zoals Apache SpamAssassin staan erom bekend dat het programma's zijn die veel verwerkingscapaciteit eisen.
Nadelen
Een groot nadeel van greylisting is dat de eindgebruiker er hinder van ondervindt. De eindgebruiker heeft namelijk geen zeggenschap over hoe snel de afzender wordt toegelaten. Daarnaast heeft de eindgebruiker ook geen zeggenschap over wanneer de versturende mailserver wederom de betreffende mail zal aanbieden. Om een concreet voorbeeld hiervan te geven; de Internet Service Provider @home probeert opnieuw te bezorgen na 1 uur. De eerste keer zal het dus een uur duren voordat een e-mail wordt geaccepteerd afkomstig van een @home adres. Dit is zeer lastig als de ontvangende partij nou juist op dat mailbericht zit te wachten.
Een ander nadeel van greylisting is dat niet alleen spamservers geen wachtrij hebben. Wanneer een applicatieprogramma een bericht wil versturen, maakt deze niet altijd gebruik van de lokale mailfunctionaliteit en proberen zelf verbinding te maken met de ontvangende mailserver. De e-mail zal de eerste keer worden geweigerd en de gebruiker die deze actie veroorzaakte, zal hoogstwaarschijnlijk een foutmelding krijgen.
Bovendien gebruiken veel grote Internet Service Providers een combinatie van meerdere mailservers. Soms wordt het bericht later niet door hetzelfde IP-adres maar door een ander opnieuw aangeboden. Dat betekent dat veel bekende domeinen bij voorbaat in de whitelist gezet moeten worden.
Al met al
Greylisting is een effectieve manier om het probleem van ongewenste mail tegen te gaan mits er een goede whitelist aanwezig is. De systeembeheerder zal de greylist moeten monitoren, om te voorkomen dat een bericht dagenlang onderweg is.