Råstyrke

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 16. oktober 2020; checks kræver 11 redigeringer .

Fuld opregning (eller "brute force"-metoden , eng.  brute force ) - en metode til at løse matematiske problemer . Henviser til klassen af ​​metoder til at finde en løsning ved at udtømme alle mulige muligheder . Kompleksiteten af ​​den udtømmende søgning afhænger af antallet af alle mulige løsninger på problemet. Hvis løsningsrummet er meget stort, giver en udtømmende søgning muligvis ikke resultater i flere år eller endda århundreder.

Ethvert problem fra klasse NP kan løses ved udtømmende søgning. På samme tid, selvom beregningen af ​​den objektive funktion fra hver specifik mulig løsning på problemet kan udføres i polynomiel tid , afhængigt af antallet af alle mulige løsninger, kan udtømmende opregning kræve en eksponentiel køretid.

I kryptografi bruges den beregningsmæssige kompleksitet af udtømmende søgning til at estimere den kryptografiske styrke af chiffer . Især siges en chiffer at være sikker, hvis der ikke er nogen "cracking"-metode, der er væsentlig hurtigere end brute-force- søgning . Brute-force kryptografiske angreb er de mest alsidige, men også de længste.

Udmattelsesmetode

Terminologi

På engelsk refererer udtrykket " brute-force ", der diskuteres i denne artikel, normalt til en klasse af hackerangreb . Samtidig svarer et mere generelt koncept, en matematisk metode til at udtømme alle mulige muligheder for at finde en løsning på et problem, til udtrykket " Bevis ved udmattelse ".

Beskrivelse

"Udmattelsesmetoden" omfatter en hel klasse af forskellige metoder. Normalt indebærer problemformuleringen overvejelse af et begrænset antal tilstande i et givet logisk system for at identificere sandheden af ​​et logisk udsagn gennem en uafhængig analyse af hver tilstand [1] . Metoden til at bevise påstanden består af to dele:

  1. Bevis på muligheden for at udtømme alle systemets tilstande. Det er påkrævet at vise, at enhver specifik tilstand af systemet (f.eks. værdien af ​​det logiske udtryk, der bevises) svarer til mindst én af de overvejede kandidatløsninger.
  2. Kontrollerer hver mulighed og beviser, at den overvejede mulighed er eller ikke er en løsning på problemet.

Typiske problemer løst ved udtømmende opregning

Selvom udtømmende søgning ikke bruges i praksis i de fleste anvendte problemer (især ikke relateret til at bryde cifre ), er der en række undtagelser. Især når udtømmende søgning alligevel viser sig at være optimal eller repræsenterer den indledende fase i udviklingen af ​​en algoritme, er brugen af ​​den berettiget. Et eksempel på optimaliteten af ​​udtømmende søgning er algoritmen til at estimere tidspunktet for beregning af kædeprodukter af matricer, som ikke kan accelereres sammenlignet med algoritmen baseret på "brute force"-metoden [2] . Denne algoritme bruges til at løse det klassiske problem med dynamisk programmering  - at bestemme prioriteterne for beregning af matrixprodukter af følgende form: .

Et eksempel på brug af udtømmende opregning

Den indledende opgave er at beregne den givne kæde (matrixprodukt) på kortest tid. Det er muligt at implementere en triviel sekventiel algoritme, der beregner det ønskede produkt. Da matrixproduktet er en associativ operation , kan man beregne kædeproduktet ved vilkårligt at vælge et par elementer i kæden og erstatte det med den resulterende matrix . Hvis du gentager de beskrevne procedure gange, så vil den resterende resulterende matrix være svaret: . Denne formel kan illustreres som følger. Overvej matrixkæden :. Der er følgende 5 måder at beregne produktet svarende til denne kæde på :

