detfalskested

(Mere) sikre kodeord

8. juni 2012 af Mikkel Munch Mortensen

De seneste par dage har flere store sites fortalt om at deres databaser med deres brugeres kodeord er blevet lækket.

I den forbindelse opfordres brugerne til at skifte deres kodeord på de kompromitterede sites, samt alle andre sites hvor brugerne anvender samme kodeord.

Der er 2 problematikker i denne sammenhæng: 1) At mange websites ikke krypterer de gemte kodeord i tilstrækkelig grad. Og 2) At de fleste mennesker er dovne og bruger det samme (eller nogle få) kodeord alle steder.

Jeg er selv en af de halvdovne brugere. Jeg har indtil videre brugt 3 forskellige kodeord rundt omkring.

Det første er til ligegyldige ting. Det er ikke særligt hemmeligt og jeg deler det gerne med folk hvis det giver mening at de får det. Fx bruger jeg det til mine trådløse netværk herhjemme.

Det andet er mit primære kodeord. Det er det jeg bruger til langt de fleste ting. Faktisk har jeg 2 af dem, da forskellige sites har forskellige krav til kompleksiteten af kodeord og de hver især tilfredsstiller disse krav uden at være særligt komplekse.

Det sidste er mit meget hemmelige kodeord som jeg kun bruger til mit NemID.

Allerede her er jeg sikkert bedre beskyttet end de fleste. Alligvel kunne jeg ikke lade være med at blive en lille smule bekymret da Last.fm i dag annoncerede at de også er blevet kompromitteret. For der har jeg en bruger med mit primære kodeord.

Heldigvis udtænkte jeg i nat – da jeg alligevel lå søvnløs og spekulerede over et par af livets store spørgsmål – en smart (synes jeg selv) metode til at have forskellige kodeord på forskellige sites, som stadigt er til at huske. Her følger en generel beskrivelse af min tilgang.

Vælg et grundkodeord

Til at starte med skal man finde sig et grundkodeord der er til at huske og som umiddelbart lever op til alle sikkerhedskrav om længde og blandede tegn (tal, bogstaver, specialtegn). Jeg er fx meget glad for citrusfrugter, og er født i november (måned nr. 11), så et grundkodeord kunne være: CTRSfrgt-11.

Dette er ret nemt for mig at huske. Derudover skulle det også i sig selv være et ret stærkt kodeord. Men det nytter jo ikke noget hvis nogen bare kan hive det ud af en lækket database. Derfor skal det gøres unikt for hvert site man logger ind på.

Parametre til manipulation

Lad mig bruge Last.fm som eksempel. Min ide er at bruge ting fra domænenavnet til at manipulere grundkodeordet med. Alle websites har unikke domænenavne, og giver dermed unikke værdier for parametre at manipulere sit grundkodeord med. Last.fm's domænenavn er – overraskende nok – last.fm.

Af domænet kan jeg fx uddrage at top level-domænet (TLD) – fm – er 2 tegn langt. Og Second level-domænet (SLD) – last – er 4 tegn langt. Desuden kan jeg give bogstaverne i domænet en talværdi svarende til deres position i alfabetet. Fx er l nr. 12 i alfabetet, a er nr. 1 i alfabetet, s er nr. 19 i alfabetet, t er nr. 20 i alfabetet, osv.

Tænker man lidt længere kan man sikkert finde flere tal i et domænenavn.

Manipuler grundkodeordet

Næste skridt er så at bruge disse tal til at manipulere sit grundkodeord. En simpel ting kunne være at lægge længden af SLD'et til tallet i grundkodeordet. Således vil mit kodeord til Last.fm blive CTRSfrgt-15.

Vupti, så vil jeg have forskelligt kodeord på forskellige sites. Nogle sites vil selvfølgelig have samme længde SLD som hinanden, og dermed få samme kodeord. Så det er nok en god ide at manipulere sit kodeord med flere parametre.

Næste manipulation kunne fx være at "lægge bogstaver sammen", så værdien af det andet bogstav fra SLD'et lægges til værdien af det andet bogstav i kodeordet og dermed giver et nyt bogstav. I mit eksempel ville det være 20 + 1 = 21, eller rettere: T + a = U. Mit kodeord til Last.fm ville herefter være CURSfrgt-15.

Allerede med 2 manipulationer vil risikoen for at 2 sites har samme kodeord være ret lille. Men man kan sagtens tilføje endnu flere manipulationer. Det vigtige er bare at man kan huske dem alle (og evt. også i den rigtige rækkefølge) når man sidder og skal bruge et kodeord.

Andre typer af manipulationer kunne være at gange noget med noget andet, trække fra hinanden og modulo mellem to værdier.

Fx kunne specialtegnet være det specialtegn der sidder på Shift+X, hvor X er talværdien af sidste tegn i TLD'et modulo 10 (13 modulo 10 = 3 => Shift+3 => #). Eller man kunne lade antallet af benyttede manipulationer være afgjort af længden på TLD'et.

Mulighederne er mange, og med blot nogle få manipulationer skulle man meget gerne have nogle ret sikre kodeord som er forholdsvist nemme at huske – eller i hvert fald regne sig frem til.

Man skal selvfølgelig regne og tænke lidt hver gang man skal logge ind et sted, men det har jeg allerede vænnet mig ret hurtigt til på en halv dag, og i forvejen bruger jeg altid "husk mig"-funktionen, hvis der er en sådan til stede på sitet.

Kommentarer

#1

Skrevet af Adam, 08. juni 2012 21:28

Er’ed ikke bedre at lave kodeordet længere, end det er at substituere tegn i det?

#2

Skrevet af Mikkel Munch Mortensen, 09. januar 2013 19:18

Adam, jo, ganske givet. Og med personlige variationer udover dem jeg beskriver her bliver det hele selvfølgelig endnu mere sikkert. Det var sådan set mest ment som en inspiration til selv at opfinde egne regler der er til at huske og som kan hjælpe med til at man ikke har det samme kodeord på tværs af tjenester.

Skriv kommentar

  • Brug Textile hvis du vil lave funky ting i din kommentar.