Einsamer Igel hat geschrieben:Ok, das dachte ich mir eh schon. Ich hoffe ja noch auf eine verständliche Erklärung, was es mit TLS auf sich hat.
Ich versuche, das mal für Kleinsäugetiere zu erklären:
Bei TLS geht es um zwei Aspekte, nämlich das kein anderer lauschen kann und das du sicher gehen kannst, auch mit dem gewünschten Partner zu kommunizieren und sich niemand dazwischen gehängt hat.
Das Lauschen wird dadurch verhindert, dass beide Kommunikationspartner sich auf einen gemeinsamen Schlüssel für die symmetrische Verschlüsselung einigen. Dafür gibt es z.B. den
Diffie-Hellman-Schlüsselaustausch. Ein bisschen sehr vereinfacht: Beide Partner (traditionell Alice und Bob genannt) würfeln je eine Zahl aus (Alice a und Bob b) und schicken sie dem Partner. Damit kennt jeder Partner die beiden Zahlen a und b. In Wirklichkeit wird mehr geschickt und noch ein bisschen Mathemagie mit Primzahlen und Divisionsresten gemacht. Jedenfalls ist das alles öffentlich und ein lauschender Angreifer (trad. Eve
) kennt nur ein Teil der Zahlen, die er braucht, um den ausgehandelten Schlüssel zwischen Alice und Bob zu ermitteln. Das Verfahren verhindert noch nicht, dass Eve die Rolle von Bob für Alice vorspielt und genauso Alice für Bob simuliert (Man-in-middle-Angriff).
Um das zu verhindern, kommen jetzt die Zertifikate (X.509 Standard) ins Spiel. Das ist so etwas wie ein Personalausweis. Wenn du sicher gehen willst, ob du wirklich Erika Mustermann gegenüber stehst, dann lässt du dir den Personalausweis zeigen. du vergleichst dann das Bild mit ihrem Gesicht und du prüfst, ob der Ausweis echt ist, also von der Bundesdruckerei stammt. Wenn du nun im Browser https://www.abtreff.de eingibst, dann liefert der Server ein Zertifikat aus. Der Browser vergleicht den aufgerufenen Servernamen (http://www.abtreff.de) mit dem im Zertifikat und schaut auch, ob das Zertifikat von einer vertrauenswürdigen Stelle unterschrieben ist. Zertifikate enthalten noch den öffentlichen Schlüssel des Inhabers (wurde beim Beantragen des Zertifikats ermittelt). Dein Browser stellt jetzt dem Server eine Aufgabe, nämlich eine Zufallszahl z mit dem privaten Schlüssel des Servers zu verschlüsseln (y=priv(z)). Da nur http://www.abtreff.de den privaten Schlüssel hat, funktioniert auch die Entschlüsselung (x=pub(y), bekannt aus dem Zertifikat) in deinem Browser und das Ergebnis ist wieder die Zufallszahl (x=z). Damit ist jetzt sichergestellt, dass du wirklich mit dem Besitzer des vorgezeigten Zertifikats kommunizierst.
Jetzt kann Eve hingehen und dein Internetzugang manipulieren und https://www.abtreff.de wird nach https://www.eve.de umgeleitet. https://www.eve.de benutzt das gleiche Zertifikat wie https://www.abtreff.de, da der Server https://www.abtreff.de es jedem Browser zur Prüfung übermittelt. Eve hat aber nicht den privaten Schlüssel, so dass die Prüfung durch deinem Browser (ist z=pub(priv(z))?) nicht funktioniert und Eve ist aufgeflogen.
Symmetrische Verschlüsselung (z.B. AES, IDEA): Der selbe Schlüssel kann zum Ver- und wieder Entschlüsseln benutzt werden. Die eingesetzten Verschlüsselungsverfahren sind schneller als die asymmetrischen.
Asymmetrische Verschlüsselung (z.B. RSA, elliptische Kurven): Es gibt einen Schlüssel zum Verschlüsseln und einen zum Entschlüsseln. Einer der beiden ist öffentlich, der andere private muss geheim bleiben. Natürlich muss es unmöglich sein, den privaten Schlüssel aus dem öffentlichen Schlüssel zu errechnen. Wird in Zertifikaten benutzt, man kann damit digital signieren und Mails verschlüsseln.
Falls du noch nicht eingeschlafen bist, hier noch die Beziehungsproblematik zwischen Alice und Bob:
xkcd 177