Пароли: выбор и использование

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

Несмотря на это, очень многие пользователи относятся к своим паролям бездумно.

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

Математические и логические основы устойчивости паролей

В случае попытки взлома пароля, основным способом действий злоумышленника будет перебор возможных вариантов.

Замечание. Здесь никак не обсуждается шифрование пароля, так как это совершенно не зависит от пользователя.

Для того, чтобы лучше оценить компьютерные возможности, уточним, что современный процессор может выполнять порядка 0.5·1012 операций за секунду. Естественно, что для получения комбинации символов, ввода их в программу и сравнения с образцом потребуется множество тактов процессора. Не менее важны условия и возможности, при которых осуществляется взлом. Но мы вполне можем говорить о тысячах и миллионах попыток в секунду. Также есть данные, позволяющие говорить о взломе пароля с 1014 возможных комбинаций за сутки. Подробнее о полном переборе и времени.

Сказки про зашифрованность паролей следует оставить в покое. Шифрование производится в основном стандартными способами, контрольные хэши давно рассчитаны для всех стандартных случаев. Для названного сочетания обстоятельств и при доступе к хэш-значению, взлом займет тысячные доли секунды.

Сложность пароля для взлома определяет:

  1. количество использованных символов;
  2. разнообразие типов символов;
  3. наличие в тексте пароля смысла(ов).

Количество использованных символов достаточно очевидно: чем их больше, тем сложнее подобрать пароль.

В "нормальной" (условно защищенной) среде предопределяется их минимальное количество. Обычно это 6 знаков или более. Хотя, в современных условиях, их число должно составлять не менее, чем 8–10 знаков. Именно эту величину и рекомендуется использовать.

Разнообразие типов символов подразумевает: цифры, английские и русские буквы, различные регистры букв ("большие" и "маленькие"), другие символы (в том числе отсутствующие на клавиатуре).

Наличие в тексте пароля смысла позволяет на порядки быстрее подобрать пароль. Если смыслов несколько, то, по сути, каждый из них представляет собой лишь один символ.

О чем идет речь?

  1. Последовательность цифр (числовой ряд, числа адреса, номер телефона...).
  2. Имена, клички.
  3. Даты.
  4. Любые осмысленные слова.

Естественно, что если смысловые элементы имеют отношение к конкретному человеку, то доступ к этим данным у злоумышленника достаточно прост.

Примеры

1. Пусть пароль состоит только из цифр. Их 10 и с ними удобно производить математические расчеты.

Стандартный 6-значный пароль оказывается всего лишь одним из миллиона комбинаций (0–999999, 106). На их полный перебор уйдет доля секунды. Не намного лучше ситуация с 10 знаками (1010): секунды.

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

Вывод. Пароль из цифр – крайне ненадежен вне зависимости от длины.

2. Пусть пароль состоит только из букв английского алфавита. Как предполагают преподаватели английского языка, он состоит из 26 букв. На самом деле, с точки зрения вычислительной техники, их вдвое больше: 52 символа. Это связано с тем, что прописные и строчные буквы являются принципиально разными знаками.

Используя уже полученный выше математический принцип, мы можем сказать, что для 6-значного пароля, состоящего только из строчных букв (используется крайне часто!), число комбинаций составит 266 или 308 915 776 ≈ 3·108. Даже в худшем случае, пароль может быть подобран в течение суток.

Число комбинаций для 8 знаков равно 268 ≈ 2·1011

Число комбинаций для 10 знаков равно 2610 ≈ 1.4·1014

Для сочетания прописных и строчных букв – 526 ≈ 2·1010

Число комбинаций для 8 знаков равно 528 ≈ 5.35·1012

Число комбинаций для 10 знаков равно 5210 ≈ 1.4·1017

Вывод. Пароль только из строчных букв – крайне ненадежен, при наличии разных регистров длина должна составлять не менее 10 знаков.

3. Пусть пароль состоит только из цифр и букв английского алфавита ("хороший" стандартный вариант). Разнообразие для каждого символа составляет уже 62 символа (10+52). Для очень многих программ используется ограничение именно этим набором знаков, так что приводимые расчеты носят наиболее прикладной характер.

Число комбинаций для 6 знаков равно 626 ≈ 5.68·1010

Число комбинаций для 8 знаков равно 628 ≈ 2.18·1014

Число комбинаций для 10 знаков равно 6210 ≈ 8.39·1017

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

4. Пусть пароль состоит из любых символов клавиатуры. Разнообразие посчитать достаточно сложно.

