Sådan laver du et sikkert kodeord, der er let at taste på mobilen

Det er svært at indtaste et kodeord med både tal og store og små bogstaver på en mobiltelefon. Men det er stadig muligt at lave en sikker adgangskode, som er let at indtaste.

rV0n!sd2K3

Hvis det er din adgangskode, og du har en mobiltelefon med internetadgang, så har du sikkert oplevet, hvor besværligt det er at indtaste et kodeord, som lever op til kravene til et stærkt password.

Den begrænsede plads på telefonen betyder nemlig, at brugeren skal bruge flere taster på at skifte ikke blot mellem store og små bogstaver, men også til tal og specialtegn.

Når besværet stiger, så er der også en risiko for, at brugerne vil forsøge at snige sig udenom, hvis de eksempelvis skal oprette sig som bruger og vælge en adgangskode via mobiltelefonen.

»Jeg synes bestemt, at spørgsmålet er relevant, og at problemet er reelt nok,« siger professor i datalogi, Ivan Damgård, fra Århus Universitet.

Gør kodeordet længere
De klassiske regler for et godt kodeord har været, at det skulle have en længde på mindst otte tegn og bestå af både store og små bogstaver, tal og gerne udvalgte specialtegn som !_,?.

Førhen var længden på eksempelvis Unix-systemer begrænset til netop otte tegn, men man kan faktisk forbedre sikkerheden ved at bruge et længere kodeord i stedet for at skulle vride specialtegn ud af mobiltelefonens tastatur.

»I stedet for at kræve forskellige tegnklasser, kunne man for eksempel kræve minimum 12 tegn i kodeordet,« siger lektor i datalogi og Version2-blogger Torben Mogensen fra Københavns Universitet.

Et langt kodeord med udelukkende små bogstaver kan være lige så sikkert eller bedre end et kortere kodeord med mange flere forskellige tegn.

»Hvis jeg skulle give et råd, så ville det nok være at bruge længere kodeord med almindelige bogstaver. Man kunne bruge tricket med en passphrase, hvor man husker en sætning og bruger det første bogstav i hvert ord,« siger Ivan Damgård.

Det forudsætter, at udviklerne af det system, brugeren skal logge på, har implementeret adgangskontrollen på en måde, så den understøtter kodeord af en længde, som giver tilstrækkelig sikkerhed.

Styk koden sammen af flere ord
Et godt kodeord er så tæt på en tilfældig sammensætning af tegn, at det ikke kan gættes ud fra en ordliste. Hvis man bruger et ord eller en omskrivning af ord, som findes i de omfattende lister over kodeord, der bruges til såkaldte ordbogsangreb, så er det i mange tilfælde trivielt for en hacker at knække kodeordet.

Et ordbogsangreb går ud på at prøve sig frem ud fra kendte ord og hyppigt brugte kodeord ud fra en ordliste. Disse ordlister indeholder også bynavne, navne på kendte personer og andre ord, som en bruger kunne finde på at bruge som adgangskode. Og selvom man vælger at udskifte tegnet I med 1, så omfatter ordlisterne også typisk mange af den type omskrivninger.

Men igen kan et længere kodeord gøre det muligt at lave en kode, som er sikker.

»Udbyderen kunne foreslå, at kodeordet består af to eller tre dele, som hver især kan være almindelige ord, men hvor kombinationen af de to eller tre ord ikke er sandsynlig som for eksempel 'hundappelsin' eller 'husjordteam'. Antallet af kombinationer er meget større end antallet af enkeltord, så ordbogsangreb bliver urealistiske, men de er både nemme at huske og indtaste,« siger Torben Mogensen.

Længde slår tal og store bogstaver

Igen forudsætter det, at systemet er sat op til at kræve lange kodeord, hvis brugeren ikke vil bruge både store og små bogstaver, tal og specialtegn. Men selv for systemer, hvor brugeren ikke er begrænset af tastaturet på en mobiltelefon, kan længere kodeord være en god idé.

»En vigtig pointe er, at antallet af mulige kodeord vokser meget hurtigt med længden af kodeordet. Faktisk meget hurtigere end hvis man udvider antallet af mulige tegn,« siger Ivan Damgård.

