De Brute Force Attack Uitgebreide operatie
Projectreferentiedocument Time2Crack
Ontvangers: ontwikkelaars, security onderzoekers, geavanceerde gebruikers
Inhoud
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:
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:
| Jaar | Gebeurtenis |
| ------- | -------------- |
| 1979 | Morris & Thompson: Eerste academisch artikel over Unix-wachtwoordbeveiliging, met ruwe krachtanalyse op /etc/passwd |
| 1988 | Morris Worm: eerste grote prestatie met onder andere een woordenboek en een ruwe kracht wachtwoord crack |
| 1993 | Crack 5.0 (Alec Muffett): eerste publieke kraken hulpmiddel door ruwe kracht op Unix |
| 2004 | Ophcrack: groef tabellen + ruwe kracht op LM/NTLM hashes Windows |
| 2007 | GPU-versnelde kraken (Elcomsoft): eerste publieke gebruik van de GPU om de brutokracht te versnellen |
| 2012 | Hashcat open source: referentietool, maximale GPU-bewerking |
| 2016 | Hive 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 :- Gosney, J (2012) : eerste multi-GPU publieke benchmark op LM/NTLM, met 180 GH/s met 8 GPU
- Bijenkorven (2025) : jaartabellen gekalibreerd op 12× RTX 4090, geciteerd door Forbes, CNBC, BBC
- Sprengers, M. (2011) : Radboud University thesis over GPU kraken, wiskundige formalisatie
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:
| Charset | Grootte | Lengte | Sleutelruimte | Waardering |
| ----------- | -------- | ------------ | ------------ | ------------ |
| Enkele cijfers | 10 | 8 | 108 = 100.000.000 | ~108 |
| Minuscules alleen | 26 | 8 | 268 miljoen | ~2 × 1011 |
| Alfanumerisch | 62 | 8 | 628 miljoen | ~2 × 1014 |
| Volledige ASCII | 95 | 8 | 958 miljard | ~6 × 1015 |
| Volledige ASCII | 95 | 12 | 9512 - 5,4 × 1023 | ~5 × 1023 |
| Volledige ASCII | 95 | 16 | 9516 - 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 :
| Wachtwoord | Charset | Lengte | Entropie | Sleutelruimte |
| - [57] | ----------- | ------------ | ------------ | ------------ |
| "12345678" | 10 (cijfers) | 8 | 26,6 bits | 108 |
| "wachtwoord" | 26 (onder) | 8 | 37,6 bits | 268 |
| Wachtwoord1 | 62 (alfanum) | 9 | 53,6 bits | 629 |
| "P@ssw0rd!" | 95 (volledige ASCII) | 9 | 59,3 bits | 959 |
| xQz7@mK9#2pL | 95 (volledige ASCII) | 12 | 79 bits | 9512 |
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 doorcharset_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 :
- Password Manager + Willekeurige Generatie ≥ 16 tekens met volledige float = buiten bereik van elke ruwe kracht in een menselijke levenshorizon
14.2 Serverzijde: resistente algoritmen
De keuze van het hash-algoritme vermenigvuldigt of verdeelt de ruwe krachttijd door factoren tot aantal miljoen :
| Aanbeveling | Algoritme | Reden |
| ---------------- | ›› | -------- |
| Aanbevolen | Argon2id | Geheugenhard, GPU-bestendig |
| Aanbevolen | bcrypt (kosten ≥ 12) | Opzettelijk langzaam, zoutachtig |
| Aanvaardbaar | scrypt | Geheugen-hard maar minder gestandaardiseerd |
| Onvoldoende | SHA-256 gezouten | Te snel zelfs met zout |
| Gevaarlijk | MD5, SHA-1, NTLM | Niet 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 wachtwoordbeveiligingSprengers, 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, standaardreferentieGosney, 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