Мобильный токен
Мобильный токен является более современной альтернативой использованию физических токенов. Реализованный в виде приложений для IOS и Android, он обеспечивает удобную и безопасную авторизацию клиента в системе, а также подпись выполняемых им операций.
Для входа в систему клиенту предлагается использовать одноразовый код, валидность которого ограничена по времени. Одноразовые коды генерируются на основе персональных ключей клиента, загружаемых в приложение токена в начале использования.
При подписи операций код генерируется на основе данных подписываемой операции, которые попадают в приложение при помощи сканирования QR кода. Важным моментом при исполнении данного кейса является то, что данные операции отображаются на экране устройства в приложении самого токена. Таким образом, клиент может быть уверен в параметрах платежа, который он подтверждает, что является обязательным требованиям PSD2.
Доступ в само приложение токена защищен 6-значный пин-кодом, который задается пользователем при первом запуске. Токен не требует доступа в интернет — вся работа осуществляется в оффлайн режиме.
Обзор аутентификации на основе токенов
В прошлом для аутентификации в большинстве приложений и веб-сервисов пользователи должны были запоминать и при каждом логине вводить свои пароли. Кроме неудобства, это создавало ещё и угрозы безопасности, поскольку пользователи часто выбирали слабые пароли и использовали их в нескольких сервисах. Аутентификация на основе токенов устраняет подобные проблемы. Давайте разберёмся, как она реализуется.
Что такое аутентификация на основе токенов?
Аутентификация на основе токенов упрощает процесс аутентификации для уже известных пользователей. Для начала работы пользователь отправляет запрос к серверу, указав имя пользователя и пароль. Затем сервер подтверждает их на основании значений, зарегистрированных в его базе данных идентификационной информации. Если идентификационные данные подтверждены, сервер возвращает токен аутентификации (который тоже хранится в базе данных).
Когда тот же пользователь в дальнейшем шлёт запросы на доступ к защищённым ресурсам, эти запросы могут быть авторизованы при помощи токена аутентификации вместо имени пользователя и пароля. Сервер сверяет токен с зарегистрированным в базе данных токеном и предоставляет доступ. Аутентификацию можно реализовать на основе различных типов токенов, например, OAuth и JSON Web Tokens (JWT).
JWT использует безопасный способ, основанный на подписанных токенах, что позволяет с лёгкостью выявлять модификации. Аппаратные токены могут содержать идентификационные данные или генерировать одноразовый пароль.
Как работает аутентификация на основе токенов?
Существует множество способов предоставления пользователям токенов аутентификации — аппаратные токены, одноразовые пароли (обычно передаваемые через мобильный телефон) и программные токены, обычно основанные на стандарте JWT.
Все токены безопасным образом хранят идентификационную информацию и данные пользователя. Токен также может подтвердить, что данные верны и их не модифицировали — важное требование безопасности с учётом множества современных законов о конфиденциальности. Также они значительно повышают удобство работы для пользователя, поскольку позволяют пользователям выполнять вход без необходимости запоминания паролей.
Аутентификация на основе токенов обычно состоит из четырёх этапов:
- Первоначальный запрос — пользователь запрашивает доступ к защищённому ресурсу. Изначально пользователь должен идентифицировать себя способом, не требующим токена, например, при помощи имени пользователя или пароля.
- Верификация — аутентификация определяет, что идентификационные данные пользователя верны, и проверяет, какие полномочия он имеет в запрошенной системе.
- Токены — система выпускает токен и передаёт его пользователю. В случае аппаратного токена это подразумевает физическую передачу токенов пользователю. В случае программных токенов это происходит в фоновом режиме, пока фоновые процессы пользователя обмениваются данными с сервером.
- Сохранение — токен удерживается пользователем, или физически, или в браузере/мобильном телефоне. Это позволяет ему выполнять аутентификацию без указания идентификационных данных.

Основные типы токенов аутентификации
Вот несколько популярных типов токенов, используемых разработчиками для аутентификации пользователей или аккаунтов сервисов.
Аппаратные токены (USB)
Аппаратные токены — это физические устройства, обеспечивающие авторизацию пользователей для доступа к защищённым сетям. Также иногда их называют токенами аутентификации или безопасности. Задача аппаратного токена — обеспечение дополнительного слоя защиты благодаря двухфакторной или многофакторной аутентификации (2FA или MFA). Владелец токена привязывает токен к системе или сервису, доступ к которому ему необходим.
Аппаратные токены спроектированы с учётом удобства для пользователей и возможности настройки, поэтому они могут иметь различные форматы. Самыми распространёнными типами токенов являются брелки, USB и беспроводные токены. Аппаратные токены можно разделить на три категории.
- Бесконтактные — такой токен не требует ввода кода или соединения с устройством. Этот тип токена использует для доступа к системе беспроводное подключение, которое может предоставлять или отклонять доступ на основании идентификационных данных, связанных с соединением.
- Без подключения — токены без подключения не нужно физически вставлять в систему, к которой выполняется доступ. Устройство генерирует одноразовые коды доступа, которые используются как часть 2FA или MFA. Обычно токеном без подключения является мобильное устройство, например, смартфон.
- С подключением — для обеспечения доступа токен с подключением должен физически подключаться к системе. Токен сканируется считывающим устройством, получающим идентификационные данные аутентификации. Это может быть USB-токен или брелок (например, Yubikey).
JSON Web Tokens (JWT)
JSON Web Token (JWT) — это открытый стандарт (RFC 7519). Он определяет простой автономный способ защищённой передачи информации между сторонами. Стандарт JWT использует объекты JavaScript Object Notation (JSON) для передачи токенов между сторонами. Эти токены могут использоваться для аутентификации, а также для передачи дополнительной информации о пользователе или аккаунте.
Благодаря своему малому размеру JWT могут передаваться как URL, параметры POST или заголовки HTTP и доставляться быстро. JWT содержит всю необходимую информацию о сущности, чтобы избежать многократных запросов к базе данных. Получателю JWT не нужно вызывать сервер, чтобы проверить токен.

