21:23
29/7/2012

Na koniec weekendu, który większość z was zapewne spędziła w supermarketach i galeriach handlowych, uśmiechnijmy się do Tesco:

Jak Tesco przechowuje hasła?

Tak oto brytyjskie Tesco uspokaja klientów, którzy denerwują się, że sklep odsyła im hasła jawnym tekstem przez e-mail.

Tesco i hasła - fail

Tesco i hasła – fail

Przesyłanie haseł jawnym tekstem zazwyczaj oznacza że:

  • również w bazie danych są one trzymane jawnym tekstem (a to oznacza spory kłopot przy wycieku bazy, np. poprzez popularne ataki SQL injection albo włamanie na serwer deweloperski)

    lub

  • serwis korzysta z kryptografii symetrycznej (a więc gdzieś na serwerze zapisany jest klucz, którym można “odszyfrować” wszystkie hasła — znów, w przypadku włamania na serwer, atakujący w mgnieniu oka rozszyfruje wszystkie hasła) lub asymetrycznej, przechowując gdzieś klucz prywatny.
Dlaczego lepiej solić i hashować hasła, możecie przeczytać tutaj.

Wracając do Tesco — pomarańcze soczyste i hasła są czyste ;)

Przeczytaj także:

41 komentarzy

Dodaj komentarz
  1. A w Polsce nie lepiej, dostawczaki tesco bez świateł stopu (tak, tak, wszystkich trzech!), wyprzedzają nieprzepisowo. Prędkości się nie czepiam, święty nie jestem ]:->

    Jakby ktoś zauważył, to radzę uważać – chociażby taki zdezelowany Mercedes na tablicach WD

    • Ale chociaz dzieki temu kazdy swieze warzywka dostaje ;)

    • A przez to też może się w warzywka zamienić.

  2. kiedy oni wpadną na genialny pomysł kodowania w md 5 ?

    • oby nigdy (przynajmniej jeśli chodzi o md5)

    • God dammit, zapomniał o SHA?

    • SHA jest bezpieczne, odczep się.

  3. “również w bazie danych są one trzymane jawnym tekstem (a to oznacza spory kłopot przy wycieku bazy, np. poprzez popularne ataki SQL injection albo włamanie na serwer deweloperski)”

    Niekoniecznie.

    “serwis korzysta z kryptografii symetrycznej (a więc gdzieś na serwerze zapisany jest klucz, którym można “odszyfrować” wszystkie hasła — znów, w przypadku włamania na serwer, atakujący w mgnieniu oka rozszyfruje wszystkie hasła)”

    Niekoniecznie.

    • Mógłbyś rozwinąć? jestem ciekaw jakie masz rozwiązanie na te wydawałoby się nierozwiązywalne problemy.

    • Zgadzam się, że niekoniecznie — kiedyś była taka moda, żeby użytkownikowi przesłać na maila “jawne hasło” (powiedzmy “moje_super_haslo_2012”) i jednocześnie w bazie danych je zakodować jako MD5/SHA1 :)

    • Ależ bardzo proszę – dane trzymasz w bazie danych zaszyfrowane kluczem publicznym (mniejsza o algorytm). Czyli jak chcesz uwierzytelnić użytkownika, to bierzesz input ze strony, szyfrujesz i porównujesz.

      Na innym serwerze masz serwer SMTP i klucz publiczny – jak chcesz wysłać userowi hasło, to wysyłasz na serwer pakiecik danych. Dane te serwer odszyfrowuje kluczem prywatnym, wsadza w mail i wysyła.

      Oczywiście wymyśliłem to na szybko i bez zbędnych szczegółów tylko po to, żeby wykazać, że szumne teksty ‘A’ oznacza, że ‘B’ z założeniem bieda sklepu pt. “wszystko na jednej maszynie” wcale nie oznaczają, że tak jest naprawdę.

    • there, I fixed that for you :)

    • A po włamaniu na serwer A można wysłać hasło użytkownika na dowolne konto? Równie dobrze mogło by tam być plaintekstem. Skoro “przypominają” hasło zamiast wygenerować jednorazowe coby użytkownik na nowo ustawił własne to znaczy że bezpiecznie tam nie jest. Zwłaszcza jeśli te maile z “stałym” hasłem nie są szyfrowane.

    • @sig:
      Szczegóły mojego rozwiązania mogę ci wyłożyć w detalach w czasie płatnych konsultacji. Zainteresowany?

      Zresztą – czy ja twierdziłem, że tam jest bezpieczenie?

    • @sig zakładam, ze @c nie pochwala/broni trzymania haseł w plaintext, tylko wskazuje, że lista w artykule nie wyczerpuje wszystkich metod przechowywania haseł prowadzących do wysłania plaintekstu użytkownikowi. I ma racje, ale _zazwyczaj_ spotyka się 2 wymienione w artykule lub ich pochodne. Jeśli ktoś *rzeczywiście* zaimplementował inne, nieopisane tutaj rozwiązanie, z chęcią o nim usłyszymy.

      A taraz, @c, potwierdź, że wysyłanie haseł w plaintext to niezbyt dobry pomysł, bo zaraz wezmą cię za szarlatana ;)

    • No więc uważam, że wysyłanie hasła w plaintext to świetny pomysł. Pod warunkiem, że cały mail jest zaszyfrowany. :)

      A teraz na poważnie – najprawdopodobniej faktycznie tesco ma do dupy rozwiązanie i wysyłanie hasła plaintextem jest zwykle złym pomysłem. AAAAle jestem w stanie sobie wyobrazić sytuację, gdzie było to jednym z wymagań (np. hasło użytkownika jest też kluczem do algorytmu szyfrującego jego dane w jakimś tam serwisie).

      Tylko chciałem przestrzec przed jedynym słusznym punktem widzenia i otwarciem się na inne możliwości

    • Chciałbym w tym miejscu zauważyć, że szyfrowanie asymetryczne bez paddingu (np. OAEP), albo symetryczne ze stałym IV, jest Bardzo Złym Pomysłem. Pozwala zbudować rainbow tables dla danego celu, więc w zasadzie działa tak samo, jak hash bez soli.

  4. Hasła w plain texcie będą trzymać do pierwszego wycieku.
    Potem programiści nauczą się “MD5” i soli :)

  5. HBO GO ma ten sam zwyczaj przypominania hasła …. dosłownie :/

  6. Czy nie ma jakiegoś miejsca, gdzie można by zgłaszać wszystkie serwisy trzymające hasła w plain text’cie? Jak mnie to denerwuje, gdy po rejestracji w jakimś serwisie dostaje e-mail z “podziękowaniem” z dodatkową wiadomością “to jest Twoje hasło i login”.

    Coś takiego powinno dawać -10 do PR.

    • Ci co wysyłają takie maile niekoniecznie muszą przetrzymywać je w plain.
      Taki mail może być generowany przed dodaniem hasła do bazy, a po wysłaniu maila hasło jest hashowane i dodawane już w postaci hasha do bazy

    • @SebQ – łatwo sprawdzić czy tak jest. Po założeniu konta kliknij na “przypomnij hasło” i jeśli jest tak jak mówisz, nie dostaniesz hasła w plaintext (poza pierwszym e-mailem tuż po założeniu konta).

    • @SebQ – nawet jeśli tak jest, to rozgłoszenie hasła całemu światu (nieszyfrowany mail) przed jego zahashowaniem jest IMHO mimo wszystko średnio sensowną taktyką.

      BTW – równie bezpieczny sposób “dystrybucji” haseł ma portal, gdzie wysyła się CV aplikując do jednej takiej wielkiej korporacji, która zajmuje się m.in. doradztwem w zakresie bezpieczeństwa. Ilu to ciekawych rzeczy człowiek się dowiaduje, gdy zapomni hasła ;)

    • http://plaintextoffenders.com/

  7. Podobnie PKP Intercity. Ciekawe, czy tak samo bezpiecznie przechowują dane finansowe do zakupu biletów.

  8. Przypominanie hasła powinno być już dawno przeżytkiem. Po co w ogóle supermarketowi system logowania?

    • Zakupy przez Internet

    • A zanim dostaniesz te zakupy, zdążą zgnić (kurier zwykle na drugi dzień przychodzi a w dhl czy innym UPS nie mają lodówek)

    • @Darek: w UK starają się przywieźć zakupy w ciągu 15 minut od momentu złożenia zamówienia…

  9. Hasła można też przypominać tak jak mi pewien sklep kiedyś przysłał w MD5 ;)

    • Hahaha, poważnie? :D Mogli dorzucić linka do rainbow tables :D

  10. Ostatnie zdanie rozwala. :)

  11. Bcrypt

  12. Na jakiej zasadzie działają systemy logowania, w których podaje się wybrane losowo znaki z hasła, jak np. przy logowaniu do ING banku, da się uniknąć trzymania całego hasła w bazie w takim przypadku? Ma to jakąś fachową nazwę?

    • Fachowej nie ma – w skrócie per użytkownik masz pre-generowane hashe dla n typowych układów w haśle maskowanym. Czyli jak podajesz hasło to system generuje hasha dla: 3 pierwsze znaki, potem 5, potem 7 itd. Potem, jak się uwierzytelniasz to dostajesz pre-generowany układ znaków do wpisania, system zamienia to na hash i porównuje z bazą (wybierając oczywiście hash dla danego układu). Szczegóły mogą się różnić w zależności od implementacji (np. czasami za zaciemnione pola podstawia się X, czasami wprost skleja podane znaki (chociaż to głupi pomysł), a czasami jeszcze inne rzeczy się z tym robi).

    • Akurat. Myślę że banki trzymają to po prostu tekstem jawnym. Telekomy to nawet życzą sobie aby podawać PIN w rozmowie telefonicznej i to jeszcze jak oni dzwonią z zastrzeżonego(np. PLAY). Pozatym co to za fetysz aby wszystko haszować? :)

    • O haslach maskowanych – http://wampir.mroczna-zaloga.org/archives/303-hasla-maskowane-sa-zle.html

    • @c
      Czemu sklejanie to głupi pomysł?
      Maskowanie jest po to żeby malłer musiał podsłuchać kilka razy, a nie raz żeby poznać hasło?

    • @Dex:
      Rozumiem, że zaraz podasz nam źródło tych rewelacji, bo to przcież niemożliwe, żeby jakiś anonimowy łoś z internetu tak sobie po prostu rzucał oskarżenia od czapy.

      @zzz1986@o2.pl:
      Wyobraź sobie, że masz hasło ‘aabbccdd’ – sklejenie 1,3,5,7 da taki sam hash jak sklejenie 2,3,5,7 (wygeneruj sobie wszystkie pozostałe kombinacje). Po prostu przy sklejaniu gubisz pozycję znaków w haśle i wygenerowany hash dla źle podanych znaków może się okazać przypadkiem prawidłowy.

  13. Oczywiście wysyłanie hasła plaintexcie, nawet przed zahashowaniem nie jest mądrą metodą i mnie też denerwuje kiedy dostaję maila o treści takiej, jak napisał Krzysztof Szumny.

    Czy naprawdę nie można się oprzeć przed wysłaniem hasła w mailu witającym?
    Czy w przypadku zapomnienia hasła tak trudno wygenerować nowe i je wysłać?

  14. W nawiązaniu do artykułu: https://niebezpiecznik.pl/post/tesco-hasla-i-marketing-bullshit/ informuję, że strona https://importer.paczkawruchu.pl/ 1. przypomina hasła czystym tekstem, 2. nie można zmienić hasła!!!!!!!! 3. nie można usunąć konta.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: