Schlagwort Archiv: HTTPS

Warum SHA-1 unsicher ist

SHA-1 ist unsicher und sollte ersetzt werden

Der Hashingalgorithmus SHA-1 gilt als unsicher und sollte ersetzt werden. Doch warum eigentlich? Hier sieht man den Grund: Unterschiedliche Nachrichten generieren den selben Hash-Wert.

Schon seit längerem gilt der Hashing-Algorithmus SHA-1 als unsicher und sollte durch SHA-2 oder SHA-3 ersetzt werden. Was macht aber SHA-1 zu einem unsicheren Hash-Verfahren und wie hat man das herausgefunden?

Das Lustige an der Sache: SHA bedeutet secure hash algorithm, was in diesem Zuge doch recht ironisch ist.

Was Hash-Verfahren sind

Hash-Verfahren erzeugen aus einer Menge an Daten eine scheinbar willkürliche Folge an Bits. So wird durch SHA-1 beispielsweise aus dem Wort curi0sity die Zeichenfolge e544b48a746e297c9a10957ff0cf433cb41073d9. Ändert man nun ein Zeichen, also Curi0sity (großes statt kleines C am Anfang), so ändert sich der Hash-Wert komplett zu 5eed9a4940371dadad8119be0f9f32d94e52296c. Kleine Änderung, große Wirkung.

Genutzt werden Hash-Werte z.B. um zu überprüfen ob eine Datei richtig übertragen wurde. Der Sender stellt die Datei und den Hash bereit und der Empfänger bildet den Hash der empfangenen Datei. Sind die Werte identisch, so war die Übertragung mit sehr hoher Wahrscheinlichkeit erfolgreich. Sind die Werte nicht identisch, so war die Übertragung definitiv nicht erfolgreich.
Auch werden von Passwörtern erst die Hash-Werte bestimmt und diese dann übertragen oder gespeichert, sodass Hacker, die den Netzwerkverkehr mitschneiden, das Passwort nicht als Klartext haben. Sie haben somit nur den Hash-Wert, aus dem sich die originale Zeichenkette nicht wieder herstellen lässt (jeden Falls nicht mit einfachen mitteln und in kurzer Zeit).

Skizze einer Hash-Funktion

Skizze einer Hash-Funktion. Die Eingaben „John Smith“ und „Sam Doe“ erzeugen hier den selben Hash-Wert – dies bezeichnet man als Kollision.

Wann ist ein Hash-Algorithmus „gebrochen“?

(mehr …)

Die Sicherheit von Go (aka golang)

Wie sicher ist Go?

Go ist eine sehr schöne Sprache, doch wie sicher ist sie für z.B. Web-Anwendungen?
Hier das Maskottchen von Go, der Gopher.

Go (oder auch golang) ist eine seit 2009 entwickelte und seit 2012 als stabil verfügbare Programmiersprache. Sie ist natürlich open-source und wird von einem kleinen Google Team betreut, wobei sich mehr und mehr eine Community bildet.
Die Sprache selbst ist eine imperative und objektorientierte Sprache, welche das Prinzip der Nebenläufigkeit direkt und unkompliziert zur Verfügung stellt. Sie wurde entwickelt, da Robert Griesemer, Rob Pike und Ken Thompson (die Initiatoren des Projektes) bisher vorhandene Sprachen für die Entwicklung von u.A. Cluster- oder Cloud-Computing Software für ungeeignet erachten. Golang soll dort einiges besser und einfacher machen.

Und jetzt?

Klingt ja erst mal ziemlich nice, dass eine Sprache Nebenläufigkeit einfach so out-of-the-box mitbringt. Auch, dass es eine sehr performante open-source Sprache ist (nicht nur wegen der Nebenläufigkeit), spricht nicht gerade gegen Go.

Doch wie sieht es da bezüglich der Nebenläufigkeit und dem bevorzugten Einsatzgebiet der Web basierten Software eigentlich in Hinsicht auf die IT-Sicherheit aus?