Ved at vælge den rigtige rækkefølge af beregninger kan du opnå en betydelig acceleration af beregninger. For at se dette, overvej et simpelt eksempel på en kæde af 3 matricer. Vi antager, at deres størrelser er ens hhv . Standardalgoritmen til at gange to matricer efter størrelse kræver beregningstid proportional med antallet (antallet af indre produkter, der skal beregnes) [3] . Ved at evaluere strengen i rækkefølge får vi derfor prikprodukterne til at beregne plus yderligere prikprodukter til at beregne det andet matrixprodukt. Det samlede antal skalarprodukter: 7500. Med et andet valg af rækkefølgen af ​​beregninger får vi plus skalarprodukter, det vil sige 75000 skalarprodukter [3] .

Løsningen af ​​dette problem kan således reducere den tid, der bruges på beregningen af ​​matrixkæden. Denne løsning kan opnås ved udtømmende opregning: det er nødvendigt at overveje alle mulige sekvenser af beregninger og vælge blandt dem den, der ved beregning af kæden optager det mindste antal skalarprodukter. Det skal dog tages i betragtning, at denne algoritme i sig selv kræver eksponentiel beregningstid [2] , så for lange matrixkæder kan gevinsten ved at beregne kæden på den mest effektive måde (optimal strategi ) gå fuldstændig tabt inden for den tid, det tager. at finde denne strategi [4] .

Forholdet til begrebet "del og hersk"

Der er flere vidt anvendelige generelle begreber i teorien om algoritmer . Den brute force-metode er en af ​​dem. Faktisk kan udtømmende søgning bruges i de tilfælde, hvor vi har at gøre med et diskret deterministisk system, hvis tilstande let kan analyseres [5] .

Et andet godt eksempel på et grundlæggende koncept i teorien om algoritmer er " del og hersk "-princippet. Dette koncept er anvendeligt, når systemet kan opdeles i mange delsystemer, hvis struktur svarer til strukturen i det oprindelige system [6] . I sådanne tilfælde er delsystemerne også modtagelige for adskillelse eller er trivielle [6] . For sådanne systemer er det oprindeligt stillede problem trivielt. Implementeringen af ​​begrebet "del og hersk" er således rekursiv .

Til gengæld er rekursion en slags udtømmende søgning. Så rekursion er kun anvendelig for diskrete systemer [7] . Dette krav gælder dog ikke for et givet systems tilstande, men for dets understruktur . Konsekvent overvejelse af alle niveauer giver en udtømmende løsning på problemet for hele det diskrete system.

Sammenlignet med andre eksempler på fuldstændig opregning er et træk ved rekursionsmetoden, at den endelige løsning er baseret på mere end ét trivielt undersystem. I det generelle tilfælde er løsningen dannet på basis af et helt sæt af undersystemer.

For de følgende eksempler på klassiske opdel-og-hersk-problemer er brute force enten den eneste kendte løsning eller den originale implementering, som er blevet yderligere optimeret:

Brute force angreb

I kryptografi er et brute-force kryptografisk angreb eller brute force [12] ( Eng.  Brute-force attack ) baseret på brute force angreb - knække en adgangskode ved at søge på alle mulige nøglemuligheder. Dens egenskab er evnen til at bruge den mod enhver praktisk anvendt cipher [13] ( for undtagelser, det vil sige sikkerhed fra et informationsteoretisk synspunkt , se også cipher pad og Information-teoretisk sikkerhed ). Denne mulighed eksisterer dog kun teoretisk, hvilket ofte kræver urealistiske tids- og ressourceomkostninger. Hvis beslutningsrummet er for stort, kan denne type angreb mislykkes i flere år eller endda århundreder. Brugen af ​​et brute force-angreb er mest berettiget i tilfælde, hvor det ikke er muligt at finde svage punkter i krypteringssystemet under angreb (eller der er ingen svage punkter i krypteringssystemet under overvejelse). Når sådanne mangler er fundet, udvikles kryptoanalyseteknikker baseret på deres funktioner, hvilket hjælper med at forenkle hacking.

