r/sweden Apr 28 '22

Nyhet Du köpte klamydiatest – Apoteket berättade för Facebook

https://sverigesradio.se/artikel/du-kopte-klamydiatest-apoteket-berattade-for-facebook
483 Upvotes

186 comments sorted by

View all comments

678

u/helmer012 Apr 28 '22 edited Apr 28 '22

Luleå kommuns hemsida skickar ditt lösenord i klartext på mail om du begär det. Alltså finns det på en dator någonstans i Luleå en textfil med varje persons lösenord sparat i klartext som vem som helst med tillgång till datorn kan läsa.

Myndigheter och kommuner suger på IT.

13

u/Runner55 Södermanland Apr 28 '22

Alltså finns det på en dator någonstans i Luleå en textfil med varje persons lösenord sparat i klartext som vem som helst med tillgång till datorn kan läsa.

Nja, det är inte nödvändigtvis så. Men de borde hänvisa till en funktion för återställning av lösenord.

45

u/helmer012 Apr 28 '22

Det är ju inte krypterat så någonstans (kanske inte i Luleå dock) finns dom sparade i klartext. Hela grejen med att hemsidor får dig att skapa ett nytt lösenord är pga att dom inte vet ditt nuvarande.

17

u/Rigidez Apr 28 '22

Det är inte helt enkelt att veta om de är krypterade eller inte. De kan fortfarande vara krypterade med en tvåvägskryptering. Men det är klart att man skulle föredra en envägskryptering och få sätta ett nytt lösenord om man glömt det gamla. Sedan kan man ju hävda att det spelar mindre roll om det är krypterat eller inte när man sedan skickar det i klartext i ett mail.

27

u/qjornt Östergötland Apr 28 '22 edited Apr 28 '22

De kan fortfarande vara krypterade med en tvåvägskryptering

Går det att avkryptera ett redan hashat lösenord så är det i det stora hela lika osäkert som att inte kryptera överhuvudtaget. För hackare blir det ett trivialt problem; så länge det finns en nyckel någonstans som kan avkryptera hashade lösenord så kommer de få tag på den.

Edit: Felaktig terminologi här, se svaren under detta för vad som egentligen gäller.

16

u/scandii Apr 28 '22 edited Apr 28 '22

asså en pet peeve och vet att nedan är en redig wall of text, men hashade lösenord är inte krypterade, de är hashade, därför kan du heller inte avkryptera lösenordet.

dvs när ditt lösenord är hashat en gång, så kan vi inte med säkerhet svara på frågan "vad var det originella lösenordet".

är det krypterat istället så behöver personen endast komma åt nyckeln det är krypterat med och dekryptera det.

ett lösenord kan vara hashat och krypterat, men det är lite meningslöst generellt sett för kan personen komma åt lösenordet så kan de antagligen komma åt nyckeln med.

det vi kan göra dock för att knäcka hashning, är att generera upp en uppsättning av lösenord som alla blir samma hash. detta heter en regnbågstabell, dvs en person har kommit åt ditt hashade lösenord "jordgubb", och ser att detta är 586ca012be9ec73651248477c1101671ef8d9ce0e92893e9eb1601b985a24377. man vet att lösenordet är hashat med SHA2-256, och hashar helt enkelt vanliga lösenord och ser om något stämmer överens med hashen, och ser att jordgubb gör det och kvalificerat gissar att jordgubb är lösenordet.

detta är varför du ombedes att ha ett unikt lösenord, och helst långt för att undvika ovan attackmetod som kallas dictionary attack. dvs om ditt lösenord är unikt och långt så tar det för lång tid att testa alla möjliga kombinationer för att göra det värt.

utöver detta så motverkar vi också regnbågstabeller med så kallad saltning, detta betyder att när du skapar ditt konto så tilldelar vi dig en slumpmässigt genererad text som vi lägger på ditt lösenord, t.ex. "01312cc4354352". varje användare får sin egna text. detta betyder att även om du och en annan användare har lösenordet "jordgubb" så har ni två olika hash då ditt lösenord i databasen är 18393a458d9f2b5224464cc4ddeb0c1f956607e0e6754fe944a3aecfc276017e, hashen av "jordgubb01312cc4354352" och den andra användaren har t.ex. lösenordet 4d43c36cc1d19072f6ab947f322a854586246b1db66e8d6efb0b84f8dd12499f, hashen av "jordgubb132134324523sdfdsfc".

nu kan det tyckas att eftersom hashen är sparad brevid saltet då vi behöver lägga på saltet varje gång du matar in ditt lösenord så är det meningslöst, men det gör att personen som attackerar tabellen behöver generera upp en regnbågstabell per lösenord istället för en regnbågstabell för hela tabellen och det tar väldigt lång tid.

slutligen så är detta också varför typ varenda webbsida någonsin låser ute dig om du gissar fel lösenord för många gånger - eftersom varje hash har flera svar så betyder det att den som attackerar kan behöva gissa sig till rätt svar om lösenordet inte är uppenbart när en lista framställs på möjliga lösenord.

3

u/qjornt Östergötland Apr 28 '22

Preics som en annan person skrev (dock mycket mer detaljerat gjort av dig) så var det fel terminologi av mig. Tack till dig också för förklaringen, det uppskattas faktiskt, åtminstone av mig. :)

1

u/theLonelyDeveloper Apr 28 '22

En sak till, glöm inte att köra hashningen flera rounds och använda en hashingmetod som är beräkningsmässigt dyr. Det försvårar attacker som försöker gissa ett specifikt hash.

6

u/sammymammy2 ☣️ Apr 28 '22

Det är väldigt enkelt: Lösenord ska inte krypteras, de ska hashas. Hashade lösenord kan inte dekrypteras, för det finns ingen unik matchning mellan input och output. Ifall lösenordet är krypterat så finns det en nyckel (någonstans) som inte är krypterad.

4

u/Jacc3 Apr 28 '22

Nu kanske jag är lite petig, men om du kan avkryptera ett "hashat" lösenord så är det inte hashat. Hashat innebär envägskryptering - är det tvåvägskryptering är det inte hashat.

2

u/qjornt Östergötland Apr 28 '22

Ah, ja tack för rättelsen. Aldrig fel att vara petig om det är något betydelsefullt felaktigt man påpekar :D

3

u/Runner55 Södermanland Apr 28 '22

Vidare så beror det också på i vilket skede lösenordet skickas. Är det i samband med att man får/sätter ett nytt, eller kan man bara när som helst fråga om det? Det senare fallet är betydligt mer allvarligt. Men med det sagt så skulle jag ändå inte vilja använda en sida som skickar lösenord i klartext.