Реализация двухфакторной аутентификации (2FA/TOTP) под ключ

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

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Реализация двухфакторной аутентификации (2FA/TOTP) под ключ
Средний
~2-3 дня
Часто задаваемые вопросы

Почему вход по паролю без 2FA — главная точка отказа

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

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

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

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

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

Что меняется после внедрения второго фактора: измеримый эффект

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

TOTP-код одноразовый и живёт считанные десятки секунд, поэтому перехваченная на входе пара перестаёт работать. Граница метода здесь честная: он не спасает от подмены страницы входа в реальном времени — против этого нужен аппаратный ключ, и мы заранее закладываем такую возможность. На старте используются привычные приложения вроде Google Authenticator.

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

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

Сравнение способов 2FA: приложение, аппаратный ключ, письмо

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

Вариант Когда подходит Ограничения
Приложение-аутентификатор, одноразовые коды (TOTP) Массовый вход сотрудников и клиентов, смартфон под рукой Коды привязаны ко времени: расхождение часов и потеря телефона требуют регламента; код вводится и на поддельной странице
Аппаратный ключ, например YubiKey Привилегированные роли: админы, продакшен, финансы Носитель нужен каждому плюс резервный ключ; привязка к точке входа согласуется заранее
Код по почте или в мессенджере Редкий вход и восстановление доступа Задержки доставки; доступ к почте становится слабым звеном всей схемы
Встроенный аутентификатор устройства, доверенное устройство Массовый вход, где важна доля завершённых входов Привязка к устройству и его экосистеме, перенос между платформами ограничен

Отдельная тема — доверенные устройства: «запомнить на 30 дней» снижает число запросов кода, но создаёт список исключений, который пересматривают при смене устройства. Резервные коды выдают один раз и хранят вне почты — при аудите это полноценный фактор. Совместимость проверяем и на стороне провайдера входа: не каждая система умеет несколько факторов для одной учётной записи.

Как проходит внедрение 2FA: от аудита входов до регламентов

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

  1. Аудит точек входа. Собираем все места, где система пускает пользователя: основная форма, административный контур, служебные обращения между сервисами, восстановление пароля, вход через внешних поставщиков. Отмечаем, где второго фактора нет, а где он обходится сбросом пароля.
  2. Схема и сценарии восстановления доступа. Решаем, кому что подходит: одноразовые коды в приложении — большинству, аппаратные ключи — привилегированным учёткам. Заранее описываем резервные коды, повторную привязку при потере устройства, подтверждение личности администратором.
  3. Настройка и проверка на стенде. Повторяем боевую конфигурацию: выпуск и проверку кодов, расхождение времени, лимиты попыток, поведение при неверном вводе.
  4. Поэтапное включение. Сначала небольшая группа, затем отделы по одному — ошибка в схеме видна на десяти людях, а не на всей компании.
  5. Обкатка на группе пользователей. Неделя наблюдения: доля успешных входов, число обращений в поддержку, время восстановления доступа. По результатам правим подсказки и пороги блокировок.
  6. Передача регламентов. Инструкции для сотрудников, порядок выдачи резервных кодов, отзыв доступа при увольнении, памятка для первой линии поддержки.

Дальше подключение новых сотрудников заказчик ведёт сам — мы остаёмся на связи при изменениях схемы.

Пакет передачи: конфигурации, схемы потоков и регламенты поддержки

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

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

Разбор проекта: второй фактор в сервисе с тысячами учётных записей

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

Хронология: восемь недель до обязательного режима

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

Обязательный второй фактор включили 94% активных учётных записей. Доля успешных входов с первой попытки просела с 97% до 91% и вернулась к 96%, когда доверенные браузеры перестали запрашивать код повторно. Обращения по восстановлению доступа: 3,4 на тысячу входов в первые две недели, 1,1 к пятой.

Что оказалось сложнее, чем ожидали

Не сам код, а восстановление: пользователи теряют телефоны и меняют устройства, а сценарий «обратитесь в поддержку» дал бы очередь обращений. Собрали самостоятельный путь — резервные коды, привязка второго устройства, восстановление через подтверждённый адрес почты с задержкой. Журнал событий показывает поддержке, какой фактор сработал: разбор инцидента занимает минуты вместо часов.

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

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

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

Три уровня держим совместимыми в одном приложении — переводить пользователей можно постепенно, без пересоздания учётных записей.

Уровень защиты входа Что проверяется Сценарий Ограничения
Пароль плюс второй фактор Знание и владение устройством Публичные сервисы с внешней аудиторией Код можно выпросить фишинговой страницей
Несколько независимых факторов Два фактора из разных категорий Платежи, админ-панель, персональные данные Восстановление доступа требует регламента
Вход без пароля по ключу устройства Подпись, привязанная к домену Сотрудники, входящие ежедневно Нужен резервный ключ и путь восстановления

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

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

Технические сомнения по 2FA: разбираем до старта проекта

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

Сотрудник потерял телефон — он останется без доступа?

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

Можно ли включить защиту не для всех сразу?

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

Как быть со служебными интеграциями и роботами?

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

Не вырастет ли нагрузка на поддержку?

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

Обсудим задачу и вернёмся с планом внедрения второго фактора

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

  • Перечень точек входа: веб-кабинет, админпанель, мобильный клиент, служебные интерфейсы, вход для подрядчиков. Каждая точка либо входит в объём, либо явно исключается — это сразу уточняет оценку объёма работ.
  • Группы пользователей и их количество — сотрудники, клиенты, внешние партнёры. От этого зависит, включаем ли второй фактор всем сразу или раскатываем поэтапно по группам.
  • Сценарии восстановления доступа: что делать, если телефон потерян или приложение удалено. Нужны резервные коды, второй подтверждённый способ и понятная процедура ручного сброса через поддержку.
  • Текущая логика входа и хранение секретов: где живут учётные записи, есть ли корпоративный каталог, как устроены блокировки после неудачных попыток и журнал событий входа.
  • Требования аудита или регулятора к подтверждению личности и сроку хранения логов — они задают, кто получает доступ к секретам и сколько живут записи о входе.
  • Порядок этапов и ограничения: даты релиза, окна обслуживания, наличие тестового контура с копией данных и то, какие доработки готова делать ваша команда.

С этим набором мы возвращаемся не с обещаниями: показываем порядок этапов, план внедрения и оценку объёма работ с открытыми рисками. Опишите задачу — зададим уточняющие вопросы именно по вашей системе.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060