Пароль
Пароль ( — слово) — условное слово или произвольный набор знаков, состоящий из букв, цифр и других символов, и предназначенный для подтверждения личности или полномочий. Если допустимо использование только цифр, то такую комбинацию иногда называют ПИН-кодом (от английской аббревиатуры PIN — персональный идентификационный номер).

Пароли часто используются для защиты информации от несанкционированного доступа. В большинстве вычислительных систем комбинация «имя пользователя — пароль» используется для удостоверения пользователя.

Несмотря на происхождение термина, пароль не обязан быть, собственно, словом. Комбинацию, не являющуюся словом, сложнее угадать или подобрать, поэтому такие пароли более предпочтительны. Для дополнительной защиты иногда используют пароли, состоящие из многих слов; такой пароль иногда называют «парольной фразой».

История паролей 
Пароли использовались с древнейших времён. Полибий (?201 до н. э.) описывает применение паролей в Древнем Риме следующим образом:То, каким образом они обеспечивают безопасное прохождение ночью выглядит следующим образом: из десяти манипул каждого рода пехоты и кавалерии, что расположено в нижней части улицы, командир выбирает, кто освобождается от несения караульной службы, и он каждую ночь идёт к трибуну, и получает от него пароль — деревянную табличку со словом. Он возвращается в свою часть, а потом проходит с паролем и табличкой к следующему командующему, который в свою очередь передает табличку следующему.

Пароли использовались в компьютерах с первых их дней.
Например, CTSS от MIT, появившаяся в 1961 году, была одна из первых открытых систем. Она использовала команду LOGIN для запроса пароля пользователя.

Роберт Моррис предложил идею хранения паролей в хеш-форме для операционной системы UNIX. Его алгоритм, известный как crypt, использует 12-битный salt и связывается для изменения формы с алгоритмом DES, снижая риск перебора по словарю.

Пользователи по логину и паролю проходят аутентификацию в процессе входа с контролем доступа к защищённым операционным системам, мобильным телефонам, приложениям и онлайн-сервисам. Пользователь компьютера зачастую имеет пароли для множества различных целей: вход в учётные записи; доступ к ящикам электронной почты, личным кабинетам на сайтах, в базах данных; для чтения новостей в платных изданиях. По результатам исследования компании NordPass, в 2019 году среднее количество паролей, используемых одним человеком, составляло 70-80 штук; за год это число выросло на 25 % и приблизилось к 100 паролям.

Безопасность пароля пользователя 
Исследования показывают, что около 40 % всех пользователей выбирают пароли, которые легко угадать автоматически. Легко угадываемые пароли (123, admin) считаются слабыми и уязвимыми. Пароли, которые очень трудно или почти невозможно угадать, считаются более стойкими. Некоторыми источниками рекомендуется использовать пароли, генерируемые на стойких хешах типа MD5, SHA-1 от обычных псевдослучайных последовательностей, по алгоритмам вида.

В конце 2017 года корпорация SplashData опубликовала 100 самых ненадежных паролей года. Первое место, уже четвёртый год подряд, занимает пароль — 123456. Его используют около 17 % пользователей сети Интернет.

В 2013 году компания Google опубликовала список широко используемых категорий паролей, которые считаются слишком ненадёжными из-за того, что их легко подобрать (особенно после изучения профиля персоны в социальной сети):

 Кличка домашнего животного, имя ребёнка, партнёра или родственника
 Даты рождения и важных событий
 Место рождения
 Название любимого праздника
 Что-либо, связанное с любимой спортивной командой
 Слово «password» (пароль)

Генерация пароля 

В Unix-подобных операционных системах можно использовать утилиту pwgen.
Например

 pwgen 10 1
сгенерирует 1 пароль длиной 10 символов.

Альтернативные методы контроля доступа 
Многочисленные виды многоразовых паролей могут быть скомпрометированы и способствовали развитию других методов. Некоторые из них становятся доступны для пользователей, стремящихся к более безопасной альтернативе.

 Одноразовые пароли
 Биометрия
 Технология единого входа
 OpenID

Методы передачи пароля через сеть

Простая передача пароля 
Пароль передаётся в открытом виде. В этом случае он может быть перехвачен при помощи простых средств отслеживания сетевого трафика.

Передача через зашифрованные каналы 
Риск перехвата паролей через Интернет можно уменьшить, помимо прочих подходов, с использованием Transport Layer Security TLS, которая ранее называлась SSL, такие функции встроены во многие браузеры Интернета.

