Att använda grafikkort för att parallellisera knäckning av lösenord är dock inte det enda angreppssättet. Det finns flera försök där man använt sig av fpga-kretsar som konfigurerats och optimerats för ett visst ändamål. Företaget Pico Computing demonstrerade 2010 ett knäckningskluster bestående av trettiosex Xilinx-fpga-kretsar som kunde genomföra 144 miljarder gissningar per sekund, och alltså är cirka tio gånger snabbare än grafikkortet i vår labbdator.
Ungefärliga tider för hur lång tid det tar att genomföra en knäckning av en ntlm-hashsumma med en Intel Core i7 processor jämfört med ett AMD HD 7970-grafikkort. Vi har även lagt till tiderna för Jerimi Gosneys grafikkortskluster och en Cray Titan. Notera att tiderna i tabellen är baserade på en uttömmande sökning, alltså att samtliga kombinationer av lösenordet gås igenom. Halvera tiden för att få förväntad knäckningstid.
Det är även möjligt att använda asic-kretsar för att knäcka lösenord. Företaget Butterfly Labs säljer en asic-krets designad för att generera bitcoins som presterar 1 500 miljarder gissningar av sha256 lösenord. Den kan visserligen inte användas för något annat än att generera bitcoins, men det ger en indikation på vilken potential asic-kretsar har. Den kostar cirka 200 000 kronor.
Den fördel som asic och fpga har mot grafikkort är att de har en relativt låg strömförbrukning. Nackdelar är att de tar längre tid att utveckla och att grafikkort är prispressade eftersom de efterfrågas på privatanvändarmarknaden.
TechWorlds slutsats
En angripare kan parallellisera knäckningen av lösenord, och det blir allt vanligare att grafikkort används för det syftet. Hur långt lösenord som behövs för att skydda sig mot en angripare beror på de ekonomiska resurserna som angriparen har. Vi har i denna artikel visat ett helt slumpmässigt lösenord bestående av nio tecken är säkert mot en angripare som har ett grafikkort för fyra tusen kronor.
Redan där, utan att nämna grafikkortskluster eller en underrättelsetjänsts superdator, ser vi alltså att lösenordens tid är passé. I praktiken orkar inte någon använda långa och slumpmässiga lösenord – användarens rationalisering vid lösenordsval förenklar angreppen radikalt. Som exempel kan nämnas att ett lösenord på sexton tecken lång passordsfras kan liknas i komplexitet med ett cirka åtta tecken långt slumpmässigt lösenord.
Att tvinga användarna att välja långa slumpmässiga lösenord skulle endast resultera i en mängd gula lappar fastklistrade på skärmar eller gömda under tangentbord. Det är dags att leta efter andra autentiseringslösningar – lösenord duger inte längre.
Innehållsförteckning
alu, arithmetic logical unit: Enhet för aritmetiska och logiska operationer.
asic, application specific integrated circuit: Krets designad för en specifik uppgift.
cpu, central processing unit: Enhet i en dator som exekverar ett program.
fpga, field programmable gate array: Krets som kan konfigureras efter konstruktion.
gpu, graphics processing unit: Processor som finns på grafikkort. Arbetar med högre grad av parallellisering än en normal processor.
hash: Envägsfunktion. Resultatet från en hash går inte att räkna baklänges till vilka indata som angetts.
instruktionspipeline: Instruktionspipeline är en teknik som används vid tillverkning av proccessorer för att höja processorns genomströmning av instruktioner. Kan liknas vid löpande band-principen inom biltillverkning. Varje steg i pipelinen utför en liten specialiserad uppgift innan resultatet skickas vidare till nästan pipeline-steg.
ntlm, nt lan manager: Det sätt som användes för att autentisera Windows NT-klienter mot ett Windows NT-nätverk.
regnbågstabell: Tabell med förberäknade hash-kedjor. Snabbar upp formering av osaltade lösenord och därmed knäckning av krypterade lösenord.
salt: Slumpmässigt värde som läggs till ett lösenord för att göra det svårare att knäcka lösenordet. Lagras i klartext tillsammans med det krypterade lösenordet.
simd, single instruction single data:
Processorarkitektur där varje instruktion appliceras på data lagrad i en minnescell.
sisd, single instruction multiple data: Processorarkitektur där varje instruktion appliceras på data i flera minnesceller samtidigt.