-
Notifications
You must be signed in to change notification settings - Fork 198
Open
Labels
Description
增强密钥安全算法引入的必要性
有人反馈目前项目的安全弱点为两重加密的密钥重用,以及统一使用SHA256算法存在安全风险。
反馈中建议使用KDF(密钥衍生算法),本质上是向密钥中加盐值,并进行多次哈希迭代,得到一个更高强度的密钥。
盐值和其效率
参照现有案例,Bitwarden对Argon2算法的实现,是以用户的用户名作为salt来进行哈希迭代。
如果本项目要引入完整的真随机盐(16字节),势必显著增加最终的密文长度,是和原先针对AES256算法中iv之实现一样的问题,由于密文长度的必须限制,无法 引入特别强的iv/盐随机性。
缩短盐值到2~3字节是一个可行的方案,特别在短文本加密时。
安全模式
安全模式将在未来加入。
提供最高级别的完整安全性,例如完整的IV,安全性强的KDF算法等等。可以预见的是密文长度会膨胀很多,但这是为了安全所做出的牺牲。
安全模式将默认关闭,开启时将会警示用户。