Пароль (фр. parole — слово) — условное слово или набор знаков, предназначенный для подтверждения личности или полномочий. Пароли часто используются для защиты информации от несанкционированного доступа. В большинстве вычислительных систем комбинация «имя пользователя — пароль» используется для удостоверения пользователя.
История паролей
Пароли использовались с древнейших времён. Полибий (?201 до н. э.) описывает применение паролей в Древнем Риме следующим образом:
То, каким образом они обеспечивают безопасное прохождение ночью выглядит следующим образом: из десяти манипул каждого рода пехоты и кавалерии, что расположено в нижней части улицы, командир выбирает, кто освобождается от несения караульной службы, и он каждую ночь идёт к трибуну, и получает от него пароль — деревянную табличку со словом. Он возвращается в свою часть, а потом проходит с паролем и табличкой к следующему командующему, который в свою очередь передает табличку следующему[1].
Пароли использовались в компьютерах с первых их дней. Например, CTSS от MIT, появившаяся в 1961 году, была одна из первых открытых систем. Она использовала команду LOGIN для запроса пароля пользователя.
Роберт Моррис предложил идею хранения паролей в хэш-форме для операционной системы UNIX. Его алгоритм, известный как crypt, использует 12-битный salt и связывается для изменения формы с алгоритмом DES, снижая риск перебора по словарю.
Безопасность пароля пользователя
Исследования показывают[2], что около 40 % всех пользователей выбирают пароли, которые легко угадать автоматически. Легко угадываемые пароли (123, admin) считаются слабыми и уязвимыми. Пароли, которые очень трудно или невозможно угадать, считаются более стойкими. Некоторыми источниками рекомендуется использовать пароли, генерируемые на стойких хэшах типа MD5, SHA-1 от обычных псевдослучайных последовательностей, по алгоритмам вида[3][4][5].
В конце 2017 года корпорация SplashData опубликовала 100 самых ненадежных паролей года. Первое место, уже 4 год подряд, занимает пароль - 123456. Его используют около 17% пользователей сети Интернет.[6]
Генерация пароля
В Unix-подобных операционных системах можно использовать утилиту pwgen. Например
pwgen 10 1
сгенерирует 1 пароль длиной 10 символов.
Альтернативные методы контроля доступа
Многочисленные виды многоразовых паролей могут быть скомпрометированы и способствовали развитию других методов. Некоторые из них становятся доступны для пользователей, стремящихся к более безопасной альтернативе.
Методы передачи пароля через сеть
Простая передача пароля
Пароль передаётся в открытом виде. В этом случае он может быть перехвачен при помощи простых средств отслеживания сетевого трафика.
Передача через зашифрованные каналы
Риск перехвата паролей через Интернет можно уменьшить, помимо прочих подходов, с использованием Transport Layer Security TLS, которая ранее называлась SSL, такие функции встроены во многие браузеры Интернета.
Базирующийся на хэшах
Пароль передается на сервер уже в виде хэша (например, при отправке формы на web-странице пароль преобразуется в md5-хэш при помощи JavaScript), и на сервере полученный хэш сравнивается с хэшем, хранящимся в БД. Такой способ передачи пароля снижает риск получения пароля при помощи сниффера.
Проектирование защищенного программного обеспечения
Общие методы повышения безопасности программного обеспечения систем защищенных паролем включают:
- Ограничение минимальной длины пароля (некоторые системы Unix ограничивают пароли 8 символами).
- Требование повторного ввода пароля после определенного периода бездействия.
- Требование периодического изменения пароля.
- Назначение стойких паролей (генерируемых с использованием аппаратного источника случайных чисел, либо с использованием генератора псевдослучайных чисел, выход которого перерабатывается стойкими хэш-преобразованиями).
Взлом компьютерных паролей
Взлом пароля является одним из распространенных типов атак на информационные системы, использующие аутентификацию по паролю или паре «имя пользователя-пароль». Суть атаки сводится к завладению злоумышленником паролем пользователя, имеющего право входить в систему.
Привлекательность атаки для злоумышленника состоит в том, что при успешном получении пароля он гарантированно получает все права пользователя, учетная запись которого была скомпрометирована, а кроме того вход под существующей учетной записью обычно вызывает меньше подозрений у системных администраторов.
Технически атака может быть реализована двумя способами: многократными попытками прямой аутентификации в системе, либо анализом хэшей паролей, полученных иным способом, например перехватом трафика.
При этом могут быть использованы следующие подходы:
- Прямой перебор. Перебор всех возможных сочетаний допустимых в пароле символов. Например, нередко взламывается пароль «qwerty» так как его очень легко подобрать по первым клавишам на клавиатуре.
- Подбор по словарю. Метод основан на предположении, что в пароле используются существующие слова какого-либо языка либо их сочетания.
- Метод социальной инженерии. Основан на предположении, что пользователь использовал в качестве пароля личные сведения, такие как его имя или фамилия, дата рождения и т. п. Напр. Вася Пупкин, 31.12.1999 г.р. нередко имеет пароль типа «vp31121999» или «vp991231».
Для проведения атаки разработано множество инструментов, например, John the Ripper.
Критерии стойкости пароля
Исходя из подходов к проведению атаки можно сформулировать критерии стойкости пароля к ней.
- Пароль не должен быть слишком коротким, поскольку это упрощает его взлом полным перебором. Наиболее распространенная минимальная длина — восемь символов. По той же причине он не должен состоять из одних цифр.
- Пароль не должен быть словарным словом или простым их сочетанием, это упрощает его подбор по словарю (исключение — Diceware[англ.]: выбор определённого количества слов из списка определённой длины с помощью генератора случайных чисел; однако пароли получаются длинными).
- Пароль не должен состоять только из общедоступной информации о пользователе.
В качестве популярных рекомендаций к составлению пароля можно назвать использование сочетания слов с цифрами и специальными символами (#, $, * и т. д.), использование малораспространенных или несуществующих слов, соблюдение минимальной длины.
Методы защиты от атаки
Методы защиты можно разделить на две категории: обеспечение стойкости к взлому самого пароля, и предотвращение реализации атаки. Первая цель может быть достигнута проверкой устанавливаемого пароля на соответствие критериям сложности. Для такой проверки существуют автоматизированные решения, как правило работающие совместно с утилитами для смены пароля, например, cracklib[7].
Вторая цель включает в себя предотвращение захвата хэша передаваемого пароля и защиту от многократных попыток аутентификации в системе. Чтобы предотвратить перехват, можно использовать защищенные (зашифрованные) каналы связи. Чтобы усложнить злоумышленнику подбор путём многократной аутентификации, обычно накладывают ограничение на число попыток в единицу времени (пример средства: fail2ban[8]), либо разрешением доступа только с доверенных адресов.
Комплексные решения для централизованной аутентификации, такие как Red Hat Directory Server[9] или Active Directory[10] уже включают в себя средства для выполнения этих задач.
См. также
Примечания
- ↑ Polybius on the Roman Military
- ↑ Самые распространенные пароли в интернете — Деловой Петербург
- ↑ MLA Wire: Shell: Linux Password Generator
- ↑ Астахов Константин. Генератор паролей
- ↑ mkpw-md5-alpha | Download mkpw-md5-alpha software for free at SourceForge.net
- ↑ Эксперты назвали самые худшие пароли 2017 года . planet-today.ru.
- ↑ CrackLib | Download CrackLib software for free at SourceForge.net
- ↑ Fail2ban
- ↑ Chapter 7. Managing User Authentication
- ↑ Enforcing Strong Password Usage Throughout Your Organization
Ссылки
- Рекомендации по составлению паролей
- Требования по безопасности паролей
- Графические пароли : обзор (англ.)
- PassClicks (англ.)
- Правительство США утверждает, что специальные символы в ваших паролях не нужно использовать
- Концепция одноразовых паролей в системе аутентификации
- Статья «Пароли для профессионалов»
- Статья «Shell: Linux Password Generator»
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Для улучшения этой статьи желательно:
|