我对 Android 的安全性有疑问。我打算在我的 android 应用程序中使用一些 sdks/库。我想确保 sdks/library 不会访问我用户的数据。一种方法是以加密格式保存用户数据。我想知道实现这一目标的最佳实践是什么。
任何输入都受到高度赞赏。
谢谢,马南
如果您在应用程序中包含库,那么它们将在与应用程序的其余部分相同的 UID 下运行,因此实际上没有办法防止它们这样做。即使您的应用程序加密了数据,它也需要访问可用于解密数据的密钥,因此这些库由于它们作为 yoru 应用程序的一部分运行,因此也可以访问这些密钥。(请注意,这意味着一个非常复杂的库被指定用于访问应用程序中的数据,这是极不可能的。)
如果您真的对此感到担忧,那么您可以将库代码包含在一个单独的应用程序中,并让您的应用程序调用它。例如,您可以将库集合部署为后台服务,并需要自定义权限才能绑定到只有您的应用程序才会请求/拥有的权限。然后,您可以使用自定义权限来锁定对您自己的应用程序中的函数/API 的访问,这些函数/API 将提供库所需的数据,以便只有您的单独库才能获取该数据。
值得(再次)指出,如果您打算使用标准/通用库,那么它们的可能性包括代码来专门了解您的应用程序正在使用的数据结构并获得对该数据的非法访问的可能性很小。也许我在这里并没有真正理解您的威胁模型。
如果您想确保没有人会访问您的私人数据,最好对其进行加密,在我的一个项目中,我使用http://sqlcipher.net/并将其推荐给您。
它是一个围绕 sqlite3 的包装框架,它允许加密数据库文件,在这种情况下,从安全的角度来看它会更可靠