p.tatapa.org

p.tatapa.org

FIDO2のリカバリは、リカバリコードを直接入力させるのではなく、リカバリコードから導出した鍵ペアを対象として、ログイン用のリンクを暗号化して送るのがよいんだろうか。

いや、WebAuthnを拡張して、ブラウザがリカバリコードをユーザから受け取って、オリジンと混ぜた上で鍵を導出して、ウェブサイト側が出したチャレンジに署名して送るようにすべきか。ただ、ブラウザのUIに何かを入力させるのは偽UIによる攻撃を受けるという問題はある。一方で前述のリンクを送る方法はLogin CSRFが排除できないのが気になる(対応する公開鍵が知られていないなら問題ないかも)。

補足: ログイン用のリンク(マジックリンク)をメールで送る方法は、暗号化していない場合はメールサーバの安全性に全体の安全性が制限される。暗号化する場合は鍵をどうするかという問題がある。一つの解はリカバリコードから鍵導出関数で鍵を導出する方法である。しかしこれでも攻撃者のアカウントで被害者にログインさせる攻撃(Login CSRF)を防げない(被害者がメールの差出人を確認しない前提の場合)。ただしリカバリコードに対応する公開鍵が攻撃者に未知の場合は多分安全。

replies
0
announces
0
likes
0