Benutzer Quehl schrieb:
Hi,
danke, das war gut und verständlich. Ist es richtig, daß die Bank den Public key auf meinen PC sendet, wenn ich die Bankseite aufrufe und wie geschieht dann die Zuordnung? Ich vermute, daß der key im Hauptspeicher liegt und ich da nicht so einfach rankomme. Ich hab schon öfter Https Seiten aufgerufen, aber da ist noch nichts über den Schlüssel zu sehen. Eigentlich müßte die Zuordnung über ein extra Programm laufen, daß gleichzeitig mit dem Browser aufgerufen wird.
Der Public Key wird von der Bank an Dich geschickt. Aber - nun kommen wir zum Thema Signaturen - er ist von einer der großen
Trustcenter wie z.B. VeriSign signiert. Sprich, VeriSign
garantiert, daß der Public Key XY der Bank "Volksbank
blabla" gehört und deren Seite www.volksbank-blabla.de ist.
Dein Browser ist nun wiederum so eingestellt,
daß er alles, was von VeriSign signiert ist, akzeptiert,
ohne eine Warnung auszugeben. (*)
Signieren funktioniert im Wesentlichen so: Die Nachricht
(oder genauer gesagt, eine kürzere aus ihr errechnete Repräsentation davon, genannt Hash) wird mit den privaten Schlüssel (den hat nur die Zert.-Stelle selber!) der Zertifizierungsstelle verschlüsselt. Will ich nun wissen, ob
die Nachricht wirklich von der Zertifizierungsstelle signiert
worden ist, so entschlüssle ich den verschlüsselten
Hash-Key mit dem Public Key dieser Zertifizierungsstelle
(CA). Stimmt der entschlüsselte Hash-Wert mit dem von mir errechneten Hash-Wert der empfangenen Nachricht überein (der Hash-Algorithmus
ist öffentlich), so weiß ich, daß die Nachricht
a) wirklich vom Absender signiert wurde und b) nicht
zwischendurch verändert wurde.
Die URL der Bank nehme ich mit in den Signierungsprozeß
auf, sodaß kein Angreifer sich einen offiziellen
Schlüssel mit Zertifikat bei der CA besorgen kann und seinen eigenen Server als Bankserver ausgeben kann... Denn dann
würde keine Warnung erscheinen!
Dann würde der Browser sagen "Das Zertifikat ist für
www.hacker-ip.de ausgestellt, die IP-Adresse gehört
aber garnicht zu www.volksbank-blabla.de, hier stimmt
was nicht!".
Der (*) weiter oben wird dadurch erreicht, daß die Browser
die Public-Keys aller großen CAs einprogrammiert
haben. Und mit dem kann der Browser dann auch, quasi
eine Stufe drunter, den von der CA signierten
public key, den mir mein Bankserver schickt, auf
Echtheit überprüfen.
Das schöne ist, daß diese Überprüfungen der online geschickten Signatur selber keine Online-Verbindung erfordert! Denn
diese könnte ein Angreifer ja fälschen.
Deshalb bekommt man bei vielen "selbstgebastelten"
https:// Servern eine Warnmeldung, weil diese Zertifikate
eben nicht von einer der großen CAs signiert wurden.
Denn das kostet Asche! ;)
Wenn den Public Key jemand aus dem Speicher ausliest,
so macht das nichts, denn er ist wirklich öffentlich.
Es funktioniert so:
Der Trust Center (CA) kann eine Nachricht mit dem Private key verschlüsseln und der Kunde mit dem Public Key entschlüsseln - so kann der Kunde nachprüfen, ob die Nachricht (also auch
z.B. ein weiterer Public key) wirklich in dieser Form
vom Absender stammt. Anders kann man die
Nachricht nicht bekommen!
Man kann aber auch als Kunde mit dem public key verschlüsseln,
der Trust Center (oder wer auch immer) kann dann nur mit
seinem Private key entschlüsseln. Anders kann man die
Nachricht nicht bekommen.
Selbst wenn er seinen Rechner komplett zerlegt und jedes
einzelne Bit aus dem Speicher ausliest, nichts zu machen.
Zum "Knacken" des Schlüssels muß man an den Private key
ran, und der ist auf rechnerischem Wege nicht zu bekommen,
da hilft nur Einbruch im Hochsicherheits-Rechenzentrum
der CA... Welch Vergnügen ;-)
Ein Betrüger könnte also nun - um zum Originalthema
zurückzukommen - versuchen, den Kunden z.B. davon
zu überzeugen, daß die Bank den Private Key gewechselt
hat (damit auch die public keys), und daß die
Warnmeldungen wegen fehlender Zertifizierung doch
bitte zu ignorieren sind. Dann könnte ein Angreifer
sich dazwischen schalten und mit seinen eigenen
Keys die Verbindung aufbauen, dem Kunden eine Webseite
Vorgaukeln und die Daten für sich behalten.
Wenn Du Dir das mit den Zertifikaten ansehen willst,
einfach mal auf das Schloß, was bei den meisten
Browsern beim Aufrufen einer https://- Seite unten rechts o.ä. erscheint, anklicken.
Um alles noch besser zu machen, laufen die Zertifikate
irgendwann ab. So könnte, wenn irgendwer den
Private Key der Bank klaut, er wenigstens nur eine
Zeit lang damit sein Unwesen treiben, und die Listen
der widerrufenen Schlüssel (sowas gibt's) werden nicht
so lang.
Aber wie man heutzutage sieht, funktioniert Phishing
viel einfacher auch ohne Verschlüsselung, weil die Leute manchmal zu naiv sind.
Ich hoffe, das alles war jetzt nicht zu verworren dahingetippt ;)
Gruß
Phil