tesaguri/rsa-signature-2017-rs: [WIP] Rust implementation of `RsaSignature2017` cryptosuite of Linked Data Signatures spec
https://github.com/tesaguri/rsa-signature-2017-rs
はい(?)
tesaguri/rsa-signature-2017-rs: [WIP] Rust implementation of `RsaSignature2017` cryptosuite of Linked Data Signatures spec
https://github.com/tesaguri/rsa-signature-2017-rs
はい(?)
PoCを試みているときに良い感じのLD Signaturesの署名用のツールがないものかとざっと探したところめぼしいものが見当たらなかったので、なら自分で書くかと思って書き始めて途中で正気に戻って一旦放棄したやつです(?)
まあ、Mastodonのドキュメント(<https://docs.joinmastodon.org/spec/security/#ld>)にも書かれているとおり、Linked Data Signaturesというドラフト段階の仕様は必要がないなら実装するべきでないですよね(今言うことか?)
古いドラフトの仕様が使われているという点についてはcavage-http-signaturesにも言えることだけど、Linked Data Signaturesは当時のドラフト(<https://github.com/w3c-ccg/ld-signatures/blob/d0af56856684924156a94838f9482a27766bb2be/index.html>)のSecurity Considerations節が空っぽだったという点において微妙さのレベルが一段違うと思う
ところで`RsaSignature2017`の定義(というかより仕様中でsignature suiteの例として示されていただけの定義だけど……)としては`"digestAlgorithm": "https://registry.ietf.org/ietf-digest-algorithms#SHA256" `としか指定されていたのに対してMastodonの実装ではCreate Verify Hash Algorithmにおける"the message digest algorithm"相当の処理で入力をSHA-256でハッシュしてから16進法表現にエンコードしている(<https://github.com/mastodon/mastodon/blob/1726085db5cd73dd30953da858f9887bcc90b958/app/lib/activitypub/linked_data_signature.rb#L55>)のだけど、この16進法表現の根拠がいまいち分かっていない
もしかしたら<https://registry.ietf.org/ietf-digest-algorithms#SHA256>に何か書いてあったのかも知れないけど、リンクが切れている(というかregistry.ietf.orgとかいう強そうな名前のドメインでも落ちるものなのか……)
FediverseがDDoSツールになるの、外部の最も修正すべきって意見はわかるけど理念的に最も修正困難な問題だし手のつけようがないのではって気持ちにもなる
連合先を信用するなら連合先がDocumentかPageオブジェクトをLinkの代わりにつけて取得を回避とかになるかもしれないけど信用するもんじゃないだろうしなぁ