В мире, где стремительно развиваются цифровые технологии, безопасный пароль стал чем-то не менее важным, чем паспорт или любой иной личный документ. Это гарантия безопасной виртуальной жизни. Некоторые люди относятся к созданию и хранению паролей несерьезно, что приводит к весьма досадным последствиям: взлому аккаунта или хищению денежных средств с банковских карт. Как избежать таких ситуаций? Научиться хранить пароли безопасно и с умом.
Если вы решили хранить их в базе данных, помните, что они не должны быть просто извлекаемы – зашифруйте их, и храните дешифровальный ключ на другом сервере. Убедитесь, что база данных не дает никаких сведений о длине пароля. И идентичные, и даже похожие пароли должны представлять собой разные наборы символов.
Хэширование в чистом виде кажется довольно безопасным на первый взгляд: все наборы имеют одинаковую длину, что не выдает никакой информации ни о размере пароля, ни о его содержимом. Но проблема заключается в том, что для хэширования используется несколько популярных алгоритмов (MD5, SHA-1 and SHA-256), и хакеры могут заранее сгенерировать набор паролей. Если вычисленный набор совпадает с тем, что храните вы, злоумышленник сможет авторизоваться и получить доступ к вашему аккаунту.
Чтобы избежать совпадения наборов (например, если у вас одинаковые пароли для нескольких сайтов), нужно «добавить соли». Соль (от англ. “salt”) – это дополнительные данные, смешиваемые с оригинальным набором. Это случайная цепочка битов, которая обычно ставится перед строкой хэшированного набора. Это не шифровальный ключ, и ее можно хранить в базе данных вместе с именем пользователя, при этом юзеры с одинаковыми паролями не будут иметь одинаковые хэши. Поскольку «соль» состоит из 16 битов и более, шансы такого совпадения практически равны нулю.
Итак, мы обеспечили необратимость кодирования, неповторимость наборов, а также лишили хакеров любых подсказок касательно длины пароля. Так достаточно безопасно? Еще нет. Современные серверы для взлома хэша могут генерировать по 100,000,000,000 паролей в секунду и больше, так что последнее, что вы можете сделать – это замедлить работу хакеров. Это не гарантирует абсолютную безопасность, но вы хотя бы сможете замедлить темпы совершения оффлайн атаки. Таким образом, безопасность вашего аккаунта находится в прямой зависимости от частоты и количества изменений набора. Поскольку вычислительные мощности на службе у современных хакеров становятся все мощнее, вы тоже можете удваивать количество изменений в год.