用于密码安全的交换哈希函数

时间:2016-06-23 17:04:24

标签: security authentication hash passwords

我对密码安全有一个想法,并且我试图找出它是否已经是一个东西,如果是这样,我需要做些什么来实现它。

目前,我正在研究的密码系统是(简化,不考虑像盐这样的东西):

  1. 服务器存储hash(password)
  2. 用户向服务器发送纯文本密码(依靠网络安全保护)
  3. 服务器将密码的哈希值与存储的哈希值进行比较。
  4. 我关心的是第1步;要么截获发送的密码,要么“假的”服务器可以通过让用户尝试登录来收集密码。我可以通过添加一个中间哈希或让哈希发生在客户端来稍微改进它(所以至少有人拦截通信只会获得对这个服务器的访问权限,而不是其他具有不同哈希函数但具有相同密码的访问者),但那不会改善了这台服务器的状况。

    我在想,如果我有一对可交换的哈希函数,其中一个可以用随机密钥修改,我可以将这个过程变为:

    1. 服务器存储hash1(password)
    2. 当用户请求登录时,服务器会选择一个随机密钥并使用它来生成hash2()
    3. 服务器将hash2()发送给用户
    4. 用户将hash2(password)返回给服务器
    5. 服务器将hash1(hash2(password))hash2(hash1(password))
    6. 进行比较

      这种方式(初始注册期间除外),无需依赖安全网络;因为hash2每次都不同,即使攻击者拦截了发送到服务器的所有内容,他们也无法窃取任何让他们自己冒充用户的凭据。

      这是一个存在的过程,如果是,它叫什么?我一直在努力研究它,但我不确定它会被称为什么,所以我没有找到任何匹配的东西..

      如果没有,是否有更好的方法来实现同一目标?

0 个答案:

没有答案