Signature-Key Header Schemes
Exploring the four key distribution schemes defined in draft-hardt-httpbis-signature-key. The Signature-Key header embeds or links to the public key required to verify the RFC 9421 signature.
Scheme 1: 'hwk' (Header Web Key). The client includes the raw public key inline within the Signature-Key header using JWK formatting parameters.
• This scheme provides pseudonymous authentication. The server doesn't know WHO the client is, only that they possess the private key matching the inline public key.
• CRITICAL: The 'Signature-Input' explicitly lists 'signature-key' as a covered header. If the signature doesn't cover the key header, an attacker could trivially swap out the public key and signature in transit.
Step 1: 1. Inline Key (hwk)
sig1=("@method" "@path" "signature-key");created=1776677400
sig1=:hwk_signature_bytes=:
sig1=hwk;kty="OKP";crv="Ed25519";x="11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPPr9m4"
Construction Steps
"@method": POST
"@path": /hwk-auth
"signature-key": sig1=hwk;kty="OKP";crv="Ed25519";x="11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPPr9m4"
"@signature-params": ("@method" "@path" "signature-key");created=1776677400Signature Base String
"@method": POST
"@path": /hwk-auth
"signature-key": sig1=hwk;kty="OKP";crv="Ed25519";x="11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPPr9m4"
"@signature-params": ("@method" "@path" "signature-key");created=1776677400Signing Key
Ed25519 Private KeySignature Output
hwk_signature_bytes