前端之家收集整理的这篇文章主要介绍了
android – 存储盐和加密文件是否会破坏安全性?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个
Android应用程序,旨在使用AES 256加密和解密
文件.我使用AES-CBC模式和PBKDF2从
用户输入的密码中导出AES密钥.此外,我正在为每个
文件的加密密钥
生成一个安全的伪
随机盐.我正在使用加密
文件存储IV和salt,因此我可以重新读取它们并稍后重新
生成密钥以便能够解密
文件.
我的问题:将盐与加密文件一起存储会破坏安全性和盐本身的任何含义吗?知道盐和IV的攻击者不能对加密文件进行离线暴力攻击以找出加密密钥吗?
盐的主要目的不是秘密,而是为了确保攻击者在尝试暴力破解密码时不能使用快捷方式,例如使用彩虹表(即一个现有的表,或者一个新表用于多个加密
文件),或同时强制多个收集的
文件(应该有不同的盐).
只要您的密码具有足够的熵并且密钥派生函数中的迭代次数足够高,将盐与密文一起存储就没有问题.
单独的盐不允许任何人解密文件.
此外,如果你想保持盐的秘密(它通常被称为“胡椒”而不是盐),你将不得不考虑一些机制,以获得合法解密的合适盐.
原文链接:https://www.f2er.com/android/315906.html