Дружелюбные пароли. Частичная аутентификация почти не изучена, но полезна

BIS Journal №2(41)/2021

5 июля, 2021

Дружелюбные пароли. Частичная аутентификация почти не изучена, но полезна

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

 

ИЗЪЯНЫ БИОМЕТРИЧЕСКИХ СИСТЕМ

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

Нейросеть представляет лицо в качестве массива основных (опорных) точек (это представление является закрытым и уникальным для каждого банка, именно поэтому, в частности, трудно применить один образец для разных банков – просто потому, что другая система может его не считать), после чего приводит указанный массив к дескриптору – уникальному набору характеристик человеческого лица, чаще всего представимому в виде n-мерного вектора. Функция преобразования человеческого лица в дескриптор является однонаправленной, то есть по имеющемуся массиву восстановить исходное изображение невозможно. Такие сиамские нейронные сети, однако, допускают некоторое отхождение от стопроцентного совпадения (в частности, если попытку доступа в технологии Face ID произведёт легальный пользователь в солнцезащитных очках, то система, несмотря на имеющиеся опорные точки на переносице и глазах, представит глаза в виде модели чёрных кругов и всё равно аутентифицирует пользователя). При этом растущая публичность людей (огромное количество фото- и видеоизображений) вкупе с развитием технологий 3D-моделирования и 3D-печати позволит создать неидеальные, но близкие к этому образы практически любого человека, что в силу имеющегося зазора погрешности может привести к успешной аутентификации нелегального пользователя. Математически это будет значить, что имеющийся дескриптор будет пренебрегать определённым количеством координат своего вектора и аутентификация всё равно будет успешной.

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

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

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

 

СТОЙКАЯ СИСТЕМА ВОЗМОЖНА

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

При этом рассматриваемые системы не противоречат устоявшимся в Российской Федерации терминам, в частности [1], поскольку нет ограничений на то, какая информация будет использоваться в качестве аутентификационной.

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

 

ПОНЯТИЕ ЧАСТИЧНОЙ АУТЕНТИФИКАЦИИ

В настоящий момент в некоторых крупных организациях (в частности, в структурах Почты России) используется следующий механизм защиты: оператор может запросить некоторые символы из пришедших пользователю в сообщении для подтверждения операции. Таким образом, пользователь защищается от компрометации оператором или нарушителем, использующим Shoulder Surfing («атака через плечо» из социальной инженерии) или атаки, основанные на захвате клавиш, своего полного текстового сообщения и/или своего пароля/ПИН-кода.

В общем случае этот механизм обеспечивает защиту от подсматривания: даже зная целый пароль или секретную фразу, злоумышленник не может предугадать, сколько символов и какие из них необходимо в действительности вводить для доступа к системе. Указанный механизм ранее эксплуатировался, в частности, банковской системой Великобритании [2]. Такой механизм ввиду частых утечек баз данных банков в открытый доступ мог бы значительно уменьшить опасность компрометации при условии достаточно хорошего генерирования необходимых последовательностей со стороны банка. Данная выборка символов называется partial authentication, или частичная аутентификация.

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

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

Рассмотрим два возможных способа частичной аутентификации.

 

I

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

Некоторые попытки исследовать такой тип аутентификации принимались на Западе. Одной из самых объёмных работ по данной тематике является работа [3]. Несмотря на приведённые выкладки, указанная система совершенно нестойкая. Проведён следующий тест: протестировано 110 000 симуляций с использованием паролей длиной более 8 символов. Отмечено, что 58% паролей раскрываются полностью после 7 входов в систему, 90% — после 12 и 99% — после 19 входов в систему, если используется такая частичная аутентификация.

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

Здесь на помощь могут прийти парольные фразы.

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

Парольные фразы тем не менее тоже подвержены атакам по словарю. Ещё одной значительной уязвимостью может стать следующий вариант.

Представим, что пользователь использует в качестве пароля какую-то распространённую фразу, к примеру, вступление из Евгения Онегина:

 

Мой дядя самых честных правил,

Когда не в шутку занемог,

Он уважать себя заставил

И лучше выдумать не мог.

 

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

К примеру, мы можем обратиться к Трою Ханту, который активно ведёт сайт https://haveibeenpwned.com. Трой Хант на указанном сайте выставляет в открытый доступ базы данных слитых почт и паролей, представленных в виде хеша. Изначально в базе данных было 2,6 миллиарда строк. После чистки базы от повторов и лишних записей Хант высчитал, что в ней содержится порядка 1,1 миллиарда уникальных комбинаций адресов электронной почты и паролей. Эти данные могут быть использованы при авторизации пользователя на сайтах. Так вот, первая строчка из четверостишья, указанного выше, пусть и представленная в виде «мойдядясамыхчестныхправил», проверку данного сайта не прошла, то есть где-то она «отметилась».

