Многие пользователи интернета уже сталкивались или по крайней мере слышали о системе двухфакторная аутентификация. Что это такое и как её настроить мы и поговорим в этой статье.

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

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

Двухфакторная аутентификация или как её сокращенно называют 2FA — это дополнительная защита. То есть, помимо стандартных логинов и паролей нужно ввести ещё один секрет. Какие это секреты вы дальше и узнаете.

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

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

Такой метод используют онлайн банки. Вы в банкомате получаете длинный чек с паролями. Потом при авторизации на сайте, вас просят ввести пароль под определённым номером. Такой способ использовал сбербанк. Но согласитесь такой чек можно потерять или его могут украсть. Могут закончиться пароли, а до банкомата идти далеко. Как по мне не самый надёжный способ. Я не знаю, может какие банки до сих пор его используют. Напишите в комментариях если знаете такой банк.

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

Один из самых популярных, но не самый надёжный способ 2FA. Многие сайты используют его если не для авторизации, то для восстановления пароля. Sms сообщения научились перехватывать с помощью подменной номера или вирусами для телефонов. Более всего вирусами подвержены телефоны на android.

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

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

Приложения Authenticator для 2FA

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

  • установить на телефон программу.
  • синхронизировать приложение с сайтом воспользовавшись QR-кодом, который можно отсканировать телефоном. Или ввести специальный код, который предоставит интернет ресурс.

После запуска программы, она будет генерировать новые пароли каждые 30 секунд. Коды создаются на основе ключа, который известен только вам и серверу. Поскольку обе составляющие одинаковы и у вас, и у сервиса, коды генерируются синхронно. Этот алгоритм называется OATH TOTP (Time-based One-time Password), и в подавляющем большинстве случаев используется именно он.

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

Adobe тоже выпустил своё приложение под названием Adobe Authenticator. Но этот сервис позволяет использовать и сторонние аутентификаторы. Не понятно для чего нужно было изобретать велосипед.

Как показывает практика, большинство ИТ ресурсов позволяют использовать любое 2FA-приложение. И даже если по каким-то соображениям им хочется контролировать этот процесс и создать свое приложение, то чаще всего они позволяют защищать с его помощью не только «свои» аккаунты, но и учетные записи сторонних сервисов.

Поэтому вы можете выбрать любое приложение-аутентификатор, которое вам больше нравится, и оно будет работать с большинством сервисов, которые поддерживают 2FA-приложения.

Популярные приложения для двухфакторной аутентификации

Если вы начнете искать приложения 2FA в Google Play или Apple App Store, то вы увидите большой выбор этих программ. И не смотря на одинаковый алгоритм работы, предпочтение стоит уделить тем, которые имеют дополнительные функции и удобный интерфейс. Ниже мы рассмотрим самые популярные варианты.

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

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

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

Для входа в программу можно поставить PIN-код или отпечаток пальца. Создать в облаке «Яндекса» резервную копию токенов, защищенную паролем (а вот здесь нужно указать номер телефона), и восстановить ее на любом из используемых вами устройств. Точно так же можно будет перенести токены на новое устройство, когда понадобится переезжать.

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

Есть четыре причины, по которым вам может понравиться этот аутентификатор, разработанный Red Hat. Во-первых, это ваш выбор, если вы любите программное обеспечение с открытым кодом. Во-вторых, это самое маленькое приложение из всех рассматриваемых - версия для iOS занимает всего 750 Кбайт. Для сравнения: минималистичный Google Authenticator занимает почти 14 Мбайт, а приложение Authy, о котором мы поговорим ниже, - аж 44 Мбайта.

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

Authy . Самое навороченное из приложений для двухфакторной аутентификации, основным достоинством которого является то, что все токены хранятся в облаке. Это позволяет получить доступ к токенам с любого из ваших устройств. Заодно это упрощает переезд на новые устройства - не придется заново активировать 2FA в каждом сервисе, можно продолжить пользоваться существующими токенами.здесь . Если ваше устройство на 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 (резервная копия). Вся информация находиться только у вас в смартфоне. Поэтому для восстановления доступа есть только два варианта.

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

Вы можете включить двухфакторную аутентификацию в . Вам понадобится приложение Яндекс.Ключ, которое можно установить на мобильное устройство на базе iOS или Android. Устройство, которое не поддерживает установку приложений (например, Amazon Kindle Fire) использовать не получится.

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

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

    Логин и пароль можно не вводить, если вы входите на Яндекс с помощью QR-кода .

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

Примечание. Чтобы перенести аккаунт на другой смартфон или планшет, откройте страницу и нажмите кнопку Замена устройства .

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

  1. Шаг 2. Создайте пин-код
  2. Шаг 3. Настройте Яндекс.Ключ

Шаг 1. Подтвердите номер телефона

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

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

Шаг 2. Создайте пин-код

Придумайте и введите четырехзначный пин-код для двухфакторной аутентификации.

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

Нажмите кнопку Создать , чтобы подтвердить введенный пин-код.


Шаг 3. Настройте Яндекс.Ключ

