De Brute Force Attack Uitgebreide operatie

Projectreferentiedocument Time2Crack
Ontvangers: ontwikkelaars, security onderzoekers, geavanceerde gebruikers

Inhoud

  • Overzicht
  • Historische en academische achtergrond
  • Wiskunde: sleutelruimte en entropie
  • Architectuur van een brute aanval moderne kracht
  • Berekeningssnelheden door hash-algoritme
  • Tanketdetectie in Time2Crack
  • Berekening van de kraaktijd: rawTime()
  • Datumreductie gedetecteerd: detectDateAndReduce()
  • Monotone bewaker: vloer van andere aanvallen
  • HF-kalibratie en de rol van de brutokracht
  • Vergelijking met andere aanvallen
  • Theoretische en praktische beperkingen
  • Wat brute kracht zegt niet
  • Doeltreffende verdediging
  • Referenties

  • 1. Overzicht

    Ruwe kracht is de meest fundamentele aanval in het kraken van wachtwoorden: het bestaat uit testen systematisch alle mogelijke combinaties Geen intelligentie, geen heuristische alleen de ruwe rekenkracht tegen de grootte van de ruimte om te reizen.

    In Time2Crack speelt brute kracht een dubbele rol:

  • Gemodelleerde aanval Het is de maximale theoretische tijd die een aanvaller zou stellen, aangenomen dat er geen andere uitbuitende kwetsbaarheid is.
  • Vloer (monotoneity guard) : het dient als een lagere terminal voor alle andere aanvallen
  • In de praktijk, ruwe kracht is bijna nooit de snelste aanval op een echt menselijk wachtwoord . PCFG , Markov of hybride aanval zal effectiever zijn . Maar voor een echt willekeurige en lange wachtwoord , het vertegenwoordigt de realiteit: de aanvaller heeft geen andere keuze dan om de ruimte uitputtend bladeren .

    2. Historische en academische achtergrond

    2.1 Oorsprong

    De ruwe kracht gaat vooraf aan de computer: het principe van het testen van alle mogelijke combinaties wordt gebruikt sinds de eerste mechanische encryptie machines (Enigma tijdens de Tweede Wereldoorlog). De bom van Alan Turing was in brede zin een apparaat van ruwe kracht gedwongen door een hypothese van wieg.

    Met de komst van computers werd de unix password force geformaliseerd van de jaren zeventig tot de jaren tachtig:

    JaarGebeurtenis
    ---------------------
    1979Morris & Thompson: Eerste academisch artikel over Unix-wachtwoordbeveiliging, met ruwe krachtanalyse op /etc/passwd
    1988Morris Worm: eerste grote prestatie met onder andere een woordenboek en een ruwe kracht wachtwoord crack
    1993Crack 5.0 (Alec Muffett): eerste publieke kraken hulpmiddel door ruwe kracht op Unix
    2004Ophcrack: groef tabellen + ruwe kracht op LM/NTLM hashes Windows
    2007GPU-versnelde kraken (Elcomsoft): eerste publieke gebruik van de GPU om de brutokracht te versnellen
    2012Hashcat open source: referentietool, maximale GPU-bewerking
    2016Hive Systems: Jaarlijkse publicatie van tabellen "brutokracht door GPU" wordt industrieel referentie

    2.2 Benchmark

    De GPU revolutie veranderde de orde van grootte van de ruwe kracht. Op CPU, een aanvaller van de jaren negentig getest ~ 10.000 MD5/seconde wachtwoorden. Een RTX 4090 in 2024 in test 168,9 miljard per seconde Een versnelling van 16 miljoen keer in 30 jaar.

    Belangrijkste academische bronnen :

    3. Wiskundebases: sleutelruimte en entropie

    3.1 Sleutelruimte

    Keyspace (keyspace) is het totale aantal mogelijke wachtwoorden voor een bepaalde lengte en tank:

    keyspace = charset_size ^ length

    Bijvoorbeeld:

    CharsetGrootteLengteSleutelruimteWaardering
    -------------------------------------------------------
    Enkele cijfers108108 = 100.000.000~108
    Minuscules alleen268268 miljoen~2 × 1011
    Alfanumerisch628628 miljoen~2 × 1014
    Volledige ASCII958958 miljard~6 × 1015
    Volledige ASCII95129512 - 5,4 × 1023~5 × 1023
    Volledige ASCII95169516 - 4,4 × 1031~4 × 1031

    3.2 binaire entropie

    Entropie (gemeten in bits) is de logaritmische formulering van keyspace:

    entropie = length × log₂(charset_size)

    In Time2Crack (functie entropy()) :

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

    De relatie tussen entropie en keyspace:

    keyspace = 2^entropie
    entropie = log₂(keyspace)
    Concrete voorbeelden :
    WachtwoordCharsetLengteEntropieSleutelruimte
    - [57]-----------------------------------------------
    "12345678"10 (cijfers)826,6 bits108
    "wachtwoord"26 (onder)837,6 bits268
    Wachtwoord162 (alfanum)953,6 bits629
    "P@ssw0rd!"95 (volledige ASCII)959,3 bits959
    xQz7@mK9#2pL95 (volledige ASCII)1279 bits9512

    3.3 Wiskundige hoop: sleutelruimte / 2

    Ruwe kracht test niet altijd keyspace Geïntegreerde combinaties gemiddeld, vindt het wachtwoord halverwege, omdat het doel is equibrobablely verdeeld in de ruimte.wiskundige verwachting het aantal pogingen is daarom:

    tentatives_attendues = keyspace / 2

    Dit is precies wat modellen bruteTime() in Time2Crack:

    // "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
    }

    Deze verdeling door 2 is correct onder de veronderstelling dat de aanvaller de ruimte lineair (niet-repeterend) reist. keyspace/2 Pogingen.


    14. Doeltreffende verdediging

    14.1 Gebruikerszijde: lengte en willekeur

    De brutokracht wordt door twee gecombineerde factoren tegengehouden:

    Lengte : elk extra teken vermenigvuldigt de keyspace door charset_sizeVan 8 tot 12 tekens (charset 95) vermenigvuldigt de keyspace door 954 - 81 miljoen.
    Waar willekeurig : een cryptografische veilige generator (CSPRNG) produceert wachtwoorden die niet profiteren van een probabilistische reductie. Markov, PCFG en Neural hebben geen voordeel over een echt willekeurig wachtwoord.
    Praktische aanbeveling :

    14.2 Serverzijde: resistente algoritmen

    De keuze van het hash-algoritme vermenigvuldigt of verdeelt de ruwe krachttijd door factoren tot aantal miljoen :

    AanbevelingAlgoritmeReden
    ----------------››--------
    AanbevolenArgon2idGeheugenhard, GPU-bestendig
    Aanbevolenbcrypt (kosten ≥ 12)Opzettelijk langzaam, zoutachtig
    AanvaardbaarscryptGeheugen-hard maar minder gestandaardiseerd
    OnvoldoendeSHA-256 gezoutenTe snel zelfs met zout
    GevaarlijkMD5, SHA-1, NTLMNiet zout, extreem snel

    15. Bibliografische referenties

    Academici

    Morris, R., & Thompson, K. (1979). Wachtwoordbeveiliging: een dossiergeschiedenis. Mededelingen van de ACM, 22(11), 594, 597. → Oprichtingsartikel over Unix wachtwoordbeveiliging
    Sprengers, M. (2011). GPU-gebaseerde wachtwoord tracking (Master's thesis). Radboud Universiteit Nijmegen. → Wiskundige formalisering van GPU kraken, benchmarks op enkele GPU
    Wheeler (2016). zxcvbn: Low-Budget Wachtwoord Sterkteschatting. 25e USENIX Security Symposium. → Gegevens over effectieve sleutelruimte (tabel 2: -30% voor gestructureerde wachtwoorden)
    Dürmuth, M. et al. (2015). Bestelde Markov Enumerator. ESORICS 2015. → Vergelijkende referentie voor probabilistische terminals vs brutokracht

    Industrie

    Hive Systems. (2025). 2025 Hive Systems Paswoordtabel. https://www.hivesystems.io/password-table → Jaarlijkse benchmarks op 12× RTX 4090, standaardreferentie
    Gosney, J (2012). 8x Nvidia GTX 1080 Hashcat benchmarks. GitHub Gist. → Eerste publieke multi-GPU benchmark, historische referentie
    Hashcat. (2024). Officiële Hashcat benchmarks v6.2.6. https://hashcat.net/hashcat/ → Officiële snelheden door algoritme, bron van Time2Crack constanten
    NIST SP 800-63B. (2017, bijgewerkt 2024). Digitale Identiteitsrichtlijnen: Authenticatie en Lifecycle Management. → Officiële aanbevelingen over wachtwoordlengte en complexiteit
    OWASP. (2024). Wachtwoord Opslag Valsblad. https://cheatsheetserie.owasp.org/cheatsheets/Password Storage Cheat Sheet.html → Aanbevelingen over bcrypt (kosten ≥ 12), Argon2id als moderne normen
    Document gegenereerd voor Time2Crack project Laatste update: 2026-04-18 Gebaseerd op implementatie in app.js, ruwe functiesTime(), getCharset(), en monotoneity guard