代码之家  ›  专栏  ›  技术社区  ›  Ubiquitous Che

通过网络发送散列密码是安全漏洞吗?

  •  4
  • Ubiquitous Che  · 技术社区  · 16 年前

    我遇到了一个正在使用的系统,我们正在考虑与一家公司合作进行一个中型(对我们来说,而不是对他们来说)项目。

    他们有一个我们需要集成的web服务。

    我目前对正确的用户名/密码管理的理解是,用户名可能以明文形式存储在数据库中。每个用户都应该有一个唯一的伪随机salt,它也可以明文存储。他们的密码文本必须与salt连接起来,然后这个组合字符串可以被散列并存储在数据库的nvarchar字段中。只要密码通过 SSL协议

    如果我错了,请随意翻阅我的上述理解。

    这对我来说是个危险信号。我不知道为什么,但出于某种原因,我觉得在网上发送一个散列密码很不舒服。我脑子里想不出为什么这会是件坏事。。。从技术上讲,哈希在数据库中是可用的。但这让我很紧张,我不确定这是有原因的,还是我只是有点偏执。

    编辑

    在原文中,我有这样一句话:“只要密码是提交到网站(或网络服务)上的 明文 “一切都应该是美好的。”

    最坏的。打字错误。永远不会。

    3 回复  |  直到 16 年前
        1
  •  11
  •   eglasius    16 年前

    使用散列密码将其发送到服务没有任何价值,因为您仍然需要一个单独的机制来保护通信,即SSL

    如果系统接受哈希密码,则无论出于何种目的,哈希密码 输入密码。如果攻击者获得散列密码,他就可以访问该帐户,而无需找出原始密码。

        2
  •  3
  •   PaulG    16 年前

    在安全问题上多疑是好事,但在这种情况下,我不认为你有太多的担心。哈希严格来说是单向的,因此永远不能转换回明文密码。接收方只需检查发送的哈希值是否与存储的哈希值匹配。

    唯一的问题是确保在传输过程中没有人可以窃听散列密码,因此应该使用SSL之类的方法。如果有人在传输过程中嗅探用户名+散列密码,攻击者可能会重用它。

        3
  •  2
  •   Sky Sanders    16 年前

    撇开细节不谈,这个问题很容易回答:

    容易 被剥削。