Angeregt durch die sehr kurzweilige Veranstaltung “Hacker Meets Security & Law” möchte ich heute ein wenig über Vertrauen, unbedarfte Handlungen, Unwissenheit und Sicherheit sprechen.

(Vorwarnung: nein, ich lasse mich heute nicht über die Unterschiede SSL vs TLS, der allgemeinen Betrachtung ob SSL3 und TLS1.0 noch sicher sind, Protokollen, Handshakes etc. aus!)

Warum ist Online-Banking eigentlich “sicher”, wenn in der Adresszeile das image Schloss-Symbol erscheint?

Dieses Symbol zeigt an, dass ein “vertrauenswürdiger Aussteller” das sog. Server Zertifikat signiert hat und damit mit seiner Reputation/Namen dafür grade steht, dass dieses Zertifikat gültig ist und durch entsprechende Prozesse der signierte Server auch entsprechend vertrauenswürdig ist.

Jetzt ist in dem vorangegangenen Absatz häufig das Wort “Vertrauen” aufgetreten. Leider ist es tatsächlich so, dass diese gesamte Technologie des Verschlüsselns mittels SSL/TLS nur deshalb funktioniert, weil es mindestens einen Aussteller gibt, dem ich uneingeschränkt (!!) vertraue. Doch wenn man sich dies so überlegt, dann ist das eigentlich eine immense Sache und darf unter keinen Umständen zu lax behandelt werden!

Denn ja, ich habe keine andere Wahl, als einer sog. Zertifizierungsstelle/Herausgeber (Certificate Authority, CA) zu vertrauen. Es geht nicht anders! [Zumindest nicht ohne größeren eigenen Aufwand, aber das ist ein ganz anderes Thema.]

Woher bekomme ich also mein erstes (oder meinen ersten Satz) an vertrauenswürdigen (!!) Zertifikaten?

Die Antwort ist einfach: vom Betriebssystem und/oder Browserhersteller.

Wichtig: manche Browser bringen ihre eigenen Zertifikate / Zertifikatsstore mit. D.h., dass es immens wichtig ist, dass a) die Installation aus einer 100% vertrauenswürdigen Quelle stammt und b) das bedeutet, dass wahrscheinlich eine Veränderung an dem Store und den darin befindlichen Zertifikaten OHNE Admin Rechte möglich ist – das ist in meinen Augen eine irrsinnige Gefahr und jeder sollte für sich überprüfen, ob sein Browser dies so handhabt, oder ob wie beim Internet Explorer [alle Versionen] der durch höhere Berechtigungen geschützte Zertifikatsstore des Betriebssystems genutzt wird, an dem ich [bis auf die persönlichen Zertifikate] keine direkten Änderungen vornehmen kann.

Aber warum ist es so wichtig, dass insb. die Herausgeber nicht verändert werden (oder nur durch 100% vertrauenswürdige Personen/Quellen)?

Ganz einfach: angenommen es befände sich ein Zertifikat eines böswilligen Herausgebers in meinem Store, so könnte dieser an beliebige Angreifer “echte” Zertifikate geben. Diese hätten dann die Möglichkeit durch z.B. Phishing und oder Man-in-the-middle Angriffe meine vermeintlich Sichere Banksession ausspionieren und/oder manipulieren. [Z.B. wird wie von mir gewünscht angezeigt, dass ich Microsoft eine großzügige Spende von 1€ überwiesen habe, statt dessen wurde mit meiner TAN eine ganz andere Transaktion durchgeführt]

Gehen wir aber davon aus, dass der Zertifikatsstore in einem vertrauenswürdigen Zustand ist. Wie äußert sich nun was und wie kann ich selber entscheiden, ob ich weiter auf der Seite surfen möchte oder nicht?

Ich fange daher mal mit dem Schlecht-Fall an. Dazu navigiere ich auf eine unserer Demoseiten:

https://207.68.169.170/tailspin/index.html.

image

Diese Fehlermeldung dürfte bei meiner Bank unter gar keinen Umständen passieren, d.h. wäre dies eine Bankseite, dann sollte man sich sehr bewusst sein, was man als nächstes tut!

Denn, was ist hier passiert?

Ein Server Zertifikat wird immer auf Basis von 3 Informationen erstellt:

  1. Dem Herausgeber
  2. Der Domäne/Namen
  3. Der Gültigkeit

Sobald eine dieser Informationen nicht mehr gültig/vertrauenswürdig  ist, so kommt es zu den Warnhinweisen.

D.h. es ist hier wahnsinnig wichtig, dass solche Fehlermeldungen aufmerksam gelesen werden! Wer hier einfach auf “Continue” klickt gefährdet sich massiv selber!

