Старший брат следит за тобой. Как защитить себя в цифровом мире. Михаил Райтман
Чтение книги онлайн.
Читать онлайн книгу Старший брат следит за тобой. Как защитить себя в цифровом мире - Михаил Райтман страница 11
Допустим, когда-то давно на сайте http://site.ru использовалась БД, в которой хранились открытые пароли и их хеши, и она утекла к хакерам. Спустя какое-то время была украдена база данных другого сайта, скажем http://site2.ru, в которой были записаны только хеши паролей (алгоритм хеширования, естественно, тот же). Хакер сканирует базу данных http://site2.ru в поисках хешей, совпадающих с найденными в базе данных http://site.ru. Обнаружив совпадения, хакер может раскрыть соответствующие пароли в базе данных http://site2.ru, несмотря на то что там хранились только хеши (и сложность пароля здесь не играет роли).
Также хакер может формировать собственную базу хешей, даже если их нет ни в одной БД. При этом он обычно учитывает специфику взламываемого сайта. Если формат пароля не требует спецзнаков, значит, пароль состоит только из букв и цифр. Также учитывается регион, где используется сайт, его тематика (например, если пользователи сайта – пенсионеры, то они могут использовать как пароли имена внуков) и т. д. Так хакер может вычислить хеши для наиболее популярных парольных фраз, а затем сравнить со своей базой хешей украденную с сайта БД с хешами реальных пользователей.
Взломав один хеш, злоумышленник получает доступ ко всем аккаунтам, где используется тот же пароль.
Поэтому для дополнительной защиты от подбора паролей их хеш-значения «солят», т. е. к значению хеша добавляют некое единое для всех пользователей системы (сайта) или уникальное для каждого пользователя значение, называемое солью[30], и получают второе хеш-значение. Соль снижает вероятность подбора пароля злоумышленником, так как «радужные таблицы», о которых речь пойдет чуть ниже, не позволят сравнить хеш-значения и определить (открыть) пароли. Если соль одинакова для всех пользователей, то и у разных пользователей с одинаковыми паролями будут одинаковые вторые хеш-значения, а если уникальна, то вторые хеш-значения всех пользователей, даже с одинаковыми паролями, будут различны.
Например, если пользователь А и пользователь Б используют пароль «Яблоко», то в первом случае их парольный хеш будет одинаковым (скажем, 422a41… без соли и a5ed85… с солью у обоих пользователей[31]), а во втором – различным (скажем, 422a41… без соли у обоих пользователей и a5ed85… у одного
30
Соль (также модификатор входа хеш-функции) – строка данных, которая передается хеш-функции вместе с входным массивом данных (прообразом) для вычисления хеша (образа). «Соль» – дословный перевод английского термина «salt».
31
Пример, нереальные значения.