sqlcipher – sqlcipher有多安全? 它被黑了吗?

它在页面级别encryptionSQLLite数据库,好吧,没有问题!

但是你的源代码呢? 它的编译,但即使编译的人可以反编译它,检索你的密码和解密数据库?

SQLCipher有多安全?

根据SQLCipherdevise文档 ,它基于安全组件(AES,OpenSSL,HMAC_SHA1,PBKDF2,…)。 如果这些说法是正确的,这听起来不错。

有点不同寻常(对我来说,至less)是每页有一个随机的IV。 这与典型的文件系统encryption模式AES-XTS稍有不同。 SQLCipher使用的devise与AES-XTS相比具有一定的优势,例如再次写入相同的数据不会产生相同的encryption页面。 但是,可能有缺点,例如我不太确定是否可以使用SQLCipher 移动复制页面(将encryption页面复制到另一个页面)。 这可能是不可能的,但是从devise文件我不知道这是如何被阻止的。 如果使用非标准的encryption模式,这就是风险:-)但即使这是一个问题,也不允许攻击者读取数据; 它只会允许某些types的攻击。 即使使用AES-XTS也可以进行某些types的攻击,所以我不会太担心。

你的源代码呢?

要保存所有内容,请勿将密码存储在代码中。 相反,让用户input密码,或将其存储在密钥链中。 据我所知,这对Android和iOS都是可能的,但我不知道细节。