RFC 9421 - HTTP Message Signatures
Published: February 2024
Status: Standards Track
Authors: A. Backman (Ed.), J. Richer (Ed.), M. Sporny
Info: https://www.rfc-editor.org/info/rfc9421
Abstract
This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.
Contents
- 1. Introduction
- 2. HTTP Message Components
- 3. HTTP Message Signatures
- 4. Including a Message Signature in a Message
- 5. Requesting Signatures
- 6. IANA Considerations
- 7. Security Considerations
- 7.1. General Considerations
- 7.2. Message Processing and Selection
- 7.2.1. Insufficient Coverage
- 7.2.2. Signature Replay
- 7.2.3. Choosing Message Components
- 7.2.4. Choosing Signature Parameters and Derived Components over HTTP Fields
- 7.2.5. Signature Labels
- 7.2.6. Multiple Signature Confusion
- 7.2.7. Collision of Application-Specific Signature Tag
- 7.2.8. Message Content
- 7.3. Cryptographic Considerations
- 7.4. Matching Signature Parameters to the Target Message
- 7.5. HTTP Processing
- 7.5.1. Processing Invalid HTTP Field Names as Derived Component Names
- 7.5.2. Semantically Equivalent Field Values
- 7.5.3. Parsing Structured Field Values
- 7.5.4. HTTP Versions and Component Ambiguity
- 7.5.5. Canonicalization Attacks
- 7.5.6. Non-List Field Values
- 7.5.7. Padding Attacks with Multiple Field Values
- 7.5.8. Ambiguous Handling of Query Elements
- 8. Privacy Considerations
- 9. References
- Appendix A. Detecting HTTP Message Signatures
- Appendix B. Examples
- Acknowledgements
- Authors' Addresses