[问题] 加密database

楼主: walelile (wakaka)   2019-04-06 01:42:40
各位前辈好
在Android上我使用Realm当database,想要对他进行加密
依照官方文件,会需要512 bits的key
翻了一些文章,目前拟定的流程如下,请问是否有可以改进的地方
1. random产生一组512 bits key (因为DB在App create时init, 现在没有想到其他解法)
2. 透过Keystore system用RSA加密后存入sharedPref
3. 使用DB时,从sharedPref取出加密过的key,
透过Keystore的private key解密成原本的key
4. 启用DB
目的: 希望不会被人取得DB内的资料(透过ADB拉出来之类的)
有点疑惑的地方是,这样是否会有可能掉了key (in sharedPref or in Keystore)?
还是说等有网络的时候,把这组random key存到server?
感谢各位
作者: now99 (陈在天)   2019-04-07 01:33:00
安全的作法大概就这样流程了,虽然Keystore有支援硬件芯片,不过目前只有pixel3有而已吧
作者: zcbxvsdf (东北一头羊)   2019-04-07 01:55:00
通常你掉Key的机会,DB应该也被清空了
楼主: walelile (wakaka)   2019-04-07 07:32:00
了解,谢谢两位解惑
作者: kobe8112 (小B)   2019-04-07 15:25:00
不考虑直接用sqlcipher吗?
楼主: walelile (wakaka)   2019-04-07 18:07:00
没有直接用SQLite是因为不熟SQL语法XD
作者: kobe8112 (小B)   2019-04-07 18:11:00
嗯,那就是看你考量的安全强度需要到多高了,如果只是想防单纯直接拉DB出来读,那加解密都直接写在JAVA端也无不可

Links booklink

Contact Us: admin [ a t ] ucptt.com