17Aug

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

enter-your-heslo

"Včera sme ukradli našu databázu hesiel. Ale nebojte sa: vaše heslá boli zašifrované. "Pravidelne vidíme vyhlásenia, ako je tento online, vrátane včera aj od spoločnosti Yahoo. Ale mali by sme skutočne vziať tieto záruky v nominálnej hodnote?

Realita je, že heslá v databáze kompromisy obavy, bez ohľadu na to, ako sa spoločnosť môže pokúsiť to točiť.Existuje však niekoľko vecí, ktoré môžete urobiť, aby ste sa izolovali, bez ohľadu na to, aké zlé sú bezpečnostné postupy spoločnosti.

Ako by sa mali ukladať heslá

Tu je postup, ako by spoločnosti mali ukladať heslá v ideálnom svete: Vytvorte si účet a zadajte heslo. Namiesto samotného uloženia hesla služba generuje z hesla "hash".Jedná sa o jedinečný odtlačok prsta, ktorý sa nedá zvrátiť.Napríklad heslo "heslo" sa môže zmeniť na niečo, čo vyzerá viac ako "4jfh75to4sud7gh93247g. ..".Keď zadáte svoje heslo na prihlásenie, služba generuje hash z neho a skontroluje, či hodnota hash zodpovedá hodnote uloženej v databáze. V žiadnom okamihu služba nikdy neuloží heslo na disk.

kryptografický-hash-funkciu

Ak chcete určiť svoje skutočné heslo, útočník s prístupom k databáze bude musieť predbežne vypočítať 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é zoznamy hash, ktoré zodpovedajú heslám. Háčky je potom možné porovnať s databázou. Napríklad, útočník by poznal hash pre "heslo1" a potom zistiť, či akékoľvek účty v databáze používajú tento hash. Ak sú, útočník pozná, že ich heslo je "heslo1".

Aby sa tomu zabránilo, služby by mali "soľovať" ich hash. Namiesto vytvorenia hash z samotného hesla pridá pred nábehom hesla náhodný reťazec do prednej alebo koncovej časti hesla. Inými slovami, používateľ by zadal heslo "heslo" a služba by pridala soľ a hash heslo, ktoré vyzerá skôr ako "password35s2dg." Každý užívateľský účet by mal mať svoju vlastnú unikátnu soľ a to by zabezpečilo, že každý užívateľský účetby mala inú hodnotu hash pre svoje heslo v databáze. Aj keď viaceré účty používali heslo "heslo1", mali by mať rôzne hash kvôli rôznym hodnotám soli. Toto by porazilo útočníka, ktorý sa pokúsil predbežne vypočítať heslá pre heslá.Namiesto toho, aby dokázali generovať hash, ktorý by sa vzťahoval na každý užívateľský účet v celej databáze naraz, museli vytvoriť jedinečné hash pre každý užívateľský účet a jeho jedinečnú soľ.Toto by vyžadovalo oveľa viac výpočtového času a pamäte.

Preto služby často hovoria, že sa nemusia obávať.Služba, ktorá používa správne bezpečnostné postupy, by mala povedať, že používajú solené heslá.Ak jednoducho hovoria, že heslá sú "hashed", je to viac znepokojujúce. LinkedIn napríklad obsahovali svoje heslá, ale nekomplikovali ich, takže to bolo veľké riešenie, keď LinkedIn v roku 2012 stratil 6,5 milióna hesiel.

Bad Password Practices

plaintext-password-database

