Поиск по сайту Поиск

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

Пароли, даже самые сложные, уже давно не препятствие для злоумышленников. В ответ на это владельцы сайтов всё чаще вводят второй фактор аутентификации. В этом материале, совместно с нашими партнёрами из 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. 

⌘⌘⌘

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



Customer development: почему при выборе идеи нужно учитывать мнение клиентов

Customer development: почему при выборе идеи нужно учитывать мнение клиентов

Вместе с менеджером по продуктам REG.RU Никитой Атучиным разбираем, почему MVP — не всегда хорошее решение для старта бизнеса. Если вы...
Read More
Как выбрать и создать первый ИИ-проект

Как выбрать и создать первый ИИ-проект

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

Улучшаем изображение с плохим освещением с помощью нейросети

Что такое фотография с точки зрения физики? Это отпечаток, возникающий на светочувствительной матрице при отражении от объекта источника света: солнца,...
Read More
Как ускорить Data Science с помощью GPU

Как ускорить Data Science с помощью GPU

Аналитикам данных нужны вычислительные мощности. Обрабатываете ли вы большой датасет в Pandas или перемножаете множество матриц с Numpy — вам...
Read More
Стэнфордский курс: лекция 5. Свёрточные нейронные сети

Стэнфордский курс: лекция 5. Свёрточные нейронные сети

На прошлой лекции мы узнали, как метод обратного распространения ошибки помогает находить градиент для сложных функций, а также провели параллели...
Read More
Джон Макафи: создатель антивируса McAfee и один из самых неоднозначных IT-предпринимателей XX века

Джон Макафи: создатель антивируса McAfee и один из самых неоднозначных IT-предпринимателей XX века

В 1987 году Джон Макафи запустил программу, названную в честь себя, — McAfee Virus Scan. ПО быстро стало лидирующим решением для...
Read More
Интерпретация строения мозга с помощью рекуррентных нейронных сетей

Интерпретация строения мозга с помощью рекуррентных нейронных сетей

Коннектомика — область науки, изучающая работу мозга с помощью анализа и построения карты нейронных связей. Она помогает лучше понять сложную...
Read More
Учим нейросети рассуждать о том, что они видят

Учим нейросети рассуждать о том, что они видят

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

Всем игрокам приготовиться: обзор доменов в играх

Компьютерные игры становятся всё более похожими на реальную жизнь. За последние годы в них значительно улучшилась графика, искусственный интеллект неигровых...
Read More
Let's cook: как приготовить ИИ до золотистой нейронной корочки

Let's cook: как приготовить ИИ до золотистой нейронной корочки

Сегодня на нашей кухне необычное блюдо под названием «обучение нейросети». В этом рецепте эксперт в области искусственного интеллекта Андрей Карпатый...
Read More