Что такое аутентификация на основе токенов?
- Глоссарий IAM
- Что такое аутентификация на основе токенов?
Аутентификация на основе токенов — это протокол безопасности, который проверяет личность пользователя с помощью зашифрованных токенов. При аутентификации на основе токенов пользователи подтверждают подлинность с помощью действительного токена, чтобы получить доступ к серверам, приложениям, веб-сайтам или интерфейсу прикладного программирования (API). Аутентификация на основе токенов — это распространенный протокол двухфакторной или многофакторной аутентификации, добавляющий еще один уровень безопасности наряду с традиционными именем пользователя и паролем.
Что такое токен?
Токен — это ключ, который подтверждает подлинность пользователей во время процесса входа в систему. Токены могут быть цифровыми или физическими устройствами, такими как смарт-карта или USB-ключ. Веб-токены, будучи цифровыми и хранящимися на устройстве пользователя, широко применяются в организациях благодаря их удобству и гибкости. Веб-токены устраняют необходимость носить с собой физические токены. Их легко интегрировать в различные программные системы, чтобы обеспечить простую аутентификацию.
Как работает аутентификация на основе токенов?
Давайте рассмотрим четыре основных этапа аутентификации на основе токенов.
Первоначальный запрос. Пользователь запрашивает доступ к определенному приложению, введя имя пользователя и пароль.
Проверка пользователя. Учетные данные для входа отправляются в систему аутентификации, чтобы убедиться, что они верны. После подтверждения выполняется проверка конкретных разрешений пользователя на доступ к системе.
Проверка токена. Система генерирует и выдает пользователю веб-токен, который можно использовать в течение ограниченного времени.
Хранение токена. Токен хранится на устройстве пользователя до тех пор, пока он не выйдет из системы, не завершит сеанс или не истечет срок действия токена.
Типы токенов для аутентификации
Цифровые токены бывают разных типов, и каждый из них играет важную роль в обеспечении безопасного и надлежащего процесса аутентификации. Давайте рассмотрим пять распространенных типов цифровых токенов и их конкретные роли в аутентификации.
Веб-токен JSON (JWT)
Веб-токен JSON — это открытый стандарт (RFC 7519), используемый для безопасного обмена информацией между двумя объектами, сервером и клиентом. JWT содержат информацию о личности пользователей и имеют цифровую подпись, подтверждающую подлинность содержащихся в них данных. Веб-токен JSON состоит из трех частей: заголовка, полезной нагрузки и цифровой подписи.
Заголовок. Заголовок содержит информацию о JWT. В нем указывается тип токена и алгоритм, используемый для его подписи.
Полезная нагрузка. Полезная нагрузка содержит утверждения пользователя. Утверждения — это фрагменты идентифицирующей информации о конкретном объекте, обычно о пользователе. Полезная нагрузка может содержать дополнительную информацию, такую как срок действия токена и разрешения пользователя.
Цифровая подпись. Цифровая подпись — это криптографический ключ, который проверяет заголовок и полезную нагрузку, чтобы убедиться, что сообщение не изменили во время передачи, и удостоверяет личность пользователя.
Токены доступа
Токены доступа — это наиболее распространенный тип веб-токенов JSON. Они предназначены для авторизации доступа пользователя к определенной службе. После входа в систему пользователю выдается токен доступа с датой истечения срока действия. Токен доступа предоставляет пользователям доступ к назначенным ресурсам и службам на ограниченное время.
Токены идентификации
В отличие от токенов доступа, токены идентификации не используются в основном для предоставления доступа к сетевым ресурсам и приложениям. Вместо этого токены идентификации представляют собой веб-токены в формате JSON, содержащие информацию о пользователе, такую как уникальный идентификатор, имя и адрес электронной почты, а также статус аутентификации. Токены идентификации предоставляются клиентским приложениям для проверки личности пользователя.
Токены обновления
Токены обновления — это особые типы веб-токенов JSON, которые используются для получения дополнительных токенов доступа, не требуя от пользователя повторного ввода учетных данных. Их цель — продлить срок действия токена доступа для пользователей путем его автоматического обновления.
Токены API
Токен API — это строка с кодом, которая соответствует пользователю, запрашивающему аутентификацию в API. Он удостоверяет личность пользователя и предоставляет доступ к конечным точкам API, позволяя авторизованным пользователям безопасно взаимодействовать с ресурсами API.
Преимущества использования аутентификации на основе токенов
Вот три преимущества использования аутентификации на основе токенов.
Безопасность. Поскольку токены рассчитаны на короткий срок службы, это сводит к минимуму возможность несанкционированного доступа. Как только пользователь завершает сеанс работы с приложением, срок действия выпущенного токена истекает. Это ограничивает время, в течение которого злоумышленники могут перехватить токен и скомпрометировать учетную запись.
Гибкость. Аутентификация на основе токенов может использоваться на нескольких платформах, таких как веб-приложения, мобильные приложения и API. Это упрощает процесс аутентификации, а также расширяет специальные возможности для пользователей.
Масштабируемость. Поскольку токены должны храниться на устройстве пользователя, серверам не нужно поддерживать сеанс пользователя в приложении. Это позволяет серверам эффективно управлять несколькими запросами, одновременно генерируя токены по мере необходимости.
Недостатки использования аутентификации на основе токенов
Вот три главных недостатка аутентификации на основе токенов.
Риск компрометации ключа. Распространенной угрозой, связанной с аутентификацией на основе токенов, является потенциальная компрометация ключей токенов. Кибератаки, такие как фишинг, вредоносное ПО, метод подбора или атаки через посредника могут быть нацелены на эти ключи. Большинство систем веб-токенов полагаются на один ключ, поэтому, если злоумышленник скомпрометируют его, уязвимой станет вся система.
Короткий срок службы. Из-за короткого срока службы токенов важно отметить, что токены требуют постоянного управления. Для этого необходимо следить за тем, чтобы срок действия токенов истек, и обновлять учетные данные по мере необходимости.
Размер токена. Токены могут быть большими, особенно если они содержат значительный объем пользовательской информации или метаданных. Из-за сложности и размера токены могут увеличивать нагрузку на сеть в средах с ограниченной полосой пропускания Интернета.