Пароль

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

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

История паролей[править | править вики-текст]

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

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

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

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

Безопасность пароля пользователя[править | править вики-текст]

Исследования показывают[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};
}

fcgd

Генерация пароля[править | править вики-текст]

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

pwgen 10 1

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

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

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


Методы передачи пароля через сеть[править | править вики-текст]

Простая передача пароля[править | править вики-текст]

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

Передача через зашифрованные каналы[править | править вики-текст]

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

Базирующийся на хешах[править | править вики-текст]

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

Сервисы для хранения и передачи паролей[править | править вики-текст]

Облачные[править | править вики-текст]

1. PwdShare

Сервис сочетающий в себе безопасность локального менеджера паролей, надежность облака, возможность коллективной работы, а так же безопасную отправку пароля в один клик. В PwdShare все данные шифруются непосредственно в браузере, алгоритмом AES-256. Ни один пароль не передается в открытом виде. Есть возможность установить свой, особый пароль для шифрования своих данных в браузере, что обезопасит от компрометации пароля авторизации. Кроме браузерного шифрование шифруются все данные на сервере, используется ssl, строгие политики доступа и другие методы повышения безопасности. Среди важных преимуществ — удобный интерфейс сервиса.

Пользоваться всеми возможностями, в том числе коллективной работой с паролями, можно бесплатно. Бесплатный аккаунт позволяет хранить неограниченное число паролей и управлять 3-мя группами. PRO-аккаунт без ограничений — 290 рублей в год.

2. Keeper

Бесплатный сервис представляет собой неплохой компромисс между безопасностью и удобством использования. Все пароли Keeper хранит в «облаке», а устройствам позволяет синхронизироваться между устройствами по Wi-Fi, в обход удаленного сервера. Правда, бесплатная версия сервиса позволяет хранить пароли только на локальных устройствах. Платная версия для индивидуального использования позволяет хранить пароли в «облаке» и обойдется в $9,99 в год. Версия для офисных и рабочих групп стоит $59,99 в год.

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

3. LastPass

Сервис доступен на Windows, OS X и Linux на всех основных браузерах (IE, Firefox, Chrome, Opera, Safari). На Windows также доступна версия LastPass for Apps, позволяющая пользоваться автоматическим хранением паролей от любых приложений. Управление базой паролей также возможно через web-интерфейс на сайте LastPass. Для Windows имеется Portable клиент с возможностью загрузки базы для резервного хранения и использования оффлайн.

Поскольку LastPass — облачный сервис, база постоянно хранится на серверах LastPass. Синхронизации как таковой не требуется. База LastPass зашифрована AES-256.

LastPass предлагает обширный выбор клиентов для мобильных устройств: iOS, Android (с дополнительными приложениями для браузеров Dolphin HD и Firefox Mobile), WM Classic, Windows Phone 7, BlackBerry и HP/Palm WebOS. Все мобильныe версии LastPass (кроме iPad) требуют подписки на LastPass Premium.

Базовая версия LastPass бесплатна; премиум-пакет стоит 1$ в месяц.

Десктопные[править | править вики-текст]

1. KeePass

Он бесплатен и свободно распространяется под лицензией GPL v2. Существует в двух основных версиях: «старая» 1.x, работающая только под Windows, и «новая» 2.x, написанная над .NET и работающая в том числе под Monо в OS X и Linux. Обe версии существуют в Portable-варианте. Такжe существуют сторонние программы, работающие с базами KeePass — под Linux и Mac OS X, например, KeePassX.

База паролей шифруется AES-256 и хранится в файле, который можно синхронизировать любыми удобными способами, будь то Dropbox, флэшка, или что-то еще. Возможно использование многоходового преобразования ключа, за счет чего время, необходимое для расшифровки базы, увеличивается; это увеличивает устойчивость к brute-force аттакам. Некоторые клиенты на других платформах умеют работать с базами в Dropbox напрямую (например, KyPass на iOS). Базы версии 2.x не являются обратно совместимыми с 1.x, что создает проблемы с множеством стороннего софта, работающего с базами старой версии (хотя можно экспортировать базу старого формата из новой версии).

