Основы и нюансы выбора пароля

Главная Обзоры Статьи Словарик Контакты

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

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

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

Сложность пароля должна иметь прямую зависимость от важности защищаемых данных. Помните, что один дополнительный символ может в сотню раз увеличивать количество возможных комбинаций для подбора пароля. Я рекомендую выбирать пароль длиной не менее 16ти символов для любых применений, причём он должен удовлетворять и иным требованиям сложности. Если защищаемая информация имеет высокую важность, то символы пароля должны быть выбраны из случаной последовательности. Если низкую важность - то допускается применять осмысленные наборы символов - парольные фразы, о которых рассказано ниже.

Длинный пароль целесообразно использовать при условиях, что, во-первых, данные действительно требуют высокой степени защиты, а во-вторых сама программа защиты обеспечивает соответствующий уровень надёжности. К сожалению, второе условие не всегда выполняется, то есть все Ваши труды по запоминанию и постоянному использованию длинных сложных паролей могут оказаться напрасными. Чтобы этого не произошло, тщательно изучите систему обеспечения безопасности перед её использованием, чтобы убедиться в её надёжности.

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

Таким образом, если существуюет некоторая система высокой важности, и найдётся некоторый объект ещё более высокой важности, то первая система, скорее всего, не потеряет от этого своей важности.

Также, практически невозможно точно разделить все объекты на два указанных типа. Зачастую, атаки на безопасность оказывались успешными лишь оттого, что важность некоторых объектов была занижена (как умышленно, так и по некоторому упущению).

Попытайтесь примерно оценить важность данных. Если Вы размышляете об усилении защиты - это говорит о том, что важность Ваших данных высокая. Даже если Вы относите объект к категории низкой важности - всё же пароль должен быть сильным настолько, чтобы не "попасться" хотя бы при поиске слабых звеньев. Например, когда злоумышленник имеет доступ к базе учётных записей и ищет в ней записи с самыми примитивными паролями - они легко обнаруживаются с помощью "атаки по словарю". Этот вид атаки очень распространён, поэтому защитившись от таких атак, Вы значительно повысите уровень безопасности. Это значит, что если составить список пользователей системы и напротив каждого поставить показатель качества его паролей, и затем отсортировать список по убыванию этого показателя - то нужно, как минимум, не оказаться в конце списка, а ещё лучше - в числе первых 10%.

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

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

Необходимость в создании пароля может прийти в момент, когда времени мало - тогда человек обычно выбирает тот пароль, который может легко запомнить, например:

111, 11111, 666, 123, 1234, 12345, 122333, 489t,
aaa, bbbb, xxx, qwerty,
parol, password, key, пароль,
tanya555, VasyaT, user2,
шедевр, я красавица, net!Войне.

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

Даже если в спешке Вам пришлось установить ненадёжный пароль - при первой же возможности измените пароль на более безопасный.

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

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