Modstand mod brute-force-angreb bestemmer den krypteringsnøgle, der bruges i kryptosystemet. Så med en stigning i nøglelængden øges kompleksiteten af ​​revner ved denne metode eksponentielt. I det simpleste tilfælde brydes en N - bit chiffer, i værste fald i en tid proportional med 2 N [14] [15] . Den gennemsnitlige hackingtid i dette tilfælde er to gange mindre og er 2 N -1 . Der er måder at øge chifferens modstand mod "brute force", for eksempel sløring ( obfuscation ) af de krypterede data, hvilket gør det ikke-trivielt at skelne krypterede data fra ukrypterede data.

Kryptografiske angreb baseret på "brute force"-metoden er de mest alsidige, men samtidig de langsomste. Bruges hovedsageligt af nybegyndere hackere . Effektiv til simple krypteringsalgoritmer og nøgler op til 64 bit lange. For moderne nøgler med en længde på 128 bit eller mere (nogle gange er et stort antal på 200 cifre faktoriseret for en nøgle), er de ineffektive. Enhver adgangskode kan gættes ved udtømmende søgning. På samme tid, selvom beregningen af ​​objektivfunktionen fra hver specifik mulig løsning på problemet kan udføres i polynomisk tid, afhængigt af antallet af alle mulige løsninger, kan angrebet kræve en eksponentiel køretid.

Parallelisering af beregninger

For at øge hastigheden af ​​tastevalg, anvendes parallelisering af beregninger. Der er to typer parallelisering:

Processoren udfører tre operationer på samme tid:

  1. at modtage data fra den -th processor
  2. udfører en operation
  3. overføre data til den i-te processor.

Denne operation kan tage så lidt som en hundrededel af et sekund. Så arbejder de processorer, der er forbundet parallelt og synkront, med en hastighed (da der kun er tre operationer), hvor  er hastigheden for at udføre en operation af en processor.

Omvendt angreb med "brute force"

I et omvendt brute force-angreb testes en enkelt (normalt delt) adgangskode mod flere brugernavne. I dette tilfælde gælder parallelisering også, men processorerne skal tjekke, om en anden bruger har en sådan adgangskode. I en sådan strategi forsøger angriberen normalt ikke at hacke sig ind på en bestemt brugers konto. Mod omvendte angreb etableres en adgangskodepolitik, der forbyder brugen af ​​identiske adgangskoder.

Et eksempel på varigheden af ​​adgangskode-gætning

Tabellen viser den estimerede tid for brute-force-søgning af adgangskoder afhængigt af deres længde. Det antages, at der kan bruges 36 forskellige tegn i adgangskoden ( latinske bogstaver i et tilfælde + tal), og brute force rate er 100.000 adgangskoder pr. sekund ( angrebsklasse B , typisk for gendannelse af adgangskode fra Windows - cache ( .PWL- filer) på Pentium 100 ) [16] .

Antal tegn Antal muligheder Modstand Søgetid
en 36 5 bit mindre end et sekund
2 1296 10 bit mindre end et sekund
3 46 656 15 bit mindre end et sekund
fire 1 679 616 21 bit 17 sekunder
5 60 466 176 26 bit 10 minutter
6 2176782336 31 bit 6 timer
7 78 364 164 096 36 bit 9 dage
otte 2.821 109 9x10 12 41 bit 11 måneder
9 1.015 599 5x10 14 46 bit 32 år
ti 3.656 158 4x10 15 52 bit 1162 år
elleve 1,316 217 0x10 17 58 bit 41.823 år
12 4.738 381 3x10 18 62 bit 1.505.615 år

Kodeord op til og med 8 tegn er således generelt ikke sikre. For moderne computere er dette tal meget højere. Så en 64-bit nøgle (adgangskode) er sorteret fra på en moderne computer på cirka 2 år, og søgningen kan nemt fordeles på mange computere.

Angrebsmidler

