[問題] 加密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