Что такое двухфакторная аутентификация (2FA) и зачем она нужна

Обложка: Зачем нужна 2FA

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

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

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

Понятие аутентификации нередко смешивают с авторизацией и идентификацией, что не совсем верно. 

Идентификация — это начальный процесс распознавания информационной системой человека или устройства путем сообщения уникального идентификатора (логин, email, номер телефона, ID). Это ответ на вопрос «Кто вы?», который позволяет отличить пользователя от остальных, но не подтверждает его подлинность.

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

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

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

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

Например, при входе в личный кабинет банка без дополнительных степеней аутентификации вы вводите только логин и пароль, при 2FA — еще и код из СМС, при MFA — после одноразового кода банк может запросить также ответ на секретный вопрос.

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

При этом срок действия одноразовых кодов подтверждения (Time-based One-Time Password, TOTP) редко превышает 1 минуту, что также затрудняет несанкционированный доступ даже при условии, что временный код стал известен злоумышленникам.

Где нужна 2FA:

  • личная почта
  • мессенджеры и соцсети
  • облачные и экосистемные сервисы
  • банковские и финансовые ресурсы
  • корпоративные и рабочие аккаунты
  • любой сервис с важными данными

Эксперты DDoS-Guard составили небольшую памятку о том, как выбрать механизм аутентификации в зависимости от количества чувствительной информации в аккаунте:

• Ключи доступа к почте, рабочему аккаунту, Apple/Google ID → обязательно 2FA;
• Сохраненные платежные данные в банковских приложениях и онлайн-магазинах, виртуальные кошельки → обязательно 2FA;
• Профили в соцсетях → желательно 2FA;
• Малозначимые ресурсы без личных данных пользователя и/или те, которые используются однократно → 2FA по желанию.

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

Первая ступень (фактор знания)

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

Вторая ступень (фактор владения)

1. Система предлагает пользователю подтвердить его подлинность при помощи ключа, которым тот владеет и доступ к которому злоумышленникам получить гораздо сложнее.

2. Факт владения аккаунтом можно доказать:

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

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

Cхема-алгоритм работы 2FA — DDoS-Guard

СМС-код

СМС-код — одноразовый пароль с ограниченным сроком действия 30-60 секунд. Он универсален, так как подходит для любого телефона и не требует установки специального приложения или особых настроек, однако из-за простоты механизма код из СМС-сообщения является одним из самых ненадежных вариантов аутентификации. 

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

Приложение-аутентификатор

Коды из приложения-аутентификатора — Яндекс Ключ, Google Authenticator и других. Коды подтверждения в таких приложениях генерируются офлайн прямо на устройстве пользователя, что защищает от перехвата одноразового пароля по сети. Такие коды не зависят от оператора связи, что исключает перехват номера, и интернета, а ограниченный срок действия, не превышающий 30-60 секунд — хорошая гарантия защиты от фишинга, ведь даже если злоумышленник узнает пароль, он все равно не сможет войти без кода.

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

Аппаратные ключи

Аппаратные ключи (hardware tokens) — физические устройства, которые хранят или генерируют одноразовые пароли. Работа по принципу «что у вас есть» гарантирует крайне высокий уровень безопасности, так как без физического доступа к аппаратному токену злоумышленник не в состоянии перехватить одноразовый пароль. Также большим плюсом этого метода подтверждения является крайняя устойчивость к фишингу, причем на криптографическом уровне. Токен привязывает аутентификацию к конкретному URL-адресу через протоколы FIDO2/U2F, поэтому даже если пользователь введет пароль на фишинговом сайте, токен автоматически не подпишет запрос, так как адрес сайта не совпадает с реальным.

Из минусов можно отметить, что для использования аппаратного ключа его необходимо физически иметь «на руках», а утрата или поломка токена блокирует доступ к учетным записям до тех пор, пока не будет найдена замена. Также не все сервисы и ресурсы поддерживают аппаратные ключи безопасности, а еще, в отличие от программных ключей, аппаратные стоят денег — физические носители нужно покупать.