Kompleksiteten af et kodeord bliver normalt opgivet ud fra, hvor mange forsøg der skal til, for at man har gennemgået alle kombinationsmuligheder. Det forudsætter, at man betragter kodeordet som en serie af tilfældige tegn, så hvis man vil have den optimale sikkerhed, så skal kodeordet også helst være en tilfældig serie af tegn.

Kodeordets styrke afhænger af to faktorer: Længden og den mængde af tegn, som kan anvendes. Man kan beregne kompleksiteten ud fra formlen:

H = L * Log2(N)

L er længden af kodeordet, mens N er antallet af forskellige tegn, som kan bruges i kodeordet. H angiver kompleksitet i antallet af bit. Ud fra formlen kan man altså se, at eksempelvis en fordobling af længden vil føre til en højere kompleksitet end en fordobling i antallet af mulige tegn.

Ni er lige så stærkt som syv

Med andre ord er længden vigtigere end størrelsen af tegnsættet, så længe der er tale om et kodeord, der ikke findes i en ordbog.

Et kodeord med rene små bogstaver på i alt 9 tegn svarer således i kompleksitet til et kodeord på 7 tegn ud fra et tegnsæt bestående af både store og små bogstaver og tal.

Altså har kodeordet 'kdovbsmfg' på ni tegn samme teoretiske styrke som 'Kd0VB3m' på syv tegn.

For udviklerne af systemerne er det forholdsvis enkelt at måle styrken af et kodeord ud fra længden, om hvorvidt der er brugt eksempelvis både store og små bogstaver, tal og et eller flere specialtegn.

Svært at kontrollere styrken

Hvis man tillader kodeord, der udelukkende består af én type tegn, som eksempelvis små bogstaver, så bliver det afgørende kriterium, om kodeordet kan gættes ud fra et ordbogsangreb.

Det er vanskeligt at kontrollere automatisk på en let måde, når eksempelvis en bruger opretter sig på en webtjeneste, selvom det ifølge Torben Mogensen kunne gøres ved eksempelvis at foretage en krypteret Google-søgning og kassere kodeordet, hvis det giver mere end et vist antal resultater.

Så brugeren kan sikre sig selv ved at lave et langt kodeord, som er nemt at indtaste. Men til gengæld bliver det sværere at lave en automatisk kontrol af kodeordets styrke.

Dermed bliver sikkerheden i højere grad overladt til brugeren, og derfor kan det være nødvendigt at finde en måde, hvorpå udviklerne af et system, som skal anvendes via mobiltelefoner, kan sørge for, at brugerne bruger et sikkert kodeord.

»Jeg tror bestemt, der er behov for, at nogen udvikler et bedre interface til indtastning af sikre kodeord,« siger Ivan Damgård.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (23)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Søren Kristensen

...og sikkerheden bliver vel kun større hvis man IKKE vælger en bestemt måde at generere sit password på. Hvis der opstår en bred kultur af kun at bruge små bogstaver (fordi man bruger sange eller lignende til at komme frem til dem) så er der jo ingen grund til at hackerene gætter på tal og store bogstaver.

Den bedste måde at generere et password på er vel at finde på en ny måde hver gang man skifter password - introducere endnu et random-led?

  • 0
  • 0
Markus Wüstenberg

Søren, nej. :) Som artiklen beskriver, hvis kompleksiteten på et kodeord med ni små bogstaver er højere end et med syv diverse tegn, så er det med ni små bogstaver mere sikkert (hvis det ikke forekommer i "ordbøger").

Eller er jeg forkert på den?

  • 0
  • 0
Torben Mogensen Blogger

Sikkerheden af et løsen afhænger af to ting:

  1. Er det langt nok til, at en udtømmende søgning gennem alle mulige kombinationer er urealistisk?

  2. Er det realistisk at lave et angreb, der ikke gennemprøver alle kombinationer?

Hvad første kriterie angår, så er 8 små bogstaver rigeligt: der er over 15 milliarder kombinationer. Hvis der blot går et tusindedels sekund mellem mulige gæt, så tager det 48 år at gennemsøge alle muligheder, så der vil i gennemsnit gå 24 år.

