← Privacy Proxy / privacy-proxy / koncepty
Ověřování
Privacy Proxy vyžaduje, aby se klienti před přeposíláním provozu ověřili. Tato stránka popisuje podporované metody ověřování a kdy je použít.
Metody ověřování
Privacy Proxy podporuje tři metody ověřování:
| Metoda | Případ použití | Úroveň soukromí |
|---|---|---|
| Pre-shared key (PSK) | Ověření konceptu, testování | Nižší |
| Tokeny Privacy Pass | Klient na server | Vysoká |
| mTLS | Server na server | Vyšší |
Pre-shared key (PSK)
Předsdílené klíče poskytují jednoduchý způsob ověřování během vývoje a testování konceptu. Cloudflare poskytuje tajný klíč, který klienti zahrnují do každého požadavku.
Jak to funguje
Zahrňte PSK do Proxy-Authorization hlavičku:
CONNECT example.com:443 HTTP/2
Host: example.com
Proxy-Authorization: Preshared <YOUR_PSK>Proxy klíč ověří a spojení povolí, pokud se shoduje.
Omezení
Ověřování PSK má omezení, kvůli kterým se nehodí pro produkční prostředí.
- Sdílený tajný klíč: všichni klienti používají stejný klíč, takže přístup jednotlivým uživatelům nelze odvolat.
- Žádné omezení rychlosti na uživatele: nelze vynutit kvóty ani limity pro jednotlivé uživatele.
- Propojitelnost: proxy může propojit všechny požadavky používající stejný PSK, což snižuje soukromí uživatele.
PSK používejte pouze pro testování. Pro produkční nasazení použijte Tokeny Privacy Pass.
Tokeny Privacy Pass
Privacy Pass ↗ je protokol, který klientům umožňuje autentizovat se, aniž by odhalili svou identitu. Tokeny jsou kryptograficky nespojitelné, takže proxy nemůže propojit různé požadavky od stejného uživatele.
Jak to funguje
Privacy Pass využívá třístrannou architekturu:
- Ověřovatel: ověřuje, že Client je legitimní uživatel (například má platný účet), a přeposílá požadavky na tokeny Issueru.
- Vydavatel: podepisuje zaslepené tokeny, aniž by zjistil, který Client o ně požádal.
- Origin (Privacy Proxy): přijímá tokeny jako doklad autorizace.
Vydávání tokenu
┌──────────┐ 1. Attestation request ┌──────────┐
│ │ ──────────────────────────▶ │ │
│ Client │ │ Attester │
│ │ ◀────────────────────────── │ │
└──────────┘ 2. Attestation OK └──────────┘
│
│ 3. Blinded token request
▼
┌──────────┐ 4. Forward request ┌──────────┐
│ │ ──────────────────────────▶ │ │
│ Attester │ │ Issuer │
│ │ ◀────────────────────────── │ │
└──────────┘ 5. Signed blinded token └──────────┘
│
│ 6. Return to Client
▼
┌──────────┐
│ Client │ (unblinds and stores token)
└──────────┘Klient posílá žádost o token přes ověřovatele, aby byla zachována nepropojitelnost. Díky tomu nemůže vydavatel spojit žádosti o tokeny s konkrétními atestačními událostmi ani identitou klienta.
Uplatnění tokenu
┌──────────┐ 1. Present token ┌──────────┐
│ │ ──────────────────────────▶ │ │
│ Client │ │ Privacy │
│ │ ◀────────────────────────── │ Proxy │
└──────────┘ 2. Connection OK └──────────┘Privacy Proxy ověří token pomocí veřejného klíče vydavatele. Proxy se tak dozví jen to, že je token platný, nikoli komu byl vydán.
Proces vydávání tokenu:
- Klient prokáže svou identitu ověřovateli (například přihlášením k účtu).
- Ověřovatel potvrdí, že klient je platný.
- Klient vygeneruje zaslepené tokeny a odešle je vydavateli.
- Vydavatel zaslepené tokeny podepíše a vrátí je.
- Klient tokeny odslepí a uloží je.
Při odesílání požadavku:
- Klient uvede token v
Proxy-Authorizationhlavička. - Proxy ověří podpis tokenu pomocí veřejného klíče vydavatele.
- Proxy spojení povolí, pokud je token platný.
Protože jsou tokeny při vydávání zaslepeny, vydavatel nedokáže propojit token s konkrétní žádostí o vydání. Proxy vidí pouze to, že je token platný, nikoli komu byl vydán.
Token format
Tokeny Privacy Pass jsou zahrnuty v Proxy-Authorization hlavičku pomocí PrivateToken schéma:
CONNECT example.com:443 HTTP/2
Host: example.com
Proxy-Authorization: PrivateToken token=<base64-encoded-token>Nastavte Privacy Pass
Pro produkční nasazení používající Privacy Pass:
- Vyberte vydavatele. Vydavatele tokenů může provozovat Cloudflare, nebo se můžete integrovat s vydavatelem třetí strany.
- Nakonfigurujte atestaci, která určuje, jak klienti prokazují svou identitu před obdržením tokenů.
- Distribuujte konfiguraci vydavatele. Klienti potřebují veřejný klíč vydavatele a endpoint, aby mohli žádat o tokeny.
Kontaktujte nás ↗ ke konfiguraci Privacy Pass pro vaše nasazení.
Mutual TLS (mTLS)
Ověřování Mutual TLS (mTLS) ↗ zajišťuje, že provoz je v obou směrech zabezpečený a důvěryhodný. Klient předloží proxy certifikát a proxy jej před povolením připojení ověří.
Jak to funguje
Klient během handshake TLS předloží klientský certifikát TLS. Proxy certifikát ověří oproti nakonfigurované certifikační autoritě (CA) a spojení povolí, pokud je certifikát důvěryhodný.
Omezení
Pro každého klienta nebo každou službu musíte zajistit a spravovat certifikáty. mTLS je určeno pro komunikaci mezi servery, nikoli pro ověřování jednotlivých uživatelů. Proxy server dokáže klienta identifikovat podle jeho certifikátu, což ve srovnání s Privacy Pass snižuje míru soukromí.
Použijte mTLS u integrací mezi servery, kde jsou obě strany důvěryhodnými službami.
Autentizace v nasazeních s dvojitým skokem
V nasazení se dvěma skoky, k autentizaci dochází na dvou úrovních:
Uživatel k Proxy A
Proxy A (kterou provozujete vy) ověřuje uživatele. Mezi běžné metody patří:
- Přihlašovací údaje k účtu (uživatelské jméno/heslo, SSO)
- Tokeny Privacy Pass vydané vaší infrastrukturou
- Klientské certifikáty (mTLS)
Proxy A do Proxy B
Proxy B se vůči Proxy A ověřuje pomocí TLS. V závislosti na konfiguraci může použít:
- Standardní certifikáty TLS
- Rozšíření TLS Raw Public Key (RPK) pro snížení režie certifikátů
Související zdroje
- Privacy Pass Working Group ↗ - Pracovní skupina IETF vyvíjející protokol Privacy Pass.
- Podpora nejnovější verze protokolu Privacy Pass ↗ - Příspěvek na blogu Cloudflare o implementaci Privacy Pass.