Как се разбиват паролите?

Профилите рядко биват компрометирани по начина, показан във филмите. В реалността паролите се придобиват по един от три начина. Те биват разбити: изчислени чрез последователно изпробване на варианти, обикновено срещу база от откраднати хешове на пароли от дадена услуга. Биват откраднати: въведени във фалшива страница или прихванати от зловреден софтуер. Или биват преизползвани: нападателите взимат парола от по-ранно изтичане на данни и я тестват в други услуги, разчитайки, че собственикът я е задал и там. Разликата е съществена, защото всеки метод изисква различен начин на защита. Тази статия разглежда основните методи и посочва какво помага срещу всеки от тях.

Преизползвани пароли от изтичане на данни

Всяка година различни услуги биват пробивани и потребителските им бази се озовават за продажба или се споделят свободно. Нападателите взимат двойките имейл адрес и парола от едно изтичане и ги тестват автоматично в банки, пощенски услуги, магазини и социални мрежи — атака, известна като вмъкване на откраднати данни (credential stuffing). Тя не включва никакво отгатване и работи поради проста причина: хората използват едни и същи пароли на различни места. Дори силната парола не помага тук, ако е същата навсякъде.

Какво помага: различна парола за всеки акаунт, така че пробив в една услуга да не отваря нищо друго.

Фишинг

Фишинг страницата е точно копие на истинска страница за вход, но с малко по-различен уеб адрес, до който се стига чрез връзка в имейл или съобщение със спешен тон: блокиран профил, пратка, неплатена сметка. Всичко, което въведете там, отива директно при нападателя. Дължината и произволният характер на паролата нямат никакво значение, тъй като я въвеждате сами.

Какво помага: отваряйте сайтовете от собствените си запазени отметки, а не чрез препратки. Използвайте мениджър на пароли: той предлага попълване на парола само на точния адрес, за който тя е записана; ако не предлага запазената парола, проверете адреса, преди да я въведете на ръка. Включете и двуфакторна автентикация, която прави откраднатата парола недостатъчна сама по себе си. Еднократните кодове обаче също могат да бъдат прихванати чрез фишинг подобно на паролата. За разлика от тях, ключовете за достъп и хардуерните ключове за сигурност FIDO2 не могат да бъдат прихванати по този начин, защото отговарят само пред автентичния сайт — разграничение, което NIST нарича устойчивост срещу фишинг.

Зловреден софтуер

Програмите, известни като инфостийлъри, копират запазените в браузъра пароли заедно със сесийните бисквитки и ги изпращат секунди след стартирането си, докато кейлогърите записват всеки натиснат клавиш. Откраднатата сесийна бисквитка може да осигури на нападателя достъп до вече вписан акаунт без въвеждане на парола и без преминаване през втория фактор. Такъв софтуер обикновено прониква чрез пиратски програми, фалшиви актуализации и прикачени файлове в имейли.

Какво помага: инсталиране на софтуер само от официални източници, редовно обновяване на операционната система и браузъра и третиране на неочакваните прикачени файлове като враждебни — макар нито едно от тези действия да не е абсолютна гаранция. Ако дадено устройство е било заразено, действайте от друго, напълно чисто устройство: сменете паролите, използвайте опцията за изход от всички активни сесии във всяка услуга и проверете дали имейлът за възстановяване, телефонният номер и настройките за двуфакторна защита все още са ваши. Почистете заразеното устройство, преди да се впишете отново през него.

Налучкване във формата за вход

Директното изпробване на пароли в уеб сайт е бавен процес: добре защитената платформа въвежда забавяне, блокира заявките или изисква captcha след няколко грешни опита. Това прави постоянния натиск върху един акаунт неефективен, затова масовият подход е обратният: шепа от най-популярните пароли — 123456, password, qwerty123 — се тестват срещу милиони различни акаунти, което се нарича разпръскване на пароли (password spraying). Целевото налучкване работи по същия начин с лични данни: имена на деца и домашни любимци, рождени дни, любим отбор — все неща, които лесно се откриват в социалните мрежи.