Det andet kriterium er mere vanskeligt at regne på. Ordbøger indeholder ord med væsentligt mere end 8 tegn, så generelt er ord, der kan findes i ordbøger ikke sikre. Og det hjælper kun behersket at lave standardsubstitutioner såsom l -> 1 og o -> 0, for det kan man sagtens indbygge i ordbøger uden af forøge deres længde med mere end omkring en faktor 10. Verdens nok største ordliste hedder Google, så hvis man ikke finder et ord der, så er risikoen for, at en hacker har ordet i sin ordbog nok ret behersket.

Mit forslag med at sammensætte to ord kræver en smule omtanke: Hvis man laver en liste over de 10 000 mest udbredte ord, fylder en liste af par af disse 100 000 000, hvilket med et millisekund mellem hvert forsøg tager knap 12 dage at gennemløbe. Så man bør sørge for, at mindst et af de to ord, man bruger, ikke er blandt de mest almindelige (en god test er nok, om det findes i din SMS ordbog). Alternativt kan man sammensætte flere ord. Hvis man gerne vil have noget, der er let at indtaste på en mobil, er det nok nemmest med tre-fire ord, som findes i SMS ordbogen. Men det skal selvsagt ikke være i en almindelig kombination.

  • 0
  • 0
Anonym

Torben,

Hvad første kriterie angår, så er 8 små bogstaver rigeligt: der er over 15 milliarder kombinationer. Hvis der blot går et tusindedels sekund mellem mulige gæt, så tager det 48 år at gennemsøge alle muligheder, så der vil i gennemsnit gå 24 år.

Jeg ved ikke rigtig om jeg gider at kommentere mere, men ethvert system med respekt for sig selv indfører successive større svartider, samt en grænse.

Tænk på f.eks.
1. forsøg: 1 sekund før næste forsøg
2. forsøg: 3 sekunder før næste forsøg
3. forsøg: 8 sekunder før næste forsøg
herefter x antal minutter før ydeligere forsøg.

Hele tanken om, at man kan lave xxx antal forsøg/sekund er jo absurd.

  • 0
  • 0
Mogens Kjær

Præcis den fremgangsmåde bruger radioen i min bil, hvis den har haft strømmen afbrudt.

1, 2, 4 minutter etc mellem indtastninger.

Det gør at selv at kodeord med kun fire cifre, reelt er ret sikkert.

Det må være lige så vigtigt for sikkerheden af et system, som længden på kodeordet. Desværre er det jo noget der ligger uden for brugerens bestemmelse, og ofte også umuligt for ham at afprøve. Systemet kan jo reelt også trunkere kodeordet til f.eks. 8 tegn uden at brugeren ved det. Så uanset hvordan man vender og drejer det, så er tillid til udbyderen vigtigere end det kodeord man vælger.

Men derfor skal man selvfølgelig vælge et godt kodeord, og hvis number beats complexity, så er det da godt for mobilbrugerne.

  • 0
  • 0
Thomas Ammitzbøll-Bach

@Stig: Det kan man, hvis der er tale om åbne tjenester på et website. Det er svært at gardere sig imod distribuerede angreb på tusindvis af konti dagligt. Og det er det, som Google, Yahoo, Facebook og andre oplever.

Det opleves af brugere som dårlig service, hvis de flere gange om året får meddelelse om, at deres konto er under hackerangreb og derfor skal aktivere kontoen igen ved hjælp af en valideringsemail.

Det andet eksempel er data, som er beskyttet med password (krypteret), men hvor angriberen allerede har tilegnet sig de krypterede data. Her er det bare at skyde løs på en forsvarsløs fil.

Jeg er enig med Torben Mogensen. Der siges og skrives så meget sludder om password og sikkerhed, og det på trods af, at vi har begreber og værktøj til at analysere kvaliteten af en passwordstrategi.

