Компании Google и Apple представили две похожие технологии «для борьбы с онлайн-мошенничеством и другими злоупотреблениями без ущерба для приватности». Инициатива Google называется Web Environment Integrity (WEI). Похожая технология от Apple под названием Private Access Tokens (токены приватного доступа) представлена в прошлом году, а сейчас интегрирована в MacOS 13, iOS 16 и Safari, то есть официально введена в строй.
Суть в том, что Google или Apple выполняют проверку клиентского устройства — и гарантируют серверу его аутентичность. В свою очередь, сервер отдаёт контент только «правильным» посетителям.
Некоторые специалисты считают, что аттестация устройств вредна по своей сути, поскольку вводит ограничения на доступ к контенту и блокирует контроль пользователей над собственными устройствами (например, можно запретить доступ к сайту для пользователей с рутованными телефонами, старыми версиями приложений или блокировщиками рекламы).
Аттестация сайтов формально вводится «для установления доверия между клиентом и сервером» как альтернатива фингерпринтингу и установке сквозных куков. Это доверие устанавливается через гарантии от стороннего «аттестатора», которым в случае WEI выступает Google Play, а с токенами приватного доступа — соответственно, Apple.
WEI от Google
Код WEI для Chromium появился на Github в апреле 2023 года, а официально анонсирован в мае. Но он не привлекал особого внимания общественности вплоть до 21 июля, когда был опубликован черновик спецификации Web Environment Integrity (с примечанием «коллекция интересных идей»).
Если вкратце, WEI предлагается в качестве API для «передачи сигналов доверия с низкой энтропией в веб-среде». Этот API основан на том, что пользовательские агенты имеют доступ к аттестатору и могут передать серверу гарантии своей аутентичности («целостности среды» в терминологии документа).
Пример запроса на аттестацию целостности среды:
// getEnvironmentIntegrity ожидает «привязки к содержимому» запроса.
// Такая привязка защищает от использования этой информации
// для другого запроса. Перед отправкой аттестуемому содержимое
// contentBinding будет конкатенировано с доменным именем и хэшировано.
const contentBinding = "/someRequestPath?requestID=xxxx" +
"Любые другие данные, необходимые для соответствующего этому запросу contentBinding...";
const attestation = await navigator.getEnvironmentIntegrity(contentBinding);
console.log(attestation.encode());
"полезная нагрузка аттестации в кодировке base-64 и подпись общим размером примерно 500 байт"
const response = await fetch(`/someRequest?requestID=xxxx&attested=${attestation.encode()}`);
Аттестационный токен возвращается в виде ArrayBuffer
, сериализованного с помощью CBOR (RFC 8949) и подписанного с помощью COSE (RFC 9052).
На втором этапе веб-сервер проверяет достоверность аттестуемой информации с использованием открытого ключа аттестатора. Затем на основе полученной информации принимаются решения:
// Этот код не является частью Web Environment Integrity API, а лишь примером,
// как можно проверить целостность среды со стороны сервера
function isAttested(attestation, contentBinding) {
if (!isAttesterTrustedByMe(attestation)) {
return false;
}
// Открытый ключ аттестатора запрашивается у него напрямую.
const attestersPublicKey = getAttestersPublicKey(attestation);
// Валидация токена с помощью открытого ключа аттестатора.
// Привязка к содержимому и защиту от повторного воспроизведения.
if (!isTokenRecentEnoughAndValid(attestersPublicKey, attestation)) {
return false;
}
// Проверить хэш contentBinding
// Принять решения на основе attestation.payload
// ...
}
Автор технологии Web Environment Integrity, программист Google Бен Уайзер (Ben Wiser) в комментарии на Github отвечает на критику со стороны сообщества. По его словам, «эксперимент WEI является частью более масштабной задачи по обеспечению безопасности и открытости интернета, а также по борьбе с межсайтовым отслеживанием и уменьшению зависимости от фингерпринтинга в борьбе с мошенничеством и злоупотреблениями».
Токены приватного доступа от Apple
Пока продолжается дискуссия вокруг WEI, компания Apple де-факто ввела в действие похожую программу Private Access Tokens. Как уже упоминалось, токены приватного доступа были представлены в прошлом году, но сейчас они интегрированы в MacOS 13, iOS 16 и Safari, то есть во все устройства Apple. Разумеется, без поддержки со стороны веб-сайтов ничего не будет работать: нужно ещё убедить разработчиков установить проверку устройств на своих сайтах.
Токены приватного доступа работают по следующему алгоритму:
- Браузер делает HTTP-запрос к веб-серверу.
- Сервер отклоняет запрос и возвращает ответ HTTP 401 с вызовом
PrivateToken
:HTTP/1.1 401 Unauthorized WWW-Authenticate: PrivateToken challenge=<base64 challenge data>, token-key=<base64 public-key>
- Браузер распознаёт это и отправляет аттестатору (например, Apple) часть вызова, а также проверенные данные о вашем устройстве.
- Аттестатор проверяет устройство на отсутствие модификаций (зависит от устройства, но в Android и iOS существуют способы проверки) и возвращает эмитенту токена (третья сторона, например, Cloudflare/Fastly) подписанный токен, который доказывает легитимность устройства.
- Браузер отправляет повторный запрос с подписанным токеном в заголовке
Authorization
:GET /protected-content HTTP/1.1 Host: example.com Authorization: PrivateToken token=<signed token>
- Теперь сервер знает, что клиент был проверен доверенным провайдером (но не более того), и может поступить соответствующим образом.
Кому это нужно
Наверняка многим веб-сайтам эта идея понравится, потому что токены приватного доступа — это более надёжная альтернатива традиционным юзер-агентам. Она позволяет заблокировать ботов, которые впустую тратят ресурсы сервера и публикуют фейковые посты. Капча станет не нужна. Игровые сайты смогут выявлять читеров. Заражённые устройства и ботнеты станут выявляться автоматически. Казалось бы, одни плюсы. Неспроста Cloudfalre начала внедрять токены приватного доступа ещё в прошлом году.
В перспективе таким образом можно не просто отличать людей от ботов, но и узко таргетировать аудиторию по полу, возрасту, уровню дохода и месту проживания и т. д. (см. фильтры для рекламодателей в Facebook), поскольку у «аттестатора» как владельца операционной системы на устройстве есть эта информация.
Иногда бывает так, что задуманные с благой целью инициативы в итоге приносят больше вреда, чем пользы. К сожалению, изначально хорошие намерения вовсе не гарантируют положительный результат. В данном случае логично предположить, что каждая крупная IT-корпорация будет продвигать собственную «систему аттестации», а к упомянутым Apple и Google присоединится и Microsoft (см. Trusted Windows). Всё это может привести к фрагментации экосистемы интернета, доставляя лишние проблемы и разработчикам, и пользователям.
В случае принятия этот стандарт, который сравнивают с DRM, по своей сути может вступить в противоречие с открытой архитектурой свободного интернета, а также с базовым правом граждан на анонимный и безопасный доступ к контенту. Поэтому новые инициативы воспринимаются сообществом с некоторой опаской.
Есть мнение, что WEI представляет собой ещё одно препятствие для альтернативных браузеров. С официальной критикой технологии выступила Mozilla и др.
«Я не думаю, что это [токены аттестации] решение проблемы, — говорит Йон фон Течнер, разработчик Opera и Vivaldi. — Настоящее решение в том, чтобы уйти от экономической модели, основанной на слежке за людьми. Мы пытаемся противостоять такой модели, запретить сбор данных, профилирование пользователей и использование их в рекламе. Я действительно не понимаю, почему это остаётся законным. Экономика слежки крайне токсична. Она создаёт значительные проблемы для общества, и отказаться от слежки — по-моему, очевидное решение. Использовать её бессмысленно, есть другие способы рекламы, которые работают не хуже. Но для определённых компаний это большие деньги, и они не хотят отказываться от того, что имеют».
Есть подозрение, что корпорации вводят аттестацию устройств вовсе не для того, чтобы защитить приватность пользователей, а скорее для расширения своего влияния в интернете как единственного и уникального владельца пользовательских профилей. То есть в конечном итоге всё сводится к тому, кто будет контролировать информацию, критически важную для электронной коммерции и рекламного рынка.
Примечание. Идея «доверенных устройств» (“Trusted Computing”) не нова и многократно обсуждалась в прошлые десятилетия. Например, см. статью Ричарда Столлмана от 2005 года по поводу чипов TPM. Сейчас идея удалённой аттестации устройств вернулась в новом виде. В качестве веб-токенов для аттестации также предлагаются технологии PrivacyPass, Trust Token API и UserConfidenceScore.
Автор: GlobalSign_admin