To nie je najťažšia vec, ktorú je možné implementovať, ale mnoho webových stránokstále sa mu to podarí rôznymi spôsobmi:

  • Ukladanie hesiel v obyčajnom texte : Niektorí z najhorších delikventov môžu skôr než obťažovať hašovaním jednoducho vyhnúť heslá vo formáte obyčajného textu do databázy. Ak je takáto databáza ohrozená, vaše heslá sú zjavne ohrozené.Nezáleží na tom, aké silné boli.
  • Hashing hesiel bez ich osolovania : Niektoré služby môžu rozoslať heslá a dať sa tam, pričom sa rozhodnú nepoužívať soli. Takéto databázy hesiel by boli veľmi náchylné na vyhľadávacie tabuľky.Útočník by mohol vygenerovať hash pre mnoho hesiel a potom skontrolovať, či existujú v databáze - mohli by to urobiť pre každý účet naraz, ak sa nepoužila žiadna soľ.
  • Opätovné použitie soli : Niektoré služby môžu používať soľ, ale môžu znova použiť rovnakú soľ pre každé heslo účtu používateľa. To je zbytočné - ak by bola rovnaká soľ použitá pre každého používateľa, dvaja používatelia s rovnakým heslom by mali rovnaký hash.
  • Použitie krátkych solí : Ak sa používajú soli len niekoľkých číslic, bolo by možné vytvoriť vyhľadávacie tabuľky, ktoré zahŕňajú každú možnú soľ.Napríklad, ak bola použitá jediná číslica ako soľ, útočník by mohol ľahko vytvoriť zoznamy hashov, ktoré zahŕňajú každú možnú soľ.

Spoločnosti vám nie vždy povedia celý príbeh, takže aj keď hovoria, že heslo bolo rozbité( alebo hashované a solené), nemusí používať osvedčené postupy. Vždy sa chyťte na strane opatrnosti.

Ďalšie obavy

Je pravdepodobné, že hodnota soli je tiež prítomná v databáze hesiel. To nie je tak zlé - keby sa pre každého používateľa použila jedinečná hodnota soli, útočníci by museli minúť obrovské množstvo výkonu procesora, ktoré by porušilo všetky tieto heslá.

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

Ak má útočník to pre vás a chce si vykrojiť vaše heslo, môže to robiť s hrubou silou, pokiaľ vie o hodnote soli - čo pravdepodobne robia. Pri lokálnom, offline prístupu k databázam hesiel môžu útočníci použiť všetky útoky hrubej silou, ktoré chcú.

Ďalšie osobné údaje tiež pravdepodobne uniknú pri odcudzení databázy hesiel: používateľské mená, e-mailové adresy a ďalšie. V prípade úniku Yahoo boli bezpečnostné otázky a odpovede tiež vynechané - čo, ako všetci vieme, uľahčuje ukradnutie prístupu k účtu niekoho.

Pomoc, čo mám robiť?

Bez ohľadu na to, čo služba hovorí, keď je ukradnutá jeho databáza hesiel, je najlepšie predpokladať, že každá služba je úplne nekompetentná a koná podľa toho.

Najprv nepoužívajte heslá na viacerých webových stránkach. Použite správcu hesiel, ktorý generuje unikátne heslá pre každú webovú stránku. Ak sa útočník podarí zistiť, že vaše heslo pre službu je "43 ^ tSd% 7uho2 # 3" a používate toto heslo iba na jednom konkrétnom webe, nenašli sa nič užitočné.Ak používate rovnaké heslo všade, mohli sa dostať do vašich ostatných účtov. Takto sa počet účtov ľudí "napadne".

generovanie náhodných-password

Ak sa služba stane kompromitáciou, nezabudnite zmeniť heslo, ktoré tam používate. Mali by ste tiež zmeniť heslo na iných stránkach, ak ich znovu používate - ale nemali by ste to robiť na prvom mieste.

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

SÚVISIACE ČLÁNKY
Prečo by ste mali používať správcu hesiel a ako začať
Čo je to dvojfaktorové overenie a prečo to potrebujem?

Najdôležitejšia vec nie je opätovné použitie hesiel. Kompromitované databázy hesiel vám nemôžu ublížiť, ak používate jedinečné heslo všade - pokiaľ v databáze nie sú uložené niečo iné, napríklad číslo vašej kreditnej karty.

Image Credit: Marc Falardeau na Flickr, Wikimedia Commons