En anden myte om password er, at man ikke må skrive dem ned. Men vi har kun en begrænset kapacitet i vores hoveder til at huske passwords, og hvis passwords skal 1) være velvalgt, 2) skiftes jævnligt og 3) være forskelligt på forskellige systemer, så har de flest ikke-autister et problem. Jeg ser hellere at brugere vælger gode passwords, som de opbevarer forsvarligt, end at de vælger dårlige passwords, fordi de skal kunne huske dem. Jeg kan ikke lave om på folks mentale kapacitet, uanset hvor meget jeg truer eller gør nar af dem.

Thomas

  • 0
  • 0
Torben Mogensen Blogger

Hele tanken om, at man kan lave xxx antal forsøg/sekund er jo absurd.

Det er rigtigt nok, så længe man kun vil gætte en specifik persons løsen. Men de fleste ordbogsangreb prøver alle brugere på et system. Så inden de er kommet igennem alle brugerne, så er den påtvungne pause for den første bruger overstået. Og når pauserne bliver for lange, prøver man et andet system et andet sted imens. Og man gør det distribueret, så serveren ikke bare kan udelukke et IP-nummer, der har lavet mange forsøg.

  • 0
  • 0
Anonym

Præcis den fremgangsmåde bruger radioen i min bil, hvis den har haft strømmen afbrudt

Tillad mig at recitere:

men ethvert system med respekt for sig selv...

Sikkerhed er et tveægget sværd.

Det er ingen kunst at indføre lange og komplekse kodeord, men det vil medføre, at ingen kan huske det, og derved medføre disse berømte 'gule lapper' der sidder på skærmen/skrivebordet, eller er skrevet på undersiden af telefonlisten.

Så jo - jo mere komplekse kodeord man kræver, jo mere kompromitterer man sikkerheden.

Lidt et paradox, men et er teori, og andet er praksis (og mennesker).

  • 0
  • 0
Jacob Christian Munch-Andersen

Først og fremmest må det fastslås at der er to forskellige scenarier, jeg vælger at kalde dem hhv. kodeord og krypteringsnøgler, dog velvidende at krypteringsnøglerne ofte i daglig tale vil blive omtalt som kodeord.

Et kodeord bruges til at skaffe adgang til et system udefra, helt typisk en hjemmeside hvor man bruger det for at logge ind, her skal serveren i den anden ende tjekke kodeordet og kan samtidig registrere forkerte forsøg. Hvis systemet er lavet ordentligt så er der sat en kraftig begrænsning på hvor ofte en IP adresse kan foretage et loginforsøg, begrænsningen skal selvfølgelig ikke være per brugerkonto. Hvis der er lavet et godt begrænsningssystem er et kodeord med en kompleksitet på 10^9 rigeligt, så længe man ikke er et højprofilmål, men findes der slet ikke sådan et system bør kompleksiteten op på 10^12 til 10^15.

En krypteringsnøgle bruges til at kryptere trafik, filer og wifi. Kodeordet i de fleste digitale signatursystemer er også at betragte som en krypteringsnøgle. Fælles for hele molevitten er at en hacker kun er begrænset af den regnekraft han har til rådighed, og alt efter hvilket eksakt system vi taler om er det typisk mulig at afprøve mellem en million og en milliard muligheder i sekundet, blot ved brug af et enkelt nutidigt grafikkort. Hvis de krypterede data stadig har værdi i fremtiden kan hackeren også vælge at vente på hurtigere hardware. Vi skal op omkring en kompleksitet på 10^17 for at sikre mod et nutidigt brud, og der skal ganges omkring en faktor 10 på for hver 6 år krypteringen skal holde. Hvis man regner med at ens data er værdifulde nok til at nogen vil investere i en større mængde regnekraft for at få fat på dem må man selvfølgelig øge kompleksiteten yderligere.

Til Torben Mogensen: Der er en masse tal i dit første indlæg, men du har regnet forkert stort set hele vejen igennem, jeg kan ikke begribe hvordan det er gået så galt.

  • 0
  • 0
Kristian Christensen

Hvis du har et specialtegn som - eller . vil dit password blive langt mere sikkert. Det i sig selv er en god grund til at benytte det.

Mange steder er det desværre almindeligt at selv casesensitivitet ikke er til stede.
F.eks. Er WoW login ikke case sensitivt så det forringer sikkerheden en del.

