agenticweb.wiki

HTTP Message Signatures

Last checked · 35 primary sources

This page is about HTTP Message Signatures (RFC 9421), the IETF standard for signing parts of an HTTP request or response. It is not Web Bot Auth, a draft that uses RFC 9421 HTTP Message Signatures to identify bots and agents and adds a Signature-Agent header; the HTTP Message Signatures directory (a JWKS key list at /.well-known/http-message-signatures-directory) is part of that Web Bot Auth work, not of RFC 9421. It is also not the older Cavage draft, draft-cavage-http-signatures ("Signing HTTP Messages") which Mastodon says is still needed for compatibility with other fediverse software. For signed workload-to-workload calls, see WIMSE.

Overview

HTTP Message Signatures (RFC 9421) is the IETF standard for signing selected parts of an HTTP request or response, so the receiver can check who signed them and that they arrived unchanged, even through proxies [1]. The sender lists the covered parts, such as the method, the host or chosen header fields, in a Signature-Input header and puts the signature in a Signature header; either side can ask for a signature with Accept-Signature [1]. The standard leaves key distribution and policy to each application, and newer work builds on it, including Web Bot Auth for bots and agents, WIMSE for workloads and the AAuth draft [1][10][11][12]. It replaced the older Cavage draft, and Mastodon, which still needs that draft for compatibility, has been adding RFC 9421 support since 2025 [1][8][16][18][19].

Who uses it

Each entry was checked live on 2026-10-28. For the four key directories, the response carried RFC 9421 Signature-Input and Signature headers with tag "http-message-signatures-directory", as Web Bot Auth requires [10]; we rebuilt the signature base and verified each Ed25519 signature against a key in the same directory, and checked the Content-Digest against the body where it was signed. Changing the signed authority made each check fail.

Who reads it

Recent coverage

See also

