TLS Prinzip: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 32: Zeile 32:
 
==Verbindung==
 
==Verbindung==
 
===Asynchrone Authentifizierung===
 
===Asynchrone Authentifizierung===
*Die Kommunikation beginnt mit der asynchronen Authentifizierung, bei der der Server in der Regel ein digitales Zertifikat verwendet, um sich selbst zu authentifizieren und seine öffentlichen Schlüsselinformationen an den Client zu senden.
+
*Die Kommunikation beginnt mit der asynchronen Authentifizierung, bei der der Server ein digitales Zertifikat an den Client schickt um sich selbst zu authentifizieren.
 +
 
 
===Diffie-Hellman-Schlüsselaustausch===  
 
===Diffie-Hellman-Schlüsselaustausch===  
*Nach der Authentifizierung erfolgt der asynchrone Diffie-Hellman-Schlüsselaustausch, bei dem Client und Server einen gemeinsamen geheimen Sitzungsschlüssel vereinbaren, ohne den Schlüssel selbst über den unsicheren Kanal zu übertragen.
+
*Nach der Authentifizierung erfolgt der Diffie-Hellman-Schlüsselaustausch, bei dem Client und Server einen gemeinsamen geheimen Sitzungsschlüssel vereinbaren.
 +
 
 
===Symmetrische Verschlüsselung===
 
===Symmetrische Verschlüsselung===
*Der vereinbarte geheime Sitzungsschlüssel aus dem Diffie-Hellman-Schlüsselaustausch wird dann verwendet, um die tatsächlichen Daten synchron mit einem symmetrischen Verschlüsselungsalgorithmus wie AES zu verschlüsseln. Dies ermöglicht eine effiziente Verschlüsselung und Entschlüsselung der Daten.
+
*Der vereinbarte geheime Sitzungsschlüssel wird dann verwendet, um die tatsächlichen Daten synchron mit einem symmetrischen Verschlüsselungsalgorithmus zu verschlüsseln.
 +
 
 
===Authentizitätsprüfung mit Hash===
 
===Authentizitätsprüfung mit Hash===
*Um die Integrität der übertragenen Daten zu gewährleisten, wird oft ein kryptografischer Hash-Wert verwendet, der die Daten zusammen mit einem geheimen Schlüssel hash-funktioniert. Der Empfänger kann diesen Hash-Wert überprüfen, um sicherzustellen, dass die Daten während der Übertragung nicht manipuliert wurden.
+
*Um die Integrität der übertragenen Daten zu gewährleisten, wird ein kryptografischer Hash-Wert verwendet. Der Empfänger kann diesen Hash-Wert überprüfen, um sicherzustellen, dass die Daten während der Übertragung nicht manipuliert wurden.
 +
{{#drawio:tls-verbindung}}
 +
 
 +
*[[TLS Verbindungsaufbau ohne Diffie-Hellman]]
 +
*[[TLS Verbindungsaufbau mit Diffie-Hellman]]
 +
*[[Encrypted Client Hello]]

Aktuelle Version vom 22. Dezember 2023, 10:23 Uhr

Voraussetzung

  • Server muss einen festgelegten DNS Namen besitzen.

Prinzip

Signieren

Authentifzieren

  • Zuerst verschlüsselt der Client einen Zufallswert mit dem öffentlichen Schlüssel des Servers.
  • Dies schickt er zum Server, dieser entschlüsselt dies, mit seinem privaten Schlüssel und schickt diesen zurück.
  • Wenn beide Werte gleich sind, ist der Client sicher, das der Server den Privat Key hat.
  • Client greift auf den Server über den Domain Name zu.
  • Server schickt nun das certifikat-s zum Client
  • Client teilt nun dieses wieder auf in pubkey-s und signature-s
  • Bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifizierungsstelle.
  • signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s
  • wenn beide gleich sind, ist die Authentifizierung erfolgreich ...

Verbindung

Asynchrone Authentifizierung

  • Die Kommunikation beginnt mit der asynchronen Authentifizierung, bei der der Server ein digitales Zertifikat an den Client schickt um sich selbst zu authentifizieren.

Diffie-Hellman-Schlüsselaustausch

  • Nach der Authentifizierung erfolgt der Diffie-Hellman-Schlüsselaustausch, bei dem Client und Server einen gemeinsamen geheimen Sitzungsschlüssel vereinbaren.

Symmetrische Verschlüsselung

  • Der vereinbarte geheime Sitzungsschlüssel wird dann verwendet, um die tatsächlichen Daten synchron mit einem symmetrischen Verschlüsselungsalgorithmus zu verschlüsseln.

Authentizitätsprüfung mit Hash

  • Um die Integrität der übertragenen Daten zu gewährleisten, wird ein kryptografischer Hash-Wert verwendet. Der Empfänger kann diesen Hash-Wert überprüfen, um sicherzustellen, dass die Daten während der Übertragung nicht manipuliert wurden.