Man-In-The-Middle-Attacke

Ein Angreifer könnte versuchen, sich als der eigentliche Empfänger von Nachrichten auszugeben und bietet z.B. auf einer gefälschten Webseite seinen öffentlichen Schlüssel zum Verschlüsseln an. Dieser wird vom Absender gutgläubig zum Verschlüsseln benutzt und die verschlüsselte Nachricht an den Betrüger und nicht an den eigentlichen Empfänger verschickt.

Der Rest ist leicht: der Betrüger gibt sich außerdem als der Absender aus und benutzt hierfür den öffentlichen Schlüssel des echten Empfängers. Nun laufen alle Nachrichten des Absenders über den Betrüger. Er kann diese mit seinem eigenen privaten Schlüssel entschlüsseln, nach Belieben manipulieren und an den echten Empfänger weiterleiten.

Ein Zertifikat soll diesen „Man-in-the-Middle“ verhindern. Das Zertifikates garantiert die Echtheit des öffentlichen Schlüssels, indem der Schlüssel „personalisiert“ wird, d.h. jemand wird mit seinem Namen diesem Schlüssel zugeordnet.  Der Empfänger kann anhand des Zertifikates herausfinden, wem der öffentliche Schlüssel zugeordnet ist.


Eigenschaften eines digitalen Zertifikats

Ein Zertifikat ist ein Datensatz. Gemäß dem Standard X509 muss ein Zertifikat bestimmte Angaben enthalten, kann aber auch zusätzliche optionale Informationen haben. Zu den Pflichtangaben gehören u.a.:

  • Namen bzw. Daten des Zertifikatsinhabers
  • öffentlicher Schlüssel des Inhabers
  • Zertifizierungsstelle
  • Gültigkeitsdauer
  • Seriennummer
  • digitale Signatur (Unterschrift) der ausstellenden Zertifizierungsstelle, so dass verifiziert werden kann, ob das Zertifikat echt ist.

Zertifizierung eines öffentlichen Schlüssels

Austellung eines Zertifikats

Damit ein öffentlicher Schlüssel( z.B. eines Webservers vom Browser) als vertrauenswürdig eingestuft wird, muss er zertifiziert werden. Hierbei wird eine ausstellende Zertifizierungsstelle benötigt (Certification Authority CA). Sie nimmt die entsprechende Daten auf generiert einmalig daraus einen Hash Code.

Hashfunktionen reduzieren bzw. zerhacken die Datenmenge auf eine kleinere Zeichenfolge, den sogenannten Hash Code (engl. hash = zerhacken). Die hierbei verwendete Hash-Funktion (Algorithmus) soll gewährleisten, dass die Daten keinesfalls wiederhergestellt werden können. Es handelt sich also um eine Einwegfunktion und es gibt kein Zurück.

Nun verbindet bzw. kombiniert die Zertifizierungsstelle ihren privaten Schlüssel mit dem Hash Code. Dies ist die digitale Signierung (digitale Unterschrift) der ausstellenden Zertifizierungsstelle. Abschließend werden die oben genannten Daten zusammen mit der digitalen Signatur in das Zertifikat gepackt.

Dieser Vorgang ist je nach Zertifizierungsstelle und Qualität in der Regel kostenpflichtig.

Prüfung eines Zertifikats

Das Zertifkat wird anstelle eines einfachen öffentlichen Schlüssels vom Zertifikatinhaber (z.B. von einem Webserver) veröffentlicht. Der Empfänger (z.B. der Webbrowser) bildet über die enthaltenden Daten zuallererst selbst den Hash Code. Dann wird die digitale Signierung (Unterschrift) mit Hilfe des öffentlichen Schlüssels der ausstellenden Zertifizierungsstelle wieder in den Hash Code zurückgewandelt. Nun werden beide Hash Codes miteinander verglichen. Sind beide Hash Codes gleich, ist alles in Ordnung und der öffentliche Schlüssel kann aus dem Zertifikat entnommen werden, um verschlüsselt Daten zu übertragen (z.B. um auf Webseiten Login-Daten abzuschicken).

Sollten die Hash Codes nicht übereinstimmen, dann wurden die Daten des Zertifikats z.B. der Inhaber und der entsprechende öffentliche Schlüssel nach der Ausstellung gefälscht.

