许多基于密码的加密实用程序(例如:KeePass、TrueCrypt)都在做一些事情......
- 使用超强随机生成密钥“数据密钥”加密数据。
- 根据用户提供的密码,使用另一个密钥“用户密钥”加密数据密钥。
- 当需要访问时,用户提供密码。密码用于重新创建用户密钥,它解密数据密钥,它解密数据。
想必这背后的逻辑是这样的:
- 用户提供的密码很糟糕,因此我们需要更好的密钥来保护数据。
- 用户仍然需要访问数据,因此我们需要一种方法让他们使用密码进行访问。
然而,这一切的底线是数据的保护仍然归结为用户提供的密码的强度和保护。那么,涉及单独密钥的额外开销的真正意义是什么?