Exper­ten spre­chen ger­ne dar­über, dass gera­de kur­ze Pass­wör­ter mit Hoch­leis­tungs­hard­ware wie sehr schnel­len Gra­fik­kar­ten errech­net wer­den kön­nen. Im fol­gen­den Arti­kel ver­su­chen wir mit mög­lichst ein­fa­chen Erklä­run­gen das Kna­cken von Pass­wör­tern zu beschreiben.

Unser Dis­clai­mer: Pass­wort-Hacken und unbe­fug­tes Ein­drin­gen in IT-Sys­te­me ist straf­bar. Unse­re Anlei­tung ver­deut­licht die Wich­tig­keit von star­ken Pass­wör­tern und stellt kei­ne Anlei­tung für das Hacken von Pass­wort-Hash­es darstellen.

Was ist ein Bru­te-Force Angriff?

Beim soge­nann­ten Bru­te-Force Angriff wird mit beson­ders schnel­ler Hard­ware eine Viel­zahl an Pass­wör­ter gene­riert und die­se mit einem exis­tie­ren­den Pass­wort ver­gli­chen. Hier­bei wird jedoch nicht ver­sucht sich mit dem Pass­wort beim Ziel­sys­tem anzu­mel­den, da Anwen­dun­gen eine sol­che Anzahl an Anmel­de­ver­su­chen nicht zulas­sen wür­den. Bru­te-Force Angrif­fe wer­den daher nur gegen gestoh­le­ne Pass­wort-Hash­es durchgeführt.

War­um spei­chert man Pass­wör­ter als Hash?

Moder­ne Anwen­dun­gen spei­chern Pass­wör­ter nicht in Klar­text in den Daten­ban­ken, son­dern soge­nann­te Hash­es der Pass­wör­ter. His­to­risch waren das MD5 Hash­es, ein sehr altes Ver­fah­ren ent­wi­ckelt im Jahr 1991 wo aus einem belie­big lan­gen Pass­wort ein 128-Bit bzw. 16 Zei­chen lan­ger Code abge­lei­tet wird. Die­ser Code wird in der Daten­bank statt dem Klar­text-Pass­wort gespei­chert und bei der Benut­zer­an­mel­dung wird wie­der aus dem Klar­text-Pass­wort der MD5 Hash gebil­det und mit dem gespei­cher­ten Hash verglichen.

MD5 gilt schon seit vie­len Jah­ren als unsi­cher, daher wur­de der Pass­wort­ver­gleich vie­le Jahr mit dem Nach­fol­ge­al­go­rith­mus SHA‑1 berech­net. SHA‑1 erzeugt einen 160-Bit bzw. 20 Zei­chen Hash-Code. Auch SHA‑1 gilt heu­te als nicht mehr sicher.

Als Nach­fol­ger zu SHA‑1 gilt SHA-256 mit 256-Bit bzw. 32 Zei­chen oder bcrypt ein rechen­auf­wen­di­ger Hash­ing-Algo­rith­mus, der typi­scher­wei­se einen 480-Bit bzw. 60 Zei­chen Hash-Code erzeugt.

Die Berech­nun­gen im Fol­gen­den basie­ren auf dem moder­nen bcrypt Passwort-Hashing.

Hier ein Bei­spiel in Python wie aus einem Pass­wort ein Hash wird.

#!/usr/bin/python3
import bcrypt

# Pass­wort eingeben
pass­word = input(“Geben Sie das Pass­wort ein: ”).encode(‘utf‑8′)

# Salt generieren
salt = bcrypt.gensalt()

# Bcrypt-Hash erzeugen
hashed_password = bcrypt.hashpw(password, salt)

# Aus­ga­be
print(f“Salt: {salt}”)
print(f“Gehash­ter Pass­wort: {hashed_password}”)

# das gehash­te Pass­wort wird übli­cher­wei­se in einer Daten­bank gespei­chert und bei jeder Pass­wort­an­mel­dung mit dem aber­mals errech­ne­ten Hash verglichen