Moderne personlige computere tillader brute force cracking af adgangskoder med effektiviteten illustreret i tabellen ovenfor. Men med brute force-optimering baseret på parallel computing , kan effektiviteten af ​​angrebet øges markant [18] . Dette kan kræve brug af en computer, der er tilpasset til multi -threaded computing . I de senere år er computerløsninger, der bruger GPU'er , såsom Nvidia Tesla , blevet udbredt . Siden oprettelsen af ​​CUDA- arkitekturen af ​​Nvidia i 2007 er der dukket mange løsninger op (se f.eks. Cryptohaze Multiforcer , Pyrit Archived November 20, 2012 at the Wayback Machine ), der tillader accelereret nøglegætning ved hjælp af teknologier som CUDA, FireStream , OpenCL .

Modstandsdygtighed over for et brute-force angreb

I processen med at forbedre informationssikkerhedssystemet i forhold til et brute-force-angreb kan der skelnes mellem to hovedretninger:

  1. øgede krav til adgangsnøgler til beskyttet information;
  2. øge pålideligheden af ​​alle komponenter i sikkerhedssystemet.

Det er således umuligt at opnå et højt beskyttelsesniveau ved kun at forbedre én af disse parametre [19] . Der er eksempler på, hvordan et autentificeringssystem baseret på den optimale adgangskodekompleksitet viste sig at være sårbart over for kopiering af databasen til angriberens lokale computer, hvorefter den blev udsat for et brute force-angreb ved hjælp af lokale optimeringer og beregningsværktøjer, der ikke er tilgængelige med fjernkrypteringsanalyse [20] . Denne situation har fået nogle computersikkerhedseksperter til at anbefale en mere kritisk tilgang til sikkerhedsstandardpraksis såsom brug af adgangskoder , der er så lange som muligt [21] . Nedenfor er en liste over nogle praktiske metoder [22] [23] [24] til at øge pålideligheden af ​​et kryptosystem i forhold til et brute force angreb:

Brute force optimeringsmetoder

Filial og bundet metode

For at fremskynde opregningen bruger branch and bound-metoden eliminering af delmængder af gennemførlige løsninger, der åbenbart ikke indeholder optimale løsninger [25] .

Parallelisering af beregninger

En af metoderne til at øge hastigheden af ​​nøglevalg er parallelisering af beregninger . Der er to tilgange til parallelisering [26] :

Regnbueborde

Forudsætninger for fremkomsten af

Computersystemer, der bruger adgangskoder til godkendelse , skal på en eller anden måde afgøre, om den indtastede adgangskode er korrekt. En triviel løsning på dette problem er at føre en liste over alle gyldige adgangskoder for hver bruger, men denne tilgang er ikke immun over for databaselækager. En simpel, men ukorrekt måde at beskytte mod en baselækage er at beregne en kryptografisk hashfunktion ud fra adgangskoden.

Metoden er forkert, idet det er muligt at foretage en søgning på forhånd, og når du skal knække adgangskoden, så se på resultatet. Regnbuebordet er en optimering af denne metode [27] . Dens største fordel er en betydelig reduktion i mængden af ​​brugt hukommelse [28] [27] .

Brug

Regnbuebordet er skabt ved at bygge kæder af mulige adgangskoder. Hver kæde starter med en tilfældig mulig adgangskode og udsættes derefter for en hash-funktion og en reduktionsfunktion. Denne funktion konverterer resultatet af hash-funktionen til en mulig adgangskode (hvis vi for eksempel antager, at adgangskoden er 64 bit lang, så kan reduktionsfunktionen tage de første 64 bit af hashen, bitvis tilføjelse af alle 64-bit blokke af hashen osv.). Mellemkodeord i kæden kasseres, og kun de første og sidste elementer i kæderne skrives til bordet. Oprettelsen af ​​sådanne tabeller kræver mere tid, end det tager at oprette almindelige opslagstabeller, men meget mindre hukommelse (op til hundredvis af gigabyte, med volumen for almindelige tabeller med N ord, regnbue-tabeller behøver kun omkring N 2/3 ) [28 ] . På samme tid, selvom de kræver mere tid (sammenlignet med konventionelle metoder) til at gendanne den originale adgangskode, er de mere gennemførlige i praksis (at bygge en almindelig tabel til en 6-tegns adgangskode med byte-tegn, 256 6 = 281 474 976 710 656 hukommelsesblokke vil være påkrævet, mens for regnbuen - kun 256 6 ⅔ \u003d 4.294.967.296 blokke).

