4

我想制作一个像 McAfee Secure Container 这样的应用程序。容器应用程序应该启动其他(特定)应用程序并为它们提供隔离的执行环境。容器外不应该有数据共享,容器内的所有应用程序都应该使用容器的网络连接。

什么是前进的道路?

4

2 回答 2

2

我知道一种解决方案可以在其自己的 dalvik VM 中运行每个应用程序,并使用唯一 ID(uid ref linux)来保护该应用程序的所有资源。它利用 linux 文件权限来保护这些资源。让应用程序使用相同的 UID 运行的唯一方法是使用相同的发布者密钥对其进行签名并在清单中声明此 ID。要使资源在世界范围内可读,您必须在应用程序中打开资源时明确声明这一点。此外,如果应用程序在清单中声明了该权限,则它们只能访问某些系统资源。想想IO操作等等。这些权限将被提示给用户和安装时间。

...它被称为Android :-)

或者换句话说,您搜索的内容比 Android 系统已经提供的内容还多吗?如果您正在寻找安全性,我会说 Android 系统本身就非常安全。下面列出了我能想到的一些威胁。

一个可能的威胁是系统本身(而不是应用程序)受到损害(root 左右)。然后,您的所有应用数据都将在该系统上公开。解决方案是加密您的数据。Google for Android Derived Key以获取有关如何从用户密码中获取密钥并使用该密钥加密存储在设备上的敏感数据的更多信息。这里的主要规则是仅在确实必须存储敏感数据时才存储敏感数据,并在这样做时对其进行加密。还要确保使用 CBC 模式而不是 ECB 模式并提供盐和 IV。

永远不要认为您的代码已保存。即使它被混淆也不行。混淆并不会导致无法以可读格式获取代码。它只会让事情变得更难。因此,在代码中保留敏感数据总是一个坏主意。

我能想到的另一个可能的威胁是网络流量。使用 SSL/TLS 并验证主机名。通过使用生成的令牌进行身份验证来限制通过网络的凭据。通过网络加密数据,这次使用动态 IV。还要验证输入并注意 SQL 注入。

于 2013-09-17T19:31:32.543 回答
0

简短的回答:您可以通过动态库加载来实现这一点。

长答案请参考: https ://www.youtube.com/watch?v=siVS2jmPABM

于 2014-12-22T10:54:13.230 回答