Перейти к основному содержимому
рисунок фиолетового шестиугольника

Как работает аутентификация на основе токенов?

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

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

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

В чем преимущества аутентификации на основе токенов?

Аутентификация на основе токенов предоставляет множество преимуществ для нескольких заинтересованных сторон.

  • Повышенное удобство пользователя. Вместо того чтобы повторно вводить учетные данные и проходить повторную аутентификацию каждый раз, когда пользователь возвращается в систему, в приложение или на веб-страницу, он сохраняет беспрепятственный доступ до тех пор, пока токен остается действительным (как правило, до тех пор, пока сеанс не завершится выходом из системы или закрытием программы).
  • Повышенная цифровая безопасность. Аутентификация на основе токенов создает еще один уровень безопасности поверх традиционной парольной или серверной аутентификации. Токены, как правило, гораздо труднее украсть, взломать или иным образом скомпрометировать, чем пароль.
  • Административный контроль. Аутентификация на основе токенов обеспечивает администраторам гораздо более детальный контроль и видимость каждого действия пользователя и транзакции.
  • Меньшая техническая нагрузка. Поскольку создание токена может быть полностью отделено от его проверки, проверку может проводить вспомогательная служба, например предоставляемая решением Entrust по управлению доступом и идентификационными данными. Это значительно снижает нагрузку на внутренние серверы и устройства.

Что такое токен доступа?

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

Аппаратные токены

Аппаратные токены — это небольшие физические устройства, которые пользователи предъявляют для получения доступа к ресурсу. Аппаратные токены могут быть подключенными (например, USB, смарт-карта, брелоки одноразовых паролей) или бесконтактными (например, токены Bluetooth). Эти токены пользователь носит с собой. На ранних этапах развития аутентификации на основе токенов (читайте: до появления смартфонов) можно было пользоваться только аппаратными токенами. Однако аппаратные токены сравнительно дороги, могут быть потеряны или украдены и, как следствие, часто требуют более значительной ИТ-поддержки.

Программные токены

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

Что такое веб-токены с открытым исходным кодом или веб-токены JSON?

Наиболее распространенным типом отключенных или программных токенов является токен с открытым исходным кодом, а именно токен стандарта JSON Web Token (JWT). JSON — это стандарт с открытым исходным кодом (RFC 7519), который предлагает простой, автономный протокол для кодирования информации в виде объекта JSON, обеспечивающего эффективную и безопасную передачу информации. Стандарт JWT получил широкое распространение, потому что токены представляют собой чрезвычайно компактные объекты, которые можно эффективно передавать различными способами, в том числе через строки запросов, атрибуты заголовков и в теле запроса POST.

Компоненты веб-токена с открытым исходным кодом или веб-токена JSON

Веб-токен JSON состоит из трех отдельных частей.

  • Заголовок. Тип токена и алгоритм шифрования.
  • Полезная нагрузка. Учетные данные аутентификации для данного ресурса.
  • Подпись. Криптографический ключ для проверки подлинности полезной нагрузки.

Как реализовать аутентификацию на основе токенов?

Реализация протокола аутентификации на основе токенов состоит из пяти ключевых шагов:

  1. Запрос. Пользователь вводит учетные данные для входа.
  2. Проверка. Сервер проверяет учетные данные пользователя.
  3. Отправка токенов. Сервер генерирует маркер, который будет действителен в течение заданного периода.
  4. Хранение. Токен хранится в веб-браузере пользователя для дальнейшего использования.
  5. Истечение срока действия. Токен остается активным в течение заданного периода.

5 шагов для реализации аутентификации на основе токенов

Когда рекомендуется аутентификация на основе токенов?

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

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

Передовые методы высоконадежной аутентификации на основе токенов

Хотя аутентификация на основе токенов, несомненно, является большим шагом вперед по сравнению с традиционной аутентификацией на основе паролей, токен по-прежнему считается «токеном на предъявителя», то есть доступ предоставляется тому, кто владеет токеном. Это означает, что даже программные токены, например мобильные приложения, по-прежнему могут быть украдены или скомпрометированы. Если злоумышленник владеет токеном, он может использовать его для получения несанкционированного доступа к защищенным ресурсам и информации. Для защиты от остаточного риска компрометации и взлома важно создать программу аутентификации на основе токенов с учетом перечисленных ниже рекомендаций.

  • Сохранение конфиденциальности токена. Пользователи должны обращаться с токеном (аппаратным или программным) так же, как с любыми секретными учетными данными. Это означает, что он должен храниться безопасно и надежно, никогда не передаваться и предоставляться только проверенным сервисам, чтобы предотвратить потерю или кражу.
  • Упрощение полезной нагрузки токена. Токены предназначены для использования минимального объема информации для аутентификации пользователя. Они закодированы, однако злоумышленники могут легко их декодировать. По этой причине никогда не помещайте конфиденциальную или защищенную информацию в полезную нагрузку токена и старайтесь свести к минимуму запросы к полезной нагрузке. Это также поможет повысить скорость и производительность.
  • Определение срока действия токена и его отзыв. Как правило, срок действия токена истекает автоматически, когда пользователь выходит из системы или полностью закрывает программу. Но по сути при отсутствии этого триггера окончания сеанса срок действия подписанного токена ничем не ограничен. Для защиты от компрометации необходимо установить срок действия по умолчанию для всех токенов и иметь протокол для отзыва токенов в случае необходимости.
  • Систематическое использование HTTPS-соединений. При использовании небезопасных соединений невероятно просто перехватить и украсть токены во время передачи. При отправке токенов на сервер проверки и получении токенов от него всегда используйте HTTPS-соединения.
  • Добавление дополнительных уровней безопасности. В зависимости от ваших требований безопасности может потребоваться добавить дополнительные протоколы безопасности и аутентификации поверх базовой аутентификации на основе токенов. Например, в некоторых случаях добавляют вторую систему проверки токенов, цель которой — гарантировать создание всех токенов на правильном сервере.