Базирующийся на хешах 
Пароль передаётся на сервер уже в виде хеша (например, при отправке формы на web-странице пароль преобразуется в md5-хеш при помощи JavaScript), и на сервере полученный хеш сравнивается с хешем, хранящимся в БД. Такой способ передачи пароля снижает риск получения пароля при помощи сниффера.

Проектирование защищённого программного обеспечения 
Общие методы повышения безопасности программного обеспечения систем защищённых паролем включают:
 Ограничение минимальной длины пароля (некоторые системы Unix ограничивают пароли 8 символами).
 Требование повторного ввода пароля после определённого периода бездействия.
 Требование периодического изменения пароля.
 Назначение стойких паролей (генерируемых с использованием аппаратного источника случайных чисел, либо с использованием генератора псевдослучайных чисел, выход которого перерабатывается стойкими хеш-преобразованиями).

Взлом компьютерных паролей 
Взлом пароля является одним из распространённых типов атак на информационные системы, использующие аутентификацию по паролю или паре «имя пользователя-пароль». Суть атаки сводится к завладению злоумышленником паролем пользователя, имеющего право входить в систему.

Привлекательность атаки для злоумышленника состоит в том, что при успешном получении пароля он гарантированно получает все права пользователя, учетная запись которого была скомпрометирована, а кроме того вход под существующей учётной записью обычно вызывает меньше подозрений у системных администраторов.

Технически атака может быть реализована двумя способами: многократными попытками прямой аутентификации в системе, либо анализом хешей паролей, полученных иным способом, например перехватом трафика.

При этом могут быть использованы следующие подходы:
 Прямой перебор. Перебор всех возможных сочетаний допустимых в пароле символов. Например, нередко взламывается пароль «qwerty» так как его очень легко подобрать по первым клавишам на клавиатуре с раскладкой QWERTY.
 Подбор по словарю. Метод основан на предположении, что в пароле используются существующие слова какого-либо языка либо их сочетания.
 Метод социальной инженерии. Основан на предположении, что пользователь использовал в качестве пароля личные сведения, такие как его имя или фамилия, дата рождения и т. п. Например Вася Пупкин, 31.12.1999 г. р. нередко имеет пароль типа «vp31121999» или «vp991231».

Для проведения атаки разработано множество инструментов, например, John the Ripper.

Критерии стойкости пароля 

Исходя из подходов к проведению атаки можно сформулировать критерии стойкости пароля к ней.
 Пароль не должен быть слишком коротким, поскольку это упрощает его взлом полным перебором. Наиболее распространенная минимальная длина — восемь символов. По той же причине он не должен состоять из одних цифр.
 Пароль не должен быть словарным словом или простым их сочетанием, это упрощает его подбор по словарю (исключение — : выбор определённого количества слов из списка определённой длины с помощью генератора случайных чисел; однако пароли получаются длинными).
 Пароль не должен состоять только из общедоступной информации о пользователе.

В качестве популярных рекомендаций к составлению пароля можно назвать использование сочетания слов с цифрами и специальными символами (#, $, * и т. д.), использование малораспространённых или несуществующих слов, соблюдение минимальной длины.

Методы защиты от атаки 
Методы защиты можно разделить на две категории: обеспечение стойкости к взлому самого пароля, и предотвращение реализации атаки. Первая цель может быть достигнута проверкой устанавливаемого пароля на соответствие критериям сложности. Для такой проверки существуют автоматизированные решения, как правило работающие совместно с утилитами для смены пароля, например, cracklib.

Вторая цель включает в себя предотвращение захвата хеша передаваемого пароля и защиту от многократных попыток аутентификации в системе. Чтобы предотвратить перехват, можно использовать защищённые (зашифрованные) каналы связи. Чтобы усложнить злоумышленнику подбор путём многократной аутентификации, обычно накладывают ограничение на число попыток в единицу времени (пример средства: fail2ban), либо разрешением доступа только с доверенных адресов.

Комплексные решения для централизованной аутентификации, такие как Red Hat Directory Server или Active Directory уже включают в себя средства для выполнения этих задач.

См. также 
 Лозунг
 /etc/passwd
 Аутентификация
 Менеджер паролей
 Вводимые взглядом пароли

Примечания

Литература

Ссылки 

 Рекомендации по составлению паролей 
 Требования по безопасности паролей 
 Графические пароли: обзор 
 PassClicks 
 Правительство США утверждает, что специальные символы в ваших паролях не нужно использовать
 Концепция одноразовых паролей в системе аутентификации 
 Статья «Пароли для профессионалов» 
 Статья «Shell: Linux Password Generator» 

Аутентификация
Контроль доступа