Ausstellung und Prüfung eines Zertifikats

Ausstellung und Prüfung eines Zertifikats

Zertifizierungsstellen

Zertifizierungsstellen müssen diese strenge Sicherheitsbestimmungen erfüllen, damit sie als vertrauenswürdig gelten. Auch halten einen privaten Schlüssel geheim und machen ihren öffentlichen Schlüssel bekannt. Die öffentlichen Schlüssel der Zertifizierungsstellen sind in den meisten Browsern und Betriebssystemen bereits vorinstalliert, denn den öffentlichen Schlüssels der Zertifizierungsstelle kann (z.B. vom Browser) ein empfangenes Zertifikat auf seine Echtheit überprüft werden.

Wie oben geschildert muss auch hier eine Man-in-Middle-Attacke vermieden werden. Deshalb benötigen auch die Zertifizierungsstellen benötigen ein Zertifikat, das von einer übergeordneten Stelle ausgestellt wird. Somit ergibt sich eine Hierarchie von Zertifizierungsstellen, wobei die Bundesnetzagentur für Telekommunikation und Post die Wurzelzertifizierungsstelle ist.

Gefahren

Es gibt auch hier keine 100%-ige Sicherheit:

  • Innerhalb einer vertrauenswürdigen Zertifizierungsstelle könnte ein Täter Zertifikate fälschen.
  • Betrüger könnten sich auch mit Hilfe nicht-vertrauenswürdiger Zertifizierungsstellen Zertifikate ausstellen lassen (z.B. zu oberflächliche Prüfung der Zertifkatsinhaber).
    Daher muss vor der Kommunikation auch überprüft werden, ob der Zertifizierungstelle als sicher gilt. Durch Zertifikatssperrlisten werden nicht vertrauenswürdige Zertifizierungsstellen und deren veraltete oder unsicher gewordenen Zertifikate für ungültig erklärt. (Browser überprüfen diese Listen und weisen gesperrte Zertifikate normalerweise ab.

Dennoch kommen Man-in-the-Middle-Angriffe mit Hilfe von Phishing-Attacken (gefälschte E-Mails und Webseiten) immer wieder vor. Daher haben Browserhersteller das Extended-Validation-SSL-Zertifikat (erweiterte Prüfung) eingeführt. Bei der Zertifikatsausstellung muss die reale Existenz des Unternehmens überprüft werden.

Zeitweise zeigten Browser bei Vorlage dieser Zertifikate eine grünes Schloss in der Adressleiste an. Da Betrüger aber auch schnell an EV SSL Zertifikate kamen, wurden diese grünen Schlösser wieder entfernt, um keine scheinbare Sicherheit vorzugaukeln.

Grüne Schlösser in der Adressleiste gibt es nicht mehr

Grüne Schlösser in der Adressleiste gibt es nicht mehr


Selbstausgestellte Zertifikate

Zertifikate können auch leicht selbst erzeugt und signiert werden. Es kann für die Kommunikation innerhalb des eigenen Netzwerks installiert werden bzw. als vertrauenswürdig erklärt werden.

Ein Browser lehnt die Verbindung zu einem Webserver mit selbstausgestelltem Zertifikat erstmal ab, weil er die "Zertifizierungsstelle" als nicht vertrauenswürdig einstufen kann. Man kann allerdings das Risiko akzeptieren und fortfahren:

Browser warnt vor nicht vertrauenswürdigem Zertifikat

Browser warnt vor nicht vertrauenswürdigem Zertifikat

Die Verbindung ist verschlüsselt.

Für öffentliche Webseiten sind selbtsignierte Zertifikate nicht akzeptabel. Kunden verlieren sofort das Vertrauen in das Unternehmen.

Für interne Websites (z.B. Mitarbeiterportale) gewöhnen sich die Mitarbeiter an die Warnungen und das Ignorieren derselben im Browser (auch wenn die Verbindung sicher ist). Das kann zu gefährlichem Surfverhalten führen. Leicht ignoriert man auch Warnungen auf öffentlichen Websites. Mitarbeiter und Unternehmen werden damit anfälliger für Malware und andere Bedrohungen.

Last modified: Thursday, 5 November 2020, 8:39 PM