Elektrine lite

← Feed

@evan@activitypub.space

Double-knock strategy for HTTP Signature

2026-04-24 14:06 UTC

In the HTTP Signature Report we suggest a double-knock strategy for deploying RFC 9421. Basically, try RFC 9421 first, and if you get an error, downshift to draft-cavage-12 and try again. I just realised, in testing with Pixelfed, that this doesn't work if the remote server doesn't check signatures in the Web routes. Pixelfed returns a 200 response for POST requests signed with RFC 9421, but its backend workers reject the input because Pixelfed doesn't understand RFC 9421. So, it silently swallows activities with RFC 9421 signatures. I think there are a few other strategies to try. One is tit-for-tat: if a host sends you POST requests signed using RFC 9421, you should be able to send them back with RFC 9421. Another is checking for the Accept-Signature header. Finally, you can use an allowlist/denylist based on nodeinfo, the Server header, or the User-Agent header. Has anyone else figured out a good way around this?

Replies (2)

  • @evan@activitypub.space 2026-04-24 22:30

    @hongminhee@hollo.social I wonder if you've had this problem and how you worked around it.

    Open ##1643806

  • @julian@activitypub.space 2026-04-24 22:43

    @evan I do know that @silverpill@mitra.social currently only implements RFC 9421 in one direction only. So his input may be relevant here... the assumption that if you see 9421 in action, you can assume 9421 support may not be as broadly true.

    Open ##1644135