Яндекс.Ключ необходим, чтобы генерировать одноразовые пароли для вашего аккаунта. Вы можете получить ссылку на приложение прямо на телефон или установить его из App Store или Google Play .

Примечание. Яндекс.Ключ может запросить доступ к камере, чтобы распознавать QR-коды при добавлении аккаунтов или при авторизации по QR-коду .

Нажмите в Яндекс.Ключе кнопку Добавить аккаунт в приложение . Яндекс.Ключ включит фотокамеру, чтобы сканировать показанный в браузере QR-код.

Если считать QR-код не получается, нажмите в браузере ссылку Показать секретный ключ , а в приложении - ссылку или добавьте его вручную . На месте QR-кода браузер отобразит последовательность символов, которую следует ввести в приложении.

Распознав аккаунт, приложение запросит пин-код, который вы создали на предыдущем шаге настройки 2FA.


Шаг 4. Проверьте одноразовый пароль

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

Для этого в Яндекс.Ключе нужно правильно ввести пин-код, который вы создали на втором шаге . Приложение покажет одноразовый пароль. Введите его рядом с кнопкой Включить и нажмите эту кнопку.

Двухэтапная аутентификация в Google

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

В Google данная система называется “Двухэтапная аутентификация”. Данный метод позволяет идентифицировать пользователя с помощью мобильного устройства. При включении двухэтапной аутентификации в Google пользователю доступно несколько опций. Первая опция называется Google Prompt - пользователь просто добавляет свой смартфон в аккаунт и проверяет, что на устройстве установлено поисковое приложение Google. Затем при попытке входа в аккаунт нужно будет подтвердить на смартфоне, что это делаете вы лично.

Если это не сработает, то придется ввести дополнительный код, который будет отправлен на смартфон посредством текстового SMS-сообщения, голосового вызова или с помощью приложения Google Authenticator . В своем персональном аккаунте вы можете зарегистрировать свой компьютер, чтобы не вводить код при каждой авторизации. Если вы являетесь обладателем корпоративного аккаунта G Suite, вы можете настроить получение кода каждые 30 дней.

Google Authenticator может сгенерировать код аутентификации, даже если смартфон не подключен к сети Интернет. Вам нужно сначала подключить двухэтапную аутентификацию. Затем приложение будет сканировать QR код на экране рабочего стола, а затем сгенерирует одноразовый пароли в зависимости от времени или значения счетчика, который нужно будет ввести в соответствующее поле. Данный метод заменяет текстовые сообщения, голосовые вызовы или сообщения электронной почты. Google Authenticator поддерживает работу с другими сервисами, такими как LastPass, Facebook, Evernote, Microsoft, Dropbox и Slack.

После того, как вы настроить двухэтапную аутентификацию Google, снова посетите раздел настроек вашего аккаунта Google. Тем вы сможете настроить номер телефона, на который будут приходить коды доступа, переключиться на использование Google Authenticator и получить доступ к 10 резервным кодам, которые можно распечатать на случай чрезвычайных ситуаций (например, разрядилась батарея смартфона и вы не можете получить доступ к приложению для аутентификации).

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

Как включить двухфакторную аутентификацию в Google

  1. Нажмите на странице профиля в верхнем правом углу экрана и нажмите по кнопке “Мой аккаунт”.
  2. После того, как страница аккаунта загрузится, выберите страницу “Безопасность и вход”.
  3. В секции “Пароль и способ входа в аккаунт” выберите пункт “Двухэтапная аутентификация”.
  4. На данном шаге, если вы захотите внести изменения в процедуру аутентификации, Google может запросить повторный ввод пароля. Введите пароль, чтобы продолжить настройку безопасности.
  5. Теперь вы можете настроить двухэтапную аутентификацию. Нажмите кнопку “Приступить”.
  6. Введите свой номер телефона. Вы сможете получать текстовые сообщения или телефонные звонки на данный номер. Выберите желаемую опцию и нажмите “Далее”.
  7. После этого вы получите SMS-сообщение или телефонный звонок с кодом доступа. Просто введите цифры без префикса “-G” и нажмите “Далее”.
  8. После этого откроется следующая страница с сообщением “Получилось! Включить двухэтапную аутентификацию?”. Нажмите “Включить”.

После этого вы можете перейти на страницу настройки двухэтапной аутентификации, где можно настроить альтернативный второй фактор на случай, если вы не можете получать текстовые сообщения или голосовые вызовы. Обратите внимание, что по умолчанию используется опция получения кодов по SMS. Работоспособность данного способа зависит от вашего сотового оператора. Кроме того, этот метод является менее безопасным, чем другие доступные методы. Еще очень популярными опциями являются использование приложения Google Authenticator или Google Prompt. Для них также потребуется наличие мобильного устройства.

