← Privacy Pass / privacy-pass
Začínáme
Privacy Pass si v praxi můžete vyzkoušet dvěma samoobslužnými způsoby:
- Získejte skutečný token pomocí demo nástroje: nejrychlejší způsob, jak získat skutečný token podepsaný vydavatelem, pomocí nástroje v prohlížeči a demo vydavatele poskytnutého Cloudflare.
- Podívejte se na lokální příklad: spustíte kompletní tok vydávání a uplatnění tokenu na vlastním počítači během několika minut pomocí skutečné kryptografie Blind RSA.
Podrobnosti o samotném protokolu najdete v Protokol Privacy Pass. Až budete připraveni ověřit skutečné nasazení provozované Cloudflare, přejděte na Testování produkčního nasazení a kontaktujte nás ↗ a začněte budovat potřebnou infrastrukturu.
Získejte skutečný token pomocí demo nástroje
Nejrychlejší způsob, jak zjistit, jak vypadá token podepsaný issuerem, je díky nástroji Cloudflare Privacy Pass Demo Tool ↗. Po nasměrování na vydavatele spustí celý tok vydávání přímo ve vašem prohlížeči a vrátí ověřený token.
Předpoklady
- Naše URL adresáře demo issueru, uvedené zde: https://demo-pat.issuer.cloudflare.com/.well-known/private-token-issuer-directory ↗.
Jak získat token
- Otevřete demo nástroj Privacy Pass ↗.
- V Načtení z URL vydavatele, vložte URL adresáře demo vydavatele a odešlete. Nástroj zobrazí adresář vydavatele, tedy seznam
token-keyss typem tokenu2(Blind RSA) a automaticky vyplní pole pro následující kroky. - V Vytvoření výzvy, odešlete předvyplněný formulář. Nástroj sestaví
WWW-Authenticatevýzvu k tokenu z klíče vydavatele. - V Odeslání požadavku na token, odešlete předvyplněný formulář. Nástroj požadavek zaslepí, odešle ho vydavateli, odpověď odslepí a výsledek ověří.
Úspěšné spuštění zobrazí:
Draft 16 Valid: true
PrivateToken token=...Draft 16 Valid: true znamená, že vydavatel vrátil skutečný token, který se ověřuje podle jeho veřejného klíče. PrivateToken token=... je finální token, který by klient odeslal Originu v Authorization hlavička.
Podívejte se na lokální příklad
Průběh vydání a uplatnění tokenu si můžete během několika minut spustit na vlastním počítači bez jakéhokoli nastavování na straně Cloudflare. Používá se při tom skutečná kryptografie Blind RSA, vše ale probíhá v rámci jediného procesu: klíč issueru se vygeneruje lokálně a atestace je nahrazena zástupnou implementací. Je to rychlý způsob, jak vidět protokol v akci.
Předpoklady
Spusťte příklad
@cloudflare/privacypass-ts ↗ knihovna obsahuje spustitelné příklady. Naklonujte repozitář a nainstalujte závislosti:
git clone https://github.com/cloudflare/privacypass-ts.git
cd privacypass-ts
npm ciVeřejně ověřitelný příklad (pub_verif.example.ts ↗) exportuje pouze své funkce, proto přidejte malý spouštěč, který zavolá jen tuto jednu. Vytvořte examples/run-pub-verif.ts:
import { publicVerifiableTokensPSS } from "./pub_verif.example.js";
await publicVerifiableTokensPSS();Zkompilujte příklady a spusťte svůj runner:
npx tsc -b examples
node ./lib/examples/run-pub-verif.jsVypíše:
Public-Verifiable tokens
Suite: ...
Valid token: trueValid token: true znamená, že token byl vydán, odslepen a úspěšně ověřen.
Jak příklad odpovídá čtyřem rolím
Příklad v rámci jediného procesu vytvoří Issuer, Client a Origin (pár klíčů Issueru se vygeneruje předem v setup() hodnotou Issuer.generateKey), a poté je provede protokolem.
Příklad sleduje průběh popsaný v diagramu a využívá pouze Origin, Client a Issuer. Attester je nahrazen zástupnou implementací a v diagramu chybí, protože zde neprobíhá žádná skutečná atestace.
┌────────┐ ┌────────┐ ┌────────┐
│ Origin │ │ Client │ │ Issuer │
└────────┘ └────────┘ └────────┘
│ │ │
│<────── Request ───────│ │
│─── TokenChallenge ───>│ │
│ │ │
│ │───── TokenRequest ─────>│
│ │<──── TokenResponse ─────│
│ │ │
│<─── Request+Token ────│ │Každé volání v příkladu odpovídá jednomu kroku tohoto procesu:
const redemptionContext = crypto.getRandomValues(new Uint8Array(32));
const tokChl = origin.createTokenChallenge(issuer.name, redemptionContext); // Origin issues a token challenge
const tokReq = await client.createTokenRequest(tokChl, pkIssuer); // Client sends blinded request
const tokRes = await issuer.issue(tokReq); // Issuer signs the blinded request
const token = await client.finalize(tokRes); // Client finalizes token and resends request with it
const isValid = await origin.verify(token, issuer.publicKey); // Origin verifies against the issuer keyDalší kroky
- Testování produkčního nasazení až budete připraveni jít nad rámec těchto samoobslužných dem, najdete zde podrobného průvodce ověřením skutečného nasazení provozovaného Cloudflare, ve kterém spolupracují váš Attester, Issuer a Origin.
- Protokol Privacy Pass čtyři role, tok vydávání a uplatnění tokenu a zaslepené podpisy, které tokeny vytvářejí.
- Modely nasazení kdo provozuje jednotlivé role a jaké jsou modely nasazení.