gpt4 book ai didi

Android - 在sqlite数据库中存储敏感数据

转载 作者:IT王子 更新时间:2023-10-29 06:20:34 26 4
gpt4 key购买 nike

我需要将敏感数据存储在 android 应用程序的 sqlite 数据库中。

我如何确定这些数据非常安全?我知道我可以使用 key 来加密数据,但是我应该将 key 存储在哪里?我也不想要求用户填写 key ,我只想让它自己工作。因为我害怕逆向工程,所以我也不想在代码中放置加密 key 。

我发现了 SQLCipher .它说这是一种非常安全的加密数据库数据的方法,但为什么要这样呢?难道我不需要保留一把 key 来解锁这些信息吗?或者这真的是确保数据安全的完美方式吗?

如果不是,什么是(几乎)在 sqlite 数据库中存储敏感数据的防故障方法?

最佳答案

你说...

I don't want to ask the user to fill in a key either, I just want it to work on it's own. Because I am afraid of reverse engineering I don't want to put an encryption key in the code either.

不幸的是,您需要做其中一件事情(嗯,很可能)。您可以要求用户输入密码,然后使用为此目的设计的算法(称为基于密码的加密 - PBE - Android 包含一些良好的 PBE 算法标准)从中派生 key 。您可以将 key 存储在您的代码中或作为资源存储在您的 APK 中,但随后有人可以对其进行逆向工程。你可以这样做并混淆你的代码,这会减慢逆向工程过程,但你不能让它变得不可能(你的代码将需要在某个时候确定 key 所以这只是攻击者弄清楚它是如何做的问题它)。

这里尝试过的其他方法包括强制您的客户端连接回服务器以通过网络检索 key ......但是如果网络连接中断会发生什么以及什么阻止服务器将 key 提供给任何人,比如攻击者?好吧,那么您可以使用相互验证的 SSL 来确保只允许您的客户端获取它……但是您需要存储客户端 SSL 私钥……这与您现在遇到的问题完全相同。 :)

所以...底线是您需要一个 key (或类似的东西)来加密/解密数据。您可以存储它,让别人更难对其进行逆向工程。您可能会给用户带来不便并让他们输入密码。但是......你不知何故需要那些 secret 知识。

关于Android - 在sqlite数据库中存储敏感数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9515057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com