我想与一些安全专家验证这一点。
我有一个网络应用程序,我注册用户。我为每个用户使用一个独特的盐为pw加密,并将散列的pw存储到DB中。
我现在需要通过移动应用验证用户身份。我不能使用ssl,我宁愿避免在移动设备和我的网络服务器之间传递密码。所以在调用服务器上的登录方法(通过RESTful API)之前,我更喜欢在移动设备上对BC进行BCrypt,然后通过API将其散列到服务器进行比较。
关键是在移动设备上我必须使用相同的盐进行BCrypt(据我所知,我无法比较两种不同盐的BC化的pw)。
所以问题是:
是否合适如上所述,所有通信都是普通的http,没有SSL。
这有意义吗?
答案 0 :(得分:2)
在您的方案中,“hashedpw”成为一个简单的密码,然后您可以将其存储在未加密的数据库中。
所有需要登录服务器的人都知道(例如,拦截)哈希值和用户名。在您的实现中,散列与安全性无关,它更多地是对最终用户的内存辅助,但不提供任何安全性好处。