JWT состоит из трёх частей:
- Заголовка, содержащего тип токена и используемый алгоритм шифрования.
- Полезной нагрузки, предоставляющей идентификационные данные аутентификации и другую информацию о пользователей или аккаунте.
- Подписи, содержащей криптографический ключ, который можно использовать для подтверждения истинности информации в полезной нагрузке.
Одноразовые токены One-Time Password (OTP)
Токены One-time password (OTP) — это защищённые аппаратные устройства или программы, способные генерировать одноразовые пароли. Чаще всего это personal identification numbers (PIN) — числовые коды длиной 4-12 цифр.
Для генерации или получения одноразовых паролей часто применяются смартфоны. После того, как пользователь доказал, что владеет конкретным телефоном, он может использовать приложение аутентификатора, генерирующее пароли OTP — в этом случае телефон служит генератором кодов. Или же OTP могут отправляться в устройство через SMS.
Одноразовые пароли усиливают существующие системы идентификации и паролей, добавляя в них динамически генерируемые идентификационные данные. Токены OTP генерируют PIN синхронно или асинхронно, это зависит от их поставщика:
- Синхронные токены для создания одноразового пароля используют приватный ключ пользователя и текущее время.
- Асинхронные токены используют Challenge Response Authentication Mechanism (CRAM) — серию протоколов, в которых сервер отправляет запрос, а токен должен сгенерировать правильный ответ.
API-токены
Если вкратце, то API-токены используются как уникальные идентификаторы приложения, запрашивающего доступ к сервису. Сервис генерирует API-токен для приложения, чтобы оно использовало его при запросе сервиса. Для аутентификации и предоставления доступа API-токен можно сопоставить с сохранённым токеном. В некоторых случаях можно реализовать Session ID, но это бывает очень нечасто.
API-токены получили популярность благодаря тому, что они заменяют небезопасную практику отправки сочетаний имени пользователя и пароля по HTTP. Одним из самых популярных сегодня способов реализации безопасности API является OAuth2 (токены доступа).
Безопасна ли аутентификация на основе токенов?
Киберпреступления становятся всё более изощрёнными, поэтому поставщики сервисов с удалённым управлением должны непрерывно обновлять методики и политики безопасности. В последнее время выросло количество атак, нацеленных на идентификационные данные при помощи таких способов, как фишинг, брутфорс и атаки по словарю. Это значит, что аутентификация больше не может использовать только пароли.
Аутентификация на основе токенов в сочетании с дополнительными техниками аутентификации может создать более сложный барьер, чтобы помешать умным хакерам использовать украденные пароли. Токены можно получать только с уникального устройства, которое их создало (например, смартфона или брелка), благодаря чему они становятся сегодня высокоэффективной методикой авторизации.
Хотя платформы токенов аутентификации совершили большой прогресс, угроза частично сохраняется. Хранящиеся в мобильных устройствах токены легко использовать, но они могут оказаться доступными из-за уязвимостей устройства. Если токены отправляются текстовым сообщением, их можно легко перехватить во время передачи. Если устройство украдено или утеряно, злоумышленник может получить доступ к хранящимся на нём токенам.
Однако всегда нужно помнить о том, что никогда не стоит полагаться на один способ аутентификации. Аутентификация токенами должна считаться только одним из компонентов стратегии двухфакторной или многофакторной аутентификации.
Плюсы и минусы программных токенов
Как и в случае с любой методологией или техникой, при выборе программных токенов нужно учитывать их достоинства и недостатки.
Мобильный токен Росбанк – что это такое и как отключить?
«Мобильный токен» расширяет возможности пользователей интернет-банкинга, которые часто проводят транзакции онлайн. Новый инструмент защищает верификации операций. Благодаря нему транзакции станут безопаснее.
«Мобильный токен» можно включить только в мобильном приложении «Росбанка». При верификации платежей «Мобильный токен» генерирует одноразовый код для подтверждения переводов. 
Чтобы пользоваться «Мобильным токеном», не нужно входить в личный кабинет через СМС и не важно, на какую сумму вы совершаете транзакции.
Подключить «Мобильный токен» очень просто:
нужно установить приложение, пройти авторизацию;

- открыть меню программы;
- выбрать опцию «Мобильный токен» и активировать её.
- После этого владельцу карты придёт СМС-уведомление о подтверждении активации.
Как работает «Мобильный токен»
Новый метод верификации платежей служит для быстрого, а главное – безопасного проведения финансовых операций. Для этого в меню нужно выбрать «Мобильный токен» как основной способ подтверждения операции. После этого нужно зайти в приложение «Росбанка» на смартфоне, кликнуть на токен и получить ПИН-код, с помощью которого отправитель сможет совершить платёж или перевод. 
Как отключить
Отключить «Мобильный токен» так же просто, как подключить. Пользователь может сделать это на сайте банка или через приложение на смартфоне.
Чтобы отключить «Мобильный токен», нужно авторизоваться в профиле любым способом, зайти в соответствующий подраздел и нажать кнопку «Отключить».