← Privacy Pass / privacy-pass / concepts
Протокол 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 ──────>│Исходный запрос
- Клиент отправляет запрос Источнику.
- Источник отвечает вызов токена. Если у Клиента нет токена для предъявления, он начинает протокол выдачи с Издателем, которому доверяет Origin.
Протокол выдачи
- Протокол выдачи начинается с того, что Клиент выполняет специфичный для развертывания процесс аттестации. Этот шаг намеренно оставлен открытым, чтобы разные сценарии использования могли определять аттестацию по-своему.
- После того как Аттестатор проверит Клиента, Клиент отправляет запрос на слепой токен(запрос на подпись замаскированной версии токена, что не позволяет связать финализированную версию с исходным запросом) Издателю вместе с подтверждением аттестации.
- Издатель проверяет подтверждение, подписывает слепой токен и возвращает его. Клиент финализирует его, чтобы восстановить токен Privacy Pass и завершить протокол выдачи.
Протокол погашения
- Взаимодействие завершается протокол предъявления, в котором Клиент отправляет токен вместе со своим исходным запросом обратно на Origin.
- Источник проверяет подпись и отвечает
200 OK, предоставляя доступ.
Посмотреть в коде
Чтобы запустить полный процесс выдачи и предъявления токенов на своей машине (настройка Cloudflare не требуется), см. локальный пример в Начало работы.