2fa что это
2fa что это
Двухфакторная аутентификация Google Authenticator — как включить и настроить 2FA
Работа в интернете всегда связана с риском утечки персональной информации и потери цифровых активов в результате взлома учетных записей торговых площадок и электронных кошельков. Какого бы уровня сложности пароль вы ни создали, лучше иметь второй уровень проверки доступа, так вы намного усложните жизнь хакерам. Программа генерации 2fa code будет для этого вполне подходящим вариантом.
Наверное, нет ни одного криптовалютного сервиса или биржи, которые бы не рекомендовали своим клиентам активировать дополнительную защиту аккаунта с помощью Google Authenticator. Настройка данной опции иногда является обязательным условием. И это правильно, лучше пусть юзер использует 2fa code, чем потеряет свои криптомонеты. Ведь если злоумышленник взломает пароль вашей учетной записи на криптобирже 2fa, это единственный барьер между ним и вашим депозитом.
В криптовалютных сервисах деньги клиентов защищает многоуровневая система безопасности и двухфакторная аутентификация — Google Authenticator является ее неотъемлемой частью. Если вы встретите биржу, на которой эта функция не предусмотрена, то бегите с нее без оглядки. Что собой представляет приложение для 2fa code и как выполняется его настройка мы вам сейчас и расскажем.
Навигация по материалу:
Что такое двухфакторная аутентификация?
Двухфакторная аутентификация (2fa code) — это метод подтверждения права доступа юзера к учетной записи того или иного веб-сервиса с помощью системы одноразовых паролей.
Настройка 2FA — это включение дополнительных факторов для входа в систему. Например, с помощью смс, отпечатков пальца при помощи специального устройства или шестизначного кода Google Authenticator (GA) о котором мы и расскажем в данном материале.
Что такое шестизначный код GA — это одноразовый пароль, который постоянно генерируется в течение 30 секунд. За это время его нужно будет успевать ввести в поле при входе на биржу или в другие системы, где у вас стоит защита 2FA. Это шестизначный код генерируется даже при отключенном интернете.
Существует несколько вариантов практической реализации данного метода защиты аккаунта. В этом обзоре мы рассмотрим настройку специального приложения для генерации случайных кодов Google Authenticator. Эта программа была разработана для защиты учетных записей гугл, но получила широкое применение на криптовалютных биржах и других ресурсах.
Гугл аунтификатор используется как второй уровень защиты при входе в личный кабинет или выводе средств с торговой площадки, а на некоторых биржах даже и при формировании ордеров.
Программа, установленная на ваш мобильный девайс, создает каждые 30 секунд шестизначный цифровой пароль. Для подтверждения входа или другой операции вы должны ввести его в формуляр запроса. Если код прошел проверку на валидность, ваши права доступа подтверждены. Порядок активации Google Authenticator идентичен для всех веб-ресурсов.
Как включить 2FA?
Подробная инструкция по активации google authenticator, как работает схема защиты, и что необходимо для ее функционирования. В качестве наглядного примера выберем самую крупную и популярную криптобиржу Binance.
В первую очередь зарегистрируйтесь на сайте https://www.binance.com. В принципе на любой серьезной криптобирже есть инструкция по настройке двухфакторной аутентификации с помощью google authenticator, мы просто изложим ее в общих чертах, чтобы начинающие трейдеры были заранее подготовленными.
Для подключения и настройки 2fa code понадобится смартфон или планшет с установленным приложением и доступ к учетной записи.
Пошаговая инструкция по установке и настройке Google Authenticator
Скачать и установить Google Authenticator можно по официальным ссылкам:
Если у вас девайс на базе Android откройте Google Play Market и найдите там google authenticator, ну а счастливому владельцу продукции компании Apple нужно совершить аналогичное действие в App Store. Можно загрузить файл apk (for Android) с другого источника, но это не самый надежный вариант.
Сервис выведет QR-код и резервный ключ. Откройте Google Authenticator и нажмите символ фотоаппарата, чтобы программа отсканировала штрих-код.
Если по каким-то причинам произошел сбой, например, у вас не работает камера, введите 16-значный ключ 2FA в интерфейсе приложения на смартфоне и нажмите кнопку «Добавить». Неважно добавили вы аккаунт автоматически или вручную, ни в коем случае не забудьте сохранить в надежном месте (желательно на бумаге) код подключения.
Как создать пароль приложения Google Authenticator?
Пароль приложения представляет собой 16-значный код доступа, который дает приложению или устройству разрешение на доступ к вашему аккаунту Google.
Если вы используете двухэтапную аутентификацию и видите ошибку “неправильный пароль” при попытке войти в свою учетную запись Google, пароль приложения может решить проблему. В большинстве случаев вам нужно будет вводить пароль приложения только один раз для каждого приложения или устройства, поэтому не беспокойтесь о его запоминании.
Как восстановить Google Authenticator? Что делать, если телефон потерян?
Если у вас активирована двухфакторной аутификации, то, потеряв свой смартфон, вы потеряете и доступ к учетной записи. Записали 16-значный ключ 2FA — прекрасно, нет никаких проблем.
Скачайте программу для двухфакторной аутентификации на другое устройство и добавьте аккаунт вручную. Но если у вас кода восстановления все намного сложнее. Пользователи, прошедшие полную верификацию на бирже, могут обратиться в службу поддержки и там им объяснят, как восстановить гугл аутентификатор. Ну а если вы работаете инкогнито, то сбросить настройки аутентификации Google, можно следующим образом:
Важно! Теперь вам придется пройти полную верификацию личности и только после этого вы сможете заново активировать двухфакторку. Пока вы этого не сделаете ваш биржевой депозит будет заблокирован.
Настройка приложения Google Authenticator на нескольких устройствах
Программу можно настроить так, чтобы она генерировала коды подтверждения на двух или даже трех гаджетах.
Осталось проверить корректность работы 2fa-приложения на каждом девайсе, и сохранить настройки. Таким образом, вы застрахуете себя от потери доступа к 2fa code, маловероятно, что выйдут из строя или будут украдены 2 или 3 устройства одновременно.
Альтернативные приложения двухфакторной аутентификации
Альтернативой google authenticator является утилита Authy, у нее очень удобный интерфейс. Кроме мобильных устройств Authy, можно установить на Windows, macOS или Chrome.
Скачать и установить Authy можно по официальным ссылкам:
Также, для генерации одноразовых кодов, используются приложения:
Более простая, но менее безопасная альтернатива двухэтапной авторизации это получение кода на адрес электронной почты или через СМС. Последний метод широко практикуется коммерческими банками и электронными платежными системами, например, Киви или Яндекс Деньги.
Заключение
В заключение следует сказать, что если вы прочитаете о взломе двухфакторной аутентификации (google authenticator), а такие посты на форумах иногда встречаются, то, скорее всего, это случилось из-за небрежного хранения 16-значного кода. Хакер просто нашел его на ПК и воспользовался.
Судите сами, легко ли за 30 секунд подобрать нужную комбинацию из шести цифр и сколько вычислительных ресурсов нужно для такой акции? Настраивайте google authenticator и не забывайте о других правилах безопасности, особенно если вы торгуете на криптобирже.
Дата публикации 16.04.2020
Поделитесь этим материалом в социальных сетях и оставьте свое мнение в комментариях ниже.
Что такое двухфакторная аутентификация и почему ее важно использовать
Что такое двухфакторная аутентификация?
2FA, или двухфакторная аутентификация — это такой метод идентификации пользователя для входа в сервис, при котором нужно двумя разными способами подтвердить, что именно он — хозяин аккаунта. В некоторых сервисах, например, «ВКонтакте», она называется «подтверждение входа».
Эта функция серьезно повышает уровень безопасности. Злоумышленникам, которым по разным причинам могут пригодиться ваши данные, гораздо сложнее получить доступ одновременно к вашему паролю, а также телефону, электронной почте или другому методу аутентификации. Если использовать только пароль, то аккаунт остается уязвимым. Пароли легко утекают в Сеть, и далеко не всегда по вине пользователя.
Как можно подтвердить свою личность?
Большинство приложений и сервисов предлагают пользователю на выбор такие варианты двойной аутентификации:
Кроме того, есть еще несколько видов подтверждения входа, которые используют реже:
Гарантирует ли двухфакторная аутентификация абсолютную безопасность?
«В идеале второй фактор для входа должен приходить пользователю на другое устройство, не на то, с которого осуществляется вход в учетную запись, — говорит старший эксперт по кибербезопасности «Лаборатории Касперского» Денис Легезо. — Риск появляется при использовании одного и того же устройства и для входа в учетную запись, и для получения одноразового пароля. Если атакующие смогли заразить это устройство определенными видами троянцев, то считать одноразовый пароль защищенным больше не получится. Но по сравнению со сценарием, когда пользователь вовсе не включает двухфакторную аутентификацию, даже вариант с одним устройством выглядит несравненно лучше».
Что, если второе устройство потеряли?
Обычно сервисы всегда предусматривают некий альтернативный способ аутентификации. Но иногда пользователю в таких случаях приходится обратиться в службу поддержки.
Как и где стоит включить двухфакторную аутентификацию:
Как подключить двухфакторную аутентификацию во «ВКонтакте»
Зайдите в «Настройки» → Во вкладке «Безопасность» выберите «Подтверждение входа» → «Подключить». Дальше нужно будет ввести свой пароль, ввести последние цифры номера, с которого на ваш телефон поступит звонок, и функция подтверждения входа будет подключена. При желании можно выбрать аутентификацию через приложения для генерации кодов, а также распечатать или записать резервные коды.
Зайдите в «Настройки» (в приложении они находятся в меню в нижней части экрана) → выберите «Управление аккаунтом VK Connect» → «Безопасность и вход» → «Подтверждение входа».
Далее, как и в полной версии, выбираете способ подтверждения входа и восстановления доступа.
Как подключить двухфакторную аутентификацию в Facebook
В меню (рядом со значком уведомлений) нужно выбрать «Настройки и конфиденциальность» → «Быстрые настройки конфиденциальности». В разделе «Безопасность аккаунта» выбрать «Использовать двухфакторную аутентификацию». Далее нужно выбрать оптимальный способ идентификации, ввести код, полученный на мобильный телефон и — при желании — сохранить резервные коды.
В приложении двухфакторная аутентификация подключается таким же образом.
Как подключить двухфакторную аутентификацию в Google
Настроить подтверждение входа в почте и других сервисах Google можно на странице аккаунта. Процесс настройки здесь чуть сложнее, чем в других сервисах. В первую очередь нужно подтвердить, что это действительно ваш аккаунт, введя свой пароль и подтвердив вход (можно сделать это, просто нажав «да» на выбранном устройстве, либо выбрав другой способ).
Дальше необходимо выбрать способ, которым вы будете получать коды в дальнейшем: SMS, звонок, резервные коды.
Дальше нужно убедиться, что выбранный способ аутентификации работает.
Подтвердите, что вы действительно хотите подключить эту функцию.
Как подключить двухфакторную аутентификацию в «Яндексе»
Чтобы подключить двухфакторную аутентификацию в сервисах «Яндекса», обязательно нужно приложение «Яндекс.Ключ». Это же приложение можно использовать для входа в любые другие сервисы, поддерживающие подтверждение входа через приложения-аутентификаторы.
В первую очередь нужно зайти на эту страницу. Подтвердив номер телефона, нужно придумать PIN-код и скачать приложение «Яндекс.Ключ». Через приложение нужно будет сканировать QR-код. После этого в приложении появится первый из автоматически генерируемых кодов. Его нужно будет ввести на сайте, и новый способ аутентификации будет подключен.
Как подключить двухфакторную аутентификацию в Telegram
В Telegram двухэтапная аутентификация настраивается нестандартно: при входе с каждого нового устройства пользователю и так нужно вводить код, полученный в SMS. Поэтому второй этап аутентификации, который можно подключить — это как раз обычный пароль.
Нужно выбрать «Настройки» → «Конфиденциальность» → «Безопасность» → «Двухэтапная аутентификация».
Дальше вы придумываете новый пароль, подсказку к нему (при желании) и вводите свой адрес электронной почты, чтобы получить на нее код для подтверждения этой операции.
Как подключить двухфакторную аутентификацию в Instagram
Зайдите в меню, выберите «Настройки» → «Безопасность» → «Двухфакторная аутентификация». Затем нужно выбрать удобный способ и ввести полученный код.
Кроме того, двухэтапную аутентификацию можно подключить для Apple ID (здесь) и для сервисов Microsoft (здесь).
Двухфакторная аутентификация (2FA) устойчивая к фишингу
Последний месяц все кому не лень пишут что 2FA (двухфакторная аутентификация) в опасности из-за качественно выполненных фейковых страниц. Собственно, заголовок статьи пародирует один из таких постов на Хабре. Конечно, 2FA бывают разные. В некоторых «особо продвинутых» европейских банках до сих пор пор можно разжиться листиком с одноразовыми TAN-кодами.
Но уже несколько лет как индустрия не стоит на месте, и вместо одноразовых TAN/PIN-кодов прилетающих по SMS или через приложения типа RSA Token, Steam Guard, Google Authenticator есть и другие варианты.
Вот видео, нас интересует самый первый сценарий. Что происходит?
Вкратце
Вопросы
Подробнее
1. Пользователь логинится в приложение. Приложение не выполняет аутентификацию само — оно перенаправляет пользователя в его систему контроля доступа.
* Работает это не только для веб-сайтов, но и для десктопных и мобильных приложений. Типичный пример в бизнес-среде: приложения из MS Office 2013+ (реально 2010+, но там всё было очень кривенько).
* Стандартам и протоколам для интеграции с системами IAM/SSO (SAML, OAuth, OpenID Connect) уже много лет, за ними стоят такие гиганты как Google, Facebook и представители OpenSource сообщества. Есть куча библиотек, SDK и т.д. Так что не интегрируется только ленивый.
* Интеграция подразумевает обмен сертификатами между SSO/IAM и приложением — удачи в подделке
2. Система контроля доступа (IAM — Identity & Access Management, SSO — Single Sign On) активирует приложение для Single Sign On на смартфоне пользователя.
* Нормальные и продвинутые системы позволяют гибко настраивать параметры 2FA
* Обратите внимание, что при таком подходе пользователь, даже находясь на новогодней корпоративной вечеринке, сразу увидит, если кто-то пытается доступиться к его ресурсам.
Но вместо того, чтобы рвать на себе волосы достаточно просто отклонить запрос на доступ и продолжать пить культурно отдыхать, а уже после ИБ по логам разберется.
* Также, нигде не фигурирует реальный пароль пользователя, и ничто не пишется в веб-страницу/приложение — фейковое или реальное
4. Система IAM получает зеленый свет и возвращает пользователя в приложение, прилагая параллельно разрешение на доступ.
* Разрешение (SAML Assertion) подписано ЭЦП системы IAM и действительно только для этой сессии — просто так не подделать
* Разрещение может содержать дополнительные параметры доступа: роль, ограничения (закрытие определенных разделов портала), временное окно для реаутентификации и т.д.
* И что тоже очень полезно (но должно поддерживаться с обеих сторон) — Just in time Provisioning — т.е. динамическое создание аккаунта в приложении.
Если в компанию пришло 10 человек, и каждому нужно создать 10 аккаунтов — какова вероятности, что админы где-то напортачат и сколько это потом исправлять? С помощью JIT Provisioning приложение получает данные из системы IAM и автоматом всё создает. Хороший пример — Salesforce.
В завершение
Тему можно развивать долго. Вариантов много. Важно, что всё описанное выше — не космос, а вполне реальные вещи, которые может себе позволить любая организация числом от 1 до 100000 чел.
Естественно, если есть много корявых старых приложений, то всё будет сложнее, но в типичных сценариях сроки внедрения
Немного о 2FA: Двухфакторная аутентификация
Cегодня мы решили обратить внимание на тему двухфакторной аутентификации и рассказать о том, как она работает.
Двухфакторная аутентификация или 2FA – это метод идентификации пользователя в каком-либо сервисе, где используются два различных типа аутентификационных данных. Введение дополнительного уровня безопасности обеспечивает более эффективную защиту аккаунта от несанкционированного доступа.
Двухфакторная аутентификация требует, чтобы пользователь имел два из трех типов идентификационных данных.
Второй пункт – это токен, то есть компактное устройство, которое находится в собственности пользователя. Самые простые токены не требуют физического подключения к компьютеру – у них имеется дисплей, где отображается число, которое пользователь вводит в систему для осуществления входа – более сложные подключаются к компьютерам посредством USB и Bluetooth-интерфейсов.
Сегодня в качестве токенов могут выступать смартфоны, потому что они стали неотъемлемой частью нашей жизни. В этом случае так называемый одноразовый пароль генерируется или с помощью специального приложения (например Google Authenticator), или приходит по SMS – это максимально простой и дружественный к пользователю метод, который некоторые эксперты оценивают как менее надежный.
В ходе проведенного исследования, в котором приняли участие 219 человек разных полов, возрастов и профессий, стало известно, что более половины опрошенных используют двухфакторную SMS-аутентификацию в социальных сетях (54,48%) и при работе с финансами (69,42%).
Однако, когда дело касается рабочих вопросов, то здесь предпочтение отдается токенам (45,36%). Но вот что интересно, количество респондентов, пользующихся этими технологиями как добровольно, так и по приказу начальства (или вследствие других вынуждающих обстоятельств), примерно одинаково.
График популярности различных технологий по сферам деятельности
График заинтересованности респондентов в 2FA
Среди токенов можно выделить одноразовые пароли, синхронизированные по времени, и одноразовые пароли на основе математического алгоритма. Синхронизированные по времени одноразовые пароли постоянно и периодически меняются. Такие токены хранят в памяти количество секунд, прошедших с 1 января 1970 года, и отображают часть этого числа на дисплее.
Чтобы пользователь мог осуществить вход, между токеном клиента и сервером аутентификации должна существовать синхронизация. Главная проблема заключается в том, что со временем они способны рассинхронизироваться, однако некоторые системы, такие как SecurID компании RSA, дают возможность повторно синхронизировать токен с сервером путем ввода нескольких кодов доступа. Более того, многие из этих устройств не имеют сменных батарей, потому обладают ограниченным сроком службы.
Как следует из названия, пароли на основе математического алгоритма используют алгоритмы (например цепочки хэшей) для генерации серии одноразовых паролей по секретному ключу. В этом случае невозможно предугадать, каким будет следующий пароль, даже зная все предыдущие.
Иногда 2FA реализуется с применением биометрических устройств и методов аутентификации (третий пункт). Это могут быть, например, сканеры лица, отпечатков пальцев или сетчатки глаза.
Проблема здесь заключается в том, что подобные технологии очень дороги, хотя и точны. Другой проблемой использования биометрических сканеров является неочевидность определения необходимой степени точности.
Если установить разрешение сканера отпечатка пальца на максимум, то вы рискуете не получить доступ к сервису или устройству в том случае, если получили ожог или ваши руки попросту замерзли. Поэтому для успешного подтверждения этого аутентификатора достаточно неполного соответствия отпечатка эталону. Также стоит отметить, что изменить такой «биопароль» физически невозможно.
Насколько надежна двухфакторная аутентификация
Это хороший вопрос. 2FA не является непроницаемой для злоумышленников, однако она серьезно усложняет им жизнь. «Используя 2FA вы исключаете достаточно крупную категорию атак», – говорит Джим Фентон (Jim Fenton), директор по безопасности OneID. Чтобы взломать двухфакторную аутентификацию «плохим парням» придется украсть ваши отпечатки или получить доступ к cookie-файлам или кодам, сгенерированным токенами.
Последнего можно добиться, например, с помощью фишинговых атак или вредоносного программного обеспечения. Есть еще один необычный способ: доступ к аккаунту журналиста Wired Мэтта Хоннана (Matt Honnan) злоумышленники получили с помощью функции восстановления аккаунта.
Восстановление аккаунта выступает в качестве инструмента для обхода двухфакторной аутентификации. Фентон, после истории с Мэттом, лично создал аккаунт в Google, активировал 2FA и притворился, что «потерял» данные для входа. «Восстановление аккаунта заняло некоторое время, но через три дня я получил письмо, что 2FA была отключена», – отмечает Фентон. Однако и у этой проблемы есть решения. По крайней мере, над ними работают.
«Я считаю, что биометрия – это один из таких способов, – говорит технический директор Duo Security Джон Оберхайд (Jon Oberheide). – Если я потеряю свой телефон, то чтобы восстановить все аккаунты мне не хватит вечности. Если бы существовал хороший биотметрический метод, то он бы стал надежным и полезным механизмом восстановления». По сути, Джон предлагает использовать одну форму 2FA для аутентификации, а другую – для восстановления.
Где применяется 2FA
Вот несколько основных сервисов и социальных сетей, которые предлагают эту функцию – это Facebook, Gmail, Twitter, LinkedIn, Steam. Их разработчики предлагают на выбор: SMS-аутентификацию, список одноразовых паролей, Google Authenticator и др. Недавно 2FA ввел Instagram, чтобы защитить все ваши фотографии.
Однако здесь есть интересный момент. Стоит учитывать, что двухфакторная аутентификация добавляет к процессу аутентификации еще один дополнительный шаг, и, в зависимости от реализации, это может вызывать как небольшие сложности со входом (или не вызывать их вовсе), так и серьезные проблемы.
По большей части отношение к этому зависит от терпеливости пользователя и желания повысить безопасность аккаунта. Фентон высказал следующую мысль: «2FA – это хорошая штука, но она способна усложнить жизнь пользователям. Потому имеет смысл вводить её только для тех случаев, когда вход осуществляется с неизвестного устройства».
Двухфакторная аутентификация не панацея, но она помогает серьезно повысить защищенность аккаунта, затратив минимум усилий. Усложнение жизни взломщиков – это всегда хорошо, потому пользоваться 2FA можно и нужно.
Что ждет 2FA
Методам защиты, основанным на методиках многофакторной аутентификации, сегодня доверяет большое число компаний, среди которых организации из сферы высоких технологий, финансового и страхового секторов рынка, крупные банковские учреждения и предприятия госсектора, независимые экспертные организации, а также исследовательские фирмы.
Оберхайд отмечает, что многие пользователи, которые скептически относились к двухфакторной аутентификации, очень скоро обнаруживали, что здесь все не так сложно. Сегодня 2FA переживает настоящий бум, а любую популярную технологию гораздо проще совершенствовать. Несмотря на наличие сложностей, её ждет светлое будущее.
Двухфакторная аутентификация, которой удобно пользоваться
Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 0,1%.
Кажется, это потому, что распространенная схема двухфакторной аутентификации слишком сложна и неудобна. Мы постарались придумать способ, который был бы удобнее без потери уровня защиты, и сегодня представляем его бета-версию.
Надеемся, он получит более широкое распространение. Мы со своей стороны готовы работать над его улучшением и последующей стандартизацией.
После включения двухфакторной аутентификации в Паспорте вам надо будет установить приложение Яндекс.Ключ в App Store или Google Play. В форме авторизации на главной странице Яндекса, в Почте и Паспорте появились QR-коды. Для входа в учётную запись необходимо считать QR-код через приложение — и всё. Если считать QR-код не получается, например не работает камера смартфона или нет доступа к интернету, приложение создаст одноразовый пароль, который будет действовать всего 30 секунд.
Расскажу о том, почему мы решили не использовать такие «стандартные» механизмы, как RFC 6238 или RFC 4226. Как работают распространенные схемы двухфакторной аутентификации? Они двухэтапные. Первый этап ─ обычная аутентификация логином и паролем. Если он прошел успешно, сайт проверяет, «нравится» ему эта пользовательская сессия или нет. И, если «не нравится», просит пользователя «доаутентифицироваться». Распространенных методов «доаутентификации» два: отсылка SMS на привязанный к аккаунту номер телефона и генерация второго пароля на смартфоне. В основном для генерации второго пароля используется TOTP по RFC 6238. Если пользователь ввел второй пароль верно, сессия считается полностью аутентифицированной, а если нет, то сессия теряет и «предварительную» аутентификацию.
Оба способа ─ отправка SMS и генерация пароля ─ доказательства обладания телефоном и потому являются фактором наличия. Пароль, вводимый на первом этапе, ─ фактор знания. Поэтому такая схема аутентификации ─ не только двухэтапная, но и двухфакторная.
Что показалось нам проблемным в этой схеме?
Начнем с того, что компьютер среднестатистического пользователя не всегда можно назвать образцом защищенности: тут и выключение обновлений Windows, и пиратская копия антивируса без современных сигнатур, и ПО сомнительного происхождения ─ все это не повышает уровень защиты. По нашей оценке, компрометация компьютера пользователя ─ самый массовый способ «угона» учетных записей (и недавно тому было еще одно подтверждение), от нее в первую очередь и хочется защититься. В случае двухэтапной аутентификации, если считать, что компьютер пользователя скомпрометирован, ввод пароля на нем компрометирует сам пароль, являющийся первым фактором. Значит, злоумышленнику необходимо лишь подобрать второй фактор. В случае распространенных реализаций RFC 6238 второй фактор ─ это 6 десятичных цифр (а максимум, предусмотренный спецификацией, ─ 8 цифр). Согласно калькулятору bruteforce для OTP, за три дня атакующий в состоянии подобрать второй фактор, если ему каким-либо образом стал известен первый. Нет ясности, что сервис может противопоставить этой атаке, не нарушая нормальную работу пользователя. Единственный возможный proof of work ─ капча, что, на наш взгляд, является последним средством.
Вторая проблема ─ непрозрачность суждения сервиса о качестве пользовательской сессии и принятия решения о необходимости «доаутентификации». Хуже того, сервис не заинтересован в том, что бы сделать этот процесс прозрачным, ─ ведь тут фактически работает security by obscurity. Если злоумышленник знает, на основании чего сервис принимает решение о легитимности сессии, он может попытаться подделать эти данные. Из общих соображений можно заключить, что суждение делается на основе истории аутентификаций пользователя с учетом IP-адреса (и производных от него номера автономной системы, идентифицирующей провайдера, и местоположения на основе геобазы) и данных браузера, например заголовка User Agent и набора cookies, flash lso и html local storage. Это означает, что если злоумышленник контролирует компьютер пользователя, то он имеет возможность не только украсть все необходимые данные, но и воспользоваться IP-адресом жертвы. Более того, если решение принимается на основе ASN, то любая аутентификация из публичного Wi-Fi в кофейне может привести к «отравлению» с точки зрения безопасности (и обелению с точки зрения сервиса) провайдера этой кофейни и, например, обелению всех кофеен в городе. Мы рассказывали о работе системы обнаружения аномалий, и ее можно было бы применить, но времени между первым и вторым этапом аутентификации может оказаться недостаточно для уверенного суждения об аномалии. Кроме того, этот же аргумент разрушает идею «доверенных» компьютеров: злоумышленник может украсть любую информацию, влияющую на суждение о доверенности.
Наконец, двухэтапная аутентификация попросту неудобна: наши usability-исследования показывают, что ничто так не раздражает пользователей, как промежуточный экран, дополнительные нажатия на кнопки и прочие «неважные», с его точки зрения, действия.
Исходя из этого, мы решили, что аутентификация должна быть одноэтапной и пространство паролей должно быть намного больше, чем возможно сделать в рамках «чистого» RFC 6238.
При этом нам хотелось по возможности сохранить двухфакторность аутентификации.
Разработка нашей системы
Когда мы начали заниматься проблемой двухфакторной аутентификации (первые страницы корпоративной вики по этому вопросу относятся к 2012 году, но кулуарно он обсуждался и раньше), первой идеей было взять стандартные способы аутентификации и применить их у нас. Мы понимали, что нельзя рассчитывать на то, что миллионы наших пользователей купят аппаратный токен, поэтому этот вариант отложили на какие-то экзотичные случаи (хотя полностью мы от него не отказываемся, возможно, нам удастся придумать что-то интересное). Способ с SMS тоже не мог быть массовым: это очень ненадежный способ доставки (в самый ответственный момент SMS может задержаться или не дойти вовсе), а рассылка SMS стоит денег (и операторы начали увеличивать их цену). Мы решили, что использование SMS ─ удел банков и прочих нетехнологичных компаний, а нашим пользователям хочется предложить что-то более удобное. В общем, выбор был невелик: использовать смартфон и программу в нем в качестве второго фактора.
Широко распространена такая форма одноэтапной аутентификации: пользователь помнит пин-код (первый фактор), имеет на руках аппаратный или программный (в смартфоне) токен, генерирующий OTP (второй фактор). В поле ввода пароля он вводит пин-код и текущее значение OTP.
На наш взгляд, главный недостаток этой схемы такой же, как и у двухэтапной аутентификации: если считать, что десктоп пользователя скомпрометирован, то однократный ввод пин-кода приводит к его раскрытию и злоумышленнику остается только подобрать второй фактор.
Мы решили пойти другим путем: пароль целиком генерируется из секрета, но в смартфоне сохраняется только часть секрета, а часть вводится пользователем при каждой генерации пароля. Таким образом смартфон сам по себе является фактором владения, а пароль остается в голове пользователя и является фактором знания.
В качестве Nonce может выступать либо счетчик, либо текущее время. Мы решили выбрать текущее время, это позволяет не бояться рассинхронизации в случае, если кто-то сгенерирует слишком много паролей и увеличит счетчик.
Итак, у нас есть программа для смартфона, куда пользователь вводит свою часть секрета, та смешивается с хранимой частью, результат используется в качестве ключа HMAC, которым подписывается текущее время, округленное до 30 секунд. Выход HMAC приводится к читаемому виду, и вуаля ─ вот и одноразовый пароль!
Как уже было сказано, RFC 4226 предполагает усечение результата работы HMAC до максимум 8 десятичных цифр. Мы решили, что пароль такого размера непригоден для одноэтапной аутентификации и должен быть увеличен. При этом нам хотелось сохранить простоту использования (ведь, напомним, хочется сделать такую систему, которой будут пользоваться обычные люди, а не только security-гики), так что в качестве компромисса в текущей версии системы мы выбрали усечение до 8 символов латинского алфавита. Кажется, что 26^8 паролей, действующих в течение 30 секунд, вполне приемлемо, но если security margin нас не будет устраивать (или на Хабре появятся ценные советы, как улучшить эту схему), расширим, например, до 10 символов.
Подробнее о стойкости таких паролей
Магия, беспарольность, приложения и дальнейшие шаги
В общем-то, на этом можно было и остановиться, но нам захотелось сделать систему еще более удобной. Когда у человека есть смартфон в руке, так не хочется вводить пароль с клавиатуры!
Поэтому мы начали работы над «магическим логином». С таким способом аутентификации пользователь запускает приложение на смартфоне, вводит в него свой пин-код и сканирует QR-код на экране своего компьютера. Если пин-код введен правильно, страница в браузере перезагружается и пользователь оказывается аутентифицирован. Магия!
Как это устроено?
В QR-коде зашит номер сессии, и, когда приложение сканирует его, этот номер передается на сервер вместе с выработанным обычным способом паролем и именем пользователя. Это несложно, ведь смартфон почти всегда находится онлайн. В верстке странички, показывающей QR-код, работает JavaScript, ожидающий со стороны сервера ответа на проверку пароля с данной сессией. Если сервер отвечает, что пароль верен, вместе с ответом устанавливаются сессионные куки, и пользователь считается аутентифицированным.
Стало лучше, но и тут мы решили не останавливаться. Начиная с iPhone 5S в телефонах и планшетах Apple появился сканер отпечатков пальцев TouchID, а в iOS версии 8 работа с ним доступна и сторонним приложениям. На деле приложение не получает доступ к отпечатку пальца, но если отпечаток верен, то приложению становится доступен дополнительный раздел Keychain. Этим мы и воспользовались. В защищенную TouchID запись Keychain помещается вторая часть секрета, та, которую в предыдущем сценарии пользователь вводил с клавиатуры. При разблокировке Keychain две части секрета смешиваются, и дальше процесс работает так, как описано выше.
Зато пользователю стало невероятно удобно: он открывает приложение, прикладывает палец, сканирует QR-код на экране и оказывается аутентифицированным в браузере на компьютере! Так мы заменили фактор знания на биометрический и, с точки зрения пользователя, совсем отказались от паролей. Мы уверены, что обычным людям такая схема покажется куда более удобной, чем ручной ввод двух паролей.
Можно подискутировать, насколько формально двухфакторной является такая аутентификация, но на деле для успешного ее прохождения все еще необходимо иметь телефон и обладать правильным отпечатком пальца, так что мы считаем, что нам вполне удалось отказаться от фактора знания, заменив его биометрией. Мы понимаем, что полагаемся на безопасность ARM TrustZone, лежащей в основе iOS Secure Enclave, и считаем, что на настоящий момент эту подсистему можно считать доверенной в рамках нашей модели угроз. Разумеется, нам известны проблемы биометрической аутентификации: отпечаток пальца ─ не пароль и заменить его в случае компрометации нельзя. Но, с другой стороны, всем известно, что безопасность обратно пропорциональна удобству, и пользователь сам вправе выбрать приемлемое для него соотношение одного и другого.
Напомню, что пока это бета. Сейчас при включении двухфакторной аутентификации мы временно выключаем синхронизацию паролей в Яндекс.Браузере. Связано это с тем, как устроено шифрование базы паролей. Мы уже придумываем удобный способ аутентификации Браузера в случае 2FA. Вся остальная функциональность Яндекса работает в прежнем режиме.
Вот что у нас получилось. Кажется, вышло неплохо, но судить вам. Мы будем рады услышать отзывы и рекомендации, а сами продолжим работу над улучшением безопасности наших сервисов: теперь вместе с CSP, шифрованием транспорта почты и всего остального у нас появилась и двухфакторная аутентификация. Не забывайте, что сервисы аутентификации и приложения генерации OTP относятся к критичным и поэтому за обнаруженные в них ошибки в рамках программы Bug Bounty выплачивается двойная премия.
Двухфакторная аутентификация: что это и зачем оно нужно?
Мы решили посвятить двухфакторной аутентификации отдельную статью и рассказать о том, что это такое, как она работает и почему ее стоит использовать.
Двухфакторная аутентификация — тема, которой мы так или иначе касаемся во многих наших постах. В прошлом году мы даже записали на эту тему целый подкаст. Однако ввиду возрастающего количества разных сервисов и все чаще случающихся атак на пользовательские аккаунты (как, например, перехваты контроля над учетными записями iCloud) мы решили посвятить этому виду аутентификации отдельную статью и рассказать о том, что это такое, как она работает и почему ее стоит использовать везде, где это возможно.
Что такое двухфакторная аутентификация?
Двухфакторная аутентификация — это метод идентификации пользователя в каком-либо сервисе (как правило, в Интернете) при помощи запроса аутентификационных данных двух разных типов, что обеспечивает двухслойную, а значит, более эффективную защиту аккаунта от несанкционированного проникновения. На практике это обычно выглядит так: первый рубеж — это логин и пароль, второй — специальный код, приходящий по SMS или электронной почте. Реже второй «слой» защиты запрашивает специальный USB-ключ или биометрические данные пользователя. В общем, суть подхода очень проста: чтобы куда-то попасть, нужно дважды подтвердить тот факт, что вы — это вы, причем при помощи двух «ключей», одним из которых вы владеете, а другой держите в памяти.
Впрочем, двухфакторная защита не панацея от угона аккаунта, но достаточно надежный барьер, серьезно усложняющий злоумышленникам доступ к чужим данным и в какой-то степени нивелирующий недостатки классической парольной защиты. Ведь у паролей, на которых основано подавляющее большинство авторизационных механизмов в Интернете, есть неизбежные недостатки, которые фактически являются продолжением достоинств: короткие и простые пароли легко запомнить, но так же легко подобрать, а длинные и сложные трудно взломать, но и запомнить непросто. По этой причине многие люди используют довольно тривиальные пароли, причем сразу во многих местах. Второй фактор в подобных случаях оказывается крайне полезен, поскольку, даже если пароль был скомпрометирован, злоумышленнику придется или раздобыть мобильник жертвы, или угнать ее почтовый ящик.
Несмотря на многочисленные попытки современного человечества заменить пароли чем-то поинтереснее, полностью избавиться от этой привычной всем парадигмы оказалось не так просто, так что двухфакторную аутентификацию можно считать одним из самых надежных механизмов защиты на сегодняшний день. Кстати, этот метод удобен еще и тем, что способен предупреждать хозяина аккаунта о попытке взлома: если на ваш телефон или почту вдруг приходит сообщение с одноразовым кодом при том, что вы никаких попыток логина не предпринимали, значит, вас пытаются взломать — самое время менять оказавшийся ненадежным пароль!
Где можно включить двухфакторную аутентификацию?
Ответом на этот вопрос может служить простое правило: если используемый вами сервис содержит важные для вас данные и позволяет включить двухфакторную аутентификацию, активируйте ее не раздумывая! Вот, скажем, какой-нибудь Pinterest. Ну, не знаю… Если бы у меня был аккаунт в этом сервисе, я бы вряд ли захотел каждый раз проходить долгую процедуру двухслойной авторизации. А вот интернет-банкинг, аккаунты в соцсетях, учетка в iCloud, почтовые ящики и особенно ваши служебные учетные записи — все это однозначно стоит защитить двухфакторной аутентификацией. Сервисы Google, Apple и все основные социальные сети позволяют это сделать в настройках без особого труда.
Двухфакторная аутентификация — один из лучших методов защиты ваших аккаунтов #security
К слову, если у вас есть свой сайт, скажем, на базе WordPress или другой подобной платформе, включить в настройках двухфакторную защиту тоже не будет лишним. В общем, повторюсь: если аккаунт и его содержимое вам дороги, не игнорируйте возможность усилить защиту.
Какие еще существуют виды двухфакторной аутентификации?
Выше я уже упомянул рассылку специального кода в виде SMS и email-сообщений и USB-ключи и смарт-карты, используемые преимущественно для доступа к некоторым видам интернет-ресурсов и VPN-сетям. Кроме того, существуют еще генераторы кодов (в виде брелока с кнопкой и небольшим экранчиком), технология SecureID и некоторые другие специфические методы, характерные в основном для корпоративного сектора. Есть и менее современные интерпретации: например, так называемые TAN-пароли (TAN, Transaction Authentication Number — аутентификационный номер транзакции). Возможно, вы даже сталкивались с ними, если были клиентом какого-нибудь не самого прогрессивного банка: при подключении интернет-банкинга клиенту выдавалась бумажка с заранее сформированным списком одноразовых паролей, которые вводятся один за другим при каждом входе в систему и/или совершении транзакции. Кстати, ваша банковская карта и PIN тоже формируют систему двухфакторной аутентификации: карточка — «ключ», которым вы владеете, а PIN-код к ней — «ключ», который вы запоминаете.
Как я уже упомянул выше, существует и биометрический способ идентификации пользователя, который часто выступает в роли вторичного фактора защиты: одни системы подразумевают сканирование отпечатка пальца, другие определяют человека по глазам, есть даже те, которые ориентируются по «рисунку» сердцебиения. Но пока это все довольно экзотические методы, хотя и куда более популярные, чем, скажем, электромагнитные татуировки, которые по примеру радиочипов могут служить вторичным фактором аутентификации пользователя. Я бы от такой не отказался 🙂
2fa что это
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз я вам подробно рассказал, каким образом вы можете защитить свою флешку от вирусов и вредоносных программ, сегодня еще раз поговорим, о защите ваших данных и сервисов. Речь пойдет, о двухфакторной аутентификации, или как ее еще называют двухфакторная защита. Которую вы можете встретить, абсолютно на любом нормальном сервисе или сайте. Уверен, что многим эта информация будет актуальной, так как процентов 80 пользователей на это просто забивают, за что потом и платятся.
Что такое двухфакторная аутентификация (2FA)
Представим классическую ситуацию, на примере России. Есть популярная социальная сеть Вконтакте, которой пользуются огромное количество людей. Для доступа к ней, большинство людей использует логин и пароль, а так как человек существо ленивое и наивное, то он не особо напрягается безопасностью своего аккаунта, что в итоге влечет за собой его взлом, тем самым потерю аккаунта и доступа, и не факт, что он его потом восстановит, так как мог даже не привязывать номер телефона к нему. А вот если бы он заранее настроил двухфакторную защиту, то даже при компрометации пароля ему было бы по барабану, так как еще нужен был бы дополнительные этап проверки, который привязывается к телефону.
В роли бастиона двухфакторной защиты, выступает ваш мобильный телефон, к номеру которого привязывается аккаунт или устройство, для которой он будет дополнительным средством подтверждения личности истинного хозяина.
Как работает двухфакторная защита
Давайте я вам опишу алгоритм работы двухфакторной защиты, понимая принцип, вам будет легко его настроить, где угодно, на любом сервисе. И так у нас есть замечательный пользователь Таня, люблю я это имя. Таня решила завести себе аккаунт в Gmail.com. Она проходит процедуру регистрации, где указывает какой логин и пароль у нее будет при входе на почту. Gmail подтверждает ее регистрацию и активирует ее логин и пароль по которому она будет авторизовываться.
Таня логиниться на почте, указывая логин и пароль. Gmail предлагает ей настроить двухфакторную аутентификацию, через привязку к номеру телефона, где будет получать SMS коды или через установку приложения Authenticator, которое будет генерировать каждые 25 секунд коды безопасности, если его не успели ввести, то будет новый 6-ти значный код. Таня их устанавливает и включает двухфакторную защиту.
Теперь при следующей авторизации, Тане нужно будет ввести по мимо классических средств защиты (Логина и пароля), код из SMS или из утилиты Authenticator, так же установленной на ее смартфоне. Как только она это делает, то получает доступ к сервису.
Плюсы и минусы двухфакторной аутентификации
Начну с плюсов, этой технологии:
Из минусов можно выделить вот что:
Виды двухфакторной аутентификации
Давайте рассмотрим основные виды реализации двухфакторной защиты, которые вы легко можете повстречать на текущий момент, они со временем могут обновляться и расширяться, но пока есть такие:
Какой метод двухфакторной аутентификации 2FA лучше
Тут я долго расписывать не буду, выделю два, и оба они будут привязаны к вашему мобильному телефону. Это SMS и Push-уведомления и более надежный с использованием программ Authenticator. Плюсы, что все это бесплатно, телефон мобильный есть у всех, и главное, это надежно.
Какой выбрать программный Authenticator 2FA
Давайте я вам опишу, какой аутентификатор я бы посоветовал выбрать
Где можно включить двухфакторную аутентификацию 2FA?
Ниже я приведу список самых распространенных сервисов, где вы можете встретить двухфакторную аутентификацию, в том или ином виде.
Как взломать двухфакторную аутентификацию 2FA
Для того, чтобы обойти двухфакторную аутентификацию, хакеры используют вот такие методы:
Примеры настройки двухфакторной защиты
Как восстановить двухфакторную аутентификацию
Если вы потеряли свой телефон и хотите восстановить свой доступ, то алгоритм такой:
Для чего нужна двухфакторная аутентификация и как её включить
Что такое двухфакторная аутентификация?
Двухфакторная аутентификация — это инструмент защиты персональных данных, который используют для идентификации пользователя при доступе к интернет-сервисам: соцсетям, мессенджерам, онлайн-магазинам. Также такой вид защиты нередко применяется при оплате товаров и услуг в Сети.
Работает двухфакторная аутентификация так. Сначала вы вводите первый «ключ» — как правило, логин и пароль. Затем второй — чаще всего цифровой код, который вы получаете по SMS или в push-уведомлении.
Сейчас все крупные сервисы и большинство социальных сетей позволяют защитить аккаунты пользователей с помощью 2FA. Рассказываем, как это сделать, на примерах нескольких популярных сервисов.
Настроить двухфакторную аутентификацию в почте и других сервисах Google можно через страницу своего аккаунта.
Сначала подтвердите, что это действительно ваш аккаунт, — введите пароль и подтвердите вход (это можно сделать, нажав «да» на выбранном устройстве, где вы уже авторизованы).
Что такое двухфакторная аутентификация. Как настроить 2FA?
Многие пользователи интернета уже сталкивались или по крайней мере слышали о системе двухфакторная аутентификация. Что это такое и как её настроить мы и поговорим в этой статье.
Что такое двухфакторная аутентификация
В интернете для определения вашей личности используется логин и пароль. Практически на всех сайтах для входа в личный кабинет у вас просят ввести логин (или email) и пароль. Но в последние годы хакеры приловчились похищать эти данные. Не критичная будет потеря таких данных от какого ни будь игрового аккаунта или социальной сети. Но вот если такие данные похитят из какого ни будь финансового ресурса. Например, онлайн банка, электронного кошелька или биржи. То это будет намного хуже, а для некоторых и финансовый крах. Вот для избежание таких ситуаций и была придумана дополнительная защита.
Двухфакторная аутентификация или как её сокращенно называют 2FA — это дополнительная защита. То есть, помимо стандартных логинов и паролей нужно ввести ещё один секрет. Какие это секреты вы дальше и узнаете.
Виды двухфакторной аутентификаций
На данный момент существует много разнообразных способов авторизации с помощью 2FA. Есть профессиональные способы, которые для понимания обычного пользователя очень сложны. Существуют простые, но некоторые из них мягко говоря не очень надёжны. Поэтому давайте разберём эти способы подробнее.
Одноразовые пароли на бумаге. Такой метод используют онлайн банки. Вы в банкомате получаете длинный чек с паролями. Потом при авторизации на сайте, вас просят ввести пароль под определённым номером. Такой способ использовал сбербанк. Но согласитесь такой чек можно потерять или его могут украсть. Могут закончиться пароли, а до банкомата идти далеко. Как по мне не самый надёжный способ. Я не знаю, может какие банки до сих пор его используют. Напишите в комментариях если знаете такой банк.
Отправка пароля на email. При авторизации вам на почту отправляют одноразовый пароль, который нужно ввести на сайте. Как правило, люди не думают о безопасности и при регистрации указывают такие пароли, как и от email. Поэтому если жулик похитит ваши данные он с лёгкостью сможет ввести этот пароль. Этот способ сейчас чаще используют, как дополнительный. Например, если у вас поменялся ip или вносите изменения у себя в профиле.
Отправка пароля по SMS. Один из самых популярных, но не самый надёжный способ 2FA. Многие сайты используют его если не для авторизации, то для восстановления пароля. Sms сообщения научились перехватывать с помощью подменной номера или вирусами для телефонов. Более всего вирусами подвержены телефоны на android.
USB-ключи. Такие ключи используются в основном юридическими лицами для доступа к программам и интернет сервисам. Также на флешке могут храниться электронные подписи. Некоторые сервисы при покупки их продукта сами выдают флешки. Это надёжный способ защиты, но не для каждого доступен.
Приложения Authenticator. Популярный и надёжный способ двухфакторной аутентификации на данный момент. Вы скачиваете приложение на свой телефон. Синхронизируете его с сайтом и приложение каждые 30 секунд генерирует новые пароли. В приложении можно использовать много разных сайтов. Данные из приложения никуда не отправляются, и вся информация находится только у вас в телефоне. Но и у этого способа есть минус — это потеря или неисправность телефона. Если не учесть определённые нюансы о которых мы поговорим ниже, то восстановить доступ будет проблематично.
Приложения Authenticator для 2FA
Двухфакторка с помощью приложений — это один из популярных и безопасных методов на данный момент. Работают приложения для двухфакторной аутентификации очень просто. Для их подключения вам понадобится:
После запуска программы, она будет генерировать новые пароли каждые 30 секунд. Коды создаются на основе ключа, который известен только вам и серверу. Поскольку обе составляющие одинаковы и у вас, и у сервиса, коды генерируются синхронно. Этот алгоритм называется OATH TOTP (Time-based One-time Password), и в подавляющем большинстве случаев используется именно он.
Совместимость 2FA программ
Практически все приложения для аутентификации работает по одному алгоритму. Поэтому использовать вы можете то, какое вам больше нравится. Но есть и исключения. Например, приложения Blizzard Authenticator. Он сделан под Blizzard и использовать его для других сервисов не получиться.
Adobe тоже выпустил своё приложение под названием Adobe Authenticator. Но этот сервис позволяет использовать и сторонние аутентификаторы. Не понятно для чего нужно было изобретать велосипед.
Как показывает практика, большинство ИТ ресурсов позволяют использовать любое 2FA-приложение. И даже если по каким-то соображениям им хочется контролировать этот процесс и создать свое приложение, то чаще всего они позволяют защищать с его помощью не только «свои» аккаунты, но и учетные записи сторонних сервисов.
Поэтому вы можете выбрать любое приложение-аутентификатор, которое вам больше нравится, и оно будет работать с большинством сервисов, которые поддерживают 2FA-приложения.
Популярные приложения для двухфакторной аутентификации
Если вы начнете искать приложения 2FA в Google Play или Apple App Store, то вы увидите большой выбор этих программ. И не смотря на одинаковый алгоритм работы, предпочтение стоит уделить тем, которые имеют дополнительные функции и удобный интерфейс. Ниже мы рассмотрим самые популярные варианты.
Microsoft Authenticator. В Microsoft тоже не стали усложнять и сделали свой аутентификатор на вид очень минималистичным. Но при этом Microsoft Authenticator заметно функциональнее, чем Google Authenticator. Во-первых, хоть по умолчанию все коды показываются, но каждый из токенов можно отдельно настроить так, чтобы при запуске приложения код был скрыт.
Для входа в программу можно поставить PIN-код или отпечаток пальца. Создать в облаке «Яндекса» резервную копию токенов, защищенную паролем (а вот здесь нужно указать номер телефона), и восстановить ее на любом из используемых вами устройств. Точно так же можно будет перенести токены на новое устройство, когда понадобится переезжать.
Duo Mobile. Простой в использовании и лишен дополнительных настроек. По сравнению с Google Authenticator у него есть одно преимущество: по умолчанию Duo Mobile скрывает коды — чтобы увидеть код, надо нажать на конкретный токен. Если вы испытываете дискомфорт каждый раз, когда открываете аутентификатор и показываете всем окружающим кучу кодов от всех своих аккаунтов, то вам эта особенность Duo Mobile наверняка понравится.
FreeOTP. Есть четыре причины, по которым вам может понравиться этот аутентификатор, разработанный Red Hat. Во-первых, это ваш выбор, если вы любите программное обеспечение с открытым кодом. Во-вторых, это самое маленькое приложение из всех рассматриваемых — версия для iOS занимает всего 750 Кбайт. Для сравнения: минималистичный Google Authenticator занимает почти 14 Мбайт, а приложение Authy, о котором мы поговорим ниже, — аж 44 Мбайта.
В-третьих, по умолчанию приложение скрывает коды и показывает их только после касания. Наконец, в-четвертых, FreeOTP позволяет максимально гибко конфигурировать токены вручную, если вам это зачем-нибудь нужно. Разумеется, обычный способ создания токена с помощью сканирования QR-кода тоже поддерживается.
Authy. Самое навороченное из приложений для двухфакторной аутентификации, основным достоинством которого является то, что все токены хранятся в облаке. Это позволяет получить доступ к токенам с любого из ваших устройств. Заодно это упрощает переезд на новые устройства — не придется заново активировать 2FA в каждом сервисе, можно продолжить пользоваться существующими токенами.
Основной недостаток Authy состоит в том, что приложение с ходу требует завести аккаунт, привязанный к вашему телефонному номеру, — без этого просто не получится начать с ним работать.
Google Authenticator
Google Authenticator является самым популярным аутентификатором среди пользователей интернет. Он прост в установки, не требует дополнительных настроек и удобен в использовании.
Как установить и настроить Google Authenticator
Скачивать приложение лучше с официального источника. Для установки аутентификатор на андроид скачайте его здесь. Если ваше устройство на IOS, то скачивать нужно здесь. Для привязки приложения нужно нажать «+». Отсканировать QR-код или ввести ключ, который вам предоставит сайт. Разберём пример на криптобирже 50x.
На сайте переходим в настройки 2FA и нажимаем включить двухфакторную аутентификацию. Нам даётся QR-код и ключ.
Обязательно нужно записать этот ключ куда ни будь на бумагу — это поможет вам восстановить доступ, в случаи поломки или потери телефона. Также не лишним будет сделать фото или скрин QR кода и спрятать в надёжном месте.
В мобильном приложении «Authenticator» нажмите «+» и выберите «Сканировать штрих код». Наведите камеру на предложенный QR код. Так вы добавите Authenticator для бирже 50x. Если камера не работает, то нужно вместо сканирования выбрать «ввод вручную» и ввести предложенный Authenticator ключ. Аналогичным способом добавляются учётные записи других интернет ресурсов.
Видео как установить Google Authenticator на windows
Если у вас нет телефона на операционной системе Android или iOS, то установить программу можно на Windows. Как это сделать смотрите в видео инструкции:
Где взять код 2FA?
Когда на сайте у вас попросят ввести код 2FA, вам нужно запустить приложение и вы увидите шестизначный код. Этот код меняется каждые 30 секунд. Если код светиться красным значит заканчивается время его действия, лучше подождать новый и не спеша ввести его.
Как восстановить аккаунты
Может случиться такая ситуация, когда телефон сломался, потерялся или его не дай бог украли. Что тогда делать? Как восстановить доступ к google authenticator?
Дело в том, что приложение не связывается с серверами Google и ничего туда не передает. Authenticator не делает backup (резервная копия). Вся информация находиться только у вас в смартфоне. Поэтому для восстановления доступа есть только два варианта.
Герои двухфакторной аутентификации, часть вторая
Недавно в первой части статьи, мы рассказали, что были удивлены, как мало компаний считают отсутствие двухфакторной аутентификации серьезной угрозой информационной безопасности.
Чтобы понять причины, мы составили четыре описания лиц принимающих решения — двух директоров и двух руководителей ИТ-отделов, по одному для крупной и средней компаний. С помощью этих психологических портретов мы и попытаемся понять причину легкомысленного отношения к ИБ компании.
В прошлый раз мы рассмотрели директора ИТ-департамента НПЗ «ФлайТек», а сегодня пришла пора познакомиться с его руководителем (и остальными двумя персонажами).
Константин
Компания
Нефтеперерабатывающий завод ФлайТек, часть крупного нефтяного холдинга ФлайОйл. Всего на НПЗ работает более 3 тыс. человек, но с вычислительной техникой связано около тысячи. Это как вспомогательные подразделения (управленцы, бухгалтерия, логистика, служба сбыта, маркетинг), так и производственники, работающие с АСУ ТП через терминалы на Microsoft Windows.
Должность
За что отвечает
За что не отвечает
Профессиональное мировоззрение
Со стороны кажется, что НПЗ — далеко не самое крупное из возможных предприятий, а производство хотя и достаточно опасное, но всё таки не АЭС. Но если посмотреть сверху, то будет видно, что НПЗ — это фактически город, со своими офисами, заводами внутри заводов, трубопроводами, столовыми, пожарными, охраной и тысячами сотрудников.
И если этом городом плохо управлять, плохо координировать службы, то последствия могут быть любыми, вплоть до остановки производства, а то и такой аварии, что мало не покажется. А это поставит под угрозу обеспечение топливом целого региона.
Поэтому у Константина каждый день много рутинной и нервной работы по поддержанию работоспособности предприятия. Для этой работы ему требуются такое количество специальных знаний и навыков, что не остается сил и времени разбираться в специфичных областях, таких как тонкости финансового учета или внедрения SOC. Максимум его знаний и опыта находится в области производства, сбыта и транспортировки. И это нормально — много ли ИТ-шников хотя бы в общих чертах знают технологию крекинга или базовые принципы нефтеперегонки?
Из угроз в ИТ Константин знает вирусы и шифровальщики (он не настолько хорошо разбирается, чтобы знать, что шифровальщики фактически есть те же самые вирусы, но с определенной симптоматикой).
Он считает, что вся ответственность на предотвращении всех угроз лежит на Федоре, поскольку тот имеет соответствующее образование и опыт. Глубоко вникать в проблему у него нет никакого желания, ни возможности. Все попытки рассказать ему о проблемах в ИТ вызывают у него отторжение. Всех, кто рассказывает ему об ИТ-угрозах, он переадресует к Федору.
Если «пугалка» запала Константину в душу, то он просит Федора сделать для него доклад о вероятности возникновения риска и потенциальном его влиянии на работу НПЗ, но объективность оценки Федора, конечно же, никогда не проверяет.
Текущее отношение к 2FA
Поскольку с двухфакторной аутентификацией в крупных корпорациях мы разобрались, то пришла пора выяснить как обстоит дела в средних. Для этого мы придумали транспортную компанию «Традекс» и описали её генерального директора (и одновременно владельца) и начальника ИТ-отдела. С него, пожалуй и начнем.
Компания
Транспортная компания «Традэкс». Осуществляет грузовые перевозки по России, СНГ, Китаю и Турции. Обладает собственным и привлеченным парком вагонов и грузовиков, а также собственным складским комплексом. Осуществляет ВЭД (внешнеэкономическую деятельность), участвует в электронных торгах.
Должность
Начальник ИТ-отдела. Руководит командой из трех человек, где один сотрудник имеет достаточно неплохие знания в настройке сетевого оборудования и программного обеспечения, а двое других — начинающие «эникейщики».
За что отвечает
За все, что связано с компьютерами. При этом не прописаны ни политики работы, ни приоритеты. Таким образом, восстановление Windows на компьютере директора может оказаться более важным, нежели отражения DDoS атаки на сайт компании.
За что не отвечает
За права и политики доступа к данным и сервисам. Сказал начальник отдела дать доступ сотруднику к рабочему столу по удаленке — настроили VPN и RDP. Может ли сотрудник «слить» данные — это уже проблема генерального директора и начальника отдела.
За повышенную готовность к различным типам рисков. У Традэкса нет денег покупать запасные ноутбуки на случай, если сотрудник вдруг разобьет свой. Вот если разобьет, то будем думать, что с этим делать. При этом, конечно же, наиболее вероятные риски учитываются — такие как резервный канал связи офиса.
Профессиональное мировоззрение
«Работает — не трогай». За излишнее рвение директор Петра вряд ли похвалит, а вот если тот в процессе улучшения испортит (или хотя бы на время приведет в нерабочее состояние) работающие сервисы, то Петр окажется виноватым. Поэтому Петр не любит экспериментов. Каждый раз обдумывая не внедрить ли что-то новое, он оценивает — действительно ли отсутствие этих возможностей грозит компании проблемами, в которых его могут обвинить. И не приведет ли внедрение к проблемам, в которых его обвинят.
Текущее отношение к 2FA
Петр про это слышал, но уверен, что это не про их компанию. Большинство сотрудников находятся на виду, а если кто-то и попытается слить данные с чужим паролем, то пусть этим займется СБ или сам директор. Хотя если Петр поверит в реальность такой угрозы, то директору расскажет обязательно — чтобы не оказаться крайним в случае чего.
Как видите, Пётр отвечает за все проблемы в ИТ, причем даже больше, чем его коллега Фёдор из первой части. Потому что средняя компания — не крупная, тут нет выделенной службы безопасности (по крайней мере компетентной в вопросах ИТ). Пётр не может сослаться на чужую зону ответственности, или на служебные инструкции.
И напоследок представляем вашему вниманию начальника Петра — Павла, директора и собственника Традэкса.
Павел
Компания
Транспортная компания «Традэкс». Осуществляет грузовые перевозки по России, СНГ, Китаю и Турции. Обладает собственным и привлеченным парком вагонов и грузовиков, а также собственным складским комплексом. Осуществляет ВЭД (внешнеэкономическую деятельность), участвует в электронных торгах.
Должность
Генеральный директор и собственник в одном лице.
За что отвечает
За всё. Просто в некоторых вещах он разбирается и полностью их контролирует, а остальные делегирует исполнителям. В том, что он не разбирается, директору необходимо отсутствие проблем и своевременная реакция на происходящие изменения. То есть, Павел не знает слова «шифровальщик», но если все ПК в компании вдруг окажутся заблокированными, то он будет разбираться с начальником ИТ-отдела. А если водители неожиданно уйдут в запой, то он посадит за руль начальника транспортного отдела.
За что не отвечает
Как уже говорилось, за знание деталей определенных процессов.
Профессиональное мировоззрение
Это компания Павла, поэтому ему хочется верить, что он полностью контролирует все её процессы. Он периодически встречается с руководителями отделов и те подробно рассказывают ему о текущем состоянии, о потенциальных угрозах и новинках (и это касается ИТ далеко не в первую очередь — например, Павла очень интересовало влияние внедрения системы Платон на уровень доходов).
Павел любит ходить на разнообразные отраслевые конференции, это подчеркивает статус и дает возможность узнать что-то действительно важное. Если там рассказывают что-то, что его заинтересовало, но из той области где он не является специалистом, то Павел передает информацию руководителю соответствующего отдела, просит разобраться и доложить ему.
Текущее отношение к 2FA
Павел про 2FA ничего не знает. На профильных конференциях эти вопросы не затрагиваются, Петр ему про это не рассказывает. Если бы ему грамотно рассказали про потенциальный риск, то он потребовал бы Петра разобраться и доложить о том, насколько он критичен и вероятен в их компании. И если Петр скажет, что 2FA им не нужен, то Павел потребует гарантировать, что без внедрения данной технологии безопасность Традэкса не пострадает. И тогда уже Павлу будет проще внедрить 2FA, чем брать на себя ответственность.
Выводы
Здесь должны быть умные выводы о причинах, почему четыре умных человека, искренне озабоченные в том числе и безопасностью своих компаний, знают об эффективной и хорошо зарекомендовавшей себя технологии двухфакторной аутентификации, но не внедряют её у себя. При том, что внедрение сложно и не критично по стоимости и временным затратам.
Но выводы оказались весьма просты. Нужно больше рассказывать об опасности паролей и пользе 2FA, причем не только ИТ-шникам, но и генеральным директорам — и количество внедрений 2FA увеличится в разы.
Не согласны? Буду рад подискутировать в комментариях!
FIDO U2F — Универсальная Двухфакторная Аутентификация. Введение
Ни для кого не секрет, что сегодня существует большая проблема с безопасностью в интернете. Пользователи используют легкие пароли и переиспользуют их на других ресурсах. Парольные менеджеры все еще в новинку для обычного пользователя, и вашу бабушку вы вряд ли заставите использовать случайные одноразовые пароли с высокой энтропией. Жизнь тлен и боль…
На заре веб2.0 мы стали понимать, что паролей недостаточно и изобрели двухфакторную аутентификацию или 2FA.
Что из себя представляют 2FA решения сегодня?
SMS — одноразовые пароли отправленные с помощью SMS.
OTP(TOTP/HOTP) — одноразовые пароли, сгенерированные на основе мастер ключей. Примеры: Google Authenticator, Yubikey, банковские OTP токены.
При большом выборе решений, у пользователей до сих пор уводят аккаунты. Так почему существующие технологии не решили проблему?
Фишинг — практически все перечисленные решения уязвимы к MITM (человек посередине) атакам, и соответственно фишингу. Что остановит пользователя, который уже ввел свой логин и пароль, от введения одноразового пароля?
Безопасность — в данном случае я буду говорить именно про SMS. SMS на данный момент самое популярное решение 2FA на рынке. Истории о перевыпуске сим карты случались не только в России, но и в США, ЮАР, Великобритании и других странах. Почти все провайдеры предоставляют возможность восстановления сим-карт, и методы социальной инженерии еще никто не отменял.
Стоимость — если вы швейцарский банк, и ваш клиент хранит семизначные суммы иностранной валюты, то RSA токены это мизерная цена для обеспечения безопасности аккаунтов ваших клиентов. А если вы Twitter или Facebook, то выдавать недешевые токены каждому пользователю просто невозможно. SMS тоже стоит денег, и если вы держите любительский аниме форум о дискуссиях про то как пропатчить KDE под FreeBSD, то вы вряд ли сможете позволить себе SMS.
Совместимость — никто не любит возиться с драйверами, и это одна из причин того, что RSA и Рутокен все еще не завоевали мир.
Этот список можно еще долго продолжать, но я думаю что мысль донесена. Сегодняшние решения не в состоянии надежно защитить пользователя, сложны в применении, дороги и не универсальны.
FIDO U2F — Универсализируем второй фактор
В 2013 году в Кремниевой Долине был организован FIDO (Fast IDentity Online) альянс для того, чтобы адресовать проблемы легкой и безопасной аутентификации в интернете. На данный момент FIDO имеет более трёхсот ассоциативных членов и тридцать членов правления. В список членов правления входят такие компании как Google, Yubico, Microsoft, Visa, Mastercard, American Express, Paypal и другие.
Основные цели, которые FIDO ставит перед собой, это простые в использовании, безопасные, приватные и стандартизированные решения.
На данный момент FIDO представили два стандарта: U2F (Universal Second Factor) — универсальный второй фактор, UAF (Universal Authentication Framework) — универсальный аутентификационный фреймворк для биометрической аутентификации. Сегодня мы поговорим о U2F. Если тема будет интересна, то в будущем я могу написать статью по UAF.
U2F это открытый, бездрайверный протокол для двухфакторной аутентификации, основанный на вызов-ответной аутентификации с помощью электронной цифровой подписи.
Как это работает?
У U2F протокола три уровня абстракции: Пользователь, Браузер(тех. Клиент) и сам Протокол.
Пользователь
Для пользователя все достаточно просто. Пользователь вводит логин и пароль, вставляет U2F устройство, нажимает кнопку и успешно проходит аутентификацию. Собственно об этом ранее уже писали на ХабраХабре.
Браузер
Алгоритм взаимодействия с U2F на стороне браузера такой:
Пользователь проходит верификацию логина и пароля
Зависимая сторона, Google например, через U2F JS API запрашивает подпись вызова(challenge)
Если пользователь подтвердил, например с помощью нажатия кнопки или иным образом, свое желание произвести двухфакторную аутентификацию, то устройство возвращает подпись вызова
Браузер передает подпись зависимой стороне
Протокол — или пять с половиной шагов к безопасной двухфакторной аутентификации
Шаг первый — Вызов-Ответ
Для начала мы производим простой вызов-ответ. Сервер посылает нам случайный вызов. Наше устройство подписывает вызов и возвращает подпись серверу, после чего сервер сверяет подпись.
Шаг второй — Защита от фишинга
Подписываем оригинальный URL и Channel ID
Сам по себе вызов-ответ не решает проблемы фишинга, так как если вы залогинились на rnail.ru вместо mail.ru, то ваша подпись все еще может быть использована для входа в ваш аккаунт. Для защиты от этого браузер к вызову добавляет URL, с которого был произведен запрос на подпись, и ID канала TLS, после чего зависимая сторона сверяет эти данные.
Шаг третий — Приватность или регистрационно-зависимая пара ключей
Генерируем регистрационно-зависимую пару
На данный момент наше устройство подписывает все одной парой ключей. Это создает проблему для приватности, в связи с тем что публичный ключ будет везде одинаковый. Для примера скажем если бы вы были зарегистрированы на печально известном AshleyMadison.com, то атакующий мог бы связать слитый публичный ключ и ваши другие аккаунты и потенциально причинить физический и моральный вред.
Чтобы сохранить приватность при регистрации, зависимая сторона передает ID приложения (AppID) и семя (случайное число). На основе этих данных устройство генерирует уникальную регистрационно-зависимую пару ключей. Как устройство генерирует пару не описано в протоколе, а полностью отдано на усмотрение изготовителя устройства. Например, каждый Yubikey имеет свой мастер ключ, который в связке с HMAC и ГПСЧ (Генератор псевдослучайных чисел) генерирует новую пару.
За счет того, что пара ключей уникальна для каждой регистрации, становится возможным использовать совместно одно U2F устройство для множества аккаунтов.
Шаг четвертый — Защита от клонирования
Так как U2F это только протокол, то он может иметь разные имплементации, в железе и ПО. Некоторые имплементации могут быть не устойчивыми к клонированию. Для защиты от этого U2F устройство имеет встроенный счетчик. Каждая подпись и регистрация увеличивает состояние счетчика на единицу. Состояние счетчика подписывается и возвращается зависимой стороне. Если U2F устройство было склонировано, то состояние счетчика клонированного устройства скорее всего будет меньше чем состояние счетчика оригинального устройства, что вызовет ошибку во время верификации.
Шаг пятый— Аттестация Ключа
Разные имплементации протокола могут быть быть небезопасны. Чтобы избежать этого, каждое U2F устройство имеет встроенный партийный сертификат, который устанавливается приблизительно на каждые сто тысяч устройств. Каждая подпись и регистрация дополнительно подписывается сертификатом, публичный ключ которого находится в публичной директории.
Зачем это надо? Например, если вы — форум о котятах, то вы возможно не сильно волнуетесь о том, насколько безопасны U2F устройства ваших пользователей, а если вы банк, то возможно вы разрешите только устройства, выполненные в железе, и только если они сертифицированы FIDO альянсом.
Шаг шесть с половиной — Защита от перебора
В ситуации, когда пользователь находится вдали от своего устройства, вредоносное программное обеспечение может попытаться атаковать устройство методом полного перебора или другими видами атак. Для защиты от этого U2F стандарт требует чтобы все имплементации, в железе и ПО, активировались пользователем. Пользователь обязан подтвердить свое решение на двухфакторную аутентификацию. Этим действием может быть простое нажатие на кнопку, ввод пин-кода, снятие отпечатка пальца или другое.
Сервисы с множественными точками входа
Возьмем для примера Gmail.
В Gmail можно войти как с веб интерфейса, так и с мобильного. Как можно произвести авторизацию пользователя с андроид приложения, если AppID нашего приложения и AppID сервиса будут различаться?
Для этого есть фасеты (facets).
Фасеты — это JSON файл со списком всех ID, которым разрешается производить аутентификацию для выбранного сервиса. Для примера, вот фасеты Google:
Фасеты должны быть в том же доменном пространстве что и AppID. Например, если наше AppID это https://example.com/facets.json, то https://**security**.example**.com пройдет проверку, а https://security.example.net **нет.
Для мобильных приложений фасеты имеют URI схему вида “OS:TYPE:ID”. Для андроида вычисляется SHA-1 сертификата подписи apk. Для IOS это bundle ID.
Фасеты обязаны раздаваться по HTTPS!
Спецификации
На данный момент готовы спецификации для USB, NFC и Bluetooth LE.
Поддержка браузерами
Chrome поддерживает U2F из коробки с начала 2015. U2F поддержка в Firefox в данный момент в активной разработке. Microsoft анонсировала поддержку U2F как для Windows 10 так и для Edge как часть FIDO2.0 стека, и она уже доступна в Insider Build.
Кто использует?
Google, Github, WordPress, Dropbox, Evernote. Правительство Великобритании недавно ввело поддержку U2F для своих государственных сайтов, что немало доставляет.
Что нужно учесть при переходе на U2F?
HTTPS ОБЯЗАТЕЛЕН —мало того, что если вы не предоставляете HTTPS своим пользователям, то вас не заботит их безопасность, и U2F вам будет мало интересен. Firefox, Chrome, и Edge требуют HTTPS соединения для использования U2F API.
Попробуйте TLS SessionID.
Подводим итоги
U2F это хорошо продуманная, сильная, открытая и стандартизированная технология. Она была успешно протестирована Google на своих сотрудниках, кои используют U2F на данный момент в качестве основного метода двухфакторной аутентификации.
U2F всего лишь протокол, что влечет за собой создание огромного рынка решений на основе его. От крипто-ключей с безопасным элементом, JavaCard имплементаций, до мобильных приложений и биометрически-защищенных U2F устройств, U2F дает свободу вашей фантазии втом, где его можно применить.
Примечания
Если вы хотели бы больше узнать о U2F и его внедрении, а так же о других решениях FIDO альянса, пишите в комментариях.
Как устроена и зачем нужна двухфакторная аутентификация
Когда нужно ещё что-то кроме пароля.
Послушать аудиоверсию этой статьи (11 минут):
Недавно мы рассказали, чем отличается аутентификация от авторизации. Сегодня пойдём дальше — выясним, что такое двухфакторная аутентификация и зачем она нужна.
Аутентификация: подтверждение того, что вы — это вы, а не кто-то другой, кто пытается прикинуться вами.
Авторизация: что вам разрешено делать в системе, на сайте или в приложении после аутентификации. Проще говоря, авторизация — это когда система даёт вам какие-то права доступа. Какие — зависит от авторизации.
Однофакторная аутентификация
Это самый простой и самый распространённый тип аутентификации: вы вводите логин и пароль. Софт смотрит, есть ли такие логины и пароли в базе данных. Если да — узнает вас. Дальше смотрит, есть ли у вас какие-то права.
Системе неважно, кто именно вводит логин и пароль. Главное — чтобы они совпали с базой. Если злоумышленник подсмотрит, как мы вводим логин и пароль от какого-нибудь форума, потом он сможет зайти от нашего имени творить зло.
✅ Если помните логин и пароль, вход будет относительно быстрым.
❌ Если кто-то другой узнает ваш логин и пароль, он сможет залезть в софт под вашим именем.
❌ Часто люди в качестве логина используют адрес почты — это публичная информация, её легко вычислить.
❌ Люди нечасто используют много разных паролей для разных сервисов. Если какой-то один сервис сольёт ваш пароль, злоумышленники смогут воспользоваться им и в других сервисах.
❌ Очень часто пароль — это дата рождения, что тоже может быть публичной информацией.
Двухфакторная аутентификация
При двухфакторной аутентификации система использует два не связанных между собой способа аутентификации. Первый обычный, а второй — для дополнительной безопасности.
Второй способ должен быть независимым: на другом устройстве или принципиально другим методом. Расчёт на то, чтобы существенно усложнить жизнь злоумышленникам, которые могут захотеть воспользоваться чужим логином и паролем.
❌ Входить в сервис намного дольше.
✅ Надёжность выше: чтобы войти от вашего имени, нужно получить доступ к вашему телефону или почте. Плюс нужно знать пароли от них.
✅ Войти сложно, даже если у вас везде один и тот же пароль.
Примеры второго фактора
СМС-код с подтверждением. Предполагается, что человек не передаёт свой телефон другим людям, поэтому если отправить ему СМС, то прочитает его именно он. Так работают почти все интернет-банки.
Также код могут отправить на почту или в приложение. Смысл тот же.
Ссылка на электронную почту. После логина и пароля система отправляет специальную одноразовую ссылку, после клика на которую система убеждается, что вы — это вы. Не слишком безопасно, потому что почту несложно взломать.
Подтверждение в приложении. Если у сервиса есть приложение и вы его установили, сервис может связаться с приложением на вашем телефоне и задать вам там вопрос: «Это вы входите?». Вход в аккаунт Гугла, например, работает именно так.
Приложение-аутентификатор с кодом. Для более злых сценариев есть специальные приложения — например, «Ключ» у Яндекса. Сервер и ваше приложение договариваются о каком-то принципе криптографии. Когда нужно ввести второй код, вы смотрите его не в смс, а в приложении.
Таким методом пользуются для входа в некоторые почтовые сервисы или в защищённые контуры корпоративных сетей. Например, если у вас почта Яндекса, можно настроить вход через «Яндекс-ключ».
Аутентификация по QR-коду. В приложении может быть функция «Считать QR-код»: подносите камеру к компьютеру, и система убеждается, что перед экраном сидите именно вы.
Так работает аутентификация в веб-версию WhatsApp или в почту Яндекса через приложение «Ключ».
Устройство-аутентификатор. Обычно их делают в виде флешки с кнопкой и экранчиком. Нажимаете на кнопку — высвечивается код. Потеряется флешка — нужно будет идти к тому, кто её выдавал, без этого система никуда просто по логину и паролю не пустит.
USB-токен. Тоже выглядит как флешка, но внутри стоит специальная микросхема и криптософт. Этот софт безопасно соединяется с системой и сам вводит нужный код доступа, который ему генерирует микросхема. Если потерять, то доступ тоже будет утерян.
Пример токена, который продаётся на сайте secure-market.ru. Сам по себе он бесполезен — его нужно привязывать к системе аутентификации вашего софта, чтобы они знали друг о друге. Если просто купить этот токен, его коды ничего вам не откроют
NFC-карта или карта с магнитной лентой. Иногда у сотрудников банков к компьютеру подключён специальный ридер для карт. Чтобы совершить важную операцию, сотрудник должен подтвердить её своей картой: мол, это точно я.
Биометрия. Биометрия — это всё, что касается вашего тела: распознавание отпечатков, лица, голоса, биоритмов, ауры и что там ещё придумают. Как правило, применяется на крупных и важных объектах с повышенными требованиями к безопасности.
Правила безопасности для двухфакторной аутентификации
Переходите к безопасной 2FA на блокчейне
СМС-сообщения — популярнейший способ двухфакторной аутентификации (2FA). Ее используют банки, электронные и крипто-кошельки, почтовые ящики и всяческие сервисы; число пользователей метода приближается к 100%.
У меня такой расклад событий вызывает негодование, ведь этот метод небезопасный. Переназначать номер с одной SIM-карты на другую стали еще в начале мобильной эры — так восстанавливают номер при потере симки. “Специалисты по отъему цифровых денег” осознали: опцию «перезаписи симки» можно использовать в мошеннических схемах. Ведь тот, кто контролирует сим-карту, может управлять и чужим онлайн-банкингом, и электронными кошельками, и даже криптовалютой. А завладеть номером другого лица можно через подкуп сотрудника телекома, с помощью обмана или поддельных документов.
Раскрыты тысячи эпизодов SIM-свопинга — так назвали эту схему мошенничества. Масштабы бедствия говорят о том, что скоро мир откажется от 2FA по СМС. Но этого не происходит — в исследовании рассказывают, что выбирают метод 2FA не пользователи, а владельцы сервисов.
Мы предлагаем использовать безопасный метод 2FA с доставкой одноразовых кодов через блокчейн, и расскажем, как владельцу сервиса его подключить.
Счет идет на миллионы
В 2019 году мошенничество SIM-свопингом выросло на 63% по данным лондонской полиции, а “средний чек” злоумышленника — 4,000 GBP. Статистики в России я не нашел, однако предполагаю, что она еще хуже.
SIM-свопинг используется для кражи популярных аккаунтов Twitter, Instagram, Facebook, VK, банковских аккаунтов, а недавно добрались и до криптовалют — сообщает газета Таймс со слов биткоин-предпринимателя Джоби Уикса. Громкие дела о краже криптовалют с помощью SIM-свопинга всплывают в прессе с 2016 года; на 2019-й пришелся настоящий пик.
Фото Джоэла Ортиза на пресс-конференции в университете. Спустя два года он будет задержан за кибермошенничество.
Принцип работы SIM-свопинга
«Свопинг» — значит обмен. Во всех подобных схемах преступники присваивают себе телефонный номер жертвы, обычно через перевыпуск SIM-карты, и пользуются им для сброса пароля. Типичный SIM-свопинг в теории выглядит так:
Теперь все СМС будут получать злоумышленники, а владелец телефона ничего не сможет с этим сделать — он за границей. А дальше злодеи получают доступ ко всем аккаунтам жертвы и при желании меняют пароли.
Шансы вернуть украденное
Банки иногда идут навстречу жертвам и отзывают переводы с их счетов. Поэтому вернуть фиатные деньги удается, даже если преступник не найден. Но с криптовалютными кошельками все сложнее — и технически, и законодательно. Пока ни одна биржа/кошелек не выплатили компенсации жертвам свопинга.
Пока ни у одного государства нет рабочих схем, чтобы законодательно защитить владельцев криптовалют. Застраховать свой капитал или получить компенсацию за его потерю невозможно. Поэтому предотвратить свопинг-атаку проще, чем бороться с ее последствиями. Самый очевидный способ — использовать более надежный «второй фактор» для 2FA.
SIM-свопинг — не единственная проблема 2FA через СМС
Коды подтверждения в СМС небезопасны и с технической точки зрения. Сообщения можно перехватить из-за неустранимых уязвимостей в сигнальной системе Signaling System 7 (SS7). 2FA по SMS официально признана небезопасной (Национальный институт стандартов и технологий США говорит об этом в своем Руководстве по цифровой аутентификации).
При этом наличие 2FA часто внушает пользователю чувство ложной безопасности, и он выбирает более простой пароль. Поэтому такая аутентификация не затрудняет, а облегчает доступ злоумышленника к аккаунту.
А еще нередко СМС приходят с большой задержкой или не приходят совсем.
Другие способы 2FA
Разумеется, на смартфонах и СМС свет клином не сошелся. Есть и другие способы 2FA. Например, одноразовые TAN-коды: способ примитивный, но рабочий — он до сих пор используется в некоторых банках. Есть системы с применением биометрических данных: отпечатков пальцев, сканов сетчатки. Еще один вариант, который кажется разумным компромиссом по удобству, надежности и цене — специальные приложения для 2FA: RSA Token, Google Authenticator. А еще есть физические ключи и другие методы.
В теории все выглядит логичным и надежным. Но на практике у современных 2FA-решений есть проблемы, и из-за них реальность отличается от ожиданий.
Согласно исследованию, использование 2FA является неудобством в принципе, а популярность 2FA по СМС объясняют “меньшим неудобством по сравнению с другими методами” — получение одноразовых кодов понятно для пользователя.
Многие способы 2FA пользователи связывают со страхом, что доступ будет утерян. Физический ключ или список TAN-паролей можно потерять или их могут украсть. У меня лично есть негативный опыт использования Google Authenticator. Первый смартфон с этим приложением у меня сломался — оцените мои труды по восстановлению доступа к аккаунтам. Другая проблема — переход на новое устройство. Google Authenticator не имеет возможности экспорта из-за соображений безопасности (если ключи можно экспортировать, какая тут безопасность?). Один раз я переносил ключи вручную, а дальше решил, что проще оставлять старый смартфон в коробке на полке.
Метод 2FA должен быть:
Используйте 2FA на блокчейне
Для пользователя 2FA на блокчейне выглядит так же, как и получение одноразовых кодов по СМС. Отличие только в канале доставки. Способ получения 2FA-кода зависит от того, что предлагает блокчейн. В нашем проекте (информация есть в моем профиле) это Web-приложение, Tor, iOS, Android, Linux, Windows, MacOS.
Сервис генерирует одноразовый код и посылает его в мессенджер на блокчейне. Дальше — по классике: пользователь вводит полученный код в интерфейсе сервиса и авторизуется.
В статье Как работает децентрализованный мессенджер на блокчейне я написал, что блокчейн обеспечивает безопасность и приватность передачи сообщений. По вопросу отправки кодов 2FA я выделю:
Аккаунт в блокчейн-мессенджере для получения кодов пользователь получает за секунду — для входа используется только пассфраза. Поэтому и способы применения могут быть разными: можно использовать один аккаунт для получения кодов для всех сервисов, а можно для каждого сервиса создать отдельный аккаунт.
Есть и неудобство — аккаунт должен иметь хотя бы одну транзакцию. Для того, чтобы пользователь получил шифрованное сообщение с кодом, нужно знать его публичный ключ, а он появляется в блокчейне только с первой транзакцией. Мы выкрутились так: дали возможность получить в кошельке бесплатные токены. Однако более правильное решение — именовать аккаунт публичным ключом. (Для сравнения у нас номер аккаунта U1467838112172792705 является производным публичного ключа cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. Для мессенджера это удобнее и читабельнее, а вот для системы отправки 2FA-кодов — ограничение). Думаю, в будущем кто-нибудь сделает такое решение и переведет “Удобство и доступность” в зеленую зону.
Цена отправки 2FA-кода реально низкая — 0.001 ADM, сейчас это 0.00001 USD. Опять же, можно поднять свой блокчейн и сделать цену нулевой.
Как подключить 2FA на блокчейне к вашему сервису
Надеюсь, я смог заинтересовать нескольких читателей, чтобы добавить блокчейн-авторизацию на их сервисы.
Я расскажу как это сделать на примере нашего мессенджера, а по аналогии вы можете использовать и другой блокчейн. В демо-приложении 2FA мы используем postgresql10 для хранения информации об аккаунтах.
Создание аккаунта в блокчейне — это генерация приватного ключа, публичного ключа, и производного от него адреса аккаунта.
Сначала генерируется пассфраза BIP39, из нее считается SHA-256-хэш. Хэш используется для генерации приватного ключа ks и публичного ключа kp. Из публичного ключа тем же SHA-256 с инверсией получаем адрес в блокчейне.
Если вы хотите отправлять коды 2FA каждый раз с нового аккаунта, код для создания аккаунта нужно будет добавить на сервер:
В демо-приложении мы упростили — создали один аккаунт в веб-приложении, и отправляем коды с него. В большинстве случаев это удобнее и пользователю: он знает, что сервис отправляет 2FA-коды с конкретного аккаунта, и может его именовать.
2 Генерация кодов 2FA
Код 2FA нужно генерировать для каждого входа пользователя. Мы используем библиотеку speakeasy, но вы можете выбрать любую другую.
Проверка валидности кода 2FA, введенного пользователем:
3 Отправка кода 2FA
Для отправки 2FA-кода можно использовать API узла блокчейна, библиотеку JS API или консоль. В этом примере мы используем консоль — это Command Line Interface, утилита, которая упрощает взаимодействие с блокчейном. Чтобы отправить сообщение с 2FA-кодом, нужно использовать команду send message консоли.
Альтернативный способ отправки сообщений — использовать метод send в JS API library.
4 Интерфейс пользователя
Пользователю нужно дать возможность ввода кода 2FA, это можно сделать различными способами в зависимости от платформы вашего приложения. В нашем примере это Vue.
Исходный код демонстрационного приложения двухфакторной авторизации на блокчейне можно посмотреть в GitHub. В Readme есть ссылка на Live demo, чтобы попробовать.