NFC-ключи

Беспроводные/NFC-ключи — тоже физические устройства, поэтому список их достоинств совпадает со списком плюсов аппаратных ключей. Однако, в отличие от последних, способ подключения беспроводных ключей бесконтактный, поэтому они удобнее для мобильных устройств — в противовес аппаратным ключам, которые требуют наличия порта и потому обычно используются с компьютером.

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

Поведенческие механизмы

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

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

Биометрия

Биометрические данные (отпечаток пальца, распознавание лица) — еще один метод аутентификации на втором этапе. Отличается высокой степенью удобства для пользователя: не нужно запоминать пароль или генерировать одноразовый, «инструмент» подтверждения всегда с собой, скорость распознавания высока, а еще уникальные черты лица человека или отпечатки его пальцев сложно подделать.

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

Электронная почта

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

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

QR-код

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

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

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

1. В личном кабинете, настройках профиля или разделе «Безопасность» выбрать пункт «Двухфакторная аутентификация»; 

2. Выбрать метод подтверждения:

  • приложение-аутентификатор: отсканировать QR-код, который появится на экране устройства;
  • СМС-сообщения: ввести номер телефона, на который будут приходить одноразовые коды подтверждения;
  • электронная почта: указать актуальный адрес, на который сервис будет присылать пароли;
  • биометрические данные: выполнить сканирование лица или отпечатка пальца;
  • аппаратные ключи: выбрать пункт «Добавить ключ безопасности» вставить устройство в USB-разъем или поднести NFC-токен к модулю считывателя;

3. Подтвердить активацию:

  • приложение-аутентификатор: ввести одноразовый код, сгенерированный приложением;
  • СМС-сообщения: ввести пароль из проверочного сообщения;
  • электронная почта: ввести код-пароль из электронного письма;
  • биометрические данные: подтвердить личность повторным сканированием;
  • аппаратные ключи: нажать кнопку или прикоснуться к сенсорной панели ключа, установить PIN-код;

4. Сохранить резервные коды, который предоставит сервис.

В DDoS-Guard в качестве второго фактора мы используем одноразовые коды из приложения Google Authenticator. 

Настроить аутентификацию просто: достаточно зайти в профиль, выбрать вкладку «Безопасность» и передвинуть ползунок Google Authenticator в разделе «Двухфакторная аутентификация» вправо. Затем следуйте шагам, описанным выше. Готово, ваш аккаунт под защитой!  

2FA DDoS_Guard.jpg

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

Если телефон с Google Authenticator потерян или вышел из строя, при этом у вас есть учетная запись Google, которая там использовалась, нужно установить приложение на новое устройство и войти в аккаунт. Экосистема Google автоматически «подтянет» старые коды на новое устройство, и доступ будет восстановлен.

Если учетной записи Google нет, рекомендовано восстановление при помощи механизмов самого сервиса аутентификации — резервных кодов. В этом случае нужно ввести один из 8-значных одноразовых кодов, полученных при настройке 2FA, вместо кода из приложения. Затем нужно перенастроить аутентификатор на новом устройстве и обязательно сохранить новые резервные коды.

Существует ли связь между двухфакторной проверкой подлинности и концепцией «Никому не доверяй» (Zero Trust)?

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

Можно ли обойти 2FA?

Да, но это очень сложно. Злоумышленнику понадобится завладеть телефоном жертвы с установленным приложением-аутентификатором и суметь его разблокировать, перехватить СМС-сообщение, взломать электронную почту или надеяться, что сотрудники техподдержки просто сбросят 2FA по запросу. Так что в теории это возможно, но на практике — маловероятно, так как требует значительных усилий и времени.

Как работает двухфакторная проверка и как она защищает аккаунт?

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

Каков пример двухфакторной проверки подлинности?

Одноразовые коды из приложений-аутентификаторов, СМС-сообщений, электронной почты, скан лица, отпечаток пальца — всё это примеры второй ступени двухфакторной проверки подлинности.

Почему 2FA важна и от каких угроз она защищает?

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