Telmore-autentifikation: Send de første tre tegn af dit kodeord i klartekst
Som bekendt er kodeord opbevaret i en backend-database i klartekst en dårlig idé. Både i tilfælde af datalæk og i tilfælde af nysgerrige insidere.
Og derfor vakte det også nogen undren hos en Version2-læser, da Telmore lagde op til, at han som et led i en autentifikations-procedure skulle oplyse de første tre tegn af sit kodeord i forbindelse med en mail-sag hos det TDC-ejede teleselskabs kundesupport.
Men hvis det er muligt for Telmore at kontrollere en del af et kodeord, betyder det så, at virksomheden har adgang til hele kodeordet? Nej, ikke nødvendigvis. Vi bekræfter at have modtaget din e-mail, som vi vil bestræbe os efter at behandle inden for 5 hverdage. Bemærk venligst, at såfremt du ikke har angivet dit mobil-eller mobilbredbåndsnummer, bedes du venligst besvare denne e-mail med dette anført. Ligeledes bedes du sikre, at du skriver fra e-mailadressen anført under menuen "Min profil" på din personlige side "Mit TELMORE" på Telmore.dk. Skriver du fra en anden e-mail-adresse, bedes du af sikkerhedsmæssige årsager angive de tre første tegn i din adgangskode. Ovenstående mail fik en Version2-læser til at undre sig over, hvorvidt Telmore opbevarede kodeord forsvarligt.Mail fra Telmore
I udgangspunktet er det en god idé at køre kodeord gennem det, der kaldes en kryptografisk hash-funktion, inden det lagres i en database. Den nu usikre MD5-funktion forvandler eksempelvis et kodeord som 'giraf1' til værdien '965f93806ce72bed00589b1b5667b1f6'.
Og når en bruger så efterfølgende indtaster kodeordet bliver det kørt gennem samme algortime, hvorefter det, der kaldes den hashede værdi holdes op mod den allerede lagrede værdi i databasen.
Fidusen er, at mens det på den måde kan kontrolleres, at brugeres har afgivet det rigtige kodeord, så er en kryptografisk hash-funktion sådan indrettet, at værdien - i dette tilfælde '965f93806ce72bed00589b1b5667b1f6' ikke uden videre kan føres tilbage til 'giraf1'.
Og på den måde er det altså muligt at validere kodeordet, selvom det ikke ligger i klartekst, hvor det kan falde i hænderne på alskens lyssky elementer.
En anden indretning ved en (god) kryptografisk hash-funktion er, at en del af kodeordet ikke bliver til en tilsvarende del af hash-værdien, men til en helt ny hash-værdi. På den måde er det ikke muligt for en hacker at sjusse sig frem til dele af et kodeord ved at se på hash-værdierne.
Det har ikke været muligt at få et egentligt interview med Telmore i forhold til, hvordan virksomheden lagrer kunders kodeord. En hash-funktion er en funktion, der kan bruges til at mappe vilkårlige datastørrelser til data med en fast størrelse. Værdierne, som en hash-funktion returnerer, refereres blandt andet til som hash-værdier eller digests. Hash-funktioner bruges ofte i data-strukturer kaldet en hash-tabel til hurtigt at slå data op med. Kryptografiske hash-funktioner gør det på den ene side nemt at verificere, hvorvidt input-data - eksempelvis et kodeord - optræder i form af en given hash-værdi, og samtidig er kryptografiske hash-funktioner i udgangspunktet skruet bevidst sammen, så det er svært at gendanne det oprindelige input alene med kendskab til hash-værdien. Kilde: blandt andet WikipediaHash-funktion
»Passwordet er krypteret i databasen«
Men kodeordene ligger i krypteret form, oplyser direktør i Telmore Jens Grønlund Nielsen via en mail sendt gennem TDC's presseafdeling.
»Kundekonsulenten kan hverken se dele eller hele password. Kundekonsulenten kan i vores kundesystem indtaste de 3 karakterer som så validerer om det er de korrekte 3 første karakterer i password. Konsulenten kan ikke bruge de 3 tegn til noget – det kræver den fulde kode for at få netadgang, hvilket netop er årsagen til, at der kun oplyses de 3 første tegn. Selve passwordet er krypteret i databasen og ingen i Telmore har adgang til det,« fastslår Telmore-direktøren ifølge mailen fra presseafdelingen.
Her fremgår det videre, at det handler om at undgå misbrug.
»Det er vores eneste mulighed for at verificere, at det er kunden selv, vi taler med, da alle andre personoplysninger kan være kendte. Derved undgår vi misbrug.«
Telmore-direktøren oplyser desuden, at det første kodeord, som en kunde får tildelt, er autogenereret, og herefter har kunden mulighed for selv at ændre kodeordet via selvbetjeningsfunktionen ‘Mit Telmore’.
I Version2-læseren, der undrede sig over kodeords-valideringen, oplyser i øvrigt i forbindelse med selvbetjenings-løsningen, at der her er adgang til blandt andet puk-kode og en detaljeret oversigt over telefonsamtaler og sms'er.
Altså oplysninger, som de fleste nok i udgangspunktet gerne vil holde for sig selv, men som det altså er muligt at få adgang til via selvbetjeningsløsningen med den rette kombination af brugernavn og kodeord.
Brugernavn kan i dette tilfælde være det pågældende mobilnummer, fremgår det af Telmores login-side på https://www.telmore.dk/website/mit-telmore/
Det har ikke været muligt at få Telmore til at uddybe, hvordan virksomheden lagrer kunders kodeord, så de første tre tegn kan valideres, men altså uden at nogen har adgang til kodeordet.
»I bedste tilfælde ...«
I stedet har vi bedt Version2-blogger og it-sikkerhedsmand med særligt kendskab til kodeords-hashing Poul-Henning Kamp komme med et bud på, hvordan Telmores system er sat op. Og ingen af de tekniske muligheder, som kan gøre det muligt for Telmore at validere de første tre tegn, borger umiddelbart særligt godt for sikkerheden.
»I bedste tilfælde gemmer de de første tre tegn ved siden af det kompetent saltede og hashede password. I så fald kan brugeren beskytte sig ved at vælge et password der er tre tegn længere,« skriver Poul-Henning Kamp via mail.
Så hvis kodeordet - for eksemplets skyld (det er et usikkert kodeord) - var 'giraf1', så ville 'gir' være en kendt værdi, og det ville svække kodeordets samlede styrke, hvor kun de resterende tre tegn ville være ukendte.
Og et kortere kodeord er ofte også et svagere kodeord. Denne svækkelse kunne imødegås ved at føje tre ekstra tegn til kodeordet, så der nu stod ‘giraf1234’ (det er stadig et usikkert kodeord).
At kodeordet er kompetent saltet vil sige, at der er tilføjet et tilfældigt antal tegn af passende længde til kodeordet, inden det er suset gennem den algoritme, som spytter hash-værdien ud. På den måde er det for en angriber ikke muligt at forudberegne hash-værdien for en hel masse kodeord, da saltet (de tilfældige tegn) vil være forskelligt fra system til system.
»... også i deres næste job«
Poul-Henning Kamp gætter dog på, at kodeord hos Telmore ikke er kørt gennem en kryptografisk hashfunktion. Og er det ikke sket, så vil kundernes kodeord også kunne tilgås i Telmores backend.
»I værste, og desværre mest sandsynlige tilfælde, gemmer de hele password uden salt og hash,« skriver Poul-Henning Kamp.
Han peger i den forbindelse på, at kodeordet godt kan være krypteret, men at der vil være en nøgle et sted i systemet, der kan dekryptere kodeordet, så det fremstår i klartekst.
Altså helt modsat den kryptografiske hashfunktion, der netop har til formål at forhindre, at hash-værdien kan tilbageføres til det oprindelige kodeord.
»Det kan naturligvis godt være krypteret, ligesom et hemmeligt brev, men så er der et master-password, som er tilgængeligt i en masse af deres inhouse apps, og som deres softwareudviklere kan udenad - også i deres næste job.«
