我希望开发一个应用程序,其中用户数据非常敏感。我是开发新手,不确定以下技术是否对安全或效率必要。请留下你的评论。先谢谢。
为了提高安全性,我们可以避免使用市场(Play Store),并在个人设备上安装应用程序。这样做是否更安全?
我需要将数据存储在设备上。如何使数据安全,以便其他应用程序无法读取它?
我希望开发一个应用程序,其中用户数据非常敏感。我是开发新手,不确定以下技术是否对安全或效率必要。请留下你的评论。先谢谢。
为了提高安全性,我们可以避免使用市场(Play Store),并在个人设备上安装应用程序。这样做是否更安全?
我需要将数据存储在设备上。如何使数据安全,以便其他应用程序无法读取它?
是的,你可以在不使用Google Play应用的情况下安装你的应用。这是否更安全取决于您的安全要求。一般来说,从谷歌市场安装应用程序比从其他来源更安全。如果你想避免任何形式的安装,你可以考虑使用/实现一个应用程序阻止器(例如AppLock)或Kiosk模式应用程序(SureLock Kiosk Lockdown)。
安装的应用程序越少,受到攻击的可能性就越小(恶意软件,木马,潜在的不需要的程序)。因此从这个角度来看:是的,确实如此。然而,只要您没有root设备,应用程序数据(数据库,首选项)是相当安全的。写入SD卡的数据可以加密。
说到非Root设备:应用程序数据(首选项和数据库)以相当安全的方式保存。没有其他应用程序可以访问它。从SD卡中写入的数据可以通过具有许可android.permission.READ_EXTERNAL_STORAGE
或android.permission.WRITE_EXTERNAL_STORAGE
的任何其他应用程序读取。您必须加密此数据。
看看Root设备:你(几乎)没有机会以安全的方式存储数据,因为用户/攻击者可以安装任何工具来分析完整的内存和存储。在这里“几乎”意味着,您可以尽可能地隐藏您的加密/解密算法,使得很难在SD卡上解密数据。最终,破解您的加密只是努力的问题。
p.s.如果您想深入了解技术细节,您可以查看此书。
p.p.s. 想象一下以下的情况:有人偷走并对您的手机进行 root 处理。在这种情况下,窃贼很容易复制数据库并读取您表中的所有内容。让我补充一点:这是一件非常容易做到的事情,因为现在互联网上存在许多 rooting 工具和手册,同样适用于之后访问应用程序数据。
加密可以使应用程序数据更难读取,如果您在每次应用程序启动时要求用户输入加密密码,那么它甚至可能达到 100% 安全(假设密码强度高且未存储在应用程序中,并且应用程序在偷窃时未运行)。当然,您还必须选择一个强大的加密算法(如 AES,Twofish 等)。
但是,只要您不失去手机并且手机没有被 root,您的数据就是安全的 - 很可能是这样。我说“很可能”是因为过去曾经出现过一些漏洞,可以获得系统范围内的访问权限。
因此,您可以看到这严重取决于您的需求以及数据的敏感程度。