我正在构建一个客户端 - 服务器应用程序的身份验证,我收到的一些反馈是我应该将哈希计算留给服务器(它最初实现为让客户端接收哈希值,从客户端计算哈希值)输入密码,并进行比较).这似乎有道理,但我有一个问题 - 如何验证离线用户?
例如,如果我部署到没有Internet访问权限的移动设备,那么处理身份验证的最安全方法是什么?
我看到它的方式,我将不得不要么允许客户端接收的哈希+盐的任何信息,或使用一个单独的PIN /密码,并允许客户端接收的哈希+盐的那个密码.
我赞成后者,因为它似乎限制了攻击向量 - 如果移动设备受到攻击,那么整个系统的安全性(例如所有经过网络验证的部分)保持不变.
我最好的选择和考虑是什么?