Är ditt lösenord säkert? Vi har alla hört många råd om vilken typ av lösenord du aldrig bör välja – och det finns olika verktyg som hävdar att de kan bedöma säkerheten för ditt lösenord online. Dessa kan dock bara vara tveksamt korrekta. Det enda sättet att verkligen testa säkerheten för dina lösenord är att försöka bryta dem.
Så idag ska vi göra just det. Jag ska visa dig hur du använder ett verktyg som riktiga hackare använder för att knäcka lösenord, och visa dig hur du använder det för att kontrollera ditt. Och om det inte klarar testet, ska jag visa dig hur du väljer säkrare lösenord som kommer vänta.
Konfigurera Hashcat
Verktyget vi kommer att använda heter Hashcat. Officiellt är det avsett för lösenordsåterställning, men i praktiken är det lite som att säga att BitTorrent är avsett att ladda ner oupphovsrättsskyddade filer. I praktiken används det ofta av hackare som försöker bryta lösenord som stulits från osäkra servrar. Som en bieffekt gör detta det till ett mycket kraftfullt sätt att testa lösenordssäkerhet.
Obs: den här handledningen är för Windows. De av er på Linux kan kolla in videon nedan för en idé om var man ska börja.
Du kan skaffa Hashcat från webbsidan hashcat.net. Ladda ner och packa upp den till din nedladdningsmapp. Härnäst kommer vi att behöva få lite extra data för verktyget. Vi ska skaffa en ordlista, som i grunden är en enorm databas med lösenord som verktyget kan använda som utgångspunkt, särskilt rockyou.txt-datauppsättningen. Ladda ner den och lägg den i Hashcat-mappen. Se till att den heter ‘rockyou.txt’
Nu kommer vi att behöva ett sätt att generera hasharna. Vi kommer att använda WinMD5, som är ett lätt gratisprogram som hashar specifika filer. Ladda ner den, packa upp den och släpp den i Hashcat-katalogen. Vi kommer att skapa två nya textfiler: hashes.txt och password.txt. Lägg båda i Hashcat-katalogen.
Det är allt! Du är klar.
En folkets historia om hackerkrigen
Innan vi faktiskt använder den här applikationen, låt oss prata lite om hur lösenord faktiskt går sönder och hur vi kom till denna punkt.
Långt tillbaka i datavetenskapens dimmiga historia var det standardpraxis för webbplatser att lagra användarlösenord i vanlig text. Det här verkar vara vettigt. Du måste verifiera att användaren har skickat in rätt lösenord. Ett självklart sätt att göra det är att ha en kopia av lösenorden till hands i en liten fil någonstans, och kontrollera användarens inskickade lösenord mot listan. Lätt.
Detta var en enorm katastrof. Hackare skulle få tillgång till servern via någon listig taktik (som att fråga artigt), stjäla lösenordslistan, logga in och stjäla allas pengar. När säkerhetsforskare plockade upp sig själva från det rykande vraket från den katastrofen var det tydligt att vi behövde göra något annorlunda. Lösningen var hashing.
För de som inte är bekanta är en hash-funktion en kod som tar en bit information och förvränger den matematiskt till en fast längd av skratt. Detta kallas att “hasha” data. Det som är coolt med dem är att de bara går åt ett håll. Det är väldigt lätt att ta en bit information och ta reda på dess unika hash. Det är väldigt svårt att ta en hash och hitta en bit information som genererar den. Faktum är att om du använder ett slumpmässigt lösenord måste du prova alla möjliga kombinationer för att göra det, vilket är mer eller mindre omöjligt.
De av er som följer med hemma kanske märker att hash har några riktigt användbara egenskaper för lösenordsapplikationer. Nu, istället för att lagra lösenordet, kan du lagra hasharna för lösenorden. När du vill verifiera ett lösenord hashar du det, tar bort originalet och kontrollerar det mot listan med hash. Alla hashfunktioner ger samma resultat, så du kan fortfarande verifiera att de har skickat in rätt lösenord. Avgörande är att de faktiska klartextlösenorden aldrig lagras på servern. Så när hackare gör intrång på servern kan de inte stjäla några lösenord – bara värdelösa hash. Detta fungerar hyfsat bra.
Hackarnas svar på detta var att lägga mycket tid och energi på att komma på riktigt smarta sätt att vända hash.
Hur Hashcat fungerar
Vi kan använda flera strategier för detta. En av de mest robusta är den som Hashcat använder, vilket är att märka att användare inte är särskilt fantasifulla och tenderar att välja samma slags lösenord.
Till exempel består de flesta lösenord av ett eller två engelska ord, ett par siffror och kanske några “leet-speak”-ersättningar av bokstäver eller slumpmässiga versaler. Av de ord som valts är vissa mer sannolika än andra: “lösenord”, namnet på tjänsten, ditt användarnamn och “hej” är alla populära. Dito populära husdjursnamn, och innevarande år.
Genom att veta detta kan du börja generera mycket rimliga gissningar om vad olika användare kan ha valt, vilket (så småningom) borde tillåta dig att gissa rätt, bryta hashen och få tillgång till deras inloggningsuppgifter. Det här låter som en hopplös strategi, men kom ihåg att datorer är löjligt snabba. En modern dator kan pröva miljontals gissningar per sekund.
Detta är vad vi kommer att göra idag. Vi kommer att låtsas att dina lösenord finns i en hash-lista i händerna på en illvillig hackare och kör samma hash-cracking-verktyg som hackare använder på dem. Se det som en brandövning för din onlinesäkerhet. Låt oss se hur det går!
Hur man använder Hashcat
Först måste vi generera hasharna. Öppna WinMD5 och din ‘password.txt’-fil (i anteckningsblocket). Ange ett av dina lösenord (bara ett). Spara filen. Öppna den med WinMD5. Du kommer att se en liten ruta som innehåller hashen för filen. Kopiera den till din hashes.txt-fil och spara den. Upprepa detta och lägg till varje fil på en ny rad i filen ‘hashes.txt’, tills du har en hash för varje lösenord du rutinmässigt använder. Lägg sedan, bara för skojs skull, in hashen för ordet “lösenord” som sista raden.
Det är värt att notera här att MD5 inte är ett särskilt bra format för att lagra lösenordshashar – det är ganska snabbt att beräkna, vilket gör brute forcering mer lönsamt. Eftersom vi gör destruktiva tester är detta faktiskt ett plus för oss. I en riktig lösenordsläcka skulle våra lösenord hashas med Scrypt eller någon annan säker hashfunktion, som är långsammare att testa. Genom att använda MD5 kan vi i princip simulera att vi kastar mycket mer processorkraft och tid på problemet än vad vi faktiskt har tillgängligt.
Se sedan till att ‘hashes.txt’-filen har sparats och ta fram Windows PowerShell. Navigera till mappen Hashcat (CD .. går upp en nivå, ls listar de aktuella filerna och CD [filename] går in i en mapp i den aktuella katalogen). Skriv nu ./hashcat-cli32.exe –hash-type=0 –attack-mode=8 hashes.txt rockyou.txt.
Det kommandot säger i princip “Kör Hashcat-applikationen. Ställ in den att fungera på MD5-hashar och använd en “prince mode”-attack (som använder en mängd olika strategier för att skapa variationer på orden i listan). Försök att bryta poster i listan. filen ‘hashes.txt’ och använd filen ‘rockyou.txt’ som en ordbok.
Tryck på enter och acceptera EULA (som i princip säger “Jag svär att jag inte kommer att hacka något med detta”), och låt det sedan köra. Hash för lösenord bör dyka upp om en sekund eller två. Efter det är det bara att vänta. Svaga lösenord dyker upp inom några minuter på en snabb, modern CPU. Normala lösenord dyker upp inom ett par timmar till en dag eller två. Starka lösenord kan ta väldigt lång tid. Ett av mina äldre lösenord bröts på under tio minuter.
Du kan låta detta vara igång så länge du känner för. Jag föreslår åtminstone över natten, eller på din dator medan du är på jobbet. Om du klarar det 24 timmar är ditt lösenord förmodligen tillräckligt starkt för de flesta applikationer – även om detta inte är en garanti. Hackare kan vara villiga att köra dessa attacker under lång tid, eller ha tillgång till en bättre ordlista. Om du är osäker på din lösenordssäkerhet, skaffa ett bättre.
Mitt lösenord bröts: Vad nu?
Mer än troligt höll några av dina lösenord inte. Så hur kan du skapa starka lösenord för att ersätta dem? Som det visar sig är en riktigt stark teknik (populariserad av xkcd) lösenordsfraser. Öppna en bok som ligger närmast, bläddra till en slumpmässig sida och lägg ner fingret på en sida. Ta närmaste substantiv, verb, adjektiv eller adverb och kom ihåg det. När du har fyra eller fem, blanda ihop dem utan mellanslag, siffror eller versaler. ANVÄND INTE “korrekt hästbatteri”. Det har tyvärr blivit populärt som lösenord och finns med i många ordlistor.
Ett exempellösenord som jag just skapade från en science fiction-antologi som låg på mitt soffbord är “leanedsomeartisansharmingdarling” (använd inte den här heller). Detta är mycket lättare att komma ihåg än en godtycklig sträng av bokstäver och siffror, och är förmodligen säkrare. Engelska som modersmål har ett fungerande ordförråd på cirka 20 000 ord. Som ett resultat, för en sekvens av fem slumpmässigt valda vanliga ord, finns det 20 000^5, eller ungefär tre sexbiljoner möjliga kombinationer. Detta är långt bortom greppet för någon nuvarande brute force attack.
Däremot skulle ett slumpmässigt valt lösenord på åtta tecken syntetiseras i termer av tecken, med cirka 80 möjligheter inklusive versaler, gemener, siffror, tecken och mellanslag. 80^8 är bara en kvadriljon. Det låter fortfarande stort, men att bryta det är faktiskt inom möjlighetens område. Med tanke på tio avancerade stationära datorer (som var och en kan göra cirka tio miljoner hash per sekund), kan det bli brutalt forcerat på några månader – och säkerheten faller totalt om den inte är slumpmässig. Det är också mycket svårare att komma ihåg.
Ett annat alternativ är att använda en lösenordshanterare, som kan generera säkra lösenord åt dig i farten, som alla kan “låsas upp” med ett enda huvudlösenord. Du måste fortfarande välja ett riktigt bra huvudlösenord (och om du glömmer det har du problem) – men om dina lösenords-hashar läcker vid ett intrång på webbplatsen har du ett starkt extra lager av säkerhet.
Ständig vaksamhet
Bra lösenordssäkerhet är inte särskilt svårt, men det kräver att du är medveten om problemet och vidtar åtgärder för att förbli säker. Denna typ av destruktiv testning kan vara ett bra väckarklocka. Det är en sak att veta, intellektuellt, att dina lösenord kan vara osäkra. Det är en annan att faktiskt se det dyka upp ur Hashcat efter några minuter.
Hur höll dina lösenord? Låt oss veta i kommentarerna!
Om författaren
Andre Infante (131 artiklar publicerade)
En författare och journalist baserad i sydväst, Andre kommer garanterat att förbli funktionell upp till 50 grader Celsius, och är vattentät till ett djup av tolv fot.
Mer från Andre Infante
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