Как добавить Google Authenticator в качестве второго фактора аутентификации

  1. Установите на свое мобильное устройство приложение Google Authenticator
  2. Перейдите на страницу настройки двухэтапной аутентификации аккаунта Google и в панели “Приложение Authenticator” нажмите кнопку “Создать”
  3. Выберите операционную систему свое смартфона - Android или iOS и нажмите “Далее”
  4. Откройте приложение Google Authenticator на мобильном устройстве и выберите опцию “Сканировать штрихкод”
  5. Просканируйте QR-код, который отображается на экране компьютера и нажмите Далее
  6. На экране мобильного телефона появится уведомления “секретный код сохранен” и отобразится цифровой код. Введите данный код на компьютере и нажмите “Подтвердить”

Как добавить Google Prompt в качестве второго фактора аутентификации

  1. Перейдите на страницу настройки двухэтапной аутентификации аккаунта Google и в панели “Google Prompt” нажмите кнопку “Добавить телефон”
  2. На следующем экране нажмите “Приступить”
  3. Затем выберите телефон, привязанный к аккаунту Google. Убедитесь, чтобы на телефоне было установлено поисковое приложение “Google”, и он был подключен к Интернету. Нажмите “Далее”.
  4. В появившемся уведомлении на мобильном телефоне нажмите кнопку “Да”.
  5. Затем нажмите кнопку “Готово” на компьютере. Настройка Google Prompt завершена.

Как создать пароль приложения Google

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

  1. Нажмите на ссылку “паролей приложений” в секции “Пароль и способ входа в аккаунт” страницы настройки безопасности аккаунта Google. Вас могут попросить войти в свой аккаунт Google.
  2. Внизу в выпадающем списке выберите приложение, которое вы используете.
  3. В следующем выпадающем списке выберите устройство, которое вы используете.
  4. Нажмите кнопку “Создать”.
  5. Следуйте инструкциям, чтобы ввести пароль приложения (16-значный код в желтой строке) на устройстве.
  6. Нажмите “Готово”.

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

Профиты многофакторной аутентификации для корпоративных приложений

  1. Более надежная аутентификация, чем только имя пользователя и пароль. К «что-то, что я знаю» (логин/пароль) добавляется «что-то, чем обладаю» - физическое устройство, а проверить, владеет ли им данный пользователь, позволяет код в СМС, отправленной на это устройство, или звонок на него с запросом пин-кода.
  2. Удобное управление настройками подобной системы аутентификации - включение/выключение разной степени защиты для разных пользователей, настройка различных политик и способов работы дополнительных факторов аутентификации.
  3. Возможность использовать учетные данные корпоративной инфраструктуры для входа в приложения, а не создавать новые логины и пароли для приложения в дополнение к корпоративным.

Мы рассмотрим реализацию этой задачи с помощью следующих продуктов и технологий:

  • Azure Active Directory - облачный сервис многофакторной аутентификации;
  • Azure Active Directory Authentication Libraries (ADAL) - библиотеки, обеспечивающие вызовы сервисов многофакторной аутентификации, включая проверки сертификатов, защищенное соединение с облачным сервисом аутентификации, отображение необходимых диалогов аутентификации. Поддерживает множество платформ и языков программирования;
  • Xamarin Forms - кросс-платформенное средство создания мобильных приложений, обеспечивающее компиляцию в нативный код и стопроцентный доступ к нативным API. Особенно удобно для быстрого создания приложений с переиспользованием 80–90% и более исходного кода между iOS, Android, Windows UWP - как раз наш случай для данного примера. Xamarin доступен как бесплатная часть Microsoft Visual Studio во всех ее версиях, включая бесплатную Visual Studio Community Edition.

Конфигурирование сервиса Azure Active Directory завершено, теперь создадим мобильное приложение и интегрируем в него многофакторную аутентификацию.

Интеграция многофакторной аутентификации в мобильное приложение

Как я сказал выше, мы для примера возьмем Xamarin Forms (бесплатная часть Visual Studio), который позволит нам, переиспользуя большую часть кода, получить сразу нативные мобильные приложения с поддержкой многофакторной аутентификации для iOS, Android и Windows UWP.

Быстрый способ - используем готовый исходный код

  1. Забираем код из моего репозитория на GitHub .
  2. Прописываем в код приложения в файле MainPage.xaml.cs идентификаторы, которые мы сконфигурировали при регистрации приложения в облачном сервисе Azure Active Directory. Их полное соответствие в приложении и сервисе необходимо, чтобы сервис не отклонял обращения приложения.

<>";

Все готово. Теперь мы рассмотрим также создание приложения с нуля.

Детальный способ - создаем приложение с нуля

Запускаем Visual Studio (я сейчас использую VS 2017, версия 15.6.7) с установленным Xamarin. Это можно проверить, запустив Visual Studio Installer и нажав Modify текущей инсталляции Visual Studio.



INFO

Познакомиться подробно с разработкой на Xamarin Forms можно, скачав бесплатную и очень подробную книгу знаменитого Чарльза Петцольда (думаю, многие помнят этого автора) «Creating Mobile Apps with Xamarin.Forms ».

В основном Page (окне) приложения MainPage.xaml добавим кнопку с обработчиком, для этого XAML-код для кнопки (Button) поместим вместе с существующим Label внутрь контейнера StackPanel. Этот простейший контейнер выстраивает внутри себя контролы в ряд по вертикали или горизонтали.