Виды двухфакторной аутентификации: их плюсы и минусы

Объясняем, какие встречаются разновидности двухфакторной аутентификации и какие из них предпочтительно использовать.

Какой бывает двухфакторная аутентификация

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

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

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

Одноразовые коды из SMS, на почту или голосом по телефону

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

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

SMS с одноразовым кодом аутентификации в аккаунте Google

Наиболее привычный вариант двухфакторной аутентификации: одноразовый код в текстовом сообщении

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

С подтверждениями через номер телефона — будь то SMS или голосовой звонок — есть другая проблема: доступ к ним легко можно утратить. Иногда пользователь просто забывает заплатить за телефон, теряет его или, наконец, меняет номер. В общем, тем или иным образом лишается возможности получить одноразовый код.

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

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

Пароль как второй фактор

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

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

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

Одноразовый код из заранее сгенерированного списка

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

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

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

Список одноразовых кодов подтверждения

Список одноразовых кодов для подтверждения банковских транзакций

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

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

Одноразовые коды из приложения-аутентификатора

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

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

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

Google Authenticator — самое известное приложение-аутентификатор

Google Authenticator — самое известное, но далеко не единственное приложение-аутентификатор

Биометрия — отпечаток пальца, лицо или голос

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

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

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

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

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

Аутентификация с помощью отпечатка пальца

Входом по отпечатку пальца давно уже никого не удивишь

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

Местоположение

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

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

Аппаратные ключи FIDO U2F (aka YubiKey)

Описанные выше варианты аутентификации имеют существенный недостаток: они позволяют проверить аутентичность пользователя, но никак не проверяют аутентичность сервиса. Из-за этого они уязвимы для атаки MitM (man-in-the-middle).

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

Для противодействия таким атакам были созданы ключи FIDO U2F, также известные по имени наиболее популярной модели такого ключа — YubiKey. Основное преимущество этого варианта аутентификации состоит в том, что во время регистрации сервис и U2F-ключ запоминают некоторую информацию, которая уникальна и для каждого сервиса, и для каждого пользователя. Впоследствии в процессе аутентификации сервис должен отправить ключу определенный запрос, на который ключ даст ответ только в том случае, если этот запрос правильный.

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

Ключи FIDO U2F: Yubico YubiKey и Google Titan (Feitian ePass)

Пара ключей FIDO U2F: Yubico YubiKey (левее) и Google Titan (правее)

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

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

FIDO Passkeys: будущее настоящее без паролей

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

Поэтому все тот же FIDO Alliance, ответственный за создание ключей U2F, разработал новый стандарт аутентификации, который вместо паролей использует нечто под названием passkeys — «паролеключи», в вольном переводе на русский. В упрощенном виде это работает примерно так же, как в ключах U2F, только для хранения информации, используемой для аутентификации, не обязательно нужно какое-то специальное устройство.

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

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

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

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

Так что торопиться полностью переходить на passkeys пока будет преждевременно. Но поэкспериментировать с ними уже можно: недавно была анонсирована полноценная поддержка passkeys аккаунтами Google, так что все желающие уже могут ознакомиться с тем, как это работает на практике.

Какие способы двухфакторной аутентификации лучше и о чем еще надо помнить

Напоследок — еще раз самое важное:

  • В 2023 году двухфакторная аутентификация — не роскошь, а насущная необходимость. Обязательно включайте ее везде, где это в принципе возможно.
  • Любые варианты двухфакторной аутентификации однозначно лучше ее отсутствия.
  • Оптимальный способ двухфакторной аутентификации — с помощью приложения-аутентификатора.
  • Еще лучше использовать аппаратный ключ FIDO U2F — Yubico TubiKey, Google Titan и так далее. Особенно для самых ценных аккаунтов.
  • Уже можно поэкспериментировать с технологией Passkeys, но полностью переходить на нее, пожалуй, еще рано.
  • Поэтому все еще важно внимательно относиться к паролям: создавать надежные, не переиспользовать их на нескольких сервисах и безопасно хранить в менеджере паролей.
  • И конечно же, не забывайте о том, что большинство методов двухфакторной аутентификации (кроме U2F и passkeys) уязвимы для фишинга. Поэтому используйте надежное решение, в котором есть автоматическая защита от этой угрозы, — например, Kaspersky Premium.
Советы