我们正在使用 Asp.net 身份(当前版本2)。出于本地用户身份验证的目的,框架需要明文密码。据我了解,这不是传输密码的安全方法。
一个快速的答案可以是:使用SSL加密密码传输,但这不是每个人的可行解决方案。
这是我们的想法:登录表单提供一次性随机令牌,然后对密码进行哈希处理,将其附加到令牌并再次对其进行哈希处理。结果将发送到服务器。服务器具有密码和随机令牌的哈希值,将它们连接在一起,如果它们的哈希值等于客户端发送的哈希值,则继续进行登录过程。
这无法使用 Asp.net 身份提供的当前 api:它需要原始密码。
我们应该怎么做?只依靠 SSL?有没有办法在没有SSL的情况下保护密码传输?
网络依靠https来保护密码等敏感信息。我会说遵循标准。您的哈希算法并不像几十年的https开发那样久经考验。