Für IT Administratoren gibt es die Möglichkeit ein Weiterklicken per Group Policy zu verhindern – im Zweifel macht dies bitte auch!

Es wird dann zwar auch weiterhin darauf hingewiesen, dass es ein Problem mit dem Zertifikat gibt:

image

image

Wie ich gestern erstaunt lernen musste soll es schon vorgekommen sein, dass gesagt wurde “ich finde das Rot schön, kann das nicht immer so sein” o.ä. – NEIN, nochmal NEIEEEEN! Das hat seinen Sinn und sollte jedem sofort auffallen, wenn die Adresszeile rot ist und diese Warnhinweise auftauchen – echt, wer das ignoriert oder blind weiter klickt, der hat es nicht anders verdient! (My 0.02$!)

Natürlich möchte ich euch auch zwei positiv Beispiele nicht vorenthalten:

image

image

Jetzt fragt ihr euch sicher: Hä? Warum ist denn das eine Mal die Leiste weiß und das andere mal grün???

Dazu möchte ich hier eine Tabelle von http://windows.microsoft.com/de-de/Windows7/How-to-know-if-an-online-transaction-is-secure zitieren:

FarbeBedeutung

Rot

Das Zertifikat ist nicht mehr aktuell, ungültig oder weist einen Fehler auf. Weitere Informationen finden Sie unter Informationen zu Zertifikatfehlern.

Gelb

Die Echtzeit des Zertifikats oder der Zertifizierungsstelle, die das Zertifikat ausgegeben hat, kann nicht überprüft werden. Ursache dafür kann ein Problem mit der Website der Zertifizierungsstelle sein.

Weiß

Das Zertifikat hat eine normale Prüfung. Das bedeutet, dass die Kommunikation zwischen Ihrem Browser und der Website verschlüsselt ist. Die Zertifizierungsstelle macht keine Aussagen zu den Geschäftspraktiken der Website.

Grün

Das Zertifikat verwendet eine erweiterte Prüfung. Das bedeutet, dass die Kommunikation zwischen Ihrem Browser und der Website verschlüsselt ist und dass die Zertifizierungsstelle bestätigt hat, dass der Besitzer oder Betreiber der Website ein Unternehmen ist, das legal der im Zertifikat und auf der Sicherheitsstatusleiste angegebenen Rechtsordnung unterworfen ist. Die Zertifizierungsstelle macht keine Aussagen zu den Geschäftspraktiken der Website.

D.h. meine Bank sollte nach Möglichkeit natürlich “grün” sein!!!

Um noch etwas tiefer zu gehen: worauf sollte ich bei einem Zertifikat achten?

Dazu folgende Screenshots von Zertifikat-Details:

Fange ich mal mit dem abgelaufenen Zertifikat an:

imageimage

Hier sieht man schon an dem Symbol oben links, dass dem Zertifikat nicht zu trauen ist (Man lenke den Blick hier auch auf den mittleren Bereich, insb. “Valid from”).

Noch schlimmer wird es, wenn die Zertifikatshierarchie (Certificate Path/Chain) angezeigt wird: In der Kette gibt es insg. 3 “Hops”, von dem die 3 letzten Zertifikate jeweils abgelaufen sind (auch mal auf ein Zertifikat in der Kette doppel-klicken).

Dies ist nicht wirklich vertrauenswürdig und ich möchte noch mal betonen, dass ICH (!!) bei solch einer Seite sicher keine Bankgeschäfte abwickeln würde!

Hier das Gegen-Beispiel:

image

Dieses Zertifikat ist gültig, d.h. die oben genannten 3 Informationen sind valide und auch die Certificate Chain ist ok:

image

Allerdings muss auch hier natürlich aufgepasst werden, denn wenn ein Angreifer es schafft ein CA Zertifikat in den eigenen Store zu bekommen, so hilft alles nichts, denn dann ist die Grundannahme (==ich muss darauf vertrauen, dass die [CA] Zertifikate absolut zu 100% “gutmütig” sind) schon falsch – und wie wir wissen sind dann alle weiteren Dinge wertlos! (Bzw. für einen Angreifer natürlich sehr wertvoll! Winking smile )

Übrigens: Für die Admins unter euch: Zertifikate können auch über Group Policies deployed werden! Dies aber nur so nebenbei, sprich, kann ich “meinem” Admin eigentlich vertrauen??? Smile with tongue out

 

Fazit:

  1. Haltet euren Zertifikatsstore sauber!
  2. Klickt nicht einfach so auf “weiter”!!
  3. Denkt nach, bevor ihr handelt/klickt!!!

 

Bis zum nächsten Post

Skepsis ist die Eleganz der Angst. E.M.Cioran

 

-Stephanus