我们有一个使用密码验证来访问数据库的系统,用户名和加密密码存储在数据库中。当用户忘记他们的密码时,(或管理员离开去更绿的牧场)我们希望能够为当前管理员生成一个新密码或生成一个新管理员。
我们通过电话支持与客户打交道。所以我们要使用这个场景:
用户响起 - 忘记密码。
客户端软件根据其站点许可证生成质询代码
用户告诉电话支持人员挑战码
电话支持人员提供响应代码
用户输入挑战码和响应码,然后进入后门(创建新用户或重置当前用户密码)
我们希望挑战/响应只工作一次,我们不想让后门敞开。
我们应该怎么做?