本文へスキップ
ecdsa.com

HTTP メッセージ署名

HTTP リクエストやレスポンスの選択したコンポーネントに署名するための IETF 標準(RFC 9421、2024年2月)で、署名は Signature-Input と Signature のヘッダーフィールドで伝送されます。
別表記RFC 9421Signature-InputHTTP signaturesHTTPSig

署名者は、署名対象のコンポーネント(@method、@authority、@path、@query、@status などの派生コンポーネントと、content-digest などのヘッダーフィールド)を、パラメーター created、expires、nonce、keyid、alg、tag とともに Signature-Input に列挙します。署名ベースはこれらの値から構築される正規化されたテキストで、Signature にはその署名結果が入ります。アルゴリズムには ecdsa-p256-sha256(生の r‖s)、ed25519、rsa-pss-sha512、hmac-sha256 などがあります。

本文を署名対象に含めるには Content-Digest ヘッダー(RFC 9530)が必要です。中継者がヘッダーを書き換える可能性があるため、署名者は経路上で変更されないコンポーネントだけを署名対象にすべきです。用途としては、自動化されたクライアントを識別する Web Bot Auth、FAPI 2.0 のメッセージ署名プロファイル、旧来の draft-cavage 署名から移行しつつある Mastodon 型のフェデレーション、webhook の署名などがあります。

HTTP メッセージ署名検証ツールは、署名ベースを構築し、署名をローカルで検証します。

規格と参考文献

すべての用語