Pull to refresh

Технология аутентификации с помощью доверенных лиц

Reading time 10 min
Views 8.5K
3 года назад мне в голову пришла идея алгоритма восстановления пароля от учётной записи. Его главное преимущество заключается в том, что он позволяет восстановить учётную запись в тех случаях когда сделать это другим способом невозможно, например, когда вы забыли пароль, ответы на секретные вопросы, и лишились доступа к доверенному почтовому ящику, причём восстановить пароль можно как после его утери, так и после его смены злоумышленником.
Именно этой теме я и посвятил свою диссертацию, части которой я уже публиковал ранее. Теперь, я опишу сам алгоритм, его матмодель и приведу оценки вероятностей успешной аутентификации легального пользователя и злоумышленников.


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

Итак, сам алгоритм социальной аутентификации можно разбить на 4 основных этапа:
1. Подготовительный этап.
2. Запуск системы социальной аутентификации (ССА).
3. Получение оценок поручителей.
4. Анализ оценок поручителей Центром Авторизации.

В аутентификации участвуют три основных класса объектов:
• S – некая информационная система, имеющая в своём составе подсистему разграничения доступа, реализующую технологию аутентификации с помощью доверенных лиц, которую мы будем называть Центром Авторизации (ЦА) CA;
• User — пользователь, человек имеющий учётную запись в ИС S;
• Voucher — поручитель, человек способный подтвердить личность пользователя.

В процессе аутентификации поручители должны подтвердить в ЦА личность пользователя.

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

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

Так выглядит сам алгоритм работы:


Вероятность успешной аутентификации в таком случае зависит от:
p1 – вероятность успешно пройти CAPTCHA;
p2 – вероятность получить список поручителей;
p3 – вероятность определить поручителя и связаться с ним;
p4 – вероятность получить оценку от поручителя;
p5 – вероятность получить удовлетворительную оценку.

Так как вероятности p1, p2, p3, p4 и p5 независимы друг от друга по своей природе, то согласно биномиальному закону, вероятность для пользователя получить v — неудовлетворительных оценок из w — общего количества оценок равна:
,
где — количество комбинаций.

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


Есть две наиболее вероятные причины, по которым пользователь мог обратиться за новым паролем. Либо его учётную запись взломали, либо он забыл старый пароль. Что именно произошло, зависит от того как давно в последний раз был изменён пароль.
Чем меньше времени прошло между сменой пароля и обращением в Центр Авторизации (ЦА), тем выше вероятность взлома учётной записи. Период времени, при попадании в который учётная запись будет считаться предположительно взломанной, назовём временем премодерации. В таком случае обратившемуся пользователю передаётся список поручителей.
Если же пароль за это время не менялся, то пользователь мог просто его забыть. Чтобы удостовериться в этом ЦА высылает легальному пользователю сообщение, в котором просит разрешить или запретить процедуру восстановления пароля. Чем больше времени не будет ответа, тем выше вероятность утери пароля. Поэтому, если по прошествии времени премодерации ответ так и не был получен, то начинается процедура восстановления пароля.

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

Самым очевидным является вычисление времени премодерации с помощью метода квантилей. Для этого строится вариационный ряд интервалов времени между сеансами работы пользователя с системой t1, .., tn. И равным времени премодерации можно считать заданный квантиль необходимого уровня, например 0,95, . В таком случае вероятность получения списка поручителей для легального пользователя, активно пользующегося своей учётной записью равна 95%, а вероятность для злоумышленника всего 5%. В силу универсальности метода квантилей и применимости для любого семейства распределений уточнение типа распределения проводить не обязательно, однако если обращения пользователя подчиняются какому-либо распределению, то время премодерации можно вычислить точнее.

Вероятность определить поручителя и связаться с ним сильно зависит от характера инициатора проверки. Полученный список поручителей содержит только записанные самим пользователем определения, например, «брат», «дядя Юра», «Кабан», «par0vi4ok» или даже «Вася Пупкин». Для легального пользователя определить каждого из них и с ними связаться не представляет никаких проблем, в отличие от злоумышленника. Такая задача станет непреодолимым препятствием для автоматизированных и неперсонализированных атак.

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

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

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

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



Удовлетворительными считаются оценки в 5, 6 и 7 баллов.

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


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

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

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

Так как для увеличения робастности было решено считать аутентификацию успешной даже в случае получения одной неудовлетворительной оценки, то вероятность успешной аутентификации равна:


