Windows 8?
It-sikkerhed har aldrig været vigtigere, end det er i dag, da vi alle sammen bliver mere og mere afhængige af it i vores dagligdag. It-leverandører bliver hele tiden bedre til at levere sikre it-systemer, men der er stadig ét led, der halter: den typiske it-bruger. Regelmæssige undersøgelser viser igen og igen, at brugernes dårlige valg af adgangskoder er en af de hyppigste årsager til indbrud i it-systemer.
De fleste mennesker undervurderer vigtigheden af at bruge ordentlige adgangskoder og overvejer ofte ikke konsekvensen af, hvis uvedkommende får adgang til ens personlige data på et websted, f.eks. dine private familiefotos, din adresse, dine e-mails, osv.
Der er eksempler på newz-brugere, som fik en brat opvågning i forbindelse med indbruddet på newz.dk i julen 2007, hvor brugerdata, deriblandt e-mail-adresser, for 25.000 brugere blev lækket. For 5.000 brugeres vedkommende blev deres adgangskoder brudt og offentliggjorte. Nogle af disse uheldige brugere oplevede efterfølgende ubudne gæster i deres indbakker, etc.
Denne artikel forklarer forskellen på gode og dårlige adgangskoder, samt begrundelserne herfor - uden at blive alt for teknisk. Sidst i artiklen er der gode råd til, hvordan du kan lave sikre adgangskoder, som samtidigt er nemme at huske.
Først og fremmest bør du afholde dig fra at benytte koder, der er nemme at gætte, som f.eks. dit navn, telefonnummer, kæledyrs navn eller fødselsdato. Kodeordet må ikke på nogen måde have forbindelse med din person, for så gør det koden sårbar.
Andre koder som "qwerty", "12345" og "password" er også meget nemme at gætte, så disse skal også undgås for enhver pris.
Når en adgangskode bliver registreret i et system, bliver det typisk hashet. Dette betyder, at en værdi bliver genereret ud fra adgangskoden, således at det er vanskeligt og tidskrævende at gendanne adgangskoden ud fra tallet. Hvis man f.eks. hasher "newz.dk" med MD5-algoritmen, resulterer det i strengen, "cd4d4257ebd411ba349231cdb7eca137".
Når du så ønsker at logge ind i systemet, hasher systemet den indtastede adgangskode og sammenligner den med hashen i databasen. Er de ens, går systemet ud fra, at adgangskoderne er ens, og man får adgang. Det kan ske, at to adgangskoder giver den samme hash-værdi. Dette fænomen kaldes en kollision. Dette har normalt ikke nogen nævneværdig betydning i det daglige brug af systemet, men kan have en betydning, når systemet forsøges brudt ind i.
Hashing er en meget effektiv måde at beskytte adgangskoder på; hvis det er lykkedes uvedkommende at bryde ind i systemet, som det skete med newz.dk, bliver selve adgangskoderne ikke uden videre afsløret over for indtrængeren, da det kun er hashes, der ligger i databasen.
Har uvedkommende skaffet sig adgang til hashede adgangskoder, er det naturligvis hans/hendes opgave at finde ud af, hvad de oprindelige adgangskoder er. Der er flere forskellige fremgangsmåder, som kan benyttes.
Den metode, som typisk bliver brugt først, er et såkaldt dictionary attack. Et program har en liste over almindelige ord og egennavne, som den gennemgår. Ordene bliver ganske enkelt hashet fra en ende af og sammenlignet med den ukendte hash. Hvis to hashes er ens, er kodeordet brudt.
Desuden kan en bestemt type tabeller, kaldet rainbow tables, benyttes. En rainbow table er tæt beslægtet med dictionary attack; den er blot mere sofistikeret. Princippet i rainbow tables er ret kompliceret, så det går artiklen ikke dybere ind i, ud over at de kan bruges til drastisk at nedsætte den tid, et dictionary attack skal bruge for at bryde koden.
Giver intet af det ovenstående resultat, kan man blive nødsaget til at benytte brute force-metoden, hvor man simpelthen prøver samtlige kombinationsmuligheder fra en ende af.
Man kan beregne antal kombinationsmuligheder for ens adgangskode ved at benytte sig af den matematiske disciplin, kombinatorik. Man ganger ganske simpelt antal kombinationsmuligheder for alle tegnene sammen. F.eks. vil en kode med 4 små bogstaver efterfulgt af 2 cifre give 28*28*28*28*10*10=61.465.600 kombinationsmuligheder, da der er 28 bogstaver og 10 cifre at vælge imellem. Hvis man har et mål for, hvor mange kombinationer en computer kan checke i sekundet, kan man beregne, hvor lang tid det vil tage at checke alle koderne igennem.
For hver gang man putter et ekstra tegn på sin adgangskode, øges antallet af kombinationsmuligheder drastisk. Hvis vi f.eks. tager en kode med udelukkende små bogstaver vil 6 tegn give 28^6=481.890.304, mens 7 tegn vil give 28^7=13.492.928.512 og 8 tegn vil give 28^8=377.801.998.336 kombinationsmuligheder. Hvis vi antager, at vi har en computer, der kan checke 1.000.000 kombinationsmuligheder i sekundet, så vil det tage hhv. 8 min, 3,7 timer og 105 dage at teste dem. Bruger vi 9 tegn, tager det 8 år at køre alle kombinationsmulighederne igennem. Dette er et eksempel på, hvorfor lange adgangskoder er så vigtige.
Det er heller ikke lige meget, hvilke tegn man bruger. Har vi en kode på 6 tegn, der kun består af små bogstaver, får vi 28^6=481.890.304 kombinationsmuligheder. Men inkluderer vi også tal, har vi 38 forskellige tegn at vælge imellem. Det giver 38^6=3.010.936.384, hvilket er meget mere, selv med det samme antal tegn i koden. Bruger vi store og små bogstaver, samt tal og specialtegn (men stadig kun 6 tegn) får vi 224^6=126.324.652.000.000 muligheder. Regner vi ligesom før, svarer det til hhv. 8 min, 50 min, og 96 år - selv om alle koderne er på 6 tegn. Dette viser, hvorfor det er vigtigt at bruge mange forskellige typer tegn i sin kode.
Nu ved vi, hvordan man vælger en god adgangskode, der er svær at bryde. Problemet er, at de er svære at huske. Der er nogle forskellige teknikker, du kan bruge til at lave gode koder, der er nemme at huske.
En fremgangsmåde, man kan bruge, er at lave fraser, som er nemme at huske. F.eks. kan koden "2STOREkatte!=hit" huskes som "to store katte er ikke et hit". Koden er konstrueret til at støtte hukommelsen: to skrives som ciffer, ordet store skrives med stort, og er ikke skrives som "!=", som det skrives i mange programmeringssprog. Bemærk at koden er meget sikker, da den består af 16 tegn bestående af tal, store og små bogstaver, samt specialtegn, plus at den ikke er sårbar over for dictionary attack/rainbow tables.
Andre eksempler kan være "2late4Q8", som kan huskes som "too late for Q8", og "£&$små=78" kan huskes som "pund og dollars i små mængder giver 78". Kender du til leet speak, kan det også benyttes til adgangskoder, f.eks. "H4n94r5|<I8" huskes som "Hangarskib". Der er ingen grænser for fantasifulde koder, man kan finde på, som samtidig er lette at huske.
En anden ting, du kan gøre, er at bruge et mønster på tastaturet til at støtte hukommelsen. Hvis vi f.eks. tager koden "vfr4:LO9", så er den ikke umiddelbart nem at huske, men hvis du prøver at skrive den på dit tastatur, vil du se, at den består af et meget simpelt mønster, der er betydeligt nemmere at huske end selve koden. Akkurat som før, så er koden meget sikker, dog er dette eksempel kun på 8 tegn.
Denne artikel har nu vist forskellen på gode og dårlige adgangskoder ved at demonstrere, hvordan en kodebryder arbejder, samt nogle gode råd til hvordan man laver stærke adgangskoder, der også er forholdsvis nemme at huske.
Hvis du vil være helt sikker, så skift adgangskode en gang i mellem. En gang hver 6. måned er tilstrækkeligt, hvis du følger rådene i denne artikel.
Jeg vil til slut opfordre læserne til at lave en ny adgangskode, hvis de under læsningen af denne artikel indså, at deres kode kunne være sårbar på den ene eller anden måde.
Tak til madeinrussia for hjælp til denne artikel.