我对密码安全有一个想法,并且我试图找出它是否已经是一个东西,如果是这样,我需要做些什么来实现它。
目前,我正在研究的密码系统是(简化,不考虑像盐这样的东西):
hash(password)
我关心的是第1步;要么截获发送的密码,要么“假的”服务器可以通过让用户尝试登录来收集密码。我可以通过添加一个中间哈希或让哈希发生在客户端来稍微改进它(所以至少有人拦截通信只会获得对这个服务器的访问权限,而不是其他具有不同哈希函数但具有相同密码的访问者),但那不会改善了这台服务器的状况。
我在想,如果我有一对可交换的哈希函数,其中一个可以用随机密钥修改,我可以将这个过程变为:
hash1(password)
hash2()
hash2()
发送给用户hash2(password)
返回给服务器hash1(hash2(password))
与hash2(hash1(password))
这种方式(初始注册期间除外),无需依赖安全网络;因为hash2每次都不同,即使攻击者拦截了发送到服务器的所有内容,他们也无法窃取任何让他们自己冒充用户的凭据。
这是一个存在的过程,如果是,它叫什么?我一直在努力研究它,但我不确定它会被称为什么,所以我没有找到任何匹配的东西..
如果没有,是否有更好的方法来实现同一目标?