Создание легко запоминаемых и надежных паролей

20 мая 2024

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

Типичные сценарии, в которых второй фактор не применим:

  • служебные учетные записи, которые используются приложениями (например, учетная запись, используемая приложением для подключения к Active Directory).
  • почтовые клиенты (протоколы IMAP, ActiveSync не предполагают использование второго фактора. Даже, если каким-либо образом подключить второй фактор, пользователь не будет каждый раз вводить второй фактор, чтобы получить и прочитать почту).
  • учетные записи на случай аварий (когда часть инфраструктуры не работает и вход возможен только по паролю, а сервера смарт карт и/или второго фактора не работают или недоступны).
  • временное отключение второго фактора (пользователь забыл смарт-карту, потерял, сменил телефон и т.д.).
  • устаревшие приложения, не поддерживающие использование второго фактора.

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

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

Атаки подбора пароля и меры противодействия

Подбор пароля является одним из обязательных этапов атаки на инфраструктуру компаний.

Все атаки подбора паролей можно разделить на:

  • онлайн атаки.
  • оффлайн атаки.

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

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

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

Меры противодействия онлайн атакам:

  • использование надежных паролей.
  • мониторинг попыток брутфорса с помощью SIEM и реагирование. Обычно реагирование заключается во временной блокировке ip-адреса, с которого идет атака. Постоянная блокировка ip-адреса не имеет смысла, т.к. механизмы ротации адресов во время атак давно автоматизированы и не представляют какой-либо сложности в реализации.
  • где возможно, использование второго фактора для аутентификации пользователей и авторизации отдельных операций. Напомним, что второй фактор, не является панацей, его применение не всегда возможно. В отдельных случаях возможен обход второго фактора. Поэтому практически всегда у атакующего будет возможность провести онлайн атаку подбора пароля. Результат атаки (успешно/не успешно) напрямую зависит от предпринятых мер противодействия.

Для противодействия и усложнения офлайн атак необходимо:

  • использование надежных паролей.
  • мониторинг событий, связанных с атаками, позволяющие получить хэши паролей (например, атака DCSync).
  • для новых, вновь разрабатываемых приложений на этапе проектирования необходимо включить требования к хранению паролей:
    • хэширование с солью.
    • выбор алгоритмов хэширования, выполнение которых сложно ускорить с помощью GPU, ASIC. Примером такого алгоритма является Argon2i.

Для создания надежных паролей необходимо:

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

Увеличение сложности угадывания и подбора достигается за счет:

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

Идеально будет при каждой регламентной смене пароля присылать пользователю краткую памятку о том как создать надежный пароль и текущие требования к паролю.

Требования к надежным паролям

Идеальный пароль нельзя угадать и невозможно подобрать перебором (брутфорс) в приемлемое время.

На требования к паролям влияют:

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

Поэтому все требования и рекомендации балансируют между этими двумя ограничениями.

Решение "в лоб" для предотвращения угадывания - использование цепочек случайных символов. Например: c48lZ-435!6Fpc.

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

Однако, идеал недостижим из-за:

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

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

Поэтому на текущий момент требования к паролям, считающимися надежными, следующие:

  • длина 12-16 символов.
  • использование как минимум 4х типов символов (буквы английского алфавита в разном регистре, цифры и спецсимволы).
  • отсутствие распространенных шаблонов при создании пароля (Например: October2024!).

Длина пароля, установленая политиками в организации, определяется множеством факторов:

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

Следует отметить, что в Windows ситуация с требованиями к сложности пароля хуже, чем в Linux. В групповых политиках Windows параметр "Password must meet complexity requirements" требует использовать только три типа символов из пяти доступных. Что, конечно же, недостаточно в современных условиях. В FreeIPA аналогичный параметр требует использования четырех типов символов.

Так же дополнительно могут устанавливаться:

  • максимальный срок действия пароля.
  • проверка на использование старых паролей (Enforce password history в групповых политиках Windows).

