Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP Signare 検証の修正 #2719

Merged
merged 5 commits into from
Dec 2, 2023
Merged

HTTP Signare 検証の修正 #2719

merged 5 commits into from
Dec 2, 2023

Conversation

mei23
Copy link
Owner

@mei23 mei23 commented Dec 2, 2023

What

mei23/misskey-v11#2497
mei23/misskey-v11#2498
mei23/misskey-v11#2501

  • inboxのサイズリミットが1mb=>64kbになります
  • AP inboxでdigest headerとbodyとを検証していないのを修正。
  • AP inboxでhost headerと自ホストとを検証していないのを修正。
  • HTTP Signatureの署名対象ヘッダに、(request-target), digest, host, date が含まれてない場合はエラーにするように。

dateが300秒以上ずれている場合 (主にどちらかの時計が狂っている場合) 弾かれるようになります。
この仕様はhttp-signatureのclock-skewによるもの
https://github.com/TritonDataCenter/node-http-signature/blob/master/http_signing.md#clock-skew

ものすごく古いPleromaは(request-target)に署名していないため、受け入れられなくなります。

  • server inboxのテストを追加
  • HTTP Signatureの鍵のアルゴリズムを明確にして調整

md5とsha1署名は受け入れられなくなります

鍵: dsa, rsa, ecdsa, ed25519
署名: md5(削除), sha1(削除), sha256, sha384, sha512

なお、ed25519の場合は常にsha512になります。

hs2019を指定した場合は
ed25519鍵が与えられた場合は、ed25519-sha512として扱い
それ以外は、鍵-sha256として扱います。

mei23 and others added 5 commits December 2, 2023 12:40
* validate signed headers

* リクエストホスト

Co-authored-by: perillamint <[email protected]>
Co-authored-by: yunochi <[email protected]>
Co-authored-by: Laura Hausmann <[email protected]>
@mei23 mei23 changed the title validate signed headers HTTP Signare 検証の修正 Dec 2, 2023
@mei23 mei23 marked this pull request as ready for review December 2, 2023 04:40
@mei23 mei23 merged commit b008e1e into mei-v12z Dec 2, 2023
2 checks passed
@mei23
Copy link
Owner Author

mei23 commented Dec 2, 2023

ねんのためraw assert
bf84675

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant