Facebook har opbevaret mellem 200 og 600 millioner passwords ukrypteret

Illustration: Facebook
Normalt er adgangskoder beskytter af kryptering, men Facebook har ved en fejl givet 20.000 medarbejdere adgang til ukrypterede passwords.

»Vi har fundet ud af, at nogle brugeradgangskoder har været opbevaret i et læsbart format i vores interne datalagringssystemer.«

Det er ordlyden i Facebooks blogindlæg fra i går, hvor de fortæller, at flere hundrede millioner passwords til Facebook-ejede tjenester som Facebook Lite, Instagram og Facebook selv har været opbevaret ukrypteret ved en fejl.

Ifølge The Verge blev svipseren oprindeligt opdaget af Krebs on Security.

Facebook understreger i deres blogindlæg, at adgangskoderne aldrig har været synlige for nogen udenfor Facebook, og at »de endnu ikke har fundet beviser for«, at nogen internt har misbrugt dem.

Men 20.000 medarbejdere har haft adgang til filerne, og mindst 2000 Facebook-ansatte har også søgt i filerne med adgangskoderne i plain text, men det fremgår ikke hvorfor, skriver The Verge.

Facebook vil nu kontakte de brugere, hvis passwords har været omfattet af den ukrypterede lagring. Men brugerne vil ikke blive påkrævet at ændre deres password.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (12)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Jensen

Det er mig uforståeligt hvordan det er sket, hvis ikke med vilje.

Hvis en bruger opretter en FB account, sker det vel over en sikker forbindelse og password bliver vel gemt krypteret med det samme.
Hvis FB så undervejs i den process opsnapper og gemmer password, har de brudt en vigtig sikkerhedsregel.

Lige meget hvad FB melder ud nu, bør alle ændre password omgående.
Og husk, en gylden regel vi har lært over årene er aldrig at bruge et password mere end et sted.

  • 3
  • 0
Michael Cederberg

Passwords skal ikke krypteres ... de skal gennem en one-way hash og kun det hashede gemmes. Der kan være (ikke specielt gode) grunde for store virksomheder som har 50 års legacy systemer på mange forskellige platforme til at gemme interne brugeres passwords krypteret. Men ikke externe brugeres (dvs. kundernes) logins.

  • 7
  • 0
Chano Andersen

Hvordan skulle hashing på brugerens computer øge sikkerheden?

Det er muligt jeg kun kan opsnappe din hash ved at lytte med på trafikken, men det er stadig den værdi facebook bruger til at validere dit login, og dermed har jeg information nok til at logge på din konto.

Hvis dit password er "correcthorsebatterystable", og den tilsvarende SHA1 af den er "ca16ce18e0877508a32cd678de36c44982930e29", og denne hash gemmes hos facebook ukrypteret, er det præcis lige så sikkert, som at gemme et ukrypteret password.

Selvom facebook så hashede værdien en gang til, inden de smider den i databasen, er det stadig en forringelse af sikkerheden, da hashværdien "893c0b1e33cfd37e1a192a6bf79bc032de668d85" godt nok ikke er dit egentlige password, men med kun a-f og 0-9 er keyspace ved et bruteforce angreb VÆSENTLIGT reduceret, i forhold til hvis det var dit egentlige password man skulle bruteforce.

  • 4
  • 1
Bjarne Nielsen

Hvordan skulle hashing på brugerens computer øge sikkerheden?

Jeg antager at OT her bruger ordet "hash" i løsere betydning, idet man ikke bør bruge en hashfunktion som f.eks. SHA1 til det formål.

Hvis vi lige antager, at der ingen man-in-the-middle er, så er der vel i hvertfald to problemer ved at den anden part - her FB - får en kopi af dit password (eller en simpel hash af samme):

  1. Når man er menneske og genbruger password, så vil manglende sikkerhed hos FB ikke bare kompromitere dig i forhold til FB, men også i forhold til en række andre steder.
  2. Når man er menneske og bruger forskellige passwords, men kommer til at forveksle dem ifm. login, så man bruger Google passwordet til Facebook, så har FB nu fået en kopi. Som de lover at glemme straks, mmm, mmm!

Så i stedet for at udregne hash(password) og sende det til FB, så kan du udregne hash(password|siteid) og sende det til FB.

Det løser selvfølgelig ikke problemet med, at er du blevet kompromiteret af FB i forhold til andre, så har de frit løb til at impersonere dig i forhold til FB. FB bør derfor stadig tage din hash, og køre den igennem den sædvanlige mølle med salt etc., så der ingen nem vej er fra deres registrering og tilbage til det, som sendes over linjen.


Men istedet for at have hele denne diskussion om hash, hvem som skal have hash, lapper på hash, og god hash vs. dårlig hash, hvorfor så ikke bruge det hjul, som allerede er opfundet: "Secure Remote Password protocol" aka. SRP? Jeg citerer lidt fra Wikipedia:

Furthermore, being an augmented PAKE protocol, the server does not store password-equivalent data. This means that an attacker who steals the server data cannot masquerade as the client unless they first perform a brute force search for the password.