Исходя из накопленной практики, максимальный срок действия пароля имеет смысл устанавливать в значение 6-12 месяцев. При смене пароля пользователи стремятся минимально менять предыдущий пароль. Как правило меняют один символ в старом пароле. При этом, такой новый пароль будет соответствовать стандартным групповым политикам. Поэтому частая смена пароля, используемого пользователями, не приводит к существенному повышению уровня информационной безопасности.

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

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

Параметр "минимальный срок действия пароля" (например, в групповых политиках Windows) для практической работы имеет смысл установить значение 0 (ноль дней).

Что произойдет, если этот параметр будет отличен от нуля? Существует типовой сценарий как поступают, если пользователь забыл пароль. Сотрудник техподдержки меняет пароль на временный и установливает признак у учетной записи "Сменить пароль при первом входе в систему". В случае если минимальный срок действия пароля будет равен, например, одному дню, пользователь не сможет сменить пароль сразу же. Смена пароля будет разрешена только через сутки. Это ухудшает и пользовательский опыт, и необоснованно увеличивает количество запросов в техподдержку.

Что пароль не должен включать (запрещенная информация)

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

  • повторение символов 3 и более раз. Например: 111, aaa.
  • последовательные символы (1234, qwerty).
  • повторение простых слов или распространенных паролей (OknoOkno, P@ssw0rd123P@ssw0rd123).
  • названия месяцев года.
  • название компании, в которой вы работаете.
  • личные данные (т.к. их можно узнать методами OSINT или из публичных утечек):
    • номер автомобиля латиницей, заглавными буквами, например P450CH199.
    • код домофона с номером квартиры, например 123#4398.
    • имя домашнего питомца.
    • имена родственников.
    • дата рождения в любой форме.

Приемы создания парольных фраз

Существует два основных подхода к составлению надежных паролей:

  • использование случайных последовательностей символов.
  • использование парольных фраз.

Пароли из случайных последовательностей символов имеет смысл использовать для служебных учетных записей. При этом подразумевается, что пароль не нужно запоминать, т.к. он будет сохранен или в менеджере паролей или в системе хранения секретов, например, Hashicorp Vault.

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

Поэтому реально работающим вариантом остается использования парольных фраз.

Де факто, все существующие рекомендации по запоминанию паролей используют приемы мнемотехники - области знаний, занимающейся техниками запоминания. Более подробно о мнемотехнике можно ознакомиться, например, на сайте https://mnemonikon.ru/. Однако, есть эффективные и не эффективные приемы запоминания. Наиболее эффективные приемы будут описаны далее.

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

С точки зрения мнемотехники вся информация по степени образности классифицируется на три категории:

  1. Образная (зрительная)
  2. Устная, письменная речь (вербальная)
  3. Точная (или знаковая)

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

Устная и письменная речь (вербальная информация) может запоминаться дословно или по смыслу (приблизительно, пересказ своими словами). Для дословного запоминания требуется длительное время, в течение которого человек многократно повторяет фразы или фрагменты стихотворения. Запоминание по смыслу осуществляется быстро. Почему? Речь при восприятии переводится мозгом в зрительные образы. При запоминании речи (или текстов) по смыслу, человек на самом деле запоминает комбинации зрительных образов. А зрительные образы, как мы все знаем, запоминаются хорошо и быстро. При воспроизведении вспоминаются именно зрительные образы, которые описываются словами, "своими словами". При смысловом запоминании порядок слов не имеет значения. Главное - правильно передать картинку, которую мы вспоминаем. Вербальная информация при восприятии вызывает в мозге зрительные образы, благодаря чему и запоминается, но памятью зрительного анализатора.

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

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

Фразы являются основой для составления паролей. Слова в фразах при наборе можно:

  • никак не выделять начало слова (самый идеальный вариант).
  • разделять любыми знаками препинания или символами.
  • начинать с большой буквы.

Для составления фраз можно использовать:

  • специальные термины из вашей сферы деятельности.
  • замену корня (корневой морфемы) слова на бессмысленные сочетания звуков.
  • абсурдный логический смысл.
  • хорошо знакомую последовательность предметов (метод Цицерона)

