Prečo by ste sa mali obávať vždy, keď dôjde k úniku databázy hesiel služby

Obsah:

Prečo by ste sa mali obávať vždy, keď dôjde k úniku databázy hesiel služby
Prečo by ste sa mali obávať vždy, keď dôjde k úniku databázy hesiel služby
Anonim

Na určenie vášho skutočného hesla by útočník s prístupom do databázy musel vopred vypočítať hodnoty hash pre bežné heslá a potom skontrolovať, či existujú v databáze. Útočníci to robia pomocou vyhľadávacích tabuliek – obrovských zoznamov hashov, ktoré zodpovedajú heslám. Haše potom možno porovnať s databázou. Útočník by napríklad poznal hash pre „password1“a potom by zistil, či nejaké účty v databáze používajú tento hash. Ak áno, útočník vie, že jeho heslo je „password1“.

Aby sa tomu zabránilo, služby by mali „osoliť“svoje hash. Namiesto vytvorenia hash zo samotného hesla pridajú náhodný reťazec na začiatok alebo koniec hesla pred jeho hashovaním. Inými slovami, používateľ by zadal heslo „password“a služba by pridala soľ a hash heslo, ktoré vyzerá skôr ako „password35s2dg“. Každý používateľský účet by mal mať svoju vlastnú jedinečnú soľ, čím by sa zabezpečilo, že každý používateľský účet bude mať pre svoje heslo v databáze inú hodnotu hash. Aj keby heslo „password1“používalo viacero účtov, mali by rôzne hodnoty hash kvôli rôznym hodnotám soli. To by porazilo útočníka, ktorý sa pokúsil vopred vypočítať hash pre heslá. Namiesto toho, aby mohli generovať hodnoty hash, ktoré sa aplikovali na každý používateľský účet v celej databáze naraz, museli by generovať jedinečné hodnoty hash pre každý používateľský účet a jeho jedinečnú soľ. To by si vyžadovalo oveľa viac výpočtového času a pamäte.

To je dôvod, prečo služby často hovoria, že sa nemusíte báť. Služba, ktorá používa správne bezpečnostné postupy, by mala povedať, že používala osolené hash hesiel. Ak jednoducho hovoria, že heslá sú „zahašované“, je to znepokojujúcejšie. LinkedIn napríklad zahašoval ich heslá, ale neosolili ich – takže to bol veľký problém, keď LinkedIn v roku 2012 stratil 6,5 milióna hashovaných hesiel.

Postupy pri nesprávnom hesle

Obrázok
Obrázok

Nie je to najťažšia vec na implementáciu, no mnohým webovým stránkam sa to stále darí rozličnými spôsobmi pokaziť:

  • Ukladanie hesiel vo formáte obyčajného textu: Niektorí z najhorších previnilcov môžu radšej uložiť heslá vo forme obyčajného textu do databázy. Ak dôjde k ohrozeniu takejto databázy, vaše heslá sú zjavne ohrozené. Nezáležalo by na tom, akí silní boli.
  • Hašovanie hesiel bez ich prekladania: Niektoré služby môžu heslá hašovať a vzdať sa ich, pričom sa rozhodnú nepoužívať soli. Takéto databázy hesiel by boli veľmi citlivé na vyhľadávacie tabuľky. Útočník by mohol vygenerovať hodnoty hash pre mnoho hesiel a potom skontrolovať, či existujú v databáze – mohol by to urobiť pre každý účet naraz, ak by sa nepoužila soľ.
  • Opätovné použitie solí: Niektoré služby môžu používať soľ, ale môžu znova použiť rovnakú soľ pre každé heslo používateľského účtu. Je to zbytočné – ak by sa pre každého používateľa použila rovnaká soľ, dvaja používatelia s rovnakým heslom by mali rovnaký hash.
  • Používanie krátkych solí: Ak sa použijú soli len s niekoľkými číslicami, bolo by možné vytvoriť vyhľadávacie tabuľky, ktoré by obsahovali všetky možné soli. Ak by sa napríklad ako soľ použila jedna číslica, útočník by mohol ľahko vygenerovať zoznamy hashov, ktoré by obsahovali všetky možné soli.

Spoločnosti vám nie vždy povedia celý príbeh, takže aj keď tvrdia, že heslo bolo hašované (alebo hašované a osolené), nemusia používať osvedčené postupy. Vždy sa mýliť na strane opatrnosti.

Iné obavy

Je pravdepodobné, že hodnota soli je prítomná aj v databáze hesiel. Nie je to až také zlé – ak by sa pre každého používateľa použila jedinečná hodnota soli, útočníci by museli vynaložiť obrovské množstvo energie CPU na prelomenie všetkých týchto hesiel.

V praxi toľko ľudí používa jasné heslá, že by bolo pravdepodobne ľahké určiť heslá mnohých používateľských účtov. Ak napríklad útočník pozná váš hash a pozná vašu soľ, môže jednoducho skontrolovať, či nepoužívate niektoré z najbežnejších hesiel.

Ak to pre vás útočník odhalí a chce prelomiť vaše heslo, môže to urobiť hrubou silou, pokiaľ pozná hodnotu soli – čo pravdepodobne vie. Vďaka lokálnemu offline prístupu k databázam hesiel môžu útočníci použiť všetky útoky hrubou silou, ktoré chcú.

Pri krádeži databázy hesiel pravdepodobne uniknú aj ďalšie osobné údaje: používateľské mená, e-mailové adresy a ďalšie. V prípade úniku z Yahoo unikli aj bezpečnostné otázky a odpovede, ktoré, ako všetci vieme, uľahčujú odcudzenie prístupu k niekomu účtu.

Pomoc, čo mám robiť?

Čokoľvek služba povie, keď je jej databáza hesiel odcudzená, je najlepšie predpokladať, že každá služba je úplne nekompetentná a konať podľa toho.

Po prvé, nepoužívajte opakovane heslá na viacerých weboch. Použite správcu hesiel, ktorý generuje jedinečné heslá pre každú webovú stránku. Ak sa útočníkovi podarí zistiť, že vaše heslo pre službu je „43^tSd%7uho23“a toto heslo používate iba na tejto konkrétnej webovej lokalite, nedozvedel sa nič užitočné. Ak všade používate rovnaké heslo, môžu získať prístup k vašim ďalším účtom. Takto sa stanú „hacknuté“účty mnohých ľudí.

Obrázok
Obrázok

Ak dôjde k ohrozeniu služby, nezabudnite zmeniť heslo, ktoré tam používate. Heslo by ste si mali zmeniť aj na iných stránkach, ak ho tam znova použijete – ale v prvom rade by ste to nemali robiť.

Mali by ste zvážiť aj použitie dvojfaktorovej autentifikácie, ktorá vás ochráni, aj keď sa útočník dozvie vaše heslo.

Najdôležitejšou vecou nie je opätovné používanie hesiel. Napadnuté databázy hesiel vám nemôžu ublížiť, ak všade používate jedinečné heslo – pokiaľ do databázy neukladajú niečo iné dôležité, napríklad číslo vašej kreditnej karty.

Populárna téma