INTEGRITY Документация

Протокол Privacy Pass

Privacy Pass распределяет ответственность между четырьмя ролями, чтобы ни одна сторона не знала все о личности и действиях пользователя. На этой странице описан поток информации в протоколе. Сведения о том, кто выполняет каждую роль, и о свойствах приватности этой схемы см. в Модели развертывания.


Обзор ролей

Роль Ответственность
Клиент Запрашивает доступ, выполняет протоколы выдачи и погашения токенов.
Origin Выдает запросы токенов и проверяет предъявленные токены.
Attester Выполняет процесс аттестации, специфичный для конкретной схемы развертывания, чтобы проверить клиента.
Издатель Подписывает слепые запросы токенов для аттестованных клиентов. Эмитенты Cloudflare используют публично проверяемый Blind RSA (тип токена 2).

Взаимодействие протокола

Согласно RFC 9576, процесс выполняется по двум протоколам: выдача (получение токена) и предъявление (используя его для доступа).

   ┌────────┐            ┌────────┐         ┌──────────┐         ┌────────┐
   │ Origin │            │ Client │         │ Attester │         │ Issuer │
   └────────┘            └────────┘         └──────────┘         └────────┘
       │                     │                   │                   │
       │<───── Request ──────│                   │                   │
       │                     │                   │                   │
       │── TokenChallenge ──>│                   │                   │
       │                     │                   │                   │
       │                     │<== Attestation ==>│                   │
       │                     │                                       │
       │                     │─── TokenRequest+Attestation Proof ───>│
       │                     │                                       │[Verifies Attestation]
       │                     │<──────────── TokenResponse ───────────│
       │                     │[Finalises Token]
       │<── Request+Token ───│
       │                     │
       │────── 200 OK ──────>│

Исходный запрос

  1. Клиент отправляет запрос Источнику.
  2. Источник отвечает вызов токена. Если у Клиента нет токена для предъявления, он начинает протокол выдачи с Издателем, которому доверяет Origin.

Протокол выдачи

  1. Протокол выдачи начинается с того, что Клиент выполняет специфичный для развертывания процесс аттестации. Этот шаг намеренно оставлен открытым, чтобы разные сценарии использования могли определять аттестацию по-своему.
  2. После того как Аттестатор проверит Клиента, Клиент отправляет запрос на слепой токен(запрос на подпись замаскированной версии токена, что не позволяет связать финализированную версию с исходным запросом) Издателю вместе с подтверждением аттестации.
  3. Издатель проверяет подтверждение, подписывает слепой токен и возвращает его. Клиент финализирует его, чтобы восстановить токен Privacy Pass и завершить протокол выдачи.

Протокол погашения

  1. Взаимодействие завершается протокол предъявления, в котором Клиент отправляет токен вместе со своим исходным запросом обратно на Origin.
  2. Источник проверяет подпись и отвечает 200 OK, предоставляя доступ.

Посмотреть в коде

Чтобы запустить полный процесс выдачи и предъявления токенов на своей машине (настройка Cloudflare не требуется), см. локальный пример в Начало работы.