Hallo zusammen,
ich bin neu hier im Forum und hoffe erstmal das ich das richtige Subforum erwischt habe. Wenn nicht bitte ich darum das ganze in das korrekte zu verschieben.
Ich bin momenten dabei mich in das Thema SSL einzuarbeiten. Ich denke jeder der das schon getan hat, weiß das dies nicht unbedingt zu den leichtesten Aufgaben gehört. Jedenfalls möchte Ich euch hiermit mein Verständnis von der Materie darbieten, die sicherlich noch nicht ganz korrekt sein wird.
Ich hoffe Ihr könnt mir dabei helfen.
Ok, ich geb mein bestes das ganze hier einmal zu strukturieren:
Wofür benötige ich SSL (bezogen auf HTTPS)?
Den meisten dürfte klar sein das, bei der Verwendung von HTTP Daten unverschlüsselt übertragen werden. Durch die Verwendung von SSL kann ein verschlüsselter Kanal zwischen Kommunikationspartnern aufgebaut werden. Somit ist es dritten nicht möglich, bzw. bis zum maximum erschwert, Daten abzuhören.
Verschlüsselungsmethoden:
Asymetrisch beim SSL Handshake und symetrisch beim SSL Record
Grund:
Asymetrisch ist durch die Verwendung von Public und Priivate Key die sichere aber auch langsamere Variante.
Daher wird nach einem erfolgreichen SSL Handshake und austauschen des symetrischen Schlüssels die semtrische, weil schnellere, Variante benutzt
Jedes verschlüsselte Pakete enthällt die digitale Unterschrift des anderen. Damit kann sichergestellt werden, dass die Pakete die ich empfagen auch von dem korrekten Absender sind.
Die digitale Unterschrift wird gebildet aus dem Hash eines Paketes. Dieser Hash Wert wird anschließend noch mit dem privaten Schlüssel signiert.
Der Empfänger vollzieht den Schritt in umgekehrter Reihenfolge. Ist der Hash Wert dem der digitalen Unterschrift gleich, kann sicher davon ausgegangen werden, dass das Paket nicht manipuliert wurde.
Zertifikate:
Das Zertifikat dient im eigentlichen lediglich der Beglaubigung der Instituation (z.B. der Webseite) und dem bereitstellen des Public Keys. Der Austeller des Zertifikats ist dafür verantwortlich, dass die Institution auch die ist, die sie vorgibt zu sein.
Der SSL Record:
Dieser ist für die Übertragung der DAten zuständig. Dies geschieht wie folgt: Nimmt Daten beliebiger Größe entgegen -> frangmentiert diese -> wendetr Komprimierungsalgorythmus an -> wendet Verschlüsselungsalgorythmus an -> signiert die Daten und gibt diese anschließend an die TCP/IP Layer weiter.
Beim Empfänger geschieht dies genau anders herum.
Welche Komprimierungs- und Verschlüsselungsalgorythmen verwendet werden, wird bereits im SSL Handshake ausgehandelt/vereinbart.
Fragen:
1) Ich habe bestimmt wichtige Punkte vergessen o.ä., welche sind das?
2) Das mein Webserver, welcher das Zertifikat enthällt einen Public und einen Private Key hat ist mir klar. Aber wo bekommt der Client diese beiden her?
3) Wie erfolgt der eigentliche SSL Handshake? Server tauscht mit dem Client seine Public Keys aus. Anschließend werden die Verfahren bestimmt und dann werden diese verschlüsselt und signiert übertragen? Oder fehlt da noch etwas (bestimmt)?