MisskeyのHTTP SignatureのDigestヘッダーの間違いを修正

This commit is contained in:
usbharu 2023-12-24 11:41:20 +09:00
parent 3490249da5
commit 802dcbdd5a
Signed by: usbharu
GPG Key ID: 6556747BF94EEBC8
1 changed files with 17 additions and 17 deletions

View File

@ -18,6 +18,10 @@ decription:
この記事は [Fediverse (3) Advent Calender 2023](https://adventar.org/calendars/8730) 24 日目の記事です。 この記事は [Fediverse (3) Advent Calender 2023](https://adventar.org/calendars/8730) 24 日目の記事です。
{{< /alert >}} {{< /alert >}}
{{< alert >}}
本記事の Misskey の HTTP Signature と Digest ヘッダーについて間違いがありましたので、修正しました。
{{< /alert >}}
私は、去年の 11 月ごろに自分の Mastodon と Misskey サーバーを建てて、 Fediverse に移住してきました。 私は、去年の 11 月ごろに自分の Mastodon と Misskey サーバーを建てて、 Fediverse に移住してきました。
なんだかんだあって Kotlin+Spring Framework で ActivityPub 実装 SNS を作って遊んでいます。こういう文章を書くのは苦手なので、本題に移ります。 なんだかんだあって Kotlin+Spring Framework で ActivityPub 実装 SNS を作って遊んでいます。こういう文章を書くのは苦手なので、本題に移ります。
@ -59,23 +63,7 @@ HTTP Signature の署名に関する解説だけで 1 記事書けてしまう
なのでもし ActivityPub 実装 SNS を作ることがあるなら、最初から GET リクエストへの署名について考えておく必要があります。 なのでもし ActivityPub 実装 SNS を作ることがあるなら、最初から GET リクエストへの署名について考えておく必要があります。
### 不安定すぎる連合 ### HTTP Signature が複雑すぎる
#### Misskey にあった脆弱性と破壊的変更
脆弱性があったことはともかく、その後の対応で連合に関して破壊的変更が入りました。具体的には`Digest`ヘッダのアルゴリズム名が大文字のみ受け付けられるようになりました。
`Digest: sha-256=hogehoge`
でも受け付けられていたものが
`Digest: SHA-256=hogehoge`
でしか受け付けられなくなった。
私はかなり焦りました。昨日まで連合できていたインスタンスと急に連合できなくなるのです。署名や連合に関する全てのテストをパスし、自分でも色々確認しましたが何もおかしいところはありません。そもそも自分は署名に関して一切手を加えていませんでした。あれやこれやと 1 時間ほど悩んだところで、そういえば Misskey の署名周り、脆弱性の修正で変更が入っていたよな…と気づくことができたのでした。
#### HTTP Signature が複雑すぎる
1 つのバージョンの規格自体は理解すれば簡単です。しかし 10 年も色々いじくり回されているドラフト段階の規格だと話は違います。初期の規格と最新の規格があまりにも違いすぎました。私は完全に諦めて、Misskey と Mastodon と連合できれば OK ということにしています。 1 つのバージョンの規格自体は理解すれば簡単です。しかし 10 年も色々いじくり回されているドラフト段階の規格だと話は違います。初期の規格と最新の規格があまりにも違いすぎました。私は完全に諦めて、Misskey と Mastodon と連合できれば OK ということにしています。
@ -162,3 +150,15 @@ actor の取得は失敗する可能性があり、ジョブキューなどで
## ActivityPub 実装は楽しいぞ ## ActivityPub 実装は楽しいぞ
いい感じの締めが思いつかなかったのでこんな感じで終わりです。下手くそな文章ここまで読んでいただいて嬉しいです。本当は ActivityPub の実装ハンズオン的な記事を書きたかったのですが、試験勉強が忙しすぎてそれどころではありませんでした。どうも合格してそうなのでそのうち書きたいと思います。 いい感じの締めが思いつかなかったのでこんな感じで終わりです。下手くそな文章ここまで読んでいただいて嬉しいです。本当は ActivityPub の実装ハンズオン的な記事を書きたかったのですが、試験勉強が忙しすぎてそれどころではありませんでした。どうも合格してそうなのでそのうち書きたいと思います。
## 追記
### 2023-12-24 Misskey の HTTP Signature の Digest ヘッダーについて
公開時点で Misskey の HTTP Signature の Digest ヘッダーが大文字しか受け付けられないという内容でしたが、その後の修正で大文字小文字を区別しなくなりました。
[https://github.com/misskey-dev/misskey/issues/12678](https://github.com/misskey-dev/misskey/issues/12678 "修正PR")
当該部分を削除し、記事の構成を変更しました。
Misskey にて[黒ヰ樹](https://zenn.dev/tkithrta)さんに教えていただきました。ありがとうございます。