Der Angriff der Brute Force — umfassende Operation

Referenzdokument des ProjektsTime2Crack
Empfänger: Entwickler, Sicherheitswissenschaftler, Fortgeschrittene

Inhalt

  • Überblick
  • Historischer und akademischer Hintergrund
  • Math: Schlüsselraum und Entropie
  • Architektur eines brutalen Angriffs moderne Kraft
  • Berechnungsgeschwindigkeiten durch Hash-Algorithmus
  • Erkennung des Tanks inTime2Crack
  • Berechnung der Rißzeit: RohTime()
  • Datumsreduktion festgestellt: detektierenAndReduce()
  • Einschallschutz: Boden anderer Angriffe
  • HF-Kalibrierung und die Rolle der Bruttokraft
  • Vergleich mit anderen Angriffen
  • Theoretische und praktische Einschränkungen
  • Welche brutale Kraft sagt nicht
  • Effektive Verteidigung
  • Referenzen

  • 1. Überblick

    Crude Force ist der grundlegendste Angriff bei Passwort-Cracking: es besteht aus Tests systematisch alle möglichen Kombinationen Keine Intelligenz, keine heuristische — nur die rohe Rechenleistung gegen die Größe des Raumes zu reisen.

    InTime2CrackDie Bruttokraft spielt eine doppelte Rolle:

  • Modellierter Angriff Es stellt die maximale theoretische Zeit dar, die ein Angreifer setzen würde, vorausgesetzt, keine andere ausnutzbare Verwundbarkeit.
  • Boden (Monotonitätsschutz) : es dient als unteres Terminal für alle anderen Angriffe — kein spezialisierter Angriff kann legitim eine Zeit weniger anzeigen als die, die rohe Kraft auf die alphabetische Teilkette des Passworts nehmen würde.
  • In der Praxis, brute force ist fast nie der schnellste Angriff auf ein echtes menschliches Passwort —PCFG,MarkovAber für ein wirklich zufälliges und langes Passwort stellt es die Realität dar: Der Angreifer hat keine Wahl, sondern den Raum vollständig zu durchsuchen.

    2. Historischer und akademischer Hintergrund

    2.1 Ursprung

    Die Rohkraft vor dem Computer: Das Prinzip der Prüfung aller möglichen Kombinationen wird seit den ersten mechanischen Verschlüsselungsmaschinen (Enigma während des Zweiten Weltkrieges) verwendet. Die Bombe von Alan Turing war in einem weiten Sinne ein Gerät der Rohkraft, die durch eine Hypothese von Krippen erzwungen wurde.

    Mit dem Aufkommen von Computern wurde die unix-Passwortkraft von den 1970er bis 1980er Jahren formalisiert:

    JahrVeranstaltung
    --------------
    1979Morris & Thompson: Erster akademischer Artikel über Unix-Passwortsicherheit, mit Rohkraftanalyse auf /etc/passwd
    1988Morris Worm: erste Masse feat unter anderem ein Wörterbuch und rohe Kraft Passwort Riß
    1993Crack 5.0 (Alec Muffett): erstes öffentliches Rißwerkzeug durch Rohkraft auf Unix
    2004Ophcrack: Nuttische + Rohkraft auf LM/NTLM hashes Windows
    2007GPU-beschleunigte Risse (Elcomsoft): erste öffentliche Nutzung der GPU zur Beschleunigung der Bruttokraft
    2012Hashcat Open Source: Referenzwerkzeug, maximaler GPU-Betrieb
    2016Hive Systems: Jährliche Veröffentlichung der Tabellen "Brutskraft durch GPU" wird industrielle Referenz

    2.2 Benchmarks

    Die GPU-Revolution änderte die Größenordnung der Rohkraft. Auf der CPU, ein Angreifer der 1990er Jahre getestet ~10.000 MD5/Sekunde Passwörter. Ein RTX 4090 in 2024 in Test 168,9 Milliarden pro Sekunde — eine Beschleunigung von 16 Millionen Mal in 30 Jahren.

    Schlüssel akademische Quellen :

    3. Mathe Grundlagen: Schlüsselraum und Entropie

    3.1 Schlüsselbereich

    Keyspace (keyspace) ist die Gesamtzahl der möglichen Passwörter für eine bestimmte Länge und Tank:

    keyspace = charset_size ^ length

    Beispiele:

    CharleroiGrößeLängeSchlüsselbereichBewertung
    -----------------------------------------
    Einzelziffern10.8)108 = 100,000,000~108 ~
    Minuscules alleine268)268 Mio.~2 × 1011 ~
    AlphanumerischANHANG8)628 Mio.~2 × 1014 ~
    Vollständiges ASCIIANHANG8)958 Milliarden~6 × 1015 ~
    Vollständiges ASCIIANHANG129512 - 5.4 × 1023~5 × 1023 ~
    Vollständiges ASCIIANHANGANHANG9516 — 4.4 × 1031~4 × 1031 ~

    3.2 binäre Entropie

    Entropie (gemessen in Bits) ist die logarithmische Formulierung von Schlüsselraum:

    entropie = length × log₂(charset_size)

    InTime2Crack(Funktion) entropy())

    function entropy(pw) {
      return pw.length * Math.log2(getCharset(pw).size);
    }

    Die Beziehung zwischen Entropie und Schlüsselraum:

    keyspace = 2^entropie
    entropie = log₂(keyspace)
    Detaillierte Beispiele :
    Passwort vergessen?CharleroiLängeEntropieSchlüsselbereich
    ----------------------------------------------
    "12345678"10 (Ziffer)8)26.6 BitsANHANG
    "Passwort"26 (unter)8)37,6 Bit268
    Passwort vergessen?62 (Alphanum)ANHANG53.6 Bits629
    "P@ssw0rd!"95 (vollständig ASCII)ANHANG59,3 Bits959
    xQz7@mK995 (vollständig ASCII)1279 BitANHANG

    3.3 Mathematische Hoffnung: Schlüsselraum / 2

    Kreuzkraft testet nicht immer keyspace Integer-Kombinationen — im Durchschnitt findet es das Passwort in der Mitte, da das Ziel im Raum gleichverteilt ist.mathematische Erwartung die Zahl der Versuche ist daher:

    tentatives_attendues = keyspace / 2

    Das ist genau das, was Modelle bruteTime() inTime2Crack:

    // "For brute force: expected value is keyspace/2 (uniform random search)"
    function bruteTime(keyspace, rate) {
      const ls = Math.log(keyspace / 2) - Math.log(rate);
      return Math.exp(ls); // = (keyspace / 2) / rate
    }

    Diese Teilung um 2 ist unter der Annahme richtig, dass der Angreifer den Raum linear (nicht-repetitiv) fährt. keyspace/2 Versuche.


    14. Wirksame Verteidigung

    14.1 Benutzerseite: Länge und Zufall

    Die Bruttokraft wird durch zwei kombinierte Faktoren besiegt:

    Länge : jedes zusätzliche Zeichen multipliziert den Schlüsselraum durch charset_sizeVon 8 bis 12 Zeichen (charset 95) multipliziert den Schlüsselraum durch 954 - 81 Mio.
    Echt zufällig : ein kryptographisch sicherer Generator (CSPRNG) produziert Passwörter, die nicht von einer probabilistischen Reduktion profitieren.Markov,PCFGund Neural haben keinen Vorteil gegenüber einem wirklich zufälligen Passwort.
    Praktische Empfehlung :

    14.2 Serverseite: widerstandsfähige Algorithmen

    Die Wahl des Hash-Algorithmus multipliziert oder teilt die Rohkraftzeit durch Faktoren bis zu mehrere Millionen :

    EmpfehlungAlgorithmenBegründung
    ----------------------------
    EmpfohlenArgon2idMemory-hart, GPU-beständig
    Empfohlenbcrypt (Kosten ≥ 12)Vorsichtig langsam, salzig
    AkzeptabelScryptSpeicherhart, aber weniger standardisiert
    InadäquatSHA-256 gesalzenZu schnell auch mit Salz
    GefährlichMD5, SHA-1, NTLMNicht salzig, extrem schnell

    15. Bibliographische Referenzen

    Wissenschaft

    Morris, R., & Thompson, K. (1979). Passwort-Sicherheit: Eine Fallgeschichte. Mitteilungen der ACM, 22(11), 594-597. → Artikel zu Unix Passwort-Sicherheit
    Sprengers, M. (2011). GPU-basiertes Passwort-Tracking (Master's Theses). Radboud Universität Nijmegen. → Mathematische Formalisierung von GPU-Cracking, Benchmarks auf einzelne GPU
    Wheeler, D.L. (2016). zxcvbn: Low-Budget-Passwortstärkeschätzung. 25. USENIX Security Symposium. → Daten zum effektiven Schlüsselbereich (Tabelle 2: -30% für strukturierte Passwörter)
    Dürmuth, M. et al. (2015). OMEN: BestellungMarkovEnumerator. ESORICS 2015. → Vergleichende Referenz für probabilistische Terminals vs Bruttokraft

    Industrie

    Hive Systems. (2025). 2025 Hive Systems Passworttabelle. https://www.hivesystems.io/password-table → Jährliche Benchmarks auf 12× RTX 4090, Standardreferenz
    Gosney, J (2012). 8x Nvidia GTX 1080 Hashcat Benchmarks. GitHub Gist. → Erster öffentlicher Multi-GPU-Benchmark, historische Referenz
    Hashcat. (2024). Offizielle Hashcat Benchmarks v6.2.6. http://hashcat.net/hashcat/ → Offizielle Geschwindigkeiten nach Algorithmus, KonstantenquelleTime2Crack
    NIST SP 800-63B. (2017, aktualisiert 2024). Digital Identity Guidelines: Authentication and Lifecycle Management. → Offizielle Empfehlungen zur Passwortlänge und Komplexität
    OWASP. (2024). Passwort speichern Cheat Sheet. https://cheatssheetseries.owasp.org/cheatssheets/Password Storage Cheat Sheet.html → Empfehlungen zu bcrypt (Kosten ≥ 12), Argon2id als moderne Standards
    ProjektdokumentTime2Crack— Letzte Aktualisierung : 2026-04-18 Basierend auf der Implementierung in app.js, rohe FunktionenTime(), getCharset() und Monotonitätsschutz