References

  1. A. Backman, J. Richer, M. Sporny, RFC 9421: HTTP Message Signatures (IETF, Standards Track), February 2024: "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." "This is an Internet Standards Track document." "The Signature-Input field is a Dictionary Structured Field (defined in Section 3.2 of [STRUCTURED-FIELDS]) containing the metadata for one or more message signatures generated from components within the HTTP message." "The Signature field is a Dictionary Structured Field (defined in Section 3.2 of [STRUCTURED-FIELDS]) containing one or more message signatures generated from the signature context of the target message." "While a signer is free to attach a signature to a request or response without prompting, it is often desirable for a potential verifier to signal that it expects a signature from a potential signer using the Accept-Signature field." "An application will usually use the keyid parameter of the signature parameters (Section 2.3) and define rules for resolving a key from there, though the appropriate key could be known from other means such as preregistration of a signer's key." "This specification was initially based on [SIGNING-HTTP-MESSAGES]." "The editors would like to thank the authors of [SIGNING-HTTP-MESSAGES] -- Mark Cavage and Manu Sporny -- for their work on that Internet-Draft and their continuing contributions." — https://www.rfc-editor.org/rfc/rfc9421.html
  2. RFC Editor, RFC 9421: HTTP Message Signatures | RFC Editor (info page; shows the two errata inline), checked 2026-10-28: "RFC 9421: HTTP Message Signatures | RFC Editor" "2024-10-29" — https://www.rfc-editor.org/info/rfc9421/
  3. IETF Datatracker, HTTP Message Signatures RFC 9421, checked 2026-10-28: "RFC - Proposed Standard (February 2024)" "Was draft-ietf-httpbis-message-signatures (httpbis WG)" "Paul Wouters" — https://datatracker.ietf.org/doc/rfc9421/
  4. IETF Datatracker, HTTP Message Signatures draft-ietf-httpbis-message-signatures-19 history, checked 2026-10-28: "2020-04-10" "draft-richanna-http-message-signatures" "draft-cavage-http-signatures" "2023-07-26" "2023-08-16" — https://datatracker.ietf.org/doc/draft-ietf-httpbis-message-signatures/history/
  5. RFC Editor, RFC Errata for RFC 9421 (two verified errata, IDs 8102 and 8103, reported 2024-09-15 and verified 2024-10-29), checked 2026-10-28: "Errata-ID: 8102" "Errata-ID: 8103" "2024-09-15" "2024-10-29" "@signature-params" — https://errata.rfc-editor.org/search/?rfc_number=9421&presentation=records
  6. IANA, HTTP Message Signature registries (created 2023-08-18, last updated 2026-10-23; experts Justin Richer and Manu Sporny), checked 2026-10-28: "2023-08-18" "2026-10-23" "Justin Richer, Manu Sporny" "rsa-pss-sha512" "rsa-v1_5-sha256" "hmac-sha256" "ecdsa-p256-sha256" "ecdsa-p384-sha384" "ed25519" "ml-dsa-44" "ml-dsa-65" "ml-dsa-87" — https://www.iana.org/assignments/http-message-signature
  7. IANA, Hypertext Transfer Protocol (HTTP) Field Name Registry (CSV export; Accept-Signature, Signature and Signature-Input listed as permanent, citing RFC 9421), checked 2026-10-28: "Accept-Signature,permanent," "Signature,permanent,Dictionary" "Signature-Input,permanent,Dictionary" — https://www.iana.org/assignments/http-fields/field-names.csv
  8. IETF Datatracker, Signing HTTP Messages draft-cavage-http-signatures-12, checked 2026-10-28: "Mark Cavage" "Manu Sporny" "2019-10-21" "Replaced by draft-ietf-httpbis-message-signatures" — https://datatracker.ietf.org/doc/draft-cavage-http-signatures/
  9. IETF Datatracker, HTTP Message Signatures for automated traffic draft-ietf-webbotauth-httpsig-protocol-00, checked 2026-10-28: "Active Internet-Draft" "webbotauth WG" "2026-09-01" — https://datatracker.ietf.org/doc/draft-ietf-webbotauth-httpsig-protocol/
  10. T. Meunier, S. Major, HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00), 2026-09-01: "A directory served at the well-known URI registered in Section 8.1 MUST be served with media type application/http-message-signatures-directory+json." "A verifier using a corresponding directory response signature as proof MUST validate it using the key provided by the directory and MUST validate the Content-Digest field against the response body." "tag MUST be http-message-signatures-directory" — https://www.ietf.org/archive/id/draft-ietf-webbotauth-httpsig-protocol-00.html
  11. J. Salowey, Y. Sheffer, WIMSE Workload-to-Workload Authentication with HTTP Signatures (draft-ietf-wimse-http-signature-08, Active Internet-Draft, wimse WG; WG state "Submitted to IESG for Publication", IESG state "Publication Requested", intended Proposed Standard, as of 2026-10-28), latest revision 2026-10-20: "We define a profile of the HTTP Signatures protocol [RFC9421] to protect the service traffic." — https://datatracker.ietf.org/doc/draft-ietf-wimse-http-signature/
  12. D. Hardt, AAuth Protocol draft-hardt-oauth-aauth-protocol-11 (individual Internet-Draft), last updated 2026-09-25: "Every agent instance has its own identifier and signing key, and every request it makes is bound to that key by an HTTP Message Signature ([RFC9421])" — https://datatracker.ietf.org/doc/draft-hardt-oauth-aauth-protocol/
  13. R. Polli, L. Pardue, RFC 9530: Digest Fields | RFC Editor, February 2024: "For example, HTTP Message Signatures [SIGNATURES] could be used to sign Integrity fields, thus providing coverage for HTTP content or representation data." — https://www.rfc-editor.org/info/rfc9530/
  14. J. Richer, F. Imbault, RFC 9635: Grant Negotiation and Authorization Protocol (GNAP) | RFC Editor, October 2024: "This method is indicated by the method value httpsig and can be declared in either object form or string form." — https://www.rfc-editor.org/info/rfc9635/
  15. C2SP, Post-Quantum Algorithms for HTTP Message Signatures | C2SP (httpsig-pq v1.0.1), 2026-10-21: "This document specifies three HTTP Message Signature algorithm identifiers for the ML-DSA signature schemes standardized in FIPS 204." — https://c2sp.org/httpsig-pq@v1.0.1
  16. Mastodon, Release v4.4.0 · mastodon/mastodon · GitHub, 2025-07-08: "Add experimental support for receiving HTTP Message Signatures (RFC9421)" "This currently only covers verifying such signatures (inbound HTTP requests), not issuing them (outbound HTTP requests)." — https://github.com/mastodon/mastodon/releases/tag/v4.4.0
  17. Mastodon, Release v4.5.0 · mastodon/mastodon · GitHub, 2025-11-06: "Change support for RFC9421 HTTP signatures to be enabled unconditionally" — https://github.com/mastodon/mastodon/releases/tag/v4.5.0
  18. Mastodon, Release v4.7.0 · mastodon/mastodon · GitHub, 2026-08-20: "Add outgoing RFC9421 HTTP Message Signatures as fallback to earlier draft" "Add support for Ed25519 signatures in HTTP Message Signatures" — https://github.com/mastodon/mastodon/releases/tag/v4.7.0
  19. Mastodon, Security - Mastodon documentation (undated), checked 2026-10-28: "This version of HTTP Signatures is still required for compatibility with older Mastodon versions (including the still supported 4.4.0) and other fediverse implementations, but we strongly suggest implementers to also implement the up-to-date HTTP Message Signatures (RFC9421) specification, starting with verification, as we intend to eventually move away from this earlier draft." — https://docs.joinmastodon.org/spec/security/
  20. Cloudflare, Message Signatures are now part of our Verified Bots Program, simplifying bot authentication (Cloudflare blog), 2025-07-01: "HTTP Message Signatures is a primitive that is useful beyond Cloudflare – the IETF standardized it as part of RFC 9421." — https://blog.cloudflare.com/verified-bots-with-cryptography/
  21. Cloudflare, Web Bot Auth · Cloudflare bot solutions docs, last updated 2026-10-08: "Cloudflare's implementation of Web Bot Auth does not support every component and parameter defined in IETF RFC 9421." — https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/
  22. Rupesh Chokshi, Akamai, Redefine Trust with Web Bot Authentication | Akamai (Akamai blog), 2025-11-10. Read through the Wayback Machine copy of 2026-06-09, because the live page returned 403 to our fetches: "The Akamai edge retrieves the bot's signature directory, validates the signature using RFC 9421 rules, and confirms the request's authenticity without adding complexity for origin systems." — https://web.archive.org/web/20260609113733/https://www.akamai.com/blog/security/redefine-trust-web-bot-authentication
  23. AWS, AWS WAF announces Web Bot Auth support - AWS (What's New), 2025-11-21: "Web Bot Auth is an authentication method that leverages cryptographic signatures in HTTP messages to verify that a request comes from an automated bot." — https://aws.amazon.com/about-aws/whats-new/2025/11/aws-waf-web-bot-auth-support/
  24. Vercel, Vercel's bot verification now supports Web Bot Auth - Vercel (changelog), 2025-08-12: "Now, Bot Protection can use HTTP Message Signatures to verify traffic automation from dynamic and distributed sources." — https://vercel.com/changelog/vercels-bot-verification-now-supports-web-bot-auth
  25. Adyen, AI agent API integration with UCP | Adyen Docs (undated), checked 2026-10-29: "Session operations also require UCP HTTP Message Signatures (RFC 9421) for request integrity and origin verification." "Integrate with the Adyen Agentic API to enable your AI agent platform to make transactions with Adyen merchants using the Universal Commerce Protocol (UCP)." — https://docs.adyen.com/online-payments/agentic-commerce/agent-platform/ai-agent-integration-ucp
  26. Visa, Getting Started - Trusted Agent Protocol (Visa Developer, undated), checked 2026-10-28: "The Trusted Agent Protocol: This is the official rulebook that details the technical processes for recognizing a Visa-approved agent, including the cryptographic standards (RFC9421), required message signature fields, and the process for validating an agent's intent." — https://developer.visa.com/docs/trusted-agent-protocol
  27. Google, Google's Guide to Authenticating Requests with Web Bot Auth (Experimental) (undated), checked 2026-10-28: "Verify the Signature header according to the Signature-Input, following the HTTP Message Signatures standard (RFC 9421)." — https://developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth
  28. Daniel Stenberg, HTTP Message Signatures with curl | daniel.haxx.se, 2026-07-27: "The recently published RFC 9421 describes how to do HTTP Message Signatures, and starting just now, curl experimentally supports them." "This feature is already merged into git and will be part of the pending curl 8.22.0 release." — https://daniel.haxx.se/blog/2026/07/27/http-message-signatures-with-curl/
  29. curl, curl - Changes (8.22.0, 2026-09-02), checked 2026-10-28: "RFC 9421 HTTP Message Signatures support" — https://curl.se/changes.html
  30. wolfSSL, Native HTTP Message Signatures in curl, Powered by wolfSSL (Part 3, wolfSSL blog), 2026-06-12: "This post is about what we're contributing: native RFC 9421 support at the plumbing layer — curl and libcurl, with wolfCrypt providing the Ed25519 math." — https://www.wolfssl.com/native-http-message-signatures-in-curl-powered-by-wolfssl-part-3/
  31. OpenAI, chatgpt.com/.well-known/http-message-signatures-directory (key directory with a signed response), checked 2026-10-28: ""crv":"Ed25519","kty":"OKP"" — https://chatgpt.com/.well-known/http-message-signatures-directory
  32. Google, agent.bot.goog/.well-known/http-message-signatures-directory (key directory with a signed response), checked 2026-10-28: ""alg":"EdDSA"" ""crv":"Ed25519"" — https://agent.bot.goog/.well-known/http-message-signatures-directory
  33. Browserbase, www.browserbase.com/.well-known/http-message-signatures-directory (key directory with a signed response), checked 2026-10-28: ""crv":"Ed25519"" — https://www.browserbase.com/.well-known/http-message-signatures-directory
  34. Shopify, cloudsurf.shopify.io/.well-known/http-message-signatures-directory (key directory with a signed response), checked 2026-10-28: ""kty":"OKP","crv":"Ed25519"" — https://cloudsurf.shopify.io/.well-known/http-message-signatures-directory
  35. Mastodon gGmbH, mastodon.social/api/v2/instance (public instance information, including the software version), checked 2026-10-28: ""domain":"mastodon.social","title":"Mastodon.social","version":"5.0.0-nightly.2026-10-28"" — https://mastodon.social/api/v2/instance

JSON · Markdown · OKF v0.2