Hash­ing-Ver­gleich ist leicht, aber wie kom­men Angrei­fer zu den Passwort-Hashes?

Eine Art wie Cyber­an­g­rei­fer zu den Pass­wör­tern von Per­so­nen kom­men ist Phis­hing. Hier geben aus­ge­tricks­te Per­so­nen ihre Benut­zer­ken­nung und das zuge­hö­ri­ge Pass­wort auf einer gefälsch­ten Web­sei­te ein. Da Angrei­fer beim Phis­hing das Klar­text-Pass­wort erfah­ren, ist natür­lich kein Bru­te-Force Angriff erforderlich.

Typi­scher­wei­se erfah­ren Cyber­an­g­rei­fer aber den Pass­wort-Hash aus einer gehack­ten Daten­bank oder aus einem gestoh­le­nen Back­up. Dies muss nicht unbe­dingt das Ziel­sys­tem sein, dass gehackt wird, um an die Pass­wort-Hash­es von Per­so­nen zu gelan­gen, oft ver­wen­den wir Men­schen die­sel­ben Pass­wör­ter bei vie­len Anwen­dun­gen und auch in der Cloud. Gelingt es dann ein gro­ßes Por­tal wie eine gro­ße Shop­ping-Platt­form oder ein Sozia­les Netz­werk zu hacken, fal­len Mil­lio­nen von Pass­wort-Hash­es in die Hän­de der Angreifer.

Von beson­ders ein­fa­chen Pass­wör­tern wie „admin1234“ oder „pass­wort!“ ken­nen die Cyber­schur­ken die Hash­es bereits und kön­nen sofort einen Angriff auf das Ziel­sys­tem durch­füh­ren. Unbe­kann­te Pass­wort-Hash­es müs­sen zuerst über einen Bru­te-Force Angriff geknackt wer­den, wobei der Angrei­fer durch die Atta­cke das Klar­text-Pass­wort identifiziert.

Was bedeu­tet die Passwort-Entropie?

Jedem ist klar, dass sehr kur­ze Pass­wör­ter schnell errech­net wer­den kön­nen und lan­ge Pass­wör­ter lan­ge bzw. sehr lan­ge dau­ern zu errech­nen. Der Schlüs­sel dazu lau­tet „Entro­pie“.

Je höher die Pass­wort-Entro­pie ist, des­to län­ger dau­ert eine Bru­te-Force-Atta­cke. Die Entro­pie errech­net sich mit der fol­gen­den Formel:

