android Room 数据库存储敏感数据安全吗?

Kou*_*hik 2 security android reverse-engineering android-room

我正在一个项目中工作,我必须将数据从服务器获取到本地数据库。我正在考虑房间数据库,它是 android Jetpack 组件的一部分(我猜)。我在堆栈溢出中搜索了很多关于在房间中存储数据是否安全的信息?,但他们都不能满足我。虽然互联网上没有什么是安全可靠的,但我只是想破解房间数据库的可能方法是什么?

简而言之,我只想知道将数据本地存储在 Room 数据库中是否安全?请问有人可以告诉我 Room 数据库是否安全吗?或者有人如何通过逆向工程获得房间数据库?

Suj*_*del 5

Room 将其 sqlite 文件存储在应用程序的内部数据目录中,因此其他应用程序无法访问(包括用户,只要手机未 root)。

对于正常使用情况来说应该没问题。如果您需要额外的安全层,您可以使用 SqliteCipher 来加密您的数据库。您可以直接将 sqlcipher 与 room 一起使用。

final byte[] passphrase = SQLiteDatabase.getBytes(userEnteredPassphrase);
final SupportFactory factory = new SupportFactory(passphrase);
final SomeDatabase room = Room.databaseBuilder(activity, SomeDatabase.class, DB_NAME)
  .openHelperFactory(factory)
  .build();
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息: https: //github.com/sqlcipher/android-database-sqlcipher#using-sqlcipher-for-android-with-room