Вопрос или проблема
Приватные токены доступа (PATs) — это токены, эксклюзивные для Apple, которые имеют множество применений в качестве «замены паролям», например, автоматическую аутентификацию Captchas от CloudFare.
Другой пример — аутентификация учетной записи GitHub.
Но достаточно ли самого токена для подтверждения этой личности и аутентификации сервисов, или требуется больше информации (например, ОС, идентификатор устройства)?
Потому что если токен сам по себе — единственное, что необходимо для аутентификации, и токен украден, то злоумышленник может подделать «личность» этого устройства со своего устройства — что может привести к компрометации нескольких учетных записей.
И это будет даже хуже, потому что один и тот же токен используется для нескольких сервисов.
Не существует единого токена, связанного с устройством или личностью. Все обстоит практически наоборот: сервер получает анонимные токены, которые нельзя связать с личностью. Вместо этого токены лишь подтверждают, что клиент в какой-то момент идентифицировал себя для Apple. Это также означает, что токены определенно не являются заменой паролям.
То, что Apple называет «Приватным токеном доступа», является реализацией протокола Privacy Pass, который использует следующий подход:
- Сервер хочет проверить, что клиент надежен (например, что он человек).
- Однако, чтобы сохранить свою конфиденциальность, клиент не хочет идентифицировать себя непосредственно серверу. Или, если он и принимает это, он как минимум не хочет, чтобы все будущие взаимодействия были связаны с этой личностью.
- Privacy Pass решает эту проблему с помощью токенов выкупа, которые криптографически закрыты и подписаны. Можно проверить что токен был подписан доверенной третьей стороной или сервером, но даже подписывающий не может узнать, кому он выдал токен.
Процедура выглядит следующим образом:
- Сервер запрашивает токен выкупа, чтобы, например, проверить, что клиент — человек.
- Чтобы получить токены, клиент проходит определенные проверки личности у третьей стороны или сервера. Как выглядят эти проверки — полностью зависит от выдающего токены.
- Клиент может затем представить токен серверу. Это подтверждает, что они прошли проверки личности, но не раскрывает их личность, даже если сам сервер провел проверки.
Как уже упоминалось, проверки личности зависят от выдающего токены. Согласно разъясняющему видео, Apple подтверждает личность на основе данных, хранящихся в Secure Enclave, то есть в отдельном аппаратном модуле. Поскольку эти данные нельзя просто извлечь, должно быть сложно просто «украсть» информацию, необходимую для проверки личности.
Да.
Я не знаком с токенами Apple, но знаком с токенами GitHub, GitLab и Atlassian. По моему опыту, токен — это единственное, что аутентифицирует доступ.
Утечка токена действительно приводит к компрометации учетной записи. Можно принять некоторые меры безопасности, чтобы предотвратить это:
- установка срока действия токенов, чтобы они были действительны ограниченное время.
- автоматическая ротация токенов, чтобы они периодически и автоматически изменялись.
- автоматическое сканирование на предмет утечек токенов, например, в зафиксированном исходном коде.
- отзыв токенов, которые больше не используются или о которых известно, что они были скомпрометированы.
или требуется больше информации (например, ОС, идентификатор устройства)?
Типичный случай использования токенов заключается в том, что вы создаете токен на одном компьютере и копируете/вставляете его в другую систему, которая должна его использовать. Поэтому ограничение токена одной ОС, устройством или IP-адресом будет неэффективным.
Ответ или решение
При обсуждении вопроса о том, является ли токен Private Access Token (PAT) единственным необходимым элементом для аутентификации сервиса, важно понять, как именно функционируют такие токены и какие аспекты аутентификации они охватывают.
Токены частного доступа, предоставляемые Apple, представляют собой анонимные токены, которые не связаны с конкретной личностью или устройством. Они созданы для того, чтобы подтверждать, что клиент когда-то прошел идентификацию у Apple, но при этом не раскрывать его личную информацию. Такой подход сохраняет конфиденциальность пользователя и предотвращает дальнейшую привязку взаимодействий к его личности.
Принцип работы токенов PAT базируется на протоколе Privacy Pass. Сценарий использования токенов включает следующие этапы:
1. Сервер запрашивает токен для проверки того, является ли клиент надежным (например, чтобы удостовериться, что это человек, а не автоматизированный бот).
2. Клиент проходит определенные проверки у доверенной третьей стороны, чтобы получить право на получение токена. Эти проверки могут варьироваться в зависимости от требований эмитента токена.
3. Клиент предоставляет серверу токен, который подтверждает, что он прошел проверки, но не раскрывает его личность даже серверу, который выдал токен.
Отвечая на вопрос о том, является ли токен единственным необходимым элементом для аутентификации, важно отметить, что в некоторых системах, таких как GitHub, GitLab и другие, токен действительно может служить единственным средством аутентификации. При этом, если токен скомпрометирован, это приведет к компрометации учетной записи. Для минимизации риска утечки токенов можно принять следующие меры:
– Установка срока действия токенов, чтобы они были действительными только в течение ограниченного времени.
– Автоматическая ротация токенов для периодического обновления.
– Автоматическое сканирование на наличие скомпрометированных токенов, например, в коммитах исходного кода.
– Отзыв токенов, которые больше не используются или известны как скомпрометированные.
Что касается зависимости от дополнительных данных, таких как ОС или уникальный идентификатор устройства, важно понимать, что токены часто создаются на одном компьютере и используются на других системах. Поэтому привязка токенов к конкретному устройству или IP-адресу может оказаться непрактичной.
В заключение, Private Access Token само по себе не является окончательным средством удостоверения личной информации, зато служит инструментом аутентификации, обеспечивая анонимность и конфиденциальность. Однако, как и в любом другом случае, меры безопасности важны для защиты от потенциальных угроз, таких как кража токена.