e Как подключить двухфакторную аутентификацию на сайте - настройка двухэтапной авторизации
Категории Безопасность

Данные на замке: как двухфакторная аутентификация поможет обезопасить сайт

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

Кому и зачем нужна двухфакторная аутентификация

Мы уже давно привыкли получать SMS c числовым паролем от банков при транзакциях и входе в личный кабинет. Банки – яркий пример сферы, где уже давно практикуется двухфакторная аутентификация. Однако не только они нуждаются в безопасном доступе к закрытым зонам своих сайтов. Любой сервис, пользователям которого необходимо постоянно авторизовываться, заинтересован в сохранении собственной репутации и персональных данных клиентов. Это могут быть совершенно разные сайты — от провайдеров сотовой связи до ресурсов с онлайн-играми и обычных интернет-магазинов. Как правило, на таких площадках хранятся персональные данные клиентов.

Особенно привлекательными для хакеров становятся аккаунты, владельцы которых привязали свои банковские карты или уже перевели часть средств на внутренний баланс в личном кабинете. В США некоторые онлайн-магазины начали смотреть в сторону двухфакторной аутентификации, когда выяснилось, что в 2017 году уровень мошенничества в сфере e-commerce вырос на 30% по сравнению с предыдущим годом. Речь идёт как о подмене адреса доставки уже купленных товаров, так и о покупках с помощью украденных банковских карт и других платёжных инструментов. Чтобы сохранить клиента и мотивировать его к повторным покупкам, продавцы начинают задумываться не только об удобстве использования сайта, но и о безопасности и надёжности.

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

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

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

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

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

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

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

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

Первая версия E-NUM работала на платформе Java. Сегодня приложение работает на большинстве популярных ОС и генерирует одноразовые ключи по схеме «Вопрос-ответ». «Число-вопрос» не нужно вводить вручную, приложение присылает Push-уведомление после запроса на авторизацию. E-NUM отображает единственно верное «число-ответ» на экране телефона, которое пользователь отправляет, нажав соответствующую кнопку в приложении или введя вручную. 

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

Если пользователю не хочется доставать смартфон и у него есть «умные» часы, то в E-NUM можно подтвердить действие с помощью часов под управлением Apple Watch или Android Wear.

Когда база активных пользователей клиента E-NUM достигла 2,5 млн человек, было принято решение об открытии API. Первоначально сервис E-NUM применялся только в системе WebMoney Transfer. Сейчас владельцам электронных кошельков не обязательно скачивать отдельное приложение, так как E-NUM уже интегрирован в WebMoney Keeper.

На сегодняшний день E-NUM используют более 6 млн человек.

Как настроить двухфакторную аутентификацию на своем сайте

Владельцы сайтов могут бесплатно внедрить систему аутентификации пользователей. Понадобится только запрос на официальном сайте сервиса ENUM.RU и подтверждение заявки.

Выделим два способа интеграции: OAuth2 и Soap.

Метод интеграции OAuth2

Стандарт OAuth 2.0 позволяет предоставить третьей стороне доступ к защищённым ресурсам без необходимости сообщать третьей стороне данные аутентификации пользователя («число-вопрос», «число-ответ»).

Последовательность действий при авторизации с использованием системы E-NUM методом OAuth2 выглядит так:

1. Клиент сайта запрашивает вход в защищённую зону.
2. Для предоставления доступа сайт требует пройти авторизацию, для чего перенаправляет его на E-NUM.
3. После успешной авторизации система E-NUM возвращает клиенту одноразовый код.
4. Браузер клиента, в свою очередь, передаёт код авторизации сайту.
5. Сайт, используя код авторизации, запрашивает у E-NUM временный токен доступа.
6. Этот токен используется в дальнейшем для обращения к методам API E-NUM, которые обеспечивают идентификацию клиента.

Детальное описание методов OAuth2 API на сайте ENUM.RU

Пример рабочей интеграции

Исходный код примера на GitHub
Вы можете реализовать свой OAuth2-клиент E-NUM (согласно описанию методов API) или воспользоваться готовыми клиентскими библиотеками под вашу платформу.

Метод интеграции Soap API

Метод интеграции Soap требует разового перенаправления пользователя на AUTH.ENUM.RU. Последующие запросы уже не требуют перенаправления.

Последовательность действий при авторизации с использованием системы E-NUM методом Soap следующая:

1. Пользователь стороннего сайта вводит свой email. Бекэнд сайта вызывает метод GetChallenge сервиса E-NUM (soap-интерфейс) для получения «числа-вопроса».
2. Сайт отображает «число-вопрос» и просит пользователя ввести «число-ответ». Для проверки ответа пользователя используется метод CheckUserAnswer.
3. При первой авторизации пользователь перенаправляется на https://auth.enum.ru для получения разрешения на работу сайта с Е-NUM в связке с аккаунтом пользователя.

Пример авторизации Soap-методом на GitHub

Детальное описание методов Soap API 

Для использования этого метода владелец сайта должен зарегистрироваться на сайте ENUM.RU. 

⌘⌘⌘

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



Похожие публикации

Накладная: для чего нужна и как правильно составить

Составлять накладную несложно. Этот первичный документ подтверждает сделку, упрощает взаимодействие между контрагентами и помогает избежать…

10 минут назад

Как развернуть ИТ-инфраструктуру для ML-задач: опыт РБК

Рассказываем, как мы помогли команде РБК автоматизировать процесс тегирования материалов редакции с помощью нейросети на…

1 день назад

Карточка предприятия для ИП и ООО: чем полезна и как правильно заполнить

Узнать все самое необходимое о компании и легко и без ошибок выставить ей счет на…

1 день назад

OpenCart: что это, плюсы, минусы, кому подходит

Выбор правильной платформы для создания интернет-магазина играет важную роль в успехе бизнеса. Одной из самых…

1 день назад

Что такое Nextcloud

Зачастую пользователи хранят важные документы и файлы на компьютере или съемном носителе. Но что делать…

1 день назад

Виды трудовых договоров: какие бывают и как их правильно заключать

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

2 дня назад