问题描述
Android 和 iOS 平台上应用程序之间共享的硬件或数据集的大部分元素都受到严格控制,并且仅在 need-to-know 基础上明确提供给应用程序。例如,这可以让用户确保恶意手电筒应用程序不会上传他们的位置和联系人列表。
在 Ubuntu 的桌面上,实际上有两个权限级别的控制:用户和根。在用户的情况下,没有太多限制。它仍然可以连接到互联网,与它喜欢的大多数硬件接口,并读取/写入 /home/user/
中的任何文件。该模型假定用户有足够的能力确保他们使用的应用程序是合法的(这对于开源软件来说非常容易)。
所以我的问题是,移动平台上将对应用程序的功能进行什么样的限制和控制?由于都是相同的操作系统,该系统将如何溢出到桌面?所有程序都需要沙盒化吗?
我很想知道这个计划:)
附言。我喜欢 iOS 优于 Android 的方式之一是许多权限必须在用户首次运行时明确批准。结果是,如果你不想告诉 Facebook 应用程序你在哪里,你可以直接禁止它,而在 Android 上你只需要卸载应用程序并克服它\u2122。
我希望看到的系统是在应用需要执行命令的权限时使用“仅此一次”和 “Always” 选项请求权限。想在Map上找到自己吗?请求位置许可。就像一些 HTML5 API 的处理方式一样。
最佳办法
这是作为 Ubuntu App Developer Upload 规范的一部分进行的,特别是 the section on security 。
这仍处于早期阶段,但作为规范的摘录,并提供一些背景信息:
\\n
Once an application is installed, AppArmor will provide a security\\n sandbox to protect the user from malicious or simply broken code. To\\n accomplish this, each application will need a properly constructed,\\n and minimally permissive profile to restrict what their application\\n can access on the local system.
\\n
应用程序将通过 AppArmor 进行沙盒化,并且将根据应用程序的 AppArmor 安全配置文件授予权限。