説明
ASP.NET Core Identityで短すぎるパスワードやよく使われるパスワードを許可すると、推測や総当たり攻撃に弱いパスワードが使われるおそれがあります。
想定される影響
- パスワードの推測、クレデンシャルスタッフィング、権限昇格のリスクが高まる可能性があります。
対処方法
認証方式に合った最小文字数を定め、よく使われるパスワードや漏えいしたパスワードを拒否してください。複数の文字種を強制することだけで強度を判断しないでください。NIST SP 800-63B-4は単一要素認証で15文字以上を要求し、MFAの一部としてのみ使うパスワードでは8文字以上を認めています。
例
変更前
csharp
options.Password.RequiredLength = 6;
変更後
csharp
options.Password.RequiredLength = 12;
解説:
- 変更前: 弱いパスワード要件は、パスワードの推測や解析を容易にするおそれがあります。
- 変更後: 最小文字数を12文字に増やしていますが、これだけで認証ポリシー全体を満たすわけではありません。単一要素認証にはより長い最小文字数を適用し、MFAや漏えい済みパスワードの拒否も検討してください。