technisch · antwoord met bronnen

STARTTLS: beveiligde SMTP-communicatie via opportunistische TLS

STARTTLS is een SMTP-service-extensie waarmee een onbeveiligde verbinding met TLS kan worden geüpgraded naar een beveiligde verbinding. Client en server kunnen zo via één poort een beveiligd kanaal afspreken, zodat de inhoud van e-mails en de inloggegevens onderweg versleuteld zijn.

Hoe het technisch werkt

Het proces begint met een standaard, onversleutelde SMTP-handshake. De server meldt in zijn EHLO-respons dat hij STARTTLS ondersteunt. De client geeft vervolgens het STARTTLS-commando. Als de server dat accepteert, voeren beide partijen een TLS-handshake uit om de versleuteling op te zetten. Zodra de beveiligde laag actief is, gaat de sessie verder met de gewone SMTP-commando's, maar is alle data die daarna volgt versleuteld.

Waarom het belangrijk is voor afzenders

STARTTLS voorkomt afluisteren en man-in-the-middle-aanvallen door het communicatiepad tussen mailservers te versleutelen. Zonder STARTTLS gaat SMTP-verkeer onversleuteld over het netwerk, waardoor gevoelige berichtinhoud en inloggegevens zichtbaar zijn voor iedereen die het netwerkpad afluistert. De meeste moderne ontvangende servers geven de voorkeur aan versleutelde verbindingen of eisen ze om mail te accepteren.

Praktische overwegingen

Een groot risico is de downgrade-aanval, waarbij een aanvaller het STARTTLS-commando uit de respons van de server haalt, zodat de client de mail onversleuteld verstuurt. Om dat te voorkomen, kunnen beheerders MTA-STS implementeren of verplichte TLS instellen. Met de gratis tools van SendHQ (https://sendhq.cc/tools) kun je de algemene configuratie van je domein controleren voor een betere bezorging.

Veelgemaakte implementatiefouten

Een veelgemaakte fout is STARTTLS verwarren met impliciete TLS. STARTTLS begint op een onversleutelde poort (zoals 587) en upgradet daarna, terwijl impliciete TLS (poort 465) een beveiligde handshake vereist voordat er ook maar één SMTP-commando wordt verstuurd. Een verkeerd ingestelde poort of een ongeldig SSL-certificaat leidt tot mislukte verbindingen of een terugval naar onveilige verzending.

Concreet voorbeeld

Een client maakt verbinding met poort 587 en stuurt EHLO. De server antwoordt met 250-STARTTLS. De client stuurt STARTTLS. De server antwoordt met 220 Ready to start TLS. Client en server spreken sleutels af en versleutelen de sessie. Daarna stuurt de client AUTH LOGIN om zijn credentials veilig door te geven zonder ze op het netwerk bloot te stellen.

Vragen die teams stellen

Is STARTTLS hetzelfde als SSL/TLS?

STARTTLS is een commando waarmee je een TLS-sessie start op een bestaande, onversleutelde verbinding, terwijl SSL/TLS de onderliggende versleutelingsprotocollen zelf zijn.

Wat gebeurt er als STARTTLS mislukt?

De meeste servers gebruiken standaard opportunistische TLS: als de handshake mislukt, vallen ze terug op onversleutelde verzending, tenzij verplichte TLS expliciet is ingesteld.

Welke poort wordt meestal gebruikt voor STARTTLS?

Poort 587 is de standaard submissionpoort voor STARTTLS, maar STARTTLS wordt ook vaak gebruikt op poort 25 voor relay tussen servers.

Primaire bronnen