The SRP protocol has a number of desirable properties: it allows a user to authenticate themselves to a server, it is resistant to dictionary attacks mounted by an eavesdropper, and it does not require a trusted third party. It effectively conveys a zero-knowledge password proof from the user to the server. In revision 6 of the protocol only one password can be guessed per connection attempt.

Det lyder som om, at det var det, som OT skulle have spurgt om. Findes der er en JS implementation af det? Tja, prøv at spørge Google, Bing eller DDG. Eller kig forneden i den artikel hos Wikipedia, som jeg linkede til.

  • 1
  • 0
Kjeld Flarup Christensen

Har vi nogle .js-libraries, der kan gøre det, så hashingen sker ude hos brugeren og det ukryterede password dermed aldrig forlader brugerens udstyr?


Som andre har påpeget, så svarer det til at dit hash er password, som således blive ukrypteret.

Men ja der findes protokoller der gør noget i den stil.
SIP til IP telefoni, virker ved at serveren sender en "nonce" ud til klienten, som så krypterer password med noncen. Problemet med protokollen er dog at serveren er nødt til at kende password, og så er vi ligevidt.

Det der måske kan gøre det, er at serveren sender en challenge, som brugeren krypterer med en private key. Serveren afkoder så svaret med public key og tada. Ulempen her er så at brugeren skal slæbe rundt på en private key.

Man kan så i challenge medsende private key i krypteret form, hvor brugeren så kan dekryptere med password, og så er vi faktisk hjemme.

Der må da være nogen som har lavet sådan et system.

  • 0
  • 0
Martin Storgaard Dieu

Hvordan skulle hashing på brugerens computer øge sikkerheden?

Du har ret i at det ikke vil øge sikkerheden i dette tilfælde. Men som Torben Jensen skriver:

Og husk, en gylden regel vi har lært over årene er aldrig at bruge et password mere end et sted.

Og man kan næsten antage at den almene bruger ikke er blevet klogere, så det gør de nok ikke. Jeg har tidligere brugt crypto-js/pbkdf2 på klientsiden med et salt per bruger. Det løser problemet med genbrugte adgangskoder og sikre at adgangskoderne har en sådan længde/entropi at det ikke er gennemførligt at lave et brute force angreb. På server side er det naturligvis samme procedure som ellers.

  • 0
  • 0
Michael Cederberg

Selvom facebook så hashede værdien en gang til, inden de smider den i databasen, er det stadig en forringelse af sikkerheden, da hashværdien "893c0b1e33cfd37e1a192a6bf79bc032de668d85" godt nok ikke er dit egentlige password, men med kun a-f og 0-9 er keyspace ved et bruteforce angreb VÆSENTLIGT reduceret, i forhold til hvis det var dit egentlige password man skulle bruteforce.

Det er fuldstændigt ligegyldigt om der kun er brugt tegnene 0-f så længe hashværdien er stor nok. Når mennesker bruger passwords der er længere end ca. 8 tegn, så er der mønstre i det valgte. Fx. ord, substituering af tegn, tekster fra bøger, whatever. Disse reducerer entropien i det valgte password. Mennesker kan ikke huske rigtigt lange helt tilfældige passwords.

Såfremt input til hash algoritmen har tilstrækkelig høj entropi, så er entropien ved SHA1 på 160 bits. Der er meget få mennesker der kan huske passwords med 160 bits entropi.

At lave brute force på et 160 bits keyspace er ikke muligt i dag og der er ikke noget på radaren der gør det muligt. Hvis man er bekymret, så kan man gå til SHA-256 eller 512.

  • 3
  • 0
Mogens Lysemose

Jeg har hundredevis af passwords på mange forskellige platforme (arbejdstelefon, privattelefon, arbejdspc, privatpc, xbox) og til mange forskellige systemer online.
Jeg prøver at bruge forskellige koder men så glemmer jeg mange af koderne igen.
Mine arbejdsredskaber (PC+telefon) kræver at jeg ændrer koder hver 83 dag eller oftere. Der er mange systemer på arbejdet som har hver deres password.

Hvor mange her synes passwords er den perfekte løsning på problemet at sikre at det kun er mig der logger ind som mig?

  • 1
  • 0
Hans Nielsen

Har bruger intern kunne få adgang til facebooks brugers profier. Eller har password være brugt til dette.

Det jeg synes lugter lidt, er at det ser ud til at de her password, er en del af en gruppe konti som bevist ikke er beskyttet. Så sprøgmålet er, hvad har en uautiseret tilgang til konti været brugt til, enten internt eller måske enda udlevere til andre uden for facebook. ?

  • 0
  • 0
Martin Storgaard Dieu

Hvor mange her synes passwords er den perfekte løsning på problemet at sikre at det kun er mig der logger ind som mig?

Jeg bruger en password manager. Så i princippet har jeg kun én adgangskode, som så giver en unik adgangskode per site. Jeg er personligt meget mere til passwordless login som fx Wolt har. Jeg er dog lidt i tvivl om hvordan man så for inkoroperet multi-factor login.

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize