ich nehme an, die serverauthentifizierung erfolgt dann über
eine vom server mit seinem private-key generierte server-id,
die ich mit seinem public-key entschlüssele.
Fast richtig. Der Server verschlüsselt einen zufällig
generiereten symmetrischen Schlüssel (Session Key) mit seinem
Private Key und sendet ihn Dir zu.
fast richtig. der client generiert den session key und verschluesselt ihn (oder im falle der gott sei dank beinahe ausgestorbenen export grade ciphers einen teil davon) mit dem public key des servers. der server entschluesselt den session key dann mit seinem private key.
Mit dem Public Key des Servers, der Dir bekannt ist bzw. in
Deinem Browser hinterlegt ist, kannst Du den Session Key
entpacken.
weniger guenstig. da der public key des servers wie gesagt oeffentlich ist (steht im zertifikat), kann jetzt jeder den sessionkey entschluesseln und mitlesen, wenn das so waere.
also wenn ich was mit public key crypto geheimhalten will, dann laeuft das so:
der sender nimmt den public key des empfaengers und verschluesselt. wenn der empfaenger seinen private key noch hat und geheimgehalten hat, kann er (und nur er) die nachricht damit entschluesseln.
digitale signatur laeuft umgekehrt:
der aussteller der signatur verschluesselt einen kryptographischen hash der nachricht mit seinem private key. jetzt kann der empfaenger (oder jeder andere) den hash mit dem oeffentlichen public-key des ausstellers entschluesseln und mit einem sebst berechneten hash ueber die nachricht
vergleichen. wenn diese beiden hashs uebereinstimmen besteht eine sehr hohe wahrscheinlichkeit, dass die nachricht nicht geaendert wurde.
falls der private key des ausstellers nicht kompromittiert wurde, und der empfaenger dem public key des austellers vertraut (fingerprint per telefon, pgp web of trust oder x509 zertifikat von public CA), kann sich der empfaenger sicher sein, dass die nachricht auf dem weg nicht veraendert wurde.
Mit Hilfe des Session Keys wird nun der gesamte Datenverkehr
zwischen dem Server und Dir verschlüsselt.
nur eines ist mir noch nicht ganz klar. gibt es generell
verschiedene algorithmen fingerprints darzustellen.
Ja, es gibt verschiedene Hash-Algorithmen. Die bekanntesten
sind SHA-1 und RIPEMD-160.
nicht zu vergessen den immer noch sehr gebraeuchlichen md5.
wenn ich z.b. mit pegasus-mail über ssl mails downloade, dann
stimmt der dort angezeigte fingerprint nicht mit dem des im IE
angezeigten zertifikats überein. woran kann das liegen?
das liegt daran, dass der pop3 server deines providers ein anderes zertifikat hat, als das webfrontend, dass man im browser sieht.
Moooooment. Der im IE angezeigte Fingerprint ist der, der über
das Zertifikat (des Servers) gezogen wurde.
Was willst Du nun prüfen? Den Fingerprint über die eMail?
Dieser kann auch nicht mit dem Server Zertifikat
übereinstimmen.
fingerprints werden im allgemeinen von langen asymmetrischen keys berechnet, nicht von emails.
joachim