【发布时间】:2015-04-09 11:03:39
【问题描述】:
在 Android 应用的 HTTP POST 中使用 JSON 发送密码是否安全?
在数据库中我有密码哈希和盐。
也许更好的解决方案是用户首先将他的用户名发送到服务器,服务器返回他的盐,然后他在应用程序中进行哈希并将密码哈希发送到服务器。 那安全吗? 有没有更好的方法?
【问题讨论】:
-
加密您的密码并发送到服务器。
在 Android 应用的 HTTP POST 中使用 JSON 发送密码是否安全?
在数据库中我有密码哈希和盐。
也许更好的解决方案是用户首先将他的用户名发送到服务器,服务器返回他的盐,然后他在应用程序中进行哈希并将密码哈希发送到服务器。 那安全吗? 有没有更好的方法?
【问题讨论】:
如果服务器使用 HTTPS(并正确实施)是安全的。如果您将 salt 发送给客户端,它并不比发送明文密码更好,因为任何恶意用户也可以访问 salt,因此可以生成密码哈希。
如果您使用的盐是全球盐,请停止。每个用户都需要一个单独的盐来防止攻击者轻易地暴力破解您的密码。使用每个用户唯一的 salt,攻击者需要暴力破解每个 salt 的整个密码,而不是使用一个 salt 暴力破解所有密码。
您可以使用非对称加密,服务器拥有自己的私钥,客户端拥有服务器的公钥,然后用公钥加密密码并将其发送到服务器。如果你做得正确,那在运输过程中应该是安全的。有权访问公钥的攻击者不会以查看密码的方式获得任何东西,因为他们无法用它解密您的流量。
【讨论】:
是的,只要您使用 HTTPS,在 POST 请求中发送密码是安全的。额外的 SSL 层将解决安全问题。
【讨论】: