Защо трябва да се притеснявате винаги, когато базата данни с паролите на услугата е изтекла
- Вчера беше открадната базата данни за паролите. Но не се притеснявайте: паролите ви са били криптирани. ”Редовно виждаме изявления като тази онлайн, включително вчера, от Yahoo. Но трябва ли наистина да вземем тези гаранции по номинална стойност?
Реалността е, че компромисите на базата данни с пароли сте загриженост, без значение как компанията може да се опита да го завърти. Но има няколко неща, които можете да направите, за да се изолирате, без значение колко лоши са мерките за сигурност на компанията.
Как трябва да се съхраняват паролите
Ето как компаниите трябва да съхраняват пароли в идеален свят: създавате акаунт и предоставяте парола. Вместо да съхранява самата парола, услугата генерира "хеш" от паролата. Това е уникален пръстов отпечатък, който не може да бъде отменен. Например паролата "парола" може да се превърне в нещо, което прилича повече на "4jfh75to4sud7gh93247g ...". Когато въведете паролата си, за да влезете, услугата генерира хеш от нея и проверява дали стойността на хеша съответства на стойността, съхранена в базата данни. В нито един момент услугата никога не запазва паролата ви на диск.
За да определите действителната си парола, атакуващият с достъп до базата данни ще трябва предварително да изчисли хешовете за общи пароли и след това да провери дали те съществуват в базата данни. Нападателите правят това с маси за търсене - огромни списъци с хеши, които съответстват на пароли. Хешовете могат да бъдат сравнени с базата данни. Например, един хакер ще знае хеша за "password1" и ще види дали всички акаунти в базата данни използват този хеш. Ако е така, нападателят знае, че тяхната парола е „password1“.
За да се предотврати това, услугите трябва да “солят” хешовете си. Вместо да създават хеш от самата парола, те добавят произволен низ в предната или края на паролата, преди да го хешират. С други думи, потребителят ще въведе паролата „парола“ и услугата ще добави солта и хешова парола, която прилича повече на „password35s2dg“. Всеки потребителски акаунт трябва да има своя собствена сол и това ще гарантира, че всеки потребителски акаунт ще има различна хеш стойност за тяхната парола в базата данни. Дори ако няколко акаунта използват паролата „password1“, те ще имат различни хешове поради различните стойности на солта. Това ще победи атакуващия, който се опита да изчисли предварително хешовете за пароли. Вместо да могат да генерират хеши, които се прилагат за всеки потребителски акаунт в цялата база данни наведнъж, те трябва да генерират уникални хеши за всеки потребителски акаунт и неговата уникална сол. Това ще отнеме много повече време за изчисляване и памет.
Ето защо услугите често казват, че не трябва да се притеснявате. Услуга, използваща подходящи процедури за сигурност, трябва да каже, че използва солени хешове за пароли. Ако просто казват, че паролите са "хеширани", това е по-тревожно. LinkedIn хешира своите пароли, например, но те не ги солят, така че беше голяма работа, когато LinkedIn загуби 6,5 милиона хеширани пароли през 2012 г..
Практики за лоша парола
Това не е най-трудното нещо, което трябва да се приложи, но много уебсайтове все още успяват да го объркат по различни начини:
- Съхраняване на пароли в обикновен текст: Вместо да се занимаваме с хеширане, някои от най-лошите нарушители могат просто да изхвърлят паролите в обикновен текст в база данни. Ако такава база данни бъде компрометирана, паролите ви са очевидно компрометирани. Нямаше значение колко силни бяха те.
- Хеширане на паролите без тяхНякои услуги могат да хешират паролите и да се откажат от тях, като изберат да не използват соли. Такива бази данни с пароли ще бъдат много уязвими за таблиците за търсене. Нападателят може да генерира хешовете за много пароли и след това да провери дали те са съществували в базата данни - те биха могли да направят това за всеки акаунт наведнъж, ако не е използвана сол.
- Повторно използване на солите: Някои услуги могат да използват сол, но могат да използват отново същата сол за всяка парола на потребителски акаунт. Това е безсмислено - ако една и съща сол е използвана за всеки потребител, двама потребители с една и съща парола ще имат един и същ хеш.
- Използване на къси соли: Ако се използват соли само с няколко цифри, би било възможно да се генерират таблици за търсене, които включват всяка възможна сол. Например, ако една цифра е използвана като сол, нападателят може лесно да генерира списъци с хеши, които включват всяка възможна сол.
Фирмите не винаги ще ви разказват цялата история, така че дори ако казват, че паролата е била подпечатана (или хеширана и солена), те може и да не използват най-добрите практики. Винаги грешайте от страна на предпазливостта.
Други проблеми
Вероятно стойността на солта е налична и в базата данни с пароли. Това не е чак толкова лошо - ако за всеки потребител е използвана уникална солева стойност, нападателите ще трябва да похарчат огромно количество мощност на процесора, разбивайки всички тези пароли..
На практика толкова много хора използват очевидни пароли, че е вероятно лесно да се определят паролите на много потребителски акаунти. Например, ако един хакер знае вашата хеш и те знаят вашата сол, лесно могат да проверят дали използвате някои от най-често използваните пароли..
Ако хакерът го е измислил за вас и иска да пропука паролата ви, те могат да го направят с груба сила, стига да знаят стойността на солта - която те вероятно правят. С локалния, офлайн достъп до базата данни с пароли, нападателите могат да използват всичките атаки, които искат.
Други лични данни вероятно също изтичат, когато е открадната база данни с пароли: потребителски имена, имейл адреси и др. В случай на изтичане на Yahoo, въпроси и отговори за сигурност също бяха изтеглени - което, както всички знаем, улесняват кражбата на достъпа до нечий профил.
Помощ, какво трябва да направя?
Каквато и да е услуга, която казва, че когато е открадната базата данни с пароли, най-добре е да се предположи, че всяка услуга е напълно некомпетентна и да действа съответно.
Първо, не използвайте повторно паролите на няколко уебсайта. Използвайте мениджър на пароли, който генерира уникални пароли за всеки уебсайт. Ако нападателят успее да открие, че паролата ви за услуга е „43 ^ Sd% 7uho2 # 3“ и използвате тази парола само на този конкретен уебсайт, те не са научили нищо полезно. Ако използвате една и съща парола навсякъде, те биха могли да имат достъп до другите ви профили. Ето колко сметки на хора стават „хакнати“.
Ако услугата стане компрометирана, не забравяйте да промените паролата, която използвате там. Също така трябва да промените паролата на други сайтове, ако ги използвате отново - но не трябва да правите това на първо място.
Също така трябва да обмислите използването на двуфакторна автентификация, която ще ви защити, дори ако атакуващият научи паролата ви.
Най-важното не е да се използват повторно пароли. Компрометираните бази данни с пароли не могат да ви навредят, ако използвате уникална парола навсякъде - освен ако не съхранят нещо друго важно в базата данни, като номера на кредитната ви карта.
Автор на снимката: Marc Falardeau на Flickr, Wikimedia Commons