ひまつぶし雑記帖

HTTP Signatureの署名対象文字列

2026/1/11 [08:22:15] (日) 天気

2023年にActivityPubを自作実装した時に、うまく意図通りにいかなくて悶絶したのがHTTP Signatureの作成と認証確認。
検索しまくって何度も何度も試行錯誤した。

RSAというかCryptは今もよくわからないまま。
「Crypt::Perl - Cryptography in pure Perl」
↑META::CPANで公開されているモジュールをありがたく使わせてもらっている。

「HTTP Signatureをlolipopレンタルサーバーで作成」  にも書いたけど、このモジュールはpure perl、すべてperlだけで書かれている。
perlを使えるサーバーだったらどこでも、誰でもインストールして使えるのが素晴しい。

phpやruby、pythonを使えるサーバーも増えてきてるとはいえ、たぶんまだ全部のサーバー、特にレンタルサーバーで使えるとは限らない。
だけど、perlが使えないサーバーなど存在しない、はず。

で、ここからが今回のエントリ…本題に入るまでが長いのは老人特有の症状。

・HTTPヘッダに署名をつけてリクエストをする必要があるのはわかった。
・署名するためのモジュールも使い方はわかった。

わからなかったのが「んじゃそれって、いったい何を対象に署名するの?」というところ。

結局、HTTPヘッダなど、環境変数で取れるもので署名の対象を作るんだけど、今度はそれをどんな形で検証生成のモジュールに渡せばいいのかがわからない。

具体例を探して右往左往。
必要とされる環境変数の「キー」と「値」を「コロンと半角空白」で繋いだ文字列にして集めて、その文字列を最後に「改行」で繋いだ文字列にしたものが、署名の対象となる。

署名の生成認証は対象となる文字がひとつでも違ってたら通らない。
厳密厳格なのが当たり前。
余計な空白やダブルクオート、セミコロンなんかが入ってることに気づかない自分の雑な性格を呪う日々だった。

なもんで、あまり触りたくない、のが本音。
web本棚をActivityPub対応した時に、このSignatureまわりをすっかり忘れてたので復習。

具体的なコードはホームページに掲載した。
「HTTP Signatureの解析::On Golden Pond」

image 

»電子書籍制作代行についてはこちら

【電子書籍発売中】

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

いいだ(@t2aki@tokoroten.doncha.net)

[Tue, 13 Jan 2026 21:42]

mastodon.socialからはsignature-inputは飛んできてないけど、4.5.0のソースをgrepしたら@target-uriとか引っかかっ...

[Tue, 13 Jan 2026 20:25]

尻尾の短かかったみけさん。 尻尾を巻き込んで抱えあげたつもりが、抱えあげようとした瞬間に尻尾をぴっと上げられて、掌にピトっとした感触w なんでそこでアナルフ...

[Tue, 13 Jan 2026 20:19]

RFC通りにSignatureの種を作ったつもりなのに、verifyに失敗する。たぶんどこか書き方が間違えてる。ここハマると時間かかるんだよなあ…orz [Q...

検索
<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版