Privacy Pass S. Hendrickson Internet-Draft Google Intended status: Standards Track C. A. Wood Expires: 11 January 2024 Cloudflare, Inc. 10 July 2023 Privacy Pass Token Expiration Extension draft-hendrickson-privacypass-expiration-extension-00 Abstract This document describes an extension for Privacy Pass that allows tokens to encode expiration information. About This Document This note is to be removed before publishing as an RFC. The latest revision of this draft can be found at https://chris- wood.github.io/draft-hendrickson-privacypass-token-extensions/draft- hendrickson-privacypass-token-extensions.html. Status information for this document may be found at https://datatracker.ietf.org/doc/ draft-hendrickson-privacypass-expiration-extension/. Discussion of this document takes place on the Privacy Pass Working Group mailing list (mailto:privacy-pass@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/privacy-pass/. Subscribe at https://www.ietf.org/mailman/listinfo/privacy-pass/. Source for this draft and an issue tracker can be found at https://github.com/chris-wood/draft-hendrickson-privacypass-token- extensions. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." Hendrickson & Wood Expires 11 January 2024 [Page 1] Internet-Draft Privacy Pass Token Expiration Extension July 2023 This Internet-Draft will expire on 11 January 2024. Copyright Notice Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 3. Expiration Extension . . . . . . . . . . . . . . . . . . . . 3 4. Security Considerations . . . . . . . . . . . . . . . . . . . 4 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 6. Normative References . . . . . . . . . . . . . . . . . . . . 4 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction Some Privacy Pass token types support binding additional information to the tokens, often referred to as public metadata. [AUTH-EXTENSIONS] describes an extension parameter to the basic PrivateToken HTTP authentication scheme [AUTH-SCHEME] for supplying this metadata alongside a token. [EXTENDED-ISSUANCE] describes variants of the basic Privacy Pass issuance protocols [BASIC-ISSUANCE] that support issuing tokens with public metadata. However, there are no existing extensions defined to make use of these protocol extensions. This document describes an extension for Privacy Pass that allows tokens to encode expiration information. The use case and deployment considerations, especially with respect to the resulting privacy impact, are also discussed. Hendrickson & Wood Expires 11 January 2024 [Page 2] Internet-Draft Privacy Pass Token Expiration Extension July 2023 2. Conventions and Definitions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Expiration Extension The expiration extension is an extension used to convey the expiration for an issued token. It is useful for Privacy Pass deployments that make use of cached tokens, i.e., those that are not bound to a specific TokenChallenge redemption context, without having to frequently rotate issuing public keys. For example, consider a Privacy Pass deployment wherein clients use cached tokens that are valid for one hour. Clients could pre-fetch these tokens each hour and the issuer and origin could rotate the verification key every hour to force expiration. Alternatively, clients could pre-fetch tokens for the entire day all at once, including an expiration timestamp in each token to indicate the time window for which the token is valid. Including a specific expiration timestamp could reveal specific information about a client, if, say, a client has a uniquely skewed clock. For that reason, clients can round the timestamp, resulting in a loss of precision but overall less unique value. Clients do this by choosing an expiration timestamp and the precision they would like, e.g., the UNIX time of expiration rounded to the nearest hour, day, or week. The value of this extension is an ExpirationTimestamp, defined as follows. struct { uint64 timestamp_precision; uint64 timestamp; } ExpirationTimestmap; The ExpirationTimestmap fields are defined as follows: * "timestamp_precision" is an 8-octet integer, in network byte order, representing the granularity of the timestamp, i.e., the target to which the timestamp is rounded for loss of precision. Hendrickson & Wood Expires 11 January 2024 [Page 3] Internet-Draft Privacy Pass Token Expiration Extension July 2023 * "timestamp" is an 8-octet integer, in network byte order, representing the expiration timestamp. The expiration timestamp is the UNIX time in seconds at which a token expires. As an example, an ExpirationTimestamp structure with the following value would be interpreted as an expiration timestamp of 1688583600, i.e., July 05, 2023 at 19:00:00 GMT+0000, which is the timestamp rounded to the nearest hour (timestamp_precision = 3600). struct { uint64 timestamp_precision = 3600; uint64 timestamp = 1688583600; } ExpirationTimestmap; 4. Security Considerations Use of extensions risks revealing additional information to parties that see these extensions, including the Attester, Issuer, and Origin. Each extension in this document specifies security and privacy considerations relevant to its use. More general information regarding the use of extensions and their possible impact on client privacy can be found in [ARCHITECTURE]. 5. IANA Considerations This document registers the following entry into the "Privacy Pass PrivateToken Extensions" registry. * Expiration extension - Type: 0x0001 - Name: Expiration - Value: ExpirationTimestamp value as defined in Section 3 - Reference: This document - Notes: None 6. Normative References [ARCHITECTURE] Davidson, A., Iyengar, J., and C. A. Wood, "The Privacy Pass Architecture", Work in Progress, Internet-Draft, draft-ietf-privacypass-architecture-13, 15 June 2023, . Hendrickson & Wood Expires 11 January 2024 [Page 4] Internet-Draft Privacy Pass Token Expiration Extension July 2023 [AUTH-EXTENSIONS] Hendrickson, S. and C. A. Wood, "The PrivateToken HTTP Authentication Scheme Extensions Parameter", Work in Progress, Internet-Draft, draft-wood-privacypass-auth- scheme-extensions-00, 10 July 2023, . [AUTH-SCHEME] Pauly, T., Valdez, S., and C. A. Wood, "The Privacy Pass HTTP Authentication Scheme", Work in Progress, Internet- Draft, draft-ietf-privacypass-auth-scheme-11, 23 June 2023, . [BASIC-ISSUANCE] Celi, S., Davidson, A., Valdez, S., and C. A. Wood, "Privacy Pass Issuance Protocol", Work in Progress, Internet-Draft, draft-ietf-privacypass-protocol-11, 26 June 2023, . [EXTENDED-ISSUANCE] "*** BROKEN REFERENCE ***". [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . Acknowledgments This document received input and feedback from Jim Laskey. Authors' Addresses Scott Hendrickson Google Email: scott@shendrickson.com Christopher A. Wood Cloudflare, Inc. Email: caw@heapingbits.net Hendrickson & Wood Expires 11 January 2024 [Page 5]