Wie bestimmt ein Server, welche TLS-Version verwendet werden soll?

Wie bestimmt ein Server, welche TLS-Version verwendet werden soll?

Ich verstehe jetzt, dass es eine Verhandlung zwischen dem Client und dem Server gibt... Aber was bestimmt, wie einServerwählt die TLS-Version, die es beim Antworten auf eine HTTPS-Anforderung verwenden wird? Wie könnte es beispielsweise Verbindungen auf eine Mindestversion von TLS beschränken? Besteht außerdem eine Beziehung zwischen dem von einem Server verwendeten Sicherheitszertifikat und der vom Server verwendeten TLS-Version? Ich habe einige AWS-Dokumente durchgelesen und es schien dies anzudeuten.

Totaler Neuling hier; entschuldigen Sie, wenn das die falsche Form für Ihre Frage ist. Ich habe nichts gegen einen Link zum Lesen als Antwort.

Antwort1

Aber wovon hängt es ab, wie ein Server die TLS-Version auswählt, die er bei der Beantwortung einer https-Anfrage verwendet?

Beim TLS-Handshake teilt der Client dem Server die beste Version mit, die er unterstützen kann. Wenn der Server Protokollversionen unterstützt, die gleich oder niedriger als die Clientversion sind, antwortet er mit der besten davon. Wenn der Server keine davon unterstützt, schlägt der Handshake fehl. Wenn der Server mit einer Version antwortet, die vom Client nicht unterstützt wird, schlägt der Handshake ebenfalls fehl.

Besteht außerdem eine Beziehung zwischen dem von einem Server verwendeten Sicherheitszertifikat und der vom Server verwendeten TLS-Version?

Es besteht fast keine Beziehung zwischen der TLS-Protokollversion und dem verwendeten Zertifikat. Es gibt einen kleinen Unterschied zwischen der längst veralteten SSLv3- und der TLS 1.x-Version des Protokolls, da nur die TLS 1.x-Versionen Erweiterungen unterstützen. Eine wichtige Erweiterung ist server_name(SNI - Server Name Indication), wobei der Client die Domäne angibt, die er erreichen möchte. Bei mehreren Zertifikaten auf derselben IP-Adresse kann der Server so das passende auswählen.

Antwort2

Ich bin kein Experte für Handshake-Aushandlungen zum TLS-Protokoll, hier also eine „grobe“ Antwort (Experten, korrigiert mich, wenn ich falsch liege) * Ich spreche hier nur über die TLS-Version. Nicht über die Chiffren.

Szenario 1: Ihr Client versucht die höchste verfügbare TLS-Version. Angenommen, Ihr Client unterstützt 1.1 (ALT) und 1.2. Dann verbindet Sie der Server mit der höchstmöglichen Version. Hoffentlich ist es 1.2.

Szenario 2: Ihr Client unterstützt 1.2 oder höher und Ihr Server ist eine alte und nicht aktualisierte Maschine, die nur 1.1 kennt.

Szenario 3: Dasselbe wie 2, nur andersherum. Die Verbindung funktioniert auch nicht.

Ihr Client kann die Verbindung nicht herstellen. Er wird dort abbrechen.

Szenario 4: Ihr Client unterstützt ebenso wie der Server die Versionen 1.1 und 1.2, aber sagen wir, der Serveradministrator hat (sagen wir Apache HTTPD) so konfiguriert, dass eine Verbindung nur mit 1.2 erzwungen wird, dann wird Ihr Client 1.2 verwenden.

Außerdem gibt es TLS 1.3 … Aber das wäre die gleiche Denkweise. (Idee)

verwandte Informationen