我知道散列用于为加密算法密钥带来正确长度的明文密码。但是密码哈希是否存储在加密容器之外以验证密码?如果是这样的话,这不是一个安全漏洞吗?攻击者可以只破解哈希,而不是攻击加密。像rar2john或zip2john这样的工具就是这样工作的吗?
如果不是,它们是如何工作的,以及为什么哈希存储在加密容器的外部?
发布于 2017-03-22 00:40:57
由于两个主要目的,哈希是具有加密数据的容器的一部分:
integrity check --而是对加密密钥进行散列,然后对加密的容器进行散列以接收摘要。然后,通信信道的另一边将散列接收到的加密数据,并验证哈希是否匹配。如果他们做了匹配-数据是在传输和解密过程开始时未被篡改的。authentity check -如果容器在传输过程中被截获,加密数据和哈希都被替换了怎么办?为了确保这种情况不会发生,使用了类似于hmac的某种类型的密钥派生散列。然后,在不知道密钥的情况下,攻击者无法篡改数据,因此对方不会检测到。显然,在实际传输加密数据之前,hmac密钥应该在各方之间单独共享。作为加密密钥-在AES场景中,在传输加密数据之前,双方都应该知道密钥。通常,它是使用一些非标准密码学(如RSA )共享的。
谷歌SSL或TLS阅读更多关于对称密码和非对称密码如何在这种通信方式中发挥作用的文章。
https://security.stackexchange.com/questions/154533
复制相似问题