Sind Ihre Systeme leicht zu hacken?

Wie das so genannte Password-Key-Stretching Ihre Systeme sicherer machen kann.

Verfasser: F-Secure Business Security Insider
Datum: 22. März 2016
Lesedauer: 4 Minuten

Der Diebstahl von Passwörtern ist nichts Neues, macht aber immer wieder Schlagzeilen. Jeder erinnert sich an die berüchtigte Sicherheitslücke bei Ashley Madison, als die persönlichen Details der Nutzer der Seitensprungseite von Hackern entdeckt, im Darknet verkauft und später für jeden sichtbar im Internet veröffentlicht wurden.

Dennoch kann das jedem Unternehmen in jeder Branche widerfahren – persönliche Daten sind eines der Hauptziele von Cyber-Attacken. Tatsächlich können Ihre persönlichen Daten im Darknet für gerade mal einen Dollar zum Kauf angeboten werden.

Passwörter machen momentan ebenfalls Schlagzeilen in Bezug auf den Apple iPhone Fall. Dabei wurde Apple vom FBI verklagt, um das Unternehmen dazu zu zwingen, der Behörde beim Knacken der Sicherheitsfunktionen des iPhones eines Terrorverdächtigen zu helfen. Der Apple-Fall hat eine Diskussion darüber entfacht, ob Technikunternehmen ihre Verschlüsselung so designen sollten, dass sie für die Untersuchung von Regierungsbehörden umgangen werden kann.

Während eine Hintertür für das FBI zur Aufklärung eines klaren Falles von Terrorismus für viele nach einer vernünftigen Forderung klingen mag, ist die mögliche Existenz einer Hintertür als solche beängstigend. Was, wenn nicht das FBI aus gutem Grund versucht, hineinzugelangen, sondern ein Hacker, der diese Hintertür gefunden hat? Backdoors verursachen Sicherheitslücken, die es einer Vielzahl von Hackern erlauben, in Geräte und Datensätze einzubrechen. Außerdem ermöglicht Verschlüsselung allgemein es Kriminellen nicht, sich zu verstecken.

Im Falle des iPhones war die voreingestellte Verschlüsselung effizient genug, um das FBI daran zu hindern, an sämtliche auf dem Gerät gespeicherte Daten zu gelangen.

Wenn Sie sicher gehen wollen, dass Ihre Firma nicht die nächste ist, die Schlagzeilen mit Passwortdiebstählen macht, welche Firmengeheimnisse und persönliche Daten von Angestellten, Partnern oder Kunden offenlegen, oder wenn Sie sicher gehen wollen, dass Sie wirklich Recht damit haben, keine individuellen Passwörter knacken zu wollen, müssen Sie von Anfang an alles richtig machen. Und von Anfang an bedeutet, wenn Sie die Dokumentation Ihrer Anforderungsliste erstellen. Nur dann können die Programmierer Ihr System angemessen schützen.

Also – wie sollten Sie Passwörter angehen?

Leute neigen dazu, Passwörter zu erstellen, die mit geeigneten Mitteln und Rechenaufwand einfach zu knacken sind. Keyword-Stretching mit einer kryptographischen Zerkleinerungsfunktion kann auf Systemebene verwendet werden, um die Sicherheit zu erhöhen. Durch die Nutzung von Key-Stretching können Sie davon profitieren, dass Sie die Passwörter der User nur in der Geschwindigkeit verifizieren müssen, in der Nutzer diese eingeben.

Jarno Niemelä, Lead Researcher von F-Secure Labs erklärt:

Ein Angreifer, der die Brute-Force-Methode anwendet, verlässt sich darauf, dass er pro Sekunde mehre Zehnmilliarden Passwort-Mutmaßungen ausführen kann. Zum Beispiel dieses Demonstrationssystem von 2012 startete 68 Milliarden SHA1-Anläufe pro Sekunde und mit modernen Karten sind noch höhere Geschwindigkeiten einfach zu erreichen. Und heutzutage können Sie, anstatt ein GPU-Cluster zu bauen, einfach eines aus der Amazon Cloud mit der Geschwindigkeit bekommen, für die Sie zu zahlen bereit sind.

Wenn Sie allerdings Key-Stretching verwenden, verkleinern Sie die Anzahl von Milliarden Versuchen pro Sekunde auf Zehntausende. Beispielsweise schaffte der 25-GPU Cluster von 2012 63 Milliarden SHA1-Anschläge pro Sekunde, bei der Nutzung von Bcrypt war es allerdings nur zu 71.000 in der Lage.

Jarno hat zwei Artikel über Passwort-Hashing und -Salting geschrieben, die Sie womöglich lesen oder mit Ihren Admins teilen wollen („Are you sure SHA-1+salt is enough for passwords?“ und „No, Heavy Salting of Passwords is Not Enough, Use CUDA Accelerated PBKDF2„). Obwohl diese ein paar Jahre alt sind, sind sie immer noch aktuell.

Was Jano in diesen Posts sagen möchte, ist, dass Hashing und Salting einfach nicht ausreichen. Sie müssen die Anzahl von Passworteinspeisungen mit fortgeschrittenen mathematischen Algorithmen limitieren, die den Computer lange beschäftigen und nicht umgangen werden können. Angriffe nur zeitlich zu begrenzen (z.B. einen pro Sekunde) reicht einfach nicht aus. Außerdem könnte es eine gute Idee sein, zwei verschiedene Arten von Algorithmen zu verwenden – einen, um zu verhindern, dass die Speichernutzungsrestriktionen umgangen werden, und einen, um zu verhindern, dass jemand noch effizientere Berechnungen benutzt.

Jarnos persönlicher Favorit ist die Kombination von Bcrypt oder PBKDF2 und Scrypt-Funktionen, sodass die Hälfte der zugewiesenen Zeit auf Bcrypt oder PBKDF2 und die andere Hälte auf Scrypt verwendet werden. Scrypt bietet sehr starken Schutz gegen GPU oder CUDA-beschleunigtes Passwort-Cracking und falls eine Schwachstelle in Scrypt entdeckt wird, ist das Passwort immer noch stark durch Bcrypt oder PBKDF2 geschützt.

Jarno schlussfolgert:

Ein weiterer entscheidender Aspekt ist es, eine ausreichend hohe Anzahl an Iterationen für das Key-Stretching zu wählen. Man sollte die Anzahl der Iterationen so messen, dass sie der Zeit entsprechen, die vertretbar ist, um einen einzigen User-Login zu verifizieren. Zum Beispiel 500ms für ein Mobilgerät oder PC und 1-10ms für einen Server.


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s