【问题标题】:How to secure SQLITE DATABASE in android?如何在 android 中保护 SQLITE DATABASE?
【发布时间】:2019-09-17 05:58:24
【问题描述】:

目前我正在开发一个 android 应用程序,用于存储用户的重要数据,例如密码、卡号、网站用户名和密码等。我决定使用 SQLITE DB,以便用户的数据可以存储在他们自己的手机中以及我我计划实施 AES-256 ALGORITHM(SQLCiper) 以便使用密钥为数据提供加密。但我担心的是,如果有人进行逆向工程或生根,它会发挥多大作用以及会发生什么?

请帮助我弄清楚这一点。

提前致谢。

【问题讨论】:

    标签: android sqlite android-studio android-sqlite sqlcipher


    【解决方案1】:

    它根本不起作用。当然,您可以加密数据库。但是加密密钥在哪里?它在您的应用程序中。小型逆向工程将获得关键。

    因此,您决定将密钥设为随机字符串并将其存储在安全存储中。这更强大......但后来我使用 AOSP 编译了一个自定义操作系统并覆盖了安全存储功能,以便还将存储到磁盘的数据记录下来。你设置了障碍,仅此而已。

    因此,您决定将密钥保留在服务器上,并将其作为 https 请求的一部分发送出去,只保留在内存中。现在我需要做一些严肃的逆向工程。你会阻止脚本小子,但不会阻止经验丰富的逆向工程师。

    您实际上是如何确保数据安全的?根本不要把它放在客户端上。然后它完全安全。当然,您现在必须保护客户端和服务器之间的协议。并且不要给客户任何他不应该使用的数据——如果你有所有用户的信息,只把这个用户的信息放在客户端数据库中。

    基本上,您不会对授权用户保密数据。您最多可以设置几个减速带。确定数据实际上是多么秘密,您期望谁是攻击者(无聊的高中生?经验丰富的逆向工程师?国家?)并使用它来确定投入多少精力,以及数据应该存储在哪里。

    【讨论】:

    • +1 表示及时响应。作为一个初学者,我没有正确理解。如果你不介意你能详细解释一下最终判决吗?
    • 在安全方面,攻击者是谁很重要。它不是“这是安全的”标志,安全性是关于分层保护和不同级别的威胁。您是否担心不经意间的黑客攻击?一些可以减慢普通用户速度的事情很好。您是否担心经验丰富的逆向工程师?更多的努力,更多的时间,更多的钱。您是否担心极端情况(NSA、MI-6、摩萨德)?甚至更多。它权衡了您要花多少钱来担心更复杂的攻击。您的数据真正的秘密是什么?您需要保护多少?
    • 对我来说,为了安全地保护我的用户数据,我需要考虑所有级别的攻击者。所以根据你的经验,你能告诉我我该如何实现它。
    • 那么你需要聘请专家。那个级别的安全性他不在我的回答范围内
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2015-06-12
    • 2012-05-03
    • 2021-01-14
    相关资源
    最近更新 更多