For at gendanne adgangskoden reduceres denne hashværdi og slås op i tabellen. Hvis der ikke findes noget match, anvendes hash-funktionen og reduktionsfunktionen igen. Denne handling fortsætter, indtil der er fundet et match. Efter at have fundet et match, gendannes kæden, der indeholder det, for at finde den kasserede værdi, som vil være den ønskede adgangskode.

Resultatet er en tabel, der med stor sandsynlighed kan gendanne adgangskoden på kort tid [29] .

Hændelser

Selvom enhver beskyttelse af et informationssystem først og fremmest skal være pålidelig i forhold til et brute force-angreb, er tilfælde af vellykket brug af dette angreb af ubudne gæster ret almindelige.

Enigma-angreb

Enigma chiffermaskinen blev opfundet i 1918 og blev meget brugt af den tyske flåde fra 1929 og fremefter. I løbet af de næste par år blev systemet modificeret, og siden 1930 blev det aktivt brugt af den tyske hær og regering under Anden Verdenskrig [31] .

De første aflytninger af beskeder krypteret med Enigma-koden går tilbage til 1926. De kunne dog ikke læse beskederne i lang tid. Under hele Anden Verdenskrig var der en konfrontation mellem polske og tyske kryptografer. Polakkerne, der fik endnu et resultat i at bryde det tyske kryptosystem, stod over for nye vanskeligheder, som blev introduceret af tyske ingeniører, som konstant opgraderede Enigma-systemet. I sommeren 1939 , da uundgåeligheden af ​​en invasion af Polen blev indlysende, overdrog bureauet resultaterne af sit arbejde til den britiske og franske efterretningstjeneste [32] .

Yderligere indbrudsarbejde blev organiseret i Bletchley Park . Kryptanalytikernes vigtigste værktøj var Bomba -dekrypteringsmaskinen . Dens prototype blev skabt af polske matematikere på tærsklen til Anden Verdenskrig for det polske forsvarsministerium. Baseret på denne udvikling og med direkte støtte fra dens skabere, blev en mere "avanceret" enhed designet i England.

Den teoretiske del af arbejdet blev udført af Alan Mathison Turing [33] . Hans arbejde med den kryptografiske analyse af algoritmen implementeret i Enigma-krypteringsmaskinen var baseret på tidligere krypteringsanalyse af tidligere versioner af denne maskine, som blev udført i 1938 af den polske kryptoanalytiker Marian Rejewski . Funktionsprincippet for dekryptering udviklet af Turing var at opregne mulige muligheder for chiffernøglen og forsøg på at dekryptere teksten, hvis strukturen af ​​den besked, der dekrypteres, eller en del af klarteksten var kendt [34] .

Fra et moderne synspunkt var Enigma-chifferet ikke særlig pålideligt, men kun kombinationen af ​​denne faktor med tilstedeværelsen af ​​mange opsnappede meddelelser, kodebøger, efterretningsrapporter, resultaterne af militære bestræbelser og endda terrorangreb gjorde det muligt at " åbne" chifferen [32] .

Efter krigen beordrede Churchill af sikkerhedsmæssige årsager ødelæggelsen af ​​disse maskiner.

WPS-protokolsårbarhed

I 2007 begyndte en gruppe virksomheder, der er medlemmer af organisationen Wi-Fi Alliance , at sælge trådløst udstyr til hjemmenetværk med understøttelse af den nye Wi-Fi Protected Setup-standard. Blandt producenterne af trådløse routere, der understøttede denne teknologi, var så store virksomheder som Cisco/Linksys , Netgear , Belkin og D-Link . WPS-standarden havde til formål at forenkle processen med at opsætte et trådløst netværk og dets brug i høj grad for personer, der ikke har stor viden inden for netværkssikkerhed. I slutningen af ​​2011 blev der imidlertid offentliggjort oplysninger om alvorlige sårbarheder i WPS, som gjorde det muligt for en angriber at gætte PIN-koden [35] på et trådløst netværk på blot et par timer, med computerressourcerne til en almindelig personlig computer [36 ] .

