Was ist StartTLS?
Veröffentlicht: 2020-03-21Haben Sie sich jemals gefragt, wie E-Mails sicher von einem Server zum anderen gesendet werden? Bei der Verwendung des Simple Mail Transfer Protocol (SMTP) zum Versenden von E-Mails verlassen wir uns auf eine Kombination aus StartTLS und Transport Layer Security (TLS) oder Secure Sockets Layer (SSL), um unsere E-Mails zu verschlüsseln und sicher im Posteingang zu landen.
Aber was ist StartTLS?
StartTLS ist ein Protokollbefehl, der verwendet wird, um den E-Mail-Server darüber zu informieren, dass der E-Mail-Client von einer unsicheren Verbindung zu einer sicheren Verbindung mit TLS oder SSL aktualisieren möchte. StartTLS wird mit SMTP und IMAP verwendet, während POP3 den etwas anderen Befehl für die Verschlüsselung verwendet, STLS.
Wir werden uns mit den Unterschieden zwischen TLS und SSL, dem StartTLS-Prozess und dem Testen von StartTLS für Ihr Programm befassen.
Wie funktioniert StartTLS?
TLS vs. SSL
Obwohl „TLS“ in seinem Namen steckt, funktioniert StartTLS mit beiden Verschlüsselungsprotokollen, TLS und SSL.
Während StartTLS mit beiden Protokollen funktioniert, empfehlen wir die Verwendung von TLS über SSL. SSL ist ein älteres Protokoll und nicht so sicher wie sein Nachfolger TLS. SSLv2 und SSLv3 sind beide veraltet.
Als Referenz finden Sie hier eine Liste der SSL- und TLS-Protokolle vom ältesten zum neuesten:
SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
Sowohl der E-Mail-Client als auch der E-Mail-Server müssen sich darauf einigen, welche Verbindung verwendet werden soll. Der E-Mail-Client unterstützt möglicherweise TLSv1.3, aber der E-Mail-Server unterstützt möglicherweise nur bis zu TLSv1.2. Das bedeutet, dass beide Parteien TLSv1.2 verwenden müssen, um mit der Verschlüsselung fortzufahren.
Weitere Informationen zu TLS vs. SSL finden Sie auf unserer Dokumentationsseite .
Der StartTLS-Prozess
SMTP startet immer unverschlüsselt. Der StartTLS-Befehl startet die Aushandlung zwischen Server und Client. Hier ist ein Überblick über die Kommunikation, die zwischen dem E-Mail-Client und dem E-Mail-Server stattfindet.
- Der Prozess beginnt mit dem Transmission Control Protocol (TCP)-Handshake, um sowohl dem E-Mail-Client als auch dem Server zu helfen, sich gegenseitig zu identifizieren.
- Der Server erkennt mit 220 Ready, dass der E-Mail-Client mit der Kommunikation fortfahren kann.
- Der Client sendet dem Server „EHLO“, um den Server darüber zu informieren, dass der Client Extended SMTP verwenden möchte (die fortgeschrittenere Version von SMTP, mit der Sie Bilder, Anhänge usw. einfügen können).
- Der Client sendet „250-STARTTLS“ an den Mailserver, um zu fragen, ob StartTLS akzeptiert wird oder nicht.
- Wenn der Server „Go Head“ zurücksendet, kann die StartTLS-Verbindung erstellt werden.
- Der Client startet die Verbindung neu und die E-Mail-Nachricht wurde verschlüsselt.
Hier ist eine visuelle Darstellung des StartTLS-Prozesses.
Welchen Port sollten Sie verwenden?
Der Port, der StartTLS am häufigsten verwendet, ist Port 587. Häufig müssen E-Mail-Clients StartTLS verwenden, um E-Mails zu senden. Andere Ports, die zum Senden verschlüsselter E-Mails verwendet werden, sind 25, 465 und 2525. Da Port 25 für die E-Mail-Übertragung und nicht für die Übermittlung konzipiert wurde, blockiert Ihr ISP möglicherweise E-Mails, die über diesen Port gesendet werden. Port 465 ist der am zweithäufigsten verwendete Port für StartTLS.
Opportunistisch vs. erzwungenes TLS
Es gibt verschiedene Möglichkeiten, Ihr E-Mail-Verschlüsselungsprogramm einzurichten, indem Sie entweder opportunistisches TLS oder erzwungenes TLS verwenden:
Opportunistisches TLS (oder explizites TLS) ermöglicht es dem E-Mail-Client, auf der höchsten Verschlüsselungsstufe zuzustellen, die der Empfängerserver akzeptiert. Wenn der Empfängerserver TLS nicht akzeptiert, verhandelt der E-Mail-Client mit dem Server und stimmt einem Downgrade auf eine unverschlüsselte Verbindung zu. Die Nachricht wird dann unverschlüsselt im Klartext versendet. Diese Methode ist nützlich, da Sie denselben Port sowohl für verschlüsselte als auch für unverschlüsselte E-Mails verwenden können.
Erzwungenes TLS (oder implizites TLS) erfordert, dass die E-Mail über eine sichere Verbindung gesendet wird. Wenn die Verbindung nicht verschlüsselt ist, wird das Senden der E-Mail blockiert. Diese Methode ist viel sicherer als Opportunistic TLS, führt jedoch dazu, dass mehr E-Mails verworfen werden.
Beide Ansätze sind in der E-Mail-Welt weit verbreitet, also überlegen Sie, was für Ihr Programm am sinnvollsten ist. Wenn Sie E-Mails senden, die vertrauliche, persönliche Informationen enthalten, ist es möglicherweise am besten, erzwungenes TLS zu verwenden. Wenn Sie andererseits nicht sensibles Material wie Marketing oder Werbeaktionen senden, sind Sie möglicherweise eher geneigt, opportunistisches TLS zu verwenden.
Andere TLS-Anwendungsfälle
TLS wird häufig zur Verschlüsselung einer Vielzahl von Kommunikationsmethoden außerhalb von E-Mail verwendet. Da TLS ein relativ einfaches, mehrstufiges Protokoll ist, lässt es sich leicht an eine Vielzahl von Kommunikationsarten anpassen. Dazu gehören Webbrowser, SMS und Voice over IP. Tatsächlich verwenden viele Unternehmen TLS, um die gesamte Kommunikation zwischen ihren Webservern und Browsern zu verschlüsseln, selbst wenn es sich bei dem Großteil der Kommunikation nicht um sensibles Material handelt.
Weitere Informationen darüber, wie Twilio TLS verwendet, finden Sie auf der Sicherheitsseite von Twilio .
Warum ist StartTLS wichtig?
SMTP ist standardmäßig nicht gesichert, was bedeutet, dass, wenn Sie E-Mails über SMTP ohne StartTLS senden würden, die E-Mail abgefangen und leicht interpretiert werden könnte. Dies ist besonders besorgniserregend, wenn vertrauliche, persönliche Informationen wie Benutzernamen, Passwörter oder Bankinformationen gesendet werden.
Ohne StartTLS besteht die Gefahr, dass Ihre persönlichen Daten gestohlen werden.
Wenn ein E-Mail-Client StartTLS verwendet, informiert er den Server darüber, dass der Inhalt verschlüsselt werden muss. Wenn die E-Mail auf diese Weise abgefangen wird, wurde der Inhalt verschlüsselt und ist sehr schwierig zu entschlüsseln. Der E-Mail-Server und der E-Mail-Client sind die einzigen, die den Schlüssel zum Entschlüsseln der Nachricht besitzen.
Nachteile
Es gibt bestimmte Nachteile bei der Verwendung von StartTLS. E-Mail-Clients sind anfällig für Man-in-the-Middle-Angriffe, da bei der anfänglichen Verbindung zwischen E-Mail-Client und Server die IP-Adressen nicht verschlüsselt werden.
Die Verwendung von StartTLS könnte der SMTP-Verbindung auch etwas Latenz hinzufügen. Dies wäre nicht genug Verzögerung, um unverschlüsselte E-Mails zu senden, aber es ist gut, daran zu denken.
Wie teste ich StartTLS?
Es ist wichtig, im Voraus zu testen, ob der Server StartTLS verarbeiten kann. Wenn es StartTLS nicht verarbeiten kann, könnten Sie versehentlich eine beträchtliche Menge an E-Mails senden, die nicht verschlüsselt sind und daher anfällig für Angriffsvektoren sind.
Hier ist ein Beispiel dafür, wie Sie StartTLS vom SMTP-Server von SendGrid testen würden.
Wie verwendet Twilio SendGrid StartTLS?
Twilio SendGrid unterstützt TLS v1.1 und höher. Unverschlüsselte und TLS-Verbindungen werden auf den Ports 25, 587 und 2525 akzeptiert. Alternativ können Sie eine Verbindung über SSL auf Port 465 herstellen.
Wir folgen opportunistischem TLS und senden auf der höchsten Verschlüsselungsstufe, die der Empfängerserver akzeptiert. Wir bieten auch erzwungenes TLS an . Sie haben die Wahl, ob Ihre E-Mail über eine verschlüsselte Verbindung gesendet werden soll oder nicht. Wenn der Empfängerserver keine verschlüsselten Nachrichten akzeptiert, wird die Nachricht verworfen und wir senden ein Block-Ereignis.
Sie würden hauptsächlich mit StartTLS interagieren, wenn Sie die SMTP-Anforderung an Twilio SendGrid initiieren und um das Senden von E-Mails bitten. Andernfalls kümmert sich Twilio SendGrid um den Abgleich der TLS-Zertifikate, den Rest des Verschlüsselungsprozesses und alle Probleme, die dabei auftreten können.
Weitere Informationen zu Twilio SendGrid und SMTP finden Sie in unserem Dokumentationsartikel How to Send an SMTP Email .