Eine enzige Bekannte Sicherheitslücke

(mehr …)

Facebook sammelt Daten von nicht-Mitgliedern

Facebook spioniert auch nicht-Mitglieder aus

Facebook spioniert nicht nur Mitglieder aus: Auch wenn man nicht registriert ist, sammelt Facebook Daten.

Eine jüngst veröffentlichte Studie der Universität Brüssel und der Universität Löwen ergab, dass Facebook selbst Daten von nicht-Nutzern des Netzwerkes sammelt.
Facebook hatte sich dieses Recht zum dauerhaften sammeln der Daten mit den umstrittenen Nutzungsbedingungen Anfang 2015 genommen.

Facebook legt 2 Jahres Cookie an

Für das erfassen von Daten sind die so genannten social plug-ins (z.B. der Like Button) auf Websites zuständig. Sie speichern die Daten lokal (s.u.) und senden eine Kopie der Daten direkt an Facebook.

(mehr …)

Freak bedroht nicht nur mobile Nutzer

Freak ist eine Schwachstelle in diversen Browsern und Servern.

Neben diversen mobilen Browsern, ist auch Windows mit seinem IE von der Schwachstelle Freak betroffen.

Freak (Factoring Attack on RSA-Export-Keys) ist eine Schwachstelle in diversen Browsern von Mobil- sowie Desktop-Geräten. Auf der Seite freakattack.com gibt es viele Informationen, die die Schwachstelle betreffen. Im folgenden versuche ich die Infos ein wenig zusammen zu fassen.

Hintergrund von Freak

Die Schwachstelle kann genutzt werden um zwischen einem verwundbaren Browser und Server eine absichtlich unsichere Verbindung zu erzwingen. Hierbei wird statt eines sicheren RSA-Keys (1024 oder 2048 Bits) einer mit nur 512 Bits verwendet. Dies ist an sich keine Sicherheitslücke, sondern eher ein altes Feature aus den 90ern, als die US-Regierung den Export von sicherer Software ins Ausland verboten hat. Auf dieser Art und Weise wollten sie der NSA unter die Arme greifen.

Liste aller Browser, die betroffen sind:

Quelle: freakattack.com

Internet Explorer (Hinweise und Infos von Microsoft)
Chrome (Mac OS) (Patch bereits verfügbar)
Chrome (Android)
Safari (Mac OS und iOS)
(Patch wird nächste Woche erwartet)
Android Browser
Blackberry Browser
Opera (Mac OS und Linux)

Alle hier nicht aufgeführten Browser (z.B. Firefox) sind nicht betroffen und somit sicher.

Der Internet Explorer von Microsoft ist anfällig für eine Freak-Attacke und sollte gemieden werden.

Der Internet Explorer von Microsoft ist anfällig für eine Freak-Attacke und sollte gemieden werden.

Eigenen Browser testen

freakattack.com bietet einen Test, der überprüft ob der eigene Browser sicher ist. Neben der Nachricht, ob der Browser sicher ist oder nicht, gibt es diverse Infos über den Browser, wie zum Beispiel die unterstützten Verschlüsselungsarten.

Wie kann man sich schützen?

Wenn beim Browser-Test (s.o.) angezeigt werden sollte, dass der eigene Browser nicht sicher ist, sollte ggf. auf einen anderen Browser umsteigen oder die Hinweise weiter unten berücksichtigt werden. In Firefox und Chrome kann man nach dem Unstieg gleich das Profil vom Internet Explorer (Lesezeichen, etc.) importieren.

Ansonsten gibt es leider wenig Tricks, wie man sich im allgemeinen schützen kann (für Windows gibt es unten mehr Infos). Man sollte aber die allgemeinen Vorgehensweisen berücksichtigen:

  • Halten sie den Browser aktuell und installieren sie alle Updates
  • Informieren sie sich über eventuelle Updates
  • Wechseln die ggf. zu Firefox oder einem Browser der sicher ist

Anfällige Webseiten kennen