E = log2(RLoder als Excel-For­mel  E = LOG(R^L;2)

Wobei E für die Entro­pie steht, R für die Men­ge an mög­li­chen Zei­chen (A‑Z, a‑z, 0–9, Son­der­zei­chen) und L für die Anzahl der Zei­chen des Passwortes.

Für ein 8 Zei­chen lan­ges Pass­wort mit einer Kom­bi­na­ti­on aus 62 mög­li­chen Zei­chen (ent­spricht a‑z, A‑Z und 0–9) ist die Entropie:

E = log2(62^8) = 47,6

Das ent­spricht einer theo­re­ti­schen Kom­bi­na­ti­on aus 218.340.105.584.896 als 218 Bil­lio­nen Pass­wör­tern. Unmög­lich zu errech­nen? Nein, denn es dau­ert nur ein paar Mona­te mit 12 star­ken RTX 4090 Grafikkarten.

Tipp: eine Entro­pie von 60 gilt heu­te als sicher. Das ist bei­spiels­wei­se ein Pass­wort mit 10 Zei­chen bestehend aus a‑z, A‑Z und 0–9 und 2 Sonderzeichen.

Wie läuft das Pass­wort-Hacken ab?

An die­ser Stel­le einen gro­ßen Dank an Hive Sys­tems, die seit meh­re­ren Jah­ren Bru­te-Force Kal­ku­la­tio­nen errech­nen und auch Test­sys­te­me kau­fen um in einem klei­ne­ren Rah­men ihre Berech­nun­gen zu verproben.

Damit die Zei­ten für die Pass­wort-Atta­cke mög­lichst rea­lis­tisch sind, basie­ren die Berech­nun­gen auf han­dels­üb­li­cher Hard­ware, die mit einem mitt­le­ren Bud­get ange­schafft wer­den können:

  • 12 Stk. Intel oder AMD PC
  • 12 Stk. NVIDIA RTX 4090 Grafikkarte
  • Kal­ku­lier­te Hard­ware­inves­ti­ti­on: rd. € 27.600

Auf dem Hack­ing-Clus­ter läuft eine spe­zi­el­le Open Source Hack­ing-Soft­ware namens „hash­cat“. Mit der Soft­ware wird sicher­ge­stellt, dass jeder der 12 PCs eine ande­re Pass­wort­kom­bi­na­ti­on untersucht.

Hard­ware-Tipp: Lei­der ist die RTX 4090 Gra­fik­kar­te vom Markt genom­men wor­den, es kann sein, das in den RTX 5080 und RTX 5090 die fürs Pass­wort-Crack­ing benö­ti­gen Funk­tio­nen gedros­selt sind.

Der Fak­tor Energiebedarf

Kurz gespoi­lert: der Hack eines 8 Zei­chen Pass­wor­tes mit den Zei­chen a‑z und A‑Z dau­ert rd. 8 Mona­te aus einem bekann­ten Hash zu errech­nen. Jeder der 12 betei­lig­ten PCs ver­schlingt pro Monat rd. 330 kWh mul­ti­pli­ziert mit einem güns­ti­gen Preis von 0,12€ pro kWh sind das rd. 40 € Strom­kos­ten pro PC pro Monat. Bei 12 PCs und 8 Mona­ten also rd. 3.840 €.

Bei einem Ran­som­wa­re-Angriff oder einem Cyber-Betrug eines grö­ße­ren Unter­neh­mens ver­die­nen Cyber­schur­ken oft meh­re­re Mil­lio­nen Euro, die knapp 4000 € sind also kal­ku­la­to­risch eine sehr gute Inves­ti­ti­on für Kri­mi­nel­le, leider!

Sind lan­ge Pass­wör­ter nun siche­rer gegen­über einem Bru­te-Force Angriff?

In der fol­gen­den Tabel­le die Hive Sys­tems errech­net hat sieht man die Gren­zen eines Bru­te-Force Angriffes:

Zei­chen­län­ge L des Passwortes nur Zah­len, R=10 nur Klein­buch­sta­ben, R=26 Klein­buch­sta­ben, Groß­buch­sta­ben, Zah­len, R=62 Klein- / Groß­buch­sta­ben, Zah­len, Son­der­zei­chen, R=70
6 Zei­chen Sofort 2 Minu­ten 6 Stun­den 12 Stun­den
8 Zei­chen 37 Sekun­den 22 Stun­den 3 Jah­re 7 Jah­re
10 Zei­chen 1 Stun­de 2 Jah­re 9000 Jah­re 33000 Jah­re
14 Zei­chen 1 Jahr 766000 Jah­re 147 Mrd. Jahre 805 Mrd. Jahre

Bei einem 10 Zei­chen Pass­wort klin­gen 33000 Jahr sicher, ABER

Andreas Schuster, Senior Manager

Lei­der gelingt uns Men­schen nicht per­fek­te Pass­wör­ter aus dem gro­ßen Zei­chen­vor­rat zu erstel­len und sich die­se auch zu mer­ken. For­scher zei­gen auf, dass die Mehr­zahl der Men­schen dem fol­gen­dem typi­schen Pass­wort­mus­ter folgen:

  1. Der ers­te Teil des Pass­wor­tes ist ein natür­li­ches Wort mit dem ers­ten Buch­sta­ben als Groß­buch­sta­be oder zwei kur­ze Wörter
  2. Teil­wei­se wer­den bei dem ers­ten Teil dem Wort ein­zel­ne Buch­sta­ben ersetzt, in der Regel die Zei­chen E auf 3, O auf 0 und S auf 5.
  3. Hin­ter den Zei­chen fol­gen dann ein oder meh­re­re Zahlen
  4. Zum Abschluss folgt dann ein oder zwei Son­der­zei­chen, bevor­zugt aber Son­der­zei­chen die leicht mit den Fin­gern ein­zu­ge­ben sind wie ! ? $ +

Ein typi­sches Bei­spiel eines gül­ti­gen Pass­wor­tes mit 9 Zei­chen wäre: Ott02024!

Genau die­se mensch­li­che Vor­gangs­wei­se sich merk­ba­re Pass­wör­ter zu erstel­len, nut­zen auch die Cyber­an­g­rei­fer und pro­bie­ren zuerst Mil­lio­nen von natür­li­chen Wör­tern in Kom­bi­na­ti­on mit Jah­res­zah­len und weni­gen Son­der­zei­chen. Sofern ein Pass­wort die­sen Regeln ent­spricht, ist die­ses in weni­gen Minu­ten anstatt von Jah­ren geknackt.

Ein wei­te­rer Ansatz die Dau­er für ein Pass­wort-Kna­cken zu redu­zie­ren ist  sich die Hash-Wer­te vie­ler gän­gi­ger Pass­wort­kom­bi­na­tio­nen vor­zu­rech­nen, die­se in einer indi­zier­ten Daten­bank zu spei­chern und dann nur mehr die zu kna­cken­den Hash­es in der Daten­bank zu suchen. Sol­che soge­nann­ten Rain­bow Tables gibt es kos­ten­frei zum Down­load und wenn man meh­re­re Hun­dert Benut­ze­rIn­nen Pass­wort-Hash­es damit ver­gleicht, fin­det man in der Regel sofort ein schwa­ches Pass­wort, dass sofort aus­ge­nutzt wer­den kann.

Die drit­te Metho­de die Anzahl der Jah­re zu redu­zie­ren ist, anstatt von 12 PCs mit star­ken Gra­fik­kar­ten ein­fach ein Viel­fa­ches an Hard­ware  zu betrei­ben. Den­ken wir an 12 x 12 PCs also 144 PCs, dann wer­den aus 7 Jah­ren für ein kom­ple­xes 8 Zei­chen Pass­wort nur mehr 7 Mona­te für einen Hack.

Noch effi­zi­en­ter ist, wenn man nicht eige­ne Rechen­leis­tung nutzt, son­dern ver­teil­te Rechen­leis­tung ent­we­der über ein gro­ßes Bot-Netz­werk, über tau­sen­de Cloud-Ser­ver oder über spe­zi­ell dafür ent­wi­ckel­te Super­com­pu­ter. Durch die mas­siv gestei­ger­te Rechen­leis­tung sinkt die benö­tig­te Zeit mög­li­cher­wei­se auf weni­ge Tage für den glei­chen Angriff.

Pass­wort­si­cher­heit — das Resümee

Pass­wör­ter wer­den immer eine Gefahr dar­stel­len, mini­mie­ren kann man die Gefahr unter ande­rem durch:

  • Schu­lung der Mit­ar­bei­te­rIn­nen, das betrieb­lich genutz­te Pass­wör­ter nicht pri­vat und in der Cloud wie­der­ver­wen­det werden
  • Ein­satz von Pass­wort-Gene­ra­to­ren und Ver­zicht auf natür­li­che Wor­te inner­halb von Passwörtern
  • Ein­satz einer Pass­wort-Tre­sor Lösung, mit der Lösung kön­nen auch deut­lich län­ge­re und kom­ple­xe, gene­rier­te Pass­wör­ter genutzt werden.
  • Erhö­hung der Pass­wort­län­ge auf 10 oder bes­ser 12 Zeichen
  • Ver­pflich­ten­der Ein­satz von Multi-Faktor-Authentifizierung
  • Stra­te­gi­scher Wech­sel von Pass­wort-Authen­ti­fi­zie­rung zu einer kryp­to­gra­phi­schen Authen­ti­fi­zie­rung, z.B. über FIDO2 oder Passkeys