Det at spærre en konto eller lave dobbelt op på hvert mislykkede forsøg vil hjælpe rigtigt meget på sikkerheden.

  • 0
  • 0
Knud Henrik Strømming

En lettere forsinket kommentar:

Egentlig er det vel forkert at tale om kompleksiteten af et kodeord. Det, der betyder noget, er vel den kompleksitet, autentificeringssystemet tillader.

Sålænge en angriber ikke ved, om en given bruger har brugt en mindre del at det tilladte tegnsæt, så må et brute force-angreb forsøge hele det tilladte tegnsæt. Det giver derfor kun begrænset mening at tale om sikkerheden eller kompleksiteten af et givet kodeord. Sikkerheden i et system må være bestemt af kompleksiteten af de mulige kodeord, uanset hvilket kodeord en given bruger konkret anvender.

Et ordborgsangreb bliver selvfølgelig nemmere, hvis angriberen har en formodning om, at brugeren fx kun har brugt små bogstaver. Men hvis der i kodeordet indgår blot ét tegn fra en anden gruppe (store bogstaver, taltegn, specialtegn, unicode-tegn), og angriberen ikke kan have nogen idé om, hvor i kodeordet tegnet er anbragt, eller hvor mange tegn fra andre grupper, der indgår, så er der kun den lange vej gennem et brute force-angreb på det fulde, tilladte tegnsæt.

I den angivne formel for beregning af kompleksitet angiver N jo heller ikke antallet af forskellige tegn, som faktisk indgår i det konkrete kodeord, men netop antallet af mulige tegn, som systemet accepterer.

Som Jacob Chr. Munch-Andersen også er inde på, så burde det i højere grad indgå, hvor længe en given kryptering skal være "sikker". Fx burde oplysninger om arvelige sygdomme opbevares "sikkert" gennem adskillige generationer. Oplysninger om, at jeg evt. har en arvelig sygdom, bør ikke i en meget lang fremtid (mange generationer) kunne komme til uberettiget kendskab hos fx forsikringsselskaber. Det er altså ikke nok ved beslutning om krav til sikkerheden for et givet system at vurdere, hvor sikkert det er lige nu, men også at estimere, hvor længe det skal være hvor sikkert.

  • 0
  • 0
Torben Mogensen Blogger

Et ordborgsangreb bliver selvfølgelig nemmere, hvis angriberen har en formodning om, at brugeren fx kun har brugt små bogstaver. Men hvis der i kodeordet indgår blot ét tegn fra en anden gruppe (store bogstaver, taltegn, specialtegn, unicode-tegn), og angriberen ikke kan have nogen idé om, hvor i kodeordet tegnet er anbragt, eller hvor mange tegn fra andre grupper, der indgår, så er der kun den lange vej gennem et brute force-angreb på det fulde, tilladte tegnsæt.

Det er i reglen ikke nogen god ide at bruge unicode tegn i kodeord, da de kan være ret svære at taste ind.

Og man kan sagtens lave ordbogsangreb mod kodeord med specialtegn og cifre. De fleste baserer deres kodeord på almindelige ord, hvor man blot har substitueret enkelte bogstaver med cifre eller specialtegn (l eller i bliver til 1 eller | og o bliver til 0 eller @) eller evt. sætter et enkelt ciffer eller specialtegn bagefter ordet, men sjældent begge dele. Så når man skal efterprøve et ordbogsord som f.eks. "doubting" prøver man med både stort og lille D, med 0 og @ i stedet for o, med 1 og | i stedet for i og evt. med et ciffer eller specialtegn bagefter. Uden det ekstra tegn giver det 2x3x3 = 18 muligheder. Hvis man i stedet sætter et ikke-alfabetisk tegn efter ordet får man 30 muligheder (hvis vi antager alm. ASCII). Det er bestemt overkommeligt for et ordbogsangreb at bruge en ordbog, der er ca. 50 gange større end en "ren" alfabetisk ordbog.

  • 0
  • 0
Knud Henrik Strømming

