@weiweiwei 我一直好奇,这如今哪边问题更大一些?是 misskey 的 activitypub 协议没做好,还是 mastodon 又额外设置了壁垒?

@fivestone @weiweiwei
之前开启了 AUTHORIZED_FETCH ,然后 misskey 实例就无法访问了。
Misskey 一开始是不支持 Sign Get Request,后来支持了,但设置中又j默认关闭。然后结果就是 Misskey 无法访问了。
因为这个原因,后来就将 AUTHORIZED_FETCH 关了。

刚刚看了一下,现在的 misskey 示例配置中例是默认开启 signToActivityPubGet 了。
github.com/misskey-dev/misskey

@bgme @weiweiwei 所以这个 Sign Get Request,目前算是 ActivityPub 的标准内容吗?or 只是 mastodon 设置的更高一层的壁垒?(for whatever security reason

@fivestone @weiweiwei ActivityPub 标准[1]里只是说:Servers SHOULD validate the content they receive to avoid content spoofing attacks. ,并没有规定具体的实现方法。

Mastodon 采取了 HTTP Signatures [2] 作为认证方式,但初期只是对 POST 这类涉及数据修改的请求签名,并没有对 GET 请求签名。
v3.x 版本引入了 Whitelist mode,对 GET 请求的鉴权也成为了必要,因此对 GET 请求也进行签名。

Misskey 虽然项目开始的比 Mastodon 早,但最开始并没有 Federation 功能,直至2018年才实现了 ActivityPub 协议实现了实例间 Federation。[3](Mastodon在2017年便发布了 1.1 版本)

梳理一下 HTTP signatures to all outgoing ActivityPub GET requests 的历史:
- Mastodon 加入 HTTP signatures to GET requests 的时间是2019年7月。[4]
- 2019年10月 Mastodon v3.0.0 发布。[5]
- 2020年10月 Misskey 也加入了 HTTP signatures to GET requests 的支持,但是 signToActivityPubGet 默认为 false。[6]
- 2022年12月 Misskey 才将 signToActivityPubGet 默认值由 false 改为 true。 [7]

2019年10月至2022年12月,在这长达三年的时间内,如果你的 Mastodon 实例开启了 AUTHORIZED_FETCH,那么便无法与 Misskey 实例互通。

[1] w3.org/TR/activitypub/#obj
[2] datatracker.ietf.org/doc/html/
[3] misskey-hub.net/en/docs/misske

[4] github.com/mastodon/mastodon/p
[5] github.com/mastodon/mastodon/r
[6] github.com/misskey-dev/misskey
[7] github.com/misskey-dev/misskey

@bgme @weiweiwei 赞~ 那么各家引擎,pleroma、gotosocial……对这种 HTTP signatures to GET requests(以及更多没有写明的 “事实”接口标准)的支持性怎么样呢?有没有一个大家已经整理好的对比列表啊?

Follow

@fivestone @bgme @weiweiwei 現在基本都是按mastodon標準實作了,不然mastodon會回覆signature錯誤。還有一個是digest,這也是mastodon特殊要求的

Sign in to participate in the conversation
廣場🚩:長毛象自由站,歡迎豆瓣鄉親及臉書逃難者

那年的廣場,那些年的廣場,讓我們重造廣場。手機App:https://tooot.app/