Сделаем это, исходя из функций клавиш стандартной клавиатуры AT (у читателя она наверняка отличается).

  1. Верхний (цифровой) ряд состоит из 14 клавиш, дающих 28 символов в английской раскладке (`1234567890-=\~!@#$%^&*()_+|) и 3 уникальных (ёЁ№) – в русской.
    Итого: 31 символ.
  2. Буквенная часть клавиатуры (33 клавиши) позволит ввести 52 английские буквы, 64 русских (минус Ёё), 14 дополнительных знаков ([]{};:'",<.>/?). Последние частично продублированы цифровой частью в русской раскладке.
    Итого: 130 символов.
  3. Пробел.
  4. Всего получается 162 символа.

Число комбинаций для 6 знаков равно 1626 ≈ 1.8·1013

Число комбинаций для 8 знаков равно 1628 ≈ 4.7·1017

Число комбинаций для 10 знаков равно 16210 ≈ 1.2·1022

Вывод.

5. Пусть пароль состоит из любых знаков ASCII. Разнообразие составит 224 символа (256 минус 32 служебных символа). Как набрать любой ASCII-символ, можно почитать здесь.

Число комбинаций для 6 знаков равно 2246 ≈ 1.26·1014

Число комбинаций для 8 знаков равно 2248 ≈ 6.3·1018

Число комбинаций для 10 знаков равно 22410 ≈ 3.18·1023

Вывод. Даже на взлом 7-значного пароля потребуется около года. Существенным недостатком следует считать невозможность ввода на мобильных устройствах (виртуальной клавиатуре).

6. Пусть пароль состоит из любых знаков Unicode. Разнообразие 65 502 символа (216-32).

Число комбинаций для 10 знаков равно 6550210 ≈ 1.45·1048

К сожалению, данная возможность должна реализовываться посредством программы ввода пароля и практически не встречается.

Вывод. Взломать такой пароль из 10 символов в разумные сроки практически невозможно при любых вычислительных возможностях.

Сводная таблица числа комбинаций

Состав знаков пароля Знаков

Знаков в пароле

6 7 8 9 10 12
Только цифры 10 106 107 108 109 1010 1012
Строчные английские буквы 26 3.09·108 8.03·109 2.09·1011 5.43·1012 1.41·1014 9.54·1016
Строчные и заглавные английские буквы 52 1.98·1010 1.03·1012 5.35·1012 2.78·1015 1.45·1017 3.91·1020
Цифры, строчные и заглавные англ. буквы 62 5.68·1010 3.52·1012 2.18·1014 1.35·1016 8.39·1017 3.23·1021
Любые символы клавиатуры (без пробела) 161 1.74·1013 2.80·1015 4.51·1017 7.27·1019 1.17·1022 3.03·1026
Любые символы клавиатуры 162 1.81·1013 2.93·1015 4.74·1017 7.68·1019 1.24·1022 3.27·1026
Любые символы ASCII 224 1.26·1014 2.83·1016 6.34·1018 1.42·1021 3.18·1023 1.60·1028
Любые символы Unicode 65 502 7.90·1028 5.17·1033 3.39·1038 2.22·1043 1.45·1048 6.24·1057

Общие выводы

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

  1. Никогда и никому не передавать свои пароли. Если все же это понадобилось, смените его на время, а потом восстановите.
  2. Число символов пароля – не менее 8, а лучше – не менее 10 (2015 г.). Техника не стоит на месте, так что примерно каждые 3 года нужно добавлять по букве для обеспечения сегодняшней стойкости.
  3. Никогда не создавать "тупые" пароли: 123456, qwerty... Подробнее, или для России.
  4. Никогда не использовать слова, содержащиеся в словаре или имена собственные. В том числе по популярному принципу: русское слово, включив английскую раскладку.
  5. Использовать сочетание букв (с их преобладанием, особенно из второй половины алфавита) разных регистров (больше одной), цифр и символов.
  6. Самый худший вариант для заглавной буквы – первая.
  7. Не заменять буквы пароля на похожие символы или цифры. Пример: букву i на ! или 1.
  8. Никогда не записывать пароль на бумажке, наклеив ее на монитор и т.п.
  9. Не хранить пароль в файле.
  10. Использовать разные пароли для разных ресурсов. В идеале – никогда не повторяясь. В худшем случае, можно для совершенно неважных ресурсов выделить единый условно простой пароль (что-то вроде k2w$hp).
  11. По возможности, скрывать ввод пароля от посторонних. При 10-значном сложном пароле, знание числа знаков ускорит взлом на 2%; знание одного символа – в 62 раза, двух – в 3844 раза. В последнем случае пароль может быть взломан за сутки.
  12. Вопрос замены надежного пароля лежит в плоскости психиатрии, незнания математики и логики :) Естественно, при учете всего изложенного выше.

"Идеальный" пароль.

  1. Длина – не менее 10 знаков.
  2. Обязательное сочетание букв (с их преобладанием, особенно из второй половины алфавита) разных регистров, цифр и символов. Еще лучше, если хотя бы один символ отсутствует на клавиатуре (но не для мобильных устройств!).
  3. Отсутствие какого-либо смысла, очевидного кому-либо, кроме владельца. Таких "кусочков" в пароле должно быть несколько. Тогда владелец легко его запомнит (не надо записывать), а догадаться об их наличии будет невозможно.

Copyright © 1993–2020 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.