{ 0 - 9 } - цифры
{ a - z } - строчные буквы латинского алфавита
{ A - Z } - заглавные буквы латинского алфавита
{ а - я } - строчные буквы национального (в России - русского) алфавита
{ А - Я } - заглавные буквы национального алфавита
{ ~!@#$%^&*()_+,. ... } - знаки пунктуации и специальные символы
{ Символы, вводимые с помощью специальной клавиатуры или с помощью кодов этих символов }

А также различные объединения этих множеств. В реальности первые множества используются гораздо чаще последних. Более того, злоумышленник зачастую использует статистический анализ. Например, из цифр "любимыми" являются 0, 1, 3, 7, сочетания 123, 111, 222 и т.п. Среди букв: a, aaa, xx, и другие. Предпочитаемыми знаками пунктуации являются !.,?@#+ . Этому можно приводить обоснования с точки зрения психологии, но не будем здесь на них останавливаться.

Вышесказанное означает, что в пароле следует одновременно использовать и строчные, и ПРОПИСНЫЕ буквы, цифры и спецсимволы. Но при этом следует помнить, что пароль aA1! не так уж и надёжен.

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

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

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

В английском языке слово "password" ("пароль") дословно означает "слово-пропуск" (pass - пропуск, путь; word - слово). Подчёркиваю - слово (word). Тут дело опять в психологии. Возможно, это называется менталитет. Тем не менее, мне кажется, что это очень даже могло повлиять на то, что в качестве паролей используют cat, table, John, наивно полагая: "Isn't it a passWORD?" ("А разве это не слово-пароль?").

Я категорически не рекомендую современным людям использовать password в качестве пароля!

К счастью, в англоязычной литературе всё чаще используют термин "passphrase" (фраза-пропуск, парольная фраза), к чему принуждает современная реальность. И это гораздо ближе к тому, о чём я хочу Вам рассказать.

Допустим, "password"-ом (то есть примитивным паролем) может быть одно из тысячи общеупотребительных слов (что, хоть и оптимистично, но близко к реальности). Если использовать случайный набор из двух таких слов, то вариантов становится миллион. Если взять три таких слова - миллиард. Если пять - то миллион миллиардов!

Конечно, если брать слова, сходные по смыслу (что эффективно используется при подборе паролей из двух слов), например, составлять некоторое предложение, то количество вариантов сокращается. Но если учесть, что Вы вольны оперировать регистром, выбирать знаки препинания и т.п., то такой порядок сложности сохраняется.

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

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

акация радует своей красотой

Рассмотрим недостатки: акация радует, радует своей, радует красотой, своей красотой - распространённые словосочетания. Попробуем это исправить:

акация вон! пером над красотой

Здесь мы используем особенность нашего мозга: запоминать необычные вещи. Такой пароль, возможно, даже проще запомнить. Чтобы придумать подобные алогизмы - проще не думать - тогда они сами всплывают. И "взломать"/предвидеть такие случайные всплески подсознания намного сложнее.

Это уже вполне пригодный вариант, но мы ещё немного преобразуем его:

акация-ВОН!/пером/Над/Красотой

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

Приведу один пример, почему не стоит использовать символ пробела в пароле. В большинстве клавиатур нажатие на пробельную клавишу сопровождается характерным "щелчком" - звуком нажатия, более громким, чем у других клавиш. То есть на слух можно определить количество пробелов в пароле (следовательно, и количество слов) и приблизительное количество букв между ними (длины слов).

Злоумышленник зачастую не совершает атаку непосредственно на Ваш экаунт. Он может производить анализ некоторой базы с экаунтами, и взломает те, чей пароль был слабее. Среди них может оказаться и Ваш. Так что примите меры, чтобы этого избежать.

Хорошо. Теперь вы используете действительно надёжный пароль. Но решили на всякий случай записать его, чтобы не забыть. Вы решили создать на компьютере файл и сохранить там пароль? Может, файл будет называться "пароль.txt" и храниться на рабочем столе? Лучше использовать специальные программы - менеджеры паролей. Основной принцип таких программ - Вы запоминаете лишь один пароль - который вводите при работе с программой, а все остальные пароли хранит программа (обычно в зашифрованном виде).

Вы не очень доверяете технике? И решили сохранить пароль, записав на листике что-то вроде:

Пароль к ящику mymail@bestmail.ru
mysecurepass_utfj8g5Wp8s5453

Желательно не писать, для чего пароль. Не писать логина, не писать сервер/сервис. Вы это, скорее всего, знаете итак. Это делается в крайних случаях (экаунт незначителен и т.д.).
Дело в том, что если вы потеряете такой листик - любой человек, нашедший его, сможет использовать эти данные. Если на листике будет только пароль - это сильно затруднит возможность его несанкционированного использования случайным человеком, особенно, если вы используете пароли специального вида - чтобы защититься от таких случаев. Рассмотрим пример, как создать такой пароль.

Хорошо, когда сам пароль не говорит, что он пароль. Когда человек, нашедший Ваш листик с паролем, не догадался, что это такое - и выбросил этот листик. То есть mysecurepass - это пароль - догадаются многие, utfj8g5wp8s5453 - тоже, скорее всего пароль, скажут некоторые из них. Если же на листике написано:

8-495-390-11-03 Маргарита

, то многие подумают, что это телефон (здесь главное не забыть самому, что это на самом деле). Если же это ещё и настоящий номер Маргариты (желательно, чтобы вы не имели к ней никакого отношения - например, номер взят из общего справочника наугад) - то вы, скорее всего, спасётесь и от тех, кто решится позвонить по этом номеру.

Этот текст лишь демонстрирует метод подхода - нужно уделять больше внимания безопасности, чем принято. Безопасности в цифровом/виртуальном мире. В реальном мире люди, опасающиеся за сохранность себя и имущества, ставят замки и сигнализации в помещениях. В мире компьютеров же зачастую оставляют двери открытыми.

Приведу в качестве резюме следующий список рекомендаций:

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

2. Если пароль необходимо запомнить - используйте принципы создания надёжного и легко запоминающегося пароля:

- пароль должен быть достаточно длинным (не менее 16ти символов);
- пароль должен включать одновременно строчные, ПРОПИСНЫЕ буквы, цифры и спецсимволы. При возможности используйте дополнительные символы;
- в пароле должно быть как можно меньше логического смысла и различных закономерностей;
- сложный пароль надёжнее, но может быть неудобным в использовании; найдите компромисс.

3. Даже если Вам пришлось создавать пароль в спешке и Вы использовали примитивный пароль (например, не было возможности записывать или запоминать) - не откладывайте - и поменяйте пароль на более надёжный в самое ближайшее время. Мы постоянно торопимся, но компрометация пароля может стоить много времени и иных ресурсов.

4. Если Вы храните или записываете пароли - используйте программы генерации и шифрования паролей.

5. Храните резервную копию паролей в надёжном месте.

6. Используйте другие трюки и придумывайте их сами - это интересно;)

admin

Опубликовано: 20.01.2009

Последнее изменение: 07.12.2009