Перечислим основные типы атак злоумышленников, применимых для данной системы, и их особенности, в порядке возрастания параметров:
Автоматизированная атака (АА) – атака, для проведения которой необходимо только ввести входные параметры, в данном случае логин жертвы. Такие атаки эффективны при подборе паролей. Имея базу логинов какого-либо сервера и словарь с наиболее распространенными паролями можно методом перебора взломать большое количество учётных записей. Отличается тем, что хотя при использовании специальных систем и можно научиться проходить CAPTCHA с некоторой вероятностью, но вот задача автоматического определения контактов человека на основании частичных данных, пока что нерешена, а следовательно p2 = 0, что делает систему практически неуязвимой к данному типу атак.
Неперсонализированная полуавтоматизированная атака (НПА) – атака, при которой целью злоумышленника является не определённая, а множество жертв, при этом автоматизирована лишь часть действий злоумышленника, например, рассылка поручителям сообщений с просьбами о помощи.
Неперсонализированная неавтоматизированная атака (ННА) – атака, при которой целью злоумышленника является не определённая, а множество жертв, при этом действия злоумышленника практически неавтоматизированы.
Персонализированная атака (ПА) – атака, при которой целью злоумышленника является конкретное лицо, а злоумышленник обладает высокой квалификацией и более широкими возможностями по сбору информации о жертве.
Атака со стороны близкого знакомого (АСБЗ) – атака, при которой злоумышленником является человек близко знакомый с жертвой.
Атака со стороны поручителя (АСП) – атака, при которой злоумышленником является один из поручителей. Такая атака опасна тем, что он хорошо знает жертву и имеет возможность выставить себе самому оценку.
Атака со стороны группы поручителей (АСГП) – атака, при которой сразу несколько поручителей являются злоумышленниками. А если учесть, что группа состоит как минимум из двух человек, а минимальное количество оценок, при которой возможна аутентификация, равно трём, то основной проблемой для злоумышленников является получение списка поручителей. Здесь, кстати, обнаруживается небольшой парадокс, который заключается в том, что самым разумным поведением о стороны добросовестного поручителя в такой ситуации является не выставление отрицательной оценки, а игнорирование злоумышленников, т.к. вполне возможно, что им для получения доступа не хватает лишь компетентности эксперта.

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

Таким образом, в зависимости от компетентности поручителей, а следовательно и минимально необходимого количества оценок, вероятность успешной аутентификации в случае потери пароля колеблется в диапазоне от 82,8% до 96,7%, а в случае смены пароля злоумышленником от 71,7% до 90,2%.

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


Стоит отметить, что данные вероятности справедливы в случае, если жертвой выступает активный пользователь. Тогда вероятность получить список поручителей достаточно мала. Однако, если пользователь достаточно давно покинул данный ресурс, то вероятность p2 со временем стремится к 100%. В таком случае успешность атак будет несколько другой:


Замечу что, вычисленные выше вероятности применимы лишь для оценки первой атаки на конкретного пользователя, так как с увеличением количества атак профессионализм поручителей растёт. Таким образом, из-за уменьшение вероятностей получить как положительную оценку, так и какую-либо вообще, вероятность успешности атаки падает.
Учитывая, что на определение поручителей и связь с ними уходит как минимум несколько часов, то одной успешной НПА-атаки на активного пользователя требуется 150 человеко-лет и сервер с как минимум 450 тысячами пользователей, либо всего 5 человеко-лет и 45 тысяч неактивных учётных записей. Для успешной ННА-атаки на активного пользователя требуется 8 человеко-лет и сервер с как минимум 11 тысячами пользователей, либо всего 10 человеко-месяцев и тысяча неактивных учётных записей. Причём с ростом вычислительных мощностей эффективность атак не увеличивается. Как видно из данных подсчётов неперсонализированные атаки не представляют практически никакой опасности.
ПА атаки всё ещё обладают малой вероятностью успеха, но при желании их эффективность можно увеличить, хотя себестоимость такой атаки всё равно будет неадекватна.
Хотя вероятности атак со стороны знакомых и поручителей достаточно высоки, не стоит забывать, что количество возможностей провести такую атаку сильно ограничено количеством знакомых, а ещё сильнее количеством тех, кто выбрал злоумышленника в качестве поручителя. Таким образом, даже при том, что такие атаки обладают наивысшей по сравнению с другими типами вероятностью успеха, опасность таких атак также очень низка.
И наконец, отмечу, что в данную систему хорошо интегрируются методы эскалации. Одним из методов получения списка поручителей является создание множества сеансов восстановления пароля в надежде что один из них попадёт в необходимый интервал. Для противодействия таким массированным атакам идеально подходят методы эскалации, суть которых заключается в том, что каждое повторное действие требует всё больших и больших затрат. Например, чтобы создать новый СВП, если после предыдущего не прошло ещё достаточно длительного промежутка времени, необходимо совершить какое-либо действие, несложное для легального пользователя и затратное для злоумышленника, как то заполнить сложную CAPTCHA или предоставить новый e-mail для связи. Но самым идеальным в данном случае являлось бы требование перевести небольшую сумму (около 100 рублей) на временный счёт, своеобразный залог, доступ к которому можно было бы получить, успешно пройдя аутентификацию. Такое требование стало бы непреодолимым препятствием для любой массированной атаки.

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

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

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

К сожалению, связаться с теми, кто могли бы внедрить данную систему в социальной сети, типа, Вконтакте или игровые проекты, вроде WoT, не удалось. Надеюсь, что на этой площадке есть те, кого эта идея заинтересует :)
Only registered users can participate in poll. Log in, please.
Что вам проще сделать для восстановления пароля?
54.9% Обратиться в службу поддержки (при этом потребуется назвать свои личные данные) 112
45.1% Связаться с тремя друзьями и попросить их вам помочь 92
204 users voted. 39 users abstained.
Tags:
Hubs:
+26
Comments 13
Comments Comments 13

Articles