TLS Prinzip: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 12: Zeile 12:
 
*Es wird zum Server zurück geschickt
 
*Es wird zum Server zurück geschickt
 
*Man baut dies dann in seinen Websever ein
 
*Man baut dies dann in seinen Websever ein
[[Datei:signierung.jpg]]
+
*[[CA erstellen]]
*[[TLS-Signierung]]
+
*[[Certificate Request erstellen]]
*[[TLS-Signing]]
+
*[[CA signiert den Request]]
 +
*[[Einbauen von Zertifikaten]]
 +
*[[Anzeigen und überprüfen von Zertifikaten]]
 +
{{#drawio:signierung}}
  
 
== Authentifzieren ==
 
== 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.
 
*Client greift auf den Server über den Domain Name zu.
 
*Server schickt nun das certifikat-s zum Client  
 
*Server schickt nun das certifikat-s zum Client  
Zeile 23: Zeile 29:
 
*signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s  
 
*signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s  
 
*wenn beide gleich sind, ist die Authentifizierung erfolgreich ...
 
*wenn beide gleich sind, ist die Authentifizierung erfolgreich ...
[[Datei:auth.jpg]]
+
{{#drawio:authentification}}
 +
==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.
 +
{{#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.