Какво помага: всяка парола, която не е сред масовите и не е съставена от факти за вас — вижте как да създадете силна парола.

Разбиване на пароли от откраднати хешове офлайн

Правилно изградената услуга не съхранява паролите в четим вид. Тя пази хешове — резултата от еднопосочна функция, от която оригиналната парола не може да бъде възстановена по обратен път. Когато такава база данни изтече, нападателите тестват възможните пароли: те изчисляват хешовете на кандидат-паролите на собствен хардуер и сравняват резултатите. Няма форма за вход, която да ги забавя, и скоростта зависи единствено от избраната от услугата хеш функция и нейните настройки. При бързи и остарели функции като MD5 една съвременна графична карта изпробва десетки милиарди комбинации в секунда. Функциите, специално създадени за съхранение на пароли — Argon2id или bcrypt в по-старите системи, — умишлено са бавни и намаляват тази скорост с много порядъци, поради което актуалните препоръки посочват именно тях.

Речникови атаки

Кандидатите за проверка не се избират случайно. Инструментите за разбиване започват със списъци от реални пароли от предишни изтичания и речници с думи и имена, след което прилагат правила, имитиращи човешките навици: главна начална буква, година или удивителен знак накрая, замяна на буква с подобен символ. Парола като Summer2024! изглежда сложна, но се оказва сред първите тествани варианти. Осоляването (salting) — добавянето на уникална случайна стойност към всяка парола преди хеширането — пречи на нападателите да използват предварително изчислени таблици (известни като дъгови таблици) и да разбият всички еднакви пароли наведнъж, но не прави една предвидима парола по-малко предвидима.

Атака с груба сила

Когато речниците се изчерпят, остава изпробването на всяка възможна комбинация и при случайно генерирана парола дължината е факторът, който решава изхода. За илюстрация нека вземем бърза хеш функция и парола, в която всеки символ е избран независимо и с еднаква вероятност измежду 94-те печатаеми символа от ASCII таблицата без интервала. Съществуват около 6 × 1015 такива пароли с дължина от 8 знака; при скорост от десет милиарда опита в секунда пълното им изчерпване отнема около една седмица, а средно правилният вариант се открива за половината от това време. За 12 знака проверката на всички варианти на същия хардуер би отнела около 1,5 милиона години, а за 16 числото е отвъд всяко реалистично сравнение. Това е целият аргумент в полза на дългите случайни пароли: речниците са почти безполезни срещу тях, а пълният пребор при тези условия е практически невъзможен. Нашият генератор на надеждни пароли ги създава във вашия браузър и показва очакваната ентропия за всяка в битове.

Какво помага: дълга парола без никакъв човешки модел в нея, което на практика означава машинно генерирана парола. Вие не контролирате как дадена услуга съхранява паролата ви, затова приемете най-лошия сценарий и изберете такава, която устоява на отгатване дори при съхранение с бърза хеш функция.

Наблюдаване и социално инженерство

Най-старите методи не изискват никаква технология. Паролата се вижда през рамото, прочита се от листче на монитора или се вижда от споделен екран при видеоразговор; или нападателят просто я поиска, представяйки се за служител по поддръжката или колега — похват, известен като социално инженерство. Нито една легитимна услуга никога няма да поиска паролата ви по телефона, по имейл или в чат.

Какво помага: никога не казвайте и не изпращайте паролата си на никого и не я дръжте на видимо за другите място.

Обобщение

Различните атаки изискват различни защитни навици, като три от тях покриват най-съществената част: уникална парола за всеки профил, машинно генерирана, а не измислена, съчетана с двуфакторна автентикация — или ключ за достъп вместо парола там, където услугата го поддържа. Те не покриват абсолютно всичко — например открадната активна сесия, — поради което съветите за защита от зловреден софтуер по-горе също са от ключово значение. Още статии ще откриете в материалите за пароли.