Специальные термины из вашей сферы деятельности

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

Примеры таких фраз:

  • высотный профиль анизотропного рассеяния полярной ионосферы.
  • убрать грот-марсель.
  • затвор полевого транзистора.

Замена корня (корневой морфемы) слова на бессмысленные сочетания звуков.

"Глокая куздра курдя́чит бокрёнка". Фраза представляет собой набор бесмысленных слов. Несмотря на это, общий смысл понятен: некоторая определённым образом характеризуемая сущность женского рода делает что-то с детёнышем другого рода. Еще один пример такой замены: "Пуськи бятые".

Подобные фразы легче запоминаются за счет:

  • необычности звучания.
  • того, что собственные придуманные фразы, запоминаются легче, чем чужие.
  • понимания общего смысла фразы.

Абсурдный логический смысл

Примеры таких фраз в кинематографе:

  • Широко Закрытые Глаза
  • Заводной Механический Апельсин

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

Хорошо знакомая последовательность предметов (метод Цицерона)

Прием использует 2 фактора:

  • естественное запоминание последовательности предметов, с которыми вы постоянно сталкиваетесь (например, дома или на работе)
  • использование образной информации, которая легче всего запоминается.

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

  • рабочее место и предметы рядом.
  • дом (любая из комнат).
  • дача.
  • и т.д.

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

Примеры фраз:

  • БелаяВешалкаРозетка220Комод (предметы в прихожей).
  • ParkerBallWoodSupport (шариковая ручка, деревянная подставка).

Алгоритм создания надежного пароля

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

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

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

Примеры паролей сформированных по алгоритму:

  • ubrat_gr0T-marcel
  • 10pu$kibyat1h
  • w!d3oPene|)eyes

Таблица замен символов

Буква

Замена

A

4,/\,@, /-\, ^, (L

B

I3, 8, 13, |3, !3, (3, /3, )3, |-], j3

C

[, <, (

D

), |), (|, [), I>, |>,T), I7, |},|]

E

3, &, ё, [-, |=-

F

|=, |#, /=,

G

6, &, (_+, C-, (?,, [,, {, <-, (.

H

#,/-/,\-\,[-],]-[,)-(,(-), :-:,|~|,|-|

]~[,}{,!-!,1-1,\-/,I+I

I

1, |, ][, !, 3y3

J

,_|, _|, ._|, ._], _], ,_], ]

K

>|, |<,1<,|c, |(, 7<

L

1, 7, |_, |

M

/\/\, /V\, [V], |\/|, ^^, <\/>, {V}, (v), (V), |\|\, ]\/[, nn, 11

N

^/, |\|, /\/, [\], <\>, {\}, /V, ^

O

0, (), [], <>, Ø

P

|*, |o, |^, |>, |", []D, |7

Q

(_,), ()_, 0_, <|

R

I2,|~, |?, /2, |^, [z, .-, |2, |-3

S

5, $, §

T

7, +, -|-, '][', «|», ~|~

U

(_), |_|, L|

V

\/, |/, \|

W

\/\/, vv, \N, '//, \\', \^/, (n), \V/, \X/, \|/, \_|_/, \_:_/, \\//\\//

X

><, }{, }{, )(, ][

Y

\/, \|/, \//

Z

7_, -/_, %, >_, ~/_, -\_, -|_

Г

r, |\,

Ж

>|<, }|{, ]|[, |-|-

З

3

И

|/|, u

Л

/\, J[, J|, J|_, JI

П

n, /7, //, |¯|

Р

P

У

y

Ф

<|>, qp, o|o

Ц

|_|_, |_|,, U

Ч

4, \-|

Ш

III, W, |||, LLI, |_|_|

Щ

LLL, |_|_|_, l_l_l,

Ъ

'b, '6

Ы

b|, bI, b1, 61, 6I

Ь

b, 6

Ю

|-0, I0, 10

Я

9I, <|, 9