I øjeblikket anbefaler CERT Coordinating Center ikke producenter at frigive nyt udstyr, der understøtter denne teknologi. [37]

Massehacking af hjemmenetværk via WASP

I 2010, på DEFCON18- konferencen , blev et ubemandet luftfartøj WASP præsenteret , designet til masseindsamling af statistikker om hjemme-Wi-Fi-netværk. UAV'en er udstyret med en kompakt indbygget computer, der kører BackTrack Linux . En af dens funktioner var evnen til automatisk at knække adgangskoder til trådløst netværk ved hjælp af brute force [38] [39] .

Se også

Noter

  1. Ried & Knipping, 2010 , s. 133.
  2. 1 2 3 Cormen, 2001 , s. 372.
  3. 1 2 Cormen, 2001 , Produkt af matrixkæder, s. 370-372.
  4. Cormen, 2001 , s. 377.
  5. Cormen, 2001 , afsnit 4. Divide and Conquer, pp. 65-67.
  6. 12 Cormen , 2001 , s. 65.
  7. Cormen, 2001 , s. 66.
  8. ^ Knuth, 1972 , Udvalgte forskningsproblemer i kombinatorik .
  9. Cormen, 2001 , LCS-problemet : at finde den længste fælles undersekvens, s. 392.
  10. Cormen, 2001 , Finding af det nærmeste par af punkter, s. 1039.
  11. SchneierOnSecurity , Collisions in the SHA-1 hashing-algoritme.
  12. Brude force . Encyclopedia of Kaspersky Lab. Hentet 21. november 2018. Arkiveret fra originalen 21. november 2018.
  13. Paar, 2010 , s. 7.
  14. Corman, 2001 .
  15. Knuth, 1972 .
  16. www.lockdown.co.uk , Adgangskodegendannelseshastighed.
  17. Tesla , Tesla C2075-parametre på producentens hjemmeside.
  18. Ku , Udførelse af et brute-force-angreb med Nvidia- og AMD -grafikkort .
  19. Mark Pothier . Ændre venligst ikke din adgangskode  (11. april 2010). Arkiveret fra originalen den 28. juni 2011. Hentet 25. maj 2011.  "At ændre din adgangskode kan være spild af tid på din vej til informationssikkerhed."
  20. Weiss , "Stærk" adgangskode er et relativt begreb.
  21. Cormac, 2009 , Rational Security Refusal.
  22. Gil , Hvad er et Brute Force Hack ?.
  23. 1 2 McGlinn , PHP Password Hashing .
  24. 1 2 Zernov , Beskyttelse mod bruteforce ved hjælp af iptables.
  25. Land, 1960 , En automatisk metode til løsning af diskrete programmeringsproblemer .
  26. 1 2 3 Voevodin, 2002 , Parallel Computing.
  27. 12 Oechslin , 2003 , s. en.
  28. 1 2 Hellman, 1980 , s. 401.
  29. Hellman, 1980 , s. 405.
  30. Harper , British Bomb Recovery Project.
  31. larin-shankin, 2007 , Anden Verdenskrig i luften: Nogle aspekter af Operation Ultra.
  32. 1 2 chernyak, 2003 , Secrets of the Ultra-projektet.
  33. Ellsbury , "Enigma" og "Bomb".
  34. groteck.ru , Turing Bombe-maskine.
  35. Liebowitz1 , Trådløse hjemmeroutere udsat for brute-force-angreb.
  36. Ray, 2011 , Utilstrækkelig sikkerhed i WPS-protokollen.
  37. CERT , WPS er underlagt brute-force.
  38. Greenberg , Flyvende drone knækker trådløse adgangskoder.
  39. Humphries , WASP: En flyvende rekognosceringsdrone, der hacker Wi-Fi-netværk.

Litteratur

Links