%20mit%20STARTTLS.png)
Ich untersuche den Grund, warum TLS/SSL nicht über HTTP verwendet wird. Andere Protokolle wie SMTP, POP3, FTP usw. können auf SSL-Ports verwendet werden (SMTPS, POP3S, FTPS) für die erste Möglichkeit, und die zweite Möglichkeit besteht darin, die Option STARTTLS im aktuellen Port mit der Erweiterung (SMTP-Beispiel) Es gibt eine beliebte Möglichkeit, die zweite Methode (STARTTLS) für E-Mail-Protokolle zu verwenden, aber warum verwendet http nicht STARTTLS? Ich habeRFC TLS innerhalb von HTTP/1.1, aber es wird heutzutage nicht mehr verwendet (oder vielleicht habe ich es noch nicht gesehen)
Antwort1
Ein Zweck derUpgrade-MechanismusInRFC 2817war die Bereitstellung einervirtuelles HostingMechanismus für HTTP mit TLS, wie die Situation im Jahr 2000 war:
Der Upgrade-Mechanismus löst auch das Problem des „virtuellen Hostings“. Anstatt mehrere IP-Adressen einem einzigen Host zuzuweisen, verwendet ein HTTP/1.1-Server den Host:-Header, um den beabsichtigten Webdienst eindeutig zu identifizieren. Da die Verwendung von HTTP/1.1 immer weiter verbreitet ist, bieten immer mehr ISPs namensbasiertes virtuelles Hosting an und verzögern so die Erschöpfung des IP-Adressraums.
DerServernamenanzeige(SNI;RFC 3546, 3.1) bot 2003 eine bessere Lösung für dieses Problem – die immer noch verwendet wird –, sodass dies nicht mehr erforderlich ist. Der Upgrade
Header ist noch aktiv, wird jedoch für andere Zwecke verwendet, beispielsweise für den Wechsel von HTTP/1.1 zu HTTP/2.0 (RFC 7230, 6.7).
Das HTTP-Protokoll verfügt außerdem über den Location
Header (RFC 7231, 7.1.2) mit den zugehörigen Antwortcodes, wodurch die Umleitung des Clients auf ein anderes Schema, einen anderen Host und einen anderen Port im Gegensatz zu den Protokollen, die verwendet wurden, vereinfacht wird STARTTLS
.
Beachten Sie auch, dass die Verwendung STARTTLS
nichts Gutes und Wünschenswertes ist und nichts, was von mehr Protokollen übernommen werden sollte. TatsächlichRFC 8314macht nun die Klartextprotokolle für E-Mail-Übermittlung und -Zugriff überflüssig, sodass MTA-zu-MTA SMTP das einzige E-Mail-Protokoll ist, das STARTTLS
verwendet werden sollte. VonSektion 3:
– – Obwohl dieser Mechanismus bereits implementiert wurde, wurde ein alternativer Mechanismus erfolgreicher implementiert, bei dem TLS sofort bei Verbindungsbeginn auf einem separaten Port ausgehandelt wird (in diesem Dokument als „Implicit TLS“ bezeichnet). Um eine breitere Nutzung von TLS zu fördern und auch eine größere Konsistenz hinsichtlich der Verwendung von TLS zu erreichen, empfiehlt diese Spezifikation nun die Verwendung von Implicit TLS für POP, IMAP, SMTP-Übermittlung und alle anderen Protokolle, die zwischen einem MUA und einem MSP verwendet werden.
Antwort2
Ein Grund könnte sein, dass ein zusätzliches STARTTLS mehr Overhead verursachen würde, da ein zusätzlicher Roundtrip (Anfrage + Antwort) erforderlich ist. Die Zeit vom Verbindungsaufbau bis zur Antwort ist bei HTTP jedoch ziemlich kritisch und es wurden viele Optimierungen vorgenommen, um diese Zeit zu verkürzen, wie z. B. kürzere TLS-Handshakes oder verschiedene Protokolle wie QUIC. Das Hinzufügen von etwas wie STARTTLS würde die Zeit stattdessen verlängern und ist daher keine gute Idee.