Эту проблему можно очень хорошо решить с помощью частичной аутентификации, только в качестве запрашиваемых единиц будет не одиночный символ, а целое слово. В нашем примере, если мы запросим, к примеру, 1, 2, 5, 8, 10 слова, то получим «мойдядяправилвзанемог», что явно не будет иметь ни известный хеш, ни поддаваться обычной логике построения паролей, ни будет уязвимой к атакам по словарю, но при этом будет очень устойчивым паролем.

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

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

Такую систему можно представить в виде таблицы:

Прилагательное

Существительное

Наречие

Глагол

В данную таблицу заносится, к примеру, по тысяче слов, удовлетворяющих условиям. Каждому сотруднику организации, где необходимо организовать парольную защиту на местах, выдаётся по одному случайному слову (или его коду) из указанной таблицы. Условный сотрудник получает пароль вида «Синийслонбыстропишет» или даже «СинийслонбыстропишетA1A2A3A4», где A1–A4 – числовые коды слов, выданных сотруднику. Данный пароль будет легкозапоминаемым, но при этом очень стойким.

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

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

 

II

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

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

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

При этом более предпочтительным будет представление пароля в виде вектора (по аналогии с биометрией). Введём следующее определение:

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

Величину d будем называть глубиной допустимости. Таким образом, мощность множества D допустимых паролей будет равна Nd, а вероятность ложной аутентификации станет равной P = Nd/Nn.

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

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

В целом поведение легального пользователя отличается от поведения нарушителя. Легальный пользователь в основном авторизуется верно или с небольшими отклонениями («вводит допустимый пароль» в нашей терминологии). В связи с этим логичным выглядит дать легальному пользователю некие привилегии в сравнении с нелегальным.

Глобально возникает вопрос, который является скорее философским: имеет ли аутентификация ровно два исхода? Ведь если существует понятие частичной аутентификации, то можно и аутентифицироваться «не полностью». Получается, что существует некий кубит с точки зрения аутентификации, то есть не полный отказ и не полное подтверждение.

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

Условно данное разделение может выглядеть следующим образом:

  1. Пользователь предъявляет токен, но пароль вводит совершенно неверный (процент совпадения меньше фиксированной величины, не очень большой или не совпадает длина пароля). Уровень доверия к такому пользователю будет условно низкий. При этом, конечно, предусмотрено как повышение уровня доверия (путём ввода верного пароля и вычисления в качестве процента совпадения, к примеру, среднего арифметического), так и понижение (если пользователь продолжает вводить неверные пароли). К такому пользователю разумно применять ограничения, не позволяющие использовать метод тотального опробования: осуществлять небольшую блокировку попыток доступа или полную блокировку, если процент совпадения не поднимается.
  2. Пусть пользователь аналогично предъявляет токен, но вводит в качестве пароля другой, но с приемлемым d, при этом указанный процент совпадения у него хоть и невысок, но и не падает. Уровень доверия к такому пользователю будет условно средним. Тогда у указанного пользователя можно запросить несколько символов, которые были введены ошибочно, или предложить некий механизм удостоверения личности, доступный только легальному пользователю (к примеру, отправка сообщения с кодом на телефон).
  3. Пользователь предъявляет токен и вводит пароль с одним-двумя неверными символами (для стандартного пароля из 8 символов), уровень доверия к такому пользователю назовём условно высоким. Такому пользователю, очевидно, нет смысла чинить препятствия во вводе пароля или замедлять его следующую попытку. Однако если такой пользователь ошибается в одном символе, причём неверные символы находятся в небольшой окрестности от верных (вокруг на клавиатуре) или не совпадает регистр/раскладка клавиатуры, то в зависимости от проводимой политики безопасности, если уровень доверия к пользователю традиционно высок, имеет смысл даже допустить его аутентификацию.

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

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

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

Эти идеи могут варьироваться и формулироваться индивидуально, однако глобально они, скорее всего, будут именно такими.

 

ВЫВОД

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

 

Список литературы:

  1. ГОСТ Р 58833-2020. Защита информации. Идентификация и аутентификация. Общие положения.
  2. UK Consumers Association: Bank websites: How safe is yours? Which? Magazine (September 2011), с. 24–27.
  3. «Give Me Letters 2, 3 and 6!»: Partial Password Implementations & Attacks, David Aspinall and Mike Just.

Смотрите также