android – 存储盐和加密文件是否会破坏安全性?

前端之家收集整理的这篇文章主要介绍了android – 存储盐和加密文件是否会破坏安全性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个 Android应用程序,旨在使用AES 256加密和解密文件.我使用AES-CBC模式和PBKDF2从用户输入的密码中导出AES密钥.此外,我正在为每个文件的加密密钥生成一个安全的伪随机盐.我正在使用加密文件存储IV和salt,因此我可以重新读取它们并稍后重新生成密钥以便能够解密文件.

我的问题:将盐与加密文件一起存储会破坏安全性和盐本身的任何含义吗?知道盐和IV的攻击者不能对加密文件进行离线暴力攻击以找出加密密钥吗?

解决方法

盐的主要目的不是秘密,而是为了确保攻击者在尝试暴力破解密码时不能使用快捷方式,例如使用彩虹表(即一个现有的表,或者一个新表用于多个加密文件),或同时强制多个收集的文件(应该有不同的盐).

只要您的密码具有足够的熵并且密钥派生函数中的迭代次数足够高,将盐与密文一起存储就没有问题.
单独的盐不允许任何人解密文件.

此外,如果你想保持盐的秘密(它通常被称为“胡椒”而不是盐),你将不得不考虑一些机制,以获得合法解密的合适盐.

猜你在找的Android相关文章