Útok hrubou silou

V kryptografii útok hrubou silou, , pozostáva z toho, že útočník odošle veľa hesiel alebo prístupových fráz s nádejou, že nakoniec uhádne správne. Útočník systematicky kontroluje všetky možné heslá a prístupové frázy, kým nenájde to správne. Alternatívne sa môže útočník pokúsiť uhádnuť prístupový kľúč, ktorý je zvyčajne vytvorený z hesla, pomocou funkcie odvodenia kľúča. Toto je známe ako dôkladné vyhľadávanie kľúčov. 
Útok hrubou silou je krypto-analytický útok, ktorý teoreticky môže byť použitý na pokus o dešifrovanie akýchkoľvek zašifrovaných údajov (okrem údajov šifrovaných informačno-teoretickým bezpečnostným spôsobom). Takýto útok môže byť použitý, keď nie je možné využiť iné slabiny v šifrovacom systéme (ak nejaké existujú), ktoré by uľahčili úlohu.
Pri hádaní hesiel je táto metóda veľmi rýchla, keď sa používa na kontrolu krátkych hesiel, ale na dlhšie heslá sa používajú iné metódy, ako napríklad slovníkový útok, pretože vyhľadávanie hrubou silou trvá príliš dlho. Dlhšie heslá, prístupové frázy a kľúče majú viacero možných hodnôt, takže ich prelomenie je exponenciálne ťažšie ako tie kratšie. 
Útoky hrubou silou môžu byť menej účinné zahmlievaním údajov (napr. tzv. solením), z ktorých sa generuje prístupový kľúč, čo útočníkovi sťaží rozpoznanie, kedy bol kód prelomený, alebo tým, že útočníkovi prinúti vykonať viac práce pri testovaní každého pokusu. Jedným z meradiel sily šifrovacieho systému je, ako dlho by útočníkovi teoreticky trvalo sa cez neho prelomiť pomocou útoku hrubou silou. 
Útoky hrubou silou sú aplikáciou metódy prehľadávania hrubou silou, všeobecnou technikou riešenia problémov spočítaním všetkých kandidátov a skontrolovaním každého z nich. Slovo „udieranie kladivom (hammering)“ sa niekedy používa na opis útoku hrubou silou , pričom ako protiopatrenia sa používa výraz „proti kladivu (anti-hammering)“. 
Základný koncept.
Útoky hrubou silou fungujú tak, že vypočítajú všetky možné kombinácie znakov, ktoré by mohli vytvoriť heslo a otestujú, či je nejaká konkrétna kombinácia znakov naše heslo. So zvyšujúcou sa dĺžkou hesla sa v priemere exponenciálne zvyšuje čas potrebný na nájdenie správneho hesla. 
Teoretické limity.
Zdroje potrebné na útok hrubou silou rastú exponenciálne so zvyšujúcou sa veľkosťou kľúča, nie lineárne. Hoci exportné predpisy USA historicky obmedzovali dĺžky kľúčov na 56-bitové symetrické kľúče (napr. Data Encryption Standard ), tieto obmedzenia už nie sú zavedené, takže moderné symetrické algoritmy zvyčajne používajú výpočtovo silnejšie 128- až 256-bitové kľúče.
Existuje fyzický argument, že 128-bitový symetrický kľúč je výpočtovo bezpečný proti útoku hrubou silou. Landauerov limit vyplývajúci z fyzikálnych zákonov stanovuje spodnú hranicu energie potrebnej na výpočet na bit vymazaný pri výpočte, kde "T" je teplota výpočtového zariadenia v kelvinoch, "k" je Boltzmannova konštanta a prirodzený logaritmus 2 ktorý je približne 0,693 (0,6931471805599453). Žiadne nevratné výpočtové zariadenie nemôže spotrebovať menej energie ako toto, ani teoreticky. Na jednoduché prechádzanie možnými hodnotami 128-bitového symetrického kľúča (ignorovaním skutočného výpočtu na jeho kontrolu) by teda teoreticky bolo potrebných "2 128 − 1" preklopení bitov na bežnom procesore. Ak sa predpokladá, že výpočet prebieha blízko izbovej teploty (≈300 K), možno použiť Von Neumannov-Landauerov limit na odhad potrebnej energie vo veľkosti približne ≈10 18 joulov, čo zodpovedá spotrebe 30 gigawattov energie za jeden rok. To sa rovná 30× 109 W×365×24×3600 s = 9,46× 1017 J alebo 262,7 TWh (približne 0,1 % ročnej svetovej produkcie energie ). Skutočný výpočet – kontrola každého kľúča, či sa našlo riešenie – by spotreboval mnohonásobok tejto sumy. Okrem toho toto je iba energetická spotreba pre prechádzanie cez kľúčový priestor; skutočný čas potrebný na preklopenie každého bitu sa neberie do úvahy, pričom je určite väčší ako 0 (pozri Bremermannov limit ).
Tento argument však predpokladá, že hodnoty registrov v procesore sa menia pomocou konvenčných operácií zadávania a vymazávania, ktoré nevyhnutne generujú entropiu . Ukázalo sa, že výpočtový hardvér môže byť navrhnutý tak, aby sa s touto teoretickou prekážkou nestretol (pozri reverzibilné výpočty ), hoci nie je známe, či takýto hardvér bol niekedy skonštruovaný. 
Keď sa nástupcovia vládnych riešení pre lámanie hesiel s využitím ASIC stali komerčne dostupnými, tiež známe ako hardvér prispôsobený pre útoky, dve nové technológie preukázali svoju schopnosť pri útoku hrubou silou na určité šifry. Jednou z nich je moderná technológia grafických procesorov (GPU),   druhou je technológia programovateľného hradlového poľa (FPGA). GPU benefitujú z ich širokej dostupnosti a pomeru ceny a výkonu, FPGA z ich energetickej účinnosti na kryptografickú operáciu. Obe technológie sa snažia preniesť výhody paralelného spracovania do útokov hrubou silou. V prípade GPU hovoríme o niekoľkých stovkách a v prípade FPGA niekoľkých tisíckach procesorových jednotiek, vďaka čomu sú oveľa vhodnejšie na prelomenie hesiel ako bežné procesory. Rôzne publikácie v oblasti kryptografickej analýzy dokázali energetickú účinnosť dnešnej technológie FPGA, napríklad počítač COPACOBANA FPGA Cluster spotrebuje rovnakú energiu ako jeden klasický počítač (600 W), ale funguje ako 2 500 počítačov pre lámanie určitých krypto-algoritmov. Množstvo firiem poskytuje hardvérové riešenia kryptografickej analýzy FPGA od jednej FPGA PCI Express karty až po vyhradené FPGA počítače.  Šifrovanie WPA a WPA2 boli takto úspešne prelomené hrubou, pričom využitím GPU sa náročnosť tohoto procesu znížila 50-násobne v porovnaní s konvenčnými CPU a niekoľko stoviek v prípade FPGA.
Advanced Encryption Standard (AES) umožňuje použitie 256-bitových kľúčov. Prelomenie symetrického 256-bitového kľúča hrubou silou vyžaduje 2 128 -krát väčší výpočtový výkon ako 128-bitový kľúč. Jeden z najrýchlejších superpočítačov v roku 2019, ktorý má rýchlosť 100 petaFLOPS, čo by teoreticky mohlo skontrolovať 100 biliónov (10 14 ) AES kľúčov za sekundu (za predpokladu 1 000 operácií počas jednej kontroly), by potreboval 3,67 × 10 55 rokov na prehľadanie celého 256- bitového kľúčového priestoru. 
Základným predpokladom útoku hrubou silou je, že na generovanie kľúčov sa použil celý kľúčový priestor, na čo sa využíva efektívny generátor náhodných čísiel, a že v algoritme alebo jeho implementácii nie sú žiadne chyby. Napríklad niekoľko systémov, o ktorých sa pôvodne predpokladalo, že ich nemožno prelomiť hrubou silou, boli napriek tomu prelomené, pretože sa zistilo, že kľúčový priestor na prehľadávanie je oveľa menší, než sa pôvodne predpokladalo, a to z dôvodu nedostatku entropie v ich pseudonáhodnom generátore čísiel . Medzi ne patrí implementácia SSL od Netscape (slávne prelomená Ianom Goldbergom a Davidom Wagnerom v roku 1995) a softvér OpenSSL, o ktorom sa v roku 2008 zistilo, že je chybný. Podobný nedostatok implementovanej entropie viedol k prelomeniu kódu menom Enigma. 
Recyklácia poverení.
Recyklácia poverení sa týka hackerskej praxe opätovného použitia kombinácií používateľského mena a hesla zhromaždených pri predchádzajúcich útokoch hrubou silou. Špeciálnou formou recyklácie poverení je odovzdanie hashu, kde sa nesolené hashnuté poverenia ukradnú a znova použijú bez toho, aby boli najprv prelomené hrubou silou.
Neprelomiteľné kódy.
Určité typy šifrovania vzhľadom na ich matematické vlastnosti nemožno poraziť hrubou silou. Príkladom toho je jednorazová bloková kryptografia, kde každý bit čistého textu má zodpovedajúci kľúč z náhodnej sekvencie kľúčových bitov. Jednorazovo zakódovaný reťazec so 140 znakmi, ktorý by bol vystavený útoku hrubou silou, by nakoniec odhalil každý možný reťazec 140 znakov vrátane správnej odpovede – ale zo všetkých odpovedí by nebolo možné zistiť, ktorá bola správna. Poraziť takýto systém, ako to urobil projekt Venona, sa vo všeobecnosti nespolieha na čistú kryptografiu, ale na chyby v jeho implementácii: klávesnice nie sú skutočne náhodné, zachytené klávesnice, operátori robia chyby a podobne. 
Protiopatrenia.
V prípade "offline" útoku, kedy útočník získal prístup k zašifrovanému materiálu, je možné vyskúšať kombinácie kľúčov bez rizika odhalenia alebo zásahu. V prípade "online" útokov môžu správcovia databáz a adresárov nasadiť protiopatrenia, ako je napríklad obmedzenie počtu pokusov o vyskúšanie hesla, zavedenie časového oneskorenia medzi po sebe nasledujúcimi pokusmi, zvýšenie zložitosti odpovede (napr. vyžadovanie odpovede CAPTCHA alebo použitie ) a/alebo zablokovanie účtov po neúspešných pokusoch o prihlásenie.   Správcovia webových stránok môžu zabrániť konkrétnej IP adrese, aby sa pokúsila o viac ako vopred stanovený počet pokusov o zadanie hesla proti akémukoľvek účtu na stránke. 
Reverzný útok hrubou silou.
Pri reverznom útoku hrubou silou sa testuje jedno (zvyčajne bežné) heslo proti viacerým užívateľským menám alebo šifrovaným súborom. Proces sa môže opakovať pre niekoľko vybraných hesiel. Pri takejto stratégii sa útočník nezameriava na konkrétneho používateľa.