我认为直接在客户端计算机上对密码进行加盐和哈希处理会更明智。原因是,我实际上从来不想获取用户的密码。这个字符串应该对他保密,而不是对我们俩保密。现在有人争论说,你想对盐保密,所以你不能通过通道以明文形式发送它。显然,事实并非如此。所以现在我看不出有任何理由,为什么我不应该只从客户端请求哈希值。你怎么认为?
edit讨论向主机发送客户端密码的问题实际上并不是直接的问题。客户面临的问题是将密码从他的计算机中发送出来。乐观的客户可能会认为他的计算机是安全的。但从电缆(或天线)发出的所有东西都是 Eve 的领地。你永远不可能too在安全场景中偏执。再说一次:密码应该never离开客户电脑!
Sending either密码短语或其哈希值允许攻击者记录哈希值并在重放攻击中使用它。
您通常希望使用质询/响应协议,这意味着您发送一个随机数。客户端使用其密码短语的哈希作为密钥对该随机数进行加密(或进行密钥哈希),然后发回结果。你也做同样的事情,看看两者的匹配情况。
这使您可以验证匹配的密钥,而无需每次都通过不安全的通道发送密钥本身。
至于最初如何获取数据以便能够进行比较,是的,您通常希望客户端对密码进行哈希处理,然后使用服务器的公钥对其进行加密,并发送加密结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)