假设使用 ZKP(例如 SRP6a)进行密码验证。
假设我需要强制用户更改他们的密码(所以我有当前密码的盐和验证器)。为此,客户端需要向我发送新的盐和验证器值。但是如果盐是随机的,我无法检查使用的密码是否相同。
我打扰的原因是因为初始密码可能通过不太安全的方式传递,我不希望该密码流连忘返。
我发现确保密码不同的唯一方法是要求新盐与旧盐相同。
更改密码的机制作为 API 公开给客户端,我不一定相信客户端会进行验证。
问题是:
- 有没有更好的办法?
- 如果不是,那么要求相同的盐有什么不利之处,即我是否会妥协任何东西?