Пароль

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Окно входа, в котором требуется ввести имя пользователя и пароль.

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

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

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

История паролей

[править | править код]

Пароли использовались с древнейших времён. Полибий (?201 до н. э.) описывает применение паролей в Древнем Риме следующим образом:

То, каким образом они обеспечивают безопасное прохождение ночью выглядит следующим образом: из десяти манипул каждого рода пехоты и кавалерии, что расположено в нижней части улицы, командир выбирает, кто освобождается от несения караульной службы, и он каждую ночь идёт к трибуну, и получает от него пароль — деревянную табличку со словом. Он возвращается в свою часть, а потом проходит с паролем и табличкой к следующему командующему, который в свою очередь передает табличку следующему[2].

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

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

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

Безопасность пароля пользователя

[править | править код]

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

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

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

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

Пароли, состоящие из комбинаций распространенных фраз, например, "qwerty", "zxcvbn", "asdfg" и прочих, считаются легко-взламываемыми за счет технологии брутфорса.[11]

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

[править | править код]

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

pwgen 10 1

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

Альтернативные методы контроля доступа

[править | править код]

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

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

[править | править код]

Простая передача пароля

[править | править код]

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

Передача через зашифрованные каналы

[править | править код]

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

Базирующийся на хешах

[править | править код]

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

Проектирование защищённого программного обеспечения

[править | править код]

Общие методы повышения безопасности программного обеспечения систем защищённых паролем включают:

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

Взлом компьютерных паролей

[править | править код]

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

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

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

При этом могут быть использованы следующие подходы:

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

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

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

[править | править код]

Исходя из подходов к проведению атаки можно сформулировать критерии стойкости пароля к ней.

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

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

Методы защиты от атаки

[править | править код]

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

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

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

Примечания

[править | править код]
  1. Пароль // Толковый словарь живого великорусского языка : в 4 т. / авт.-сост. В. И. Даль. — 2-е изд. — СПб. : Типография М. О. Вольфа, 1880—1882.
  2. [ancienthistory.about.com/library/bl/bl_text_polybius6.htm Polybius on the Roman Military]. Дата обращения: 4 августа 2007. Архивировано 7 февраля 2008 года.
  3. Study Reveals Average Person Has 100 Passwords (англ.) (22 октября 2020). Дата обращения: 7 сентября 2021. Архивировано 7 сентября 2021 года.
  4. Самые распространенные пароли в интернете — Деловой Петербург. Дата обращения: 5 января 2010. Архивировано 12 декабря 2009 года.
  5. Vance, Ashlee (2010-01-21). "If Your Password Is 123456, Just Make It HackMe". The New York Times. Архивировано 11 февраля 2017. Дата обращения: 27 июня 2021.
  6. MLA Wire: Shell: Linux Password Generator. Дата обращения: 5 января 2010. Архивировано 28 декабря 2009 года.
  7. Астахов Константин. Генератор паролей
  8. mkpw-md5-alpha | Download mkpw-md5-alpha software for free at SourceForge.net. Дата обращения: 3 марта 2010. Архивировано 31 мая 2010 года.
  9. Эксперты назвали самые худшие пароли 2017 года. planet-today.ru. Дата обращения: 2 января 2018. Архивировано 3 января 2018 года.
  10. Techlicious. Google Reveals the 10 Worst Password Ideas (англ.) // Time. — 2013-08-08. — ISSN 0040-781X. Архивировано 27 июня 2021 года.
  11. Роскачество рекомендует работать только со сложными паролями – Роскачество. roskachestvo.gov.ru. Дата обращения: 25 ноября 2024.
  12. CrackLib | Download CrackLib software for free at SourceForge.net. Дата обращения: 25 июня 2010. Архивировано 25 июля 2010 года.
  13. Fail2ban. Дата обращения: 25 июня 2010. Архивировано 21 августа 2008 года.
  14. Chapter 7. Managing User Authentication. Дата обращения: 25 июня 2010. Архивировано 6 марта 2010 года.
  15. Enforcing Strong Password Usage Throughout Your Organization. Дата обращения: 25 июня 2010. Архивировано 24 июля 2010 года.

Литература

[править | править код]