Пароль (фр. parole — слово) — это секретное слово или набор символов, предназначенный для подтверждения личности или полномочий. Пароли часто используются для защиты информации от несанкционированного доступа. В большинстве вычислительных систем комбинация «имя пользователя — пароль» используется для удостоверения пользователя.
История паролей[]
Пароли использовались с древнейших времён. Полибий (?201 до н. э.) описывает применение паролей в Древнем Риме следующим образом:
То, каким образом они обеспечивают безопасное прохождение ночью выглядит следующим образом: из десяти манипул каждого рода пехоты и кавалерии, что расположено в нижней части улицы, командир выбирает, кто освобождается от несения караульной службы, и он каждую ночь идёт к трибуну, и получает от него пароль — деревянную табличку со словом. Он возвращается в свою часть, а потом проходит с паролем и табличкой к следующему командующему, который в свою очередь передает табличку следующему. [1]
Пароли использовались в компьютерах с первых их дней. Например, CTSS от MIT, появившаяся в 1961 году, была одна из первых открытых систем. Она использовала команду LOGIN для запроса пароля пользователя.
Роберт Моррис предложил идею хранения паролей в хэш-форме для операционной системы UNIX. Его алгоритм, известный как crypt, использует 12-битный salt и связывается для изменения формы с алгоритмом DES, в 25 раз снижая риск перебора по словарю.
Безопасность пароля пользователя[]
Исследования показывают [2], что около 40 % всех пользователей выбирают пароли, которые легко угадать автоматически. Легко угадываемые пароли (123, admin) считаются слабыми и уязвимыми. Пароли, которые очень трудно или невозможно угадать, считаются более стойкими. Некоторыми источниками рекомендуется использовать пароли, генерируемые на стойких хэшах типа MD5, SHA-1 от обычных псевдослучайных последовательностей, по алгоритмам вида [3],[4][5] (в коде Linux Bourne Shell, Perl):
Bourne Shell
function mkpw_md5() { # Hex password making function via MD5 hashing
# random + Year + Month + Day + Hour + Minute + Second + Nanoseconds
local s=$(head /dev/urandom)$(date +%Y%m%d%H%M%S%N)
echo $s | md5sum | cut -c1-${1:-8};
}
function mkpw_md5_alpha() { # Alphabetic password making function via MD5 hashing
# random + Year + Month + Day + Hour + Minute + Second + Nanoseconds
local s=$(head /dev/urandom)$(date +%Y%m%d%H%M%S%N)
echo $s | md5sum | uuencode -m -| sed -n 2p | cut -c3-43 | cut -c1-${1:-8};
}
Генерация пароля[]
В Unix-подобных операционных системах можно использовать улитку pwgen. Например
pwgen 10 1
сгенерирует 1 пароль длиной 10 символов.
Альтернативные методы контроля доступа[]
Многочисленные виды многоразовых паролей могут быть скомпрометированы и способствовали развитию других методов. Некоторые из них становятся доступны для пользователей, стремящихся к более безопасной альтернативе.
- Одноразовые пароли
- Биометрия
- Технология единого входа
- OpenID
Методы передачи пароля через сеть[]
Простая передача пароля[]
Пароль передаётся в открытом виде. В этом случае он может быть перехвачен при помощи простых средств отслеживания сетевого трафика.
Передача через зашифрованные каналы[]
Риск перехвата паролей через Интернет можно уменьшить, помимо прочих подходов, с использованием Transport Layer Security TLS, которая ранее называлась SSL, такие функции встроены во многие браузеры Интернета.
Базирующийся на хешах[]
Пароль передается на сервер уже в виде хэша (например, при отправке формы на web-странице пароль преобразуется в md5-хэш при помощи JavaScript), и на сервере полученный хэш сравнивается с хэшем, хранящимся в БД. Такой способ передачи пароля снижает риск получения пароля при помощи сниффера.
Проектирование защищенного программного обеспечения[]
Общие методы повышения безопасности программного обеспечения систем защищенных паролем включают:
- Ограничение минимальной длины пароля (некоторые системы Unix ограничивают пароли 8 символами).
- Требование повторного ввода пароля после определенного периода бездействия.
- Требование периодического изменения пароля.
- Назначение стойких паролей (генерируемых с использованием аппаратного источника случайных чисел, либо с использованием генератора псевдослучайных чисел, выход которого перерабатывается стойкими хэш-преобразованиями).
Взлом компьютерных паролей[]
Взлом пароля является одним из распространенных типов атак на информационные системы, использующие аутентификацию по паролю или паре «имя пользователя-пароль». Суть атаки сводится к завладению злоумышленником паролем пользователя, имеющего право входить в систему.
Привлекательность атаки для злоумышленника состоит в том, что при успешном получении пароля он гарантированно получает все права пользователя, учетная запись которого была скомпрометирована, а кроме того вход под существующей учетной записью обычно вызывает меньше подозрений у системных администраторов.
Технически атака может быть реализована двумя способами: многократными попытками прямой аутентификации в системе, либо анализом хэшей паролей, полученных иным способом, например перехватом трафика.
При этом могут быть использованы следующие подходы:
- Прямой перебор. Перебор всех возможных сочетаний допустимых в пароле символов. Например, нередко взламывается пароль "qwerty" т.к. его очень легко подобрать по первым клавишам на клавиатуре.
- Подбор по словарю. Метод основан на предположении, что в пароле используются существующие слова какого-либо языка либо их сочетания.
- Метод социальной инженерии. Основан на предположении, что пользователь использовал в качестве пароля личные сведения, такие как его имя или фамилия, дата рождения и т.п. Напр. Вася Пупкин, 31.12.1999 г.р. нередко имеет пароль типа "vp31121999" или "vp991231".
Для проведения атаки разработано множество инструментов, например, John the Ripper.
Критерии стойкости пароля[]
Исходя из подходов к проведению атаки можно сформулировать критерии стойкости пароля к ней.
- Пароль не должен быть слишком коротким, поскольку это упрощает его взлом полным перебором. Наиболее распространенная минимальная длина — восемь символов. По той же причине он не должен состоять из одних цифр.
- Пароль не должен быть словарным словом или простым их сочетанием, это упрощает его подбор по словарю.
- Пароль не должен состоять только из общедоступной информации о пользователе.
В качестве рекомендацией к составлению пароля можно назвать использование сочетания слов с цифрами и специальными символами (#, $, * и т.д.), использование малораспространенных или несуществующих слов, соблюдение минимальной длины.
Методы защиты от атаки[]
Методы защиты можно разделить на две категории: обеспечение стойкости к взлому самого пароля, и предотвращение реализации атаки. Первая цель может быть достигнута проверкой устанавливаемого пароля на соответствие критериям сложности. Для такой проверки существуют автоматизированные решения, как правило работающие совместно с утилитами для смены пароля, например, cracklib[6].
Вторая цель включает в себя предотвращение захвата хэша передаваемого пароля и защиту от многократных попыток аутентификации в системе. Чтобы предотвратить перехват, можно использовать защищенные (зашифрованные) каналы связи. Чтобы усложнить злоумышленнику подбор путем многократной аутентификации, обычно накладывают ограничение на число попыток в единицу времени (пример средства: fail2ban[7]), либо разрешением доступа только с доверенных адресов.
Комплексные решения для централизованной аутентификации, такие как Red Hat Directory Server[8] или Active Directory[9] уже включают в себя средства для выполнения этих задач.
См. также[]
- /etc/passwd
- Аутентификация
- Политика паролей
- Файл ключей
- Методика выбора пароля
Документы[]
- ↑ Polybius on the Roman Military
- ↑ Самые распространенные пароли в интернете — Деловой Петербург
- ↑ MLA Wire: Shell: Linux Password Generator
- ↑ Астахов Константин. Генератор паролей
- ↑ mkpw-md5-alpha | Download mkpw-md5-alpha software for free at SourceForge.net
- ↑ CrackLib | Download CrackLib software for free at SourceForge.net
- ↑ Fail2ban
- ↑ Chapter 7. Managing User Authentication
- ↑ Enforcing Strong Password Usage Throughout Your Organization
Ссылки[]
- Рекомендации по составлению паролей
- Требования по безопасности паролей
- Графические пароли : обзор (англ.)
- PassClicks (англ.)
- Генератор паролей (рус.) + Рекомендации администратору; Универсальные пароли к BIOS; Что делать если пароль забыт?
- Концепция одноразовых паролей в системе аутентификации
- Статья «Пароли для профессионалов»
- Статья «Shell: Linux Password Generator»
- Простейший генератор паролей
- Онлайн-генератор паролей
- Страница 0 - краткая статья
- Страница 1 - энциклопедическая статья
- Разное - на страницах: 2 , 3 , 4 , 5
- Прошу вносить вашу информацию в «Пароль 1», чтобы сохранить ее