Open8
WebSavedata: パスワードマネージャが保存できるパスワードの最大長は何バイトなのか問題
最も厳しい環境、SafariのITP下では、Webサイトは7日間アクセスされないとそのステートを失ってしまう。
じゃぁパスワードマネージャーみたいな絶対失われないストレージにステートを保存すれば良いじゃん。
結果
2〜3KiB程度のデータであれば保存できそうだ。ただし相性問題が出そうな兆候はある:
- MS Edgeはどうも何もログイン等しない状態だと 256バイトという激烈な制約がある
- BitwardenのようなFOSSソリューションはデータ量制約から5000バイト付近に制約している
Bitwardenは暗号化後5000バイト
Bitwardenは直接的にこの問題を議論していた:
それによると最近のサーバーでは5000バイトに拡張されたようなので、じゃぁbase64(2KiB)くらいは安全圏だな。Google drive等のアクセストークンを格納するのには十分なサイズと言える。
ランダムデータを作成
3004バイトのランダムなbase64データを生成した。
これを各所のWebブラウザのパスワードマネージャーに設定してまわってみる。
1Password
問題なく設定できた。
Firefoxのパスワードマネージャー
問題なく設定できた。
MS Edge
設定できず。。
PasswordManagerRestrictLengthEnabled
が設定されていると、なんと256文字に制限されてしまうらしい。まぁ、Chromium系のブラウザは滅多な事でローカルストレージが消えたりしないから別にいいか。。?
Google Chrome
問題なく設定できた。
macOSのSafari
問題なく設定できた。