安卓应用安全

Sal*_*lah 5 security storage android store google-play

我想开发一个用户数据非常敏感的应用程序。我是开发新手。所以不确定以下技术对于安全性或高效性是必要的。请留下您的评论。提前致谢。

  1. 为了额外的安全性,我们可以避开市场(游戏商店)并在个人设备上安装应用程序。它使它更安全吗?

  2. 我必须在设备上存储数据。我们如何确保数据安全,让其他应用程序无法读取?

Tri*_*mon 3

  1. 是的,您可以在不使用 Google Play 应用的情况下安装您的应用。这是否更安全取决于您的安全要求。一般来说,从 Google Market 安装应用程序比从其他来源安装应用程序要安全得多。如果您想避免任何类型的安装,您可以考虑使用/实施应用程序拦截器(例如AppLock)或 Kiosk 模式应用程序(SureLock Kiosk Lockdown

    安装的应用程序越少,潜在的攻击者(恶意软件、木马、潜在有害程序)就越少。所以从这个角度来看:是的,确实如此。但是,只要您没有 root 设备,应用程序数据(数据库、首选项)就相当安全。写入 SD 卡的数据可以加密。

  2. 谈到无根设备:应用程序数据(首选项和数据库)以非常安全的方式保存。没有其他应用程序可以访问它。写入 SD 卡的数据可以从具有权限android.permission.READ_EXTERNAL_STORAGE或 的任何其他应用程序读取android.permission.WRITE_EXTERNAL_STORAGE。您必须加密这些数据。

    查看获得root 权限的设备:您(几乎)没有机会以安全的方式存储数据,因为用户/攻击者可以安装任何工具来分析完整的内存和存储。几乎意味着,你可以尝试尽可能隐藏你的加密/解密算法,这样SD上的数据就很难解密了。最终,破解你的加密只是一个努力的问题。

ps如果你想深入了解技术细节,你可以看看这本书

pps想象一下以下场景:有人偷了你的手机并root了你的手机。在这种情况下,盗窃者很容易复制数据库并读取表中的所有内容。让我补充一下:这是可以很容易完成的事情,因为现在互联网上存在很多用于生根的工具和手册;之后访问应用程序数据也是如此。

加密会使读取应用程序数据变得更加困难,并且 - 如果您在每次应用程序启动时要求用户提供加密密码 - 它甚至可能是 100% 安全的(假设应用程序中未存储强密码,并且应用程序当盗窃者偷走它时,它没有运行)。当然,您还必须选择强大的加密算法(AES、Twofish,...)。

但是,只要您不丢失手机并且手机未root,您的数据很可能是安全的。我说最有可能是因为过去存在许多漏洞,这使得获得系统范围的访问成为可能。

因此,您会发现这很大程度上取决于您的要求以及数据的敏感程度。