doc

Privacy Pass Protocol Specification

参考 RFC9576/9577/9578,主要是9578。

最初是用在TOR。

client -> server 的匿名授权,生成token。

server 无法基于 client 的 re-authorization , link 跟踪到初始的授权。

token

cookie 的问题就是token跟踪,跨域跟踪。

privacy pass protocol:

  • unlinkability: client一次性获得多个single-domain/cross-domain的授权token,不用重复认证,且确保匿名性。
  • unforgeability: client无法伪造token,或者增加token个数。

细节参考 voprf

phase: 1) issuer server setup: skS, pkS

2) client setup: 
pkS, m 

3) issuance:  
client: m (input) -> req (blindToken)
issuer server: resp (evaluation)
client: 
        redemption Token = { input.data, issued: issuedTokens }
与voprf的issuedTokens过程一致

4) redemption:
client:  token, info -> req
    tag = Finalize(token.data, token.issued, info) //info 加 timestamp,生成hash output
    req = redemption request = { data, tag, info }

issuer server: 
    检查是否已遇到过该req.data,避免double spend;
    resp = VerifyFinalize(pkS, skS, req.data, req.info, req.tag) //相当于让server自己做一下签名校验
    如果resp.success,登记req.data 

protocol

client 向 origin server 发起访问请求。

origin server 提供 token challenge。

client 与 issuer server 的authentication 参考rats(RFC9334)的attestation。

client 向 issuer server 请求签发 token。

origin server 校验 token。



Published

29 March 2021

Categories

Tags


Share On