保护Android应用程序敏感数据的最佳方法?
是的,这是一个相当普遍的问题,但我正在尝试找到处理一个应用程序的最佳方法,该应用程序涉及一个向应用程序分发敏感数据的Web服务器。任何链接、一般信息建议等。。将不胜感激保护Android应用程序敏感数据的最佳方法?,android,security,Android,Security,是的,这是一个相当普遍的问题,但我正在尝试找到处理一个应用程序的最佳方法,该应用程序涉及一个向应用程序分发敏感数据的Web服务器。任何链接、一般信息建议等。。将不胜感激 因为应用程序会在一定时间内存储从数据库检索的持久数据。。一切都变得有些棘手 如果你想确保用户除了查看你的应用程序之外看不到数据,那么加密确实是唯一的方法。即使是“受保护”的存储,如果设备是根设备,用户也可以访问。即使是加密也不是完全安全的,因为您需要在某个时刻解密数据以显示它。您将劝阻随意的浏览器,但不会劝阻坚定的黑客。使用HT
因为应用程序会在一定时间内存储从数据库检索的持久数据。。一切都变得有些棘手 如果你想确保用户除了查看你的应用程序之外看不到数据,那么加密确实是唯一的方法。即使是“受保护”的存储,如果设备是根设备,用户也可以访问。即使是加密也不是完全安全的,因为您需要在某个时刻解密数据以显示它。您将劝阻随意的浏览器,但不会劝阻坚定的黑客。使用HTTPS上的SSL传输数据,而不是HTTP。您需要在Web服务器上设置证书,但不太清楚它是如何工作的 如果你真的关心这些数据,那么在发送之前,用一种独特的算法对其进行进一步加密,并在数据到达应用程序时对其进行解密。我想就这些了。。除非您需要非常强大的功能,否则请基于TCP开发您自己的协议和/或使用其他端口。。也许那会有帮助 http://developer.android.com/reference/javax/net/ssl/package-summary.html 至于在应用程序中存储数据,您可以在存储数据之前对数据进行加密,或者可以使用SQLite以外的其他格式以提高安全性,因为您可以非常轻松地使用浏览器查看SQLite数据库 除非手机是根目录,否则不应该有办法从中提取数据 在设备上存储敏感数据 这在很大程度上取决于你的听众。通常,Android操作系统禁止应用程序通过经验证的Linux文件权限访问彼此的文件(即数据库、首选项文件、存储在应用程序私有目录中的常规文件)。但是,在根设备上,应用程序可以获得根访问权并读取所有内容。需要考虑的几件事:
将敏感数据从服务器传输到设备 你有几个选择。首先,始终使用HTTPS。启用HTTPS后,我将提出两个额外的安全措施:
time=1321802432&key=[生成的密钥]
其中,
generated key
由time
参数生成。例如:md5(时间+盐)
。当服务器收到此请求时,它可以做两件事:
key
是否确实等于md5(time+salt)
(请注意,只有客户端和服务器知道salt,并且可以与上面的API键类似地对其进行模糊处理),以及