KeePass обладает встроенной функцией AutoType, позволяющей автоматически вводить пароли в браузерах и других программах. KeePass также обладает множеством плагинов, которые в том числе обеспечивают более тесную интеграцию со всеми основными браузерами (IE, Firefox, Chrome), и предоставляют множество дополнительных функций.

Как упомянуто выше, за счет открытости KeePass написано множество ПО под различные платформы. На мобильных устройствах есть клиенты KeePass на следующих платформах: iOS, Android, WM Classic, Windows Phone 7, Blackberry, и J2ME. Более подробные списки плагинов и стороннего ПО доступны на сайте KeePass.


2. eWallet

Платный менеджер паролей и персональной информации от компании Ilium Softwarе. eWallet существует в версиях для Windows и Mac OS X ($9,99), а также обладает клиентами для iOS, Android (только просмотровщик), BlackBerry и Windows Mobile Classic.

Файл базы данных, как и в KeePass, зашифрован с использованием AES-256. Данные хранятся локально, облачного хранения средствами eWallet не предусмотрено.

Синхронизация базы между настольными компьютерами возможна только ручным переносом. Синхронизация Windows-версии с мобильными клиентами на WM Classic и Blackberry происходит с помощью встроенной синхронизации платформ (ActiveSync и BlackBerry Desktop, соответственно). Синхронизация Mac-версии с версией на iOS возможна через iTunes и по Wi-Fi.

Windows-версия eWallet интегрируется с браузерами Internet Explorer, Firefox и Chrome. Версия для OS X предлагает только интеграцию с Safari.


3. 1Password

Популярное на Mac OS X решение для хранения паролей, лицензий на ПО и другой персональной информации от компании AgileBits. Недавно была такжe выпущена версия под Windows, к тому жe предлагается нативный клиент под iOS. Программа достаточно дорогая — версии под Windows и Mac OS X стоят $39,99, или $59,99 зa обе вместе; версия для iOS доступна в AppStore за $14,99. Read-only приложение для Android распространяется бесплатно.

Все версии 1Password обладают встроенной функцией синхронизации базы с помощью сервиса Dropbox. Эта функциональность не обязательна, база по умолчанию хранится локально. База данных зашифрована AES-128. Встроенные средства интеграции с браузерами и операционной системой предотвращают утечку паролей через keylogger-ы.

1Password for Mac интегрируется с Safari, Firefox, Chrome и Camino «из коробки». Версия для Windows интегрируется с Firefox, Chrome и IЕ. Также обе версии 1Password предлагают удобный интерфейс для использования хранимой информации в любых других приложениях (в том числе и похожую на KeePass функцию AutoType).

Кромe интеграции с разными платформами, 1Password предоставляет еще один оригинальный способ доступа к своей базе. Хранилище паролей (agile keychain) представляет из себя набор файлов, один из которых — HTML-файл с полноценным интерфейсом для работы с базой, который может быть открыт любым браузером на практически любом устройстве.

4. RoboForm

В дополнение к основным версиям, RoboForm предлагает приложения для множества мобильных платформ. В их число входят iOS, Android, BlackBerry, Windows Mobile (6.x, 5, 2003, и даже Pocket PC 2000 и 2002), Palm OS и Symbian. Версии для iOS и Android поддерживают облачную синхронизацию и требуют подписки на RoboForm Everywherе. Всe остальные мобильные версии синхронизируются с настольными версиями с помощью дополнительного ПО.

Также RoboForm имеет отдельный плагин для браузера Opera на Windows, Mac OS X и Linux.

Проектирование защищенного программного обеспечения[править | править вики-текст]

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

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

Взлом компьютерных паролей[править | править вики-текст]

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

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

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

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

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

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

Критерии стойкости пароля[править | править вики-текст]

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

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

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

Методы защиты от атаки[править | править вики-текст]

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

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]