Da das Problem nicht nur beim Browser, sondern auch bei ggf. anfälligen Webseiten liegt, gibt es eine Liste mit Webseiten die anfällig für eine Freak-Attacke sind. Darunter sind leider auch viele deutsche Seiten, die z.B. giga.de, markt.de, filmstarts.de, pcgameshardware.de und viele mehr.

Eine Liste mit den ersten 64296 beliebtesten Webseiten gibt es hier.

Freak-Attacke unter Windows verhindern

Update vom 10.03.2015: Die folgende Beschreibung sichert Sie gegen eine Freak-Attacke ab, jedoch können sie danach keine Windows Updates mehr installieren!

Da auch Windows (ab Vista) mit seinem Internet Explorer betroffen ist, hat Microsoft Tipps zum absichern vom IE veröffentlicht. Der Fehler in Windows liegt dabei im Schannel, mit dem es bereits mehrere Probleme gab.
Zum absichern von Windows muss man manuell die Verschlüsselungssammlungen von Windows bearbeiten. Mehr Infos und eine ausführliche Anleitung gibt es hier.

SSL Zertifikat von SuperFish gestohlen

Das auf Lenovo Rechnern vorinstallierte Superfish ist nur sehr unzureichend geschützt.

Das auf Lenovo Rechnern vorinstallierte Superfish ist nur sehr unzureichend geschützt.

Mit einfachsten Mitteln konnte der Hacker Robert Graham von Errata Security das SSL Zertifikat aus Superfish extrahieren und so zur Entschlüsselung von Datenströmen diverser Lenovo Rechnern nutzen. Dabei brauchte er keine Voodoo-Technik und auch nicht sonderlich lange um das passwortgeschützte Zertifikat zu entwenden und zu entschlüsseln.

Entwenden des Schlüssels

Graham musste zunächst das Zertifikat, welches verschlüsselt und passwortgeschützt ist aus Superfish extrahieren. Dazu hat er einfach einen Debugger benutzt und einen Haltepunkt (BreakPoint) direkt nach dem entschlüsseln des eigenen Programms (wie es bei Malware typisch ist) gesetzt.

Da nun das Programm entschlüsselt im Speicher lag, konnte er es mit dem Programm procdump da raus holen. Das Ergebnis war jedoch eine Binärdatei, das heißt da waren diverse binäre Zeichen mit enthalten.
Mit dem Programm strings kann man jedoch alles binäre wegschmeißen und erhält eine Datei mit lesbarem Text. Der Schlüssel war dann in dieser Datei enthalten.

Den Schlüssel jetzt zu finden ist nicht schwer: Einfach nach Private Key suchen und fertig. Tatsächlich lag der Schlüssel mehrfach in der Datei.

Schlüssel entschlüsseln

Mit dem Schlüssel kann man nun im Grunde SSL Verbindungen (z.B. HTTPS) entschlüsseln und dem entsprechend den Datenfluss mitlesen. Da es so keinen Passwort-Cracker für SSL PEM Dateien gibt, hat Graham sich einen eigenen geschrieben.

Da die Brute-Force Methode (alle denkbaren Kombinationen an Zeichen durchgehen) Jahre dauert, fiel die Wahl auf ein Wörterbuch-Verfahren. Dabei benutzte er ein Wörterbuch mit Standardwörtern, wurde jedoch nicht fündig. Im memory-Dump (der Output vom Debugger von vorhin) muss eigentlich der Schlüssel auf drin enthalten sein. Aus der Datei, die strings lieferte, nahm er dann alle Wörter mit Kleinbuchstaben (da sonst 150.000 Wörter vorhanden wären) und wurde mit dem Wort „komodia“ nach 10 Sekunden fündig.

Mit dem OpenSSL tool kann man nun die Schlüssel entschlüsseln und so nun benutzen.

Reaktion von Lenovo

Da Superfish unter Lenovo vorinstalliert ist, hat Lenovo direkt ein Deinstallationstool mit Tipps zum entfernen aller Superfish Zertifikate und Einträge.