«Засолите» свои пароли
Безопасность хранимых паролей может быть повышена с помощью процесса известного как «засолка» – в котором случайные значения (именуемые «соль») добавляются к обычному тексту перед процессом хеширования.
Это сильно повышает число возможных хэш-значений для пароля и означает, что даже если два человека выберут идентичные пароли, их хешированные пароли будут иметь совершенно различные значения.
Хешированный пароль и соответствующая соль хранятся на сервере. Когда пользователь пытается получить доступ к компьютеру, его пароль и соль соединяются, хешируются и сравниваются с хешированным хранимым значением.
«Засолка» эффективна, только если:
– Действительно случайная «соль» используется для каждого пароля (некоторые системы используют одну и ту же «соль» для каждого пароля, либо изменяют ее при перезагрузке компьютера).
– «Соль» имеет достаточную длину, чтобы после добавления ее к паролю, она создавала достаточно сложные хешируемые значения, чтобы взломщик не мог создать таблицу, содержащую возможный хеш для словаря с «солью». Например, пароли использующиеся UNIX-ом в начале 70-х ограничивались восемью символами и использовали 12-битную «соль».
Когда этот метод только придумали, он был достаточно надежным – было невозможно сгенерировать хеш для всех возможных паролей, каждый из которых был «просолен» всеми 4096 «солями». Однако компьютеры стремительно увеличивали свою мощность и объем хранимой информации – это означало что потребуются более длинные «соли». Обычно рекомендуется чтобы соль была той же длины что и исходная хеширующая функция. Так что, если ваша хеширующая функция создает 256-битный хэш, необходимо использовать 256-битную соль.
Пример успешной атаки: LinkedIn
В середине 2012-го года, сайт процветающей социальной сети LinkedIn подвергся атаке хакеров из России. Пароли около 6.5 миллионов аккаунтов были похищены, и хотя они хранились с хеш-значениями, пароли не были «просолены».
Хеширование выполнялось с использованием довольно устаревшего алгоритма хеширования SHA-1, который выполняется на очень высокой скорости (настольный компьютер может рассчитать несколько десятков миллионов SHA-1 хэшей за секунду).
Поэтому неудивительно, что в течение суток, расшифрованные пароли были опубликованы в Интернете и LinkedIn был вынужден попросить всех пользователей изменить свои пароли.
—
Возможно ли избежать атак описанных выше? Это зависит от шагов, которые предпринимает руководство сетевого сервиса, для того чтобы зашифровать трансакции и хранение паролей. Как пользователи, мы можем помочь в укреплении этой защиты, выбирая пароли, которые трудно взломать.
- По материалам The Open University.
- Перевод thingshistory.com. Использовать только с разрешения!