Min pointe er ikke en anbefaling af den ene eller anden slags tegn i kodeord. Min pointe er, at kompleksiteten bestemmes af størrelsen af det tegnsæt, som systemet tillader, ikke af hvilket tegnsæt brugeren konkret anvender i sit kodeord - dog under forudsætning af, at en angriber ikke kan gøre sig nogen formodning om, at der er benyttet et mindre tegnsæt, i hele eller dele af kodeordet.

  • 0
  • 0
Torben Mogensen Blogger

Min pointe er ikke en anbefaling af den ene eller anden slags tegn i kodeord. Min pointe er, at kompleksiteten bestemmes af størrelsen af det tegnsæt, som systemet tillader, ikke af hvilket tegnsæt brugeren konkret anvender i sit kodeord - dog under forudsætning af, at en angriber ikke kan gøre sig nogen formodning om, at der er benyttet et mindre tegnsæt, i hele eller dele af kodeordet.

Og det er netop den forudsætning, som jeg ikke mener er realistisk. De fleste bruger det mindste påkrævede antal ikke-alfabetiske tegn i deres kodeord, og ofte gør de det på forudsigelige måder -- ved substitution i eller ved konkatenering efter et almindeligt ord. Så krav om brug af flere tegnklasser giver ikke meget ekstra sikkerhed i praksis. Der er ligeså stor sandsynlighed for, at en bruger vælger et stærkt kodeord med kun små bogstaver som et stærkt kodeord med de ekstra tegnklasser.

Så man kan kun undgå ordbogsangreb ved at holde et forslag til kodeord op mod en ordbog -- inklusive med brug af de mest almindelige substitutioner og med konkatenering af et eller to specialtegn. Hvis man ikke selv vil holde en multisproglig ordbog ved lige kan man passende bruge verdens største ordbog: Google.

  • 0
  • 0
Jakob Bork

Min fremgangsmåde er lidt omstændelig, men man vænner sig hurtigt til den.

Husk ét password som et slags standard password. Bland bogstaver fra den service/side du logger ind i dit standard password på bestemte pladser efter dit eget system.

Hvis man ikke tager alle bogstaver fra siden/servicen så er det meget svært at bruge et lækket password fra en side til en anden side/service.

Tilføj selv et par tal der siger noget om længden af af hjemmesideadressen, navnet eller de antal bogstaver du har taget.

Det er også ok at indtaste på en mobil ned trackball/joystick.

  • 0
  • 0
Jesper Stein Sandal

Et andet trick kan være at indføje den dominerende farve på siden, eller noget fra et logo. Man kan finde flere tricks i nogle af de artikler, jeg har skrevet om emnet tidligere:

http://www.version2.dk/artikel/7936-syv-genveje-til-mere-sikre-kodeord

http://www.version2.dk/artikel/13034-lav-din-egen-algoritme-til-at-huske...

Mvh.
Jesper Stein Sandal

  • 0
  • 0
Michael Balle-Pedersen

Jeg bruger et produkt der hedder 1Password. Det integrerer sig i min browser, og giver mig mulighed for meget let at lave stærke passwords til online tjenester.

Samtidig husker den alle mine koder i en "nøglering", som jeg har adgang til med blot eet stærkt password. Derudover synkroniserer den kodeordene til mine mobile enheder, iPhone/iPad, så jeg også her let kan bruge mine stærke passwords.

Fordelen for mig er at jeg let kan anvende forskellige, og meget stærke passwords, til alle mine online tjenester.

  • 0
  • 0
Log ind eller Opret konto for at kommentere
Jobfinder Logo
Job fra Jobfinder

Call to action

rV0n!sd2K3 Hvis det er din adgangskode, og du har en mobiltelefon med internetadgang, så har du sikkert oplevet, hvor besværligt det er at indtaste et kodeord, som lever op til kravene til et stærkt password. Den begrænsede plads på telefonen betyder nemlig, at brugeren skal bruge flere taster på at
skifte ikke blot mellem store og små bogstaver, men også til tal og specialtegn. Når besværet stiger, så er der også en risiko for, at brugerne vil forsøge at snige sig udenom, hvis de eksempelvis skal oprette sig som bruger og vælge en adgangskode via mobiltelefonen. »Jeg synes bestemt, at spørgsmålet er relevant, og at problemet er reelt nok,« siger professor i datalogi, Ivan Damgård, fr...