首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么移动应用程序具有细粒度的权限,而桌面应用程序却没有?

为什么移动应用程序具有细粒度的权限,而桌面应用程序却没有?
EN

Security用户
提问于 2015-03-13 07:40:08
回答 6查看 5.5K关注 0票数 44

Android应用出于安全考虑使用细粒度权限,iOS应用程序也是如此。Windows 8.1应用程序没有类似的权限模式,到目前为止,我尝试过的所有Linux版本都没有,我猜Mac也没有,对吗?

为什么这些细粒度的权限在移动设备上被认为是必要的,而在桌面系统上却不是必需的?用户对移动设备上的应用程序的信任是否少于桌面系统上的应用程序?

10或更高版本的Linux和Mac OS版本会有它们吗?

PS:似乎有些人认为这是为什么移动设备的应用程序比桌面应用更严格呢?的一个可能的重复-但这两个问题至少在角度上不同(开发人员/用户)。如果你读了答案,你也会看到,大多数用户认为这两个问题是不同的:

EN

回答 6

Security用户

回答已采纳

发布于 2015-03-13 10:27:07

智能手机拥有细粒度的权限而桌面计算机却没有的主要原因有两个。

  1. 历史。大型机操作系统有一种向用户授予权限的传统,而不是对程序的权限,这一传统被转移到小型计算机/工作站/桌面上;与现有程序保持兼容性的愿望限制了更改程序的能力。智能手机与现有的应用程序生态系统完全不同,因此存在着改变权限模型的机会。
  2. 智能手机比台式机要同质得多,而且通常不会随着时间的推移而改变硬件配置。这样设置权限系统就容易多了。

也就是说,桌面操作系统有细粒度的权限系统.例如,Linux有AppArmor、SELinux、Bitfrost等。

票数 42
EN

Security用户

发布于 2015-03-13 09:21:19

由于技术原因,在尝试使用应用程序之前,不可能知道应用程序需要哪些权限,这意味着应用程序需要某种方式来声明这些权限。桌面操作系统上的应用程序从未这样做过。当用户启动遗留应用程序时,您只能假设它需要所有的东西(培训用户接受长时间的功能列表而无需经过深思熟虑),或者在应用程序需要的时候使用弹出(这可能会破坏一些无法处理突然中断的应用程序)。这两种解决方案都很糟糕,因此引入这样一种机制将破坏与旧软件的向后兼容性。

Windows 7试图改善这种情况,允许较新的应用程序在启动旧程序时声明它们不会做某些潜在的坏事,并添加“您希望程序对您的计算机进行更改”提示,除非该程序以管理员身份运行,否则它不会阻止一些更有潜在危害的事情发生。

像Linux这样的UNIX和UNIXoid操作系统允许使用它们的文件权限和所有权系统来限制程序的权限。硬件设备也被抽象为文件,并且可以由某个组拥有。因此,您可以通过使用不同的用户运行每个程序并将用户添加到拥有程序所需的硬件设备“文件”的组中来限制程序的功能。当然,这不是一个用户友好的解决方案,因为它需要大量的配置。

在开发智能手机操作系统时,开发人员没有必要确保其兼容性的遗留应用程序,因此他们有机会从一开始就把一切都做好。

另一个原因是智能手机比台式电脑更有可能侵犯隐私。智能手机有一个GPS传感器,一个麦克风,一个摄像头和一个永久的互联网连接,大多数用户通过他们进行私人和商业交流。所有这些都不会那么糟糕,当人们在任何时候都不带上这些设备或靠近他们的人时,不管他们去哪里。智能手机只是完美的间谍工具。当你在智能手机的控制下,你会得到完善的24/7监控用户和他们的周围。要访问这个工具,你所需要做的就是欺骗用户安装你的屁声音应用程序。

票数 21
EN

Security用户

发布于 2015-03-13 23:51:28

移动操作系统拥有应用程序的细粒度权限至少有两个重要原因,而桌面操作系统则没有:

  1. 历史。桌面操作系统可以追溯到几十年前,当时主要的威胁模型是不同的,因此有一些机制来处理这种(现在基本上已经过时)威胁模型。桌面操作系统是大型机操作系统的一种进化。在大型机上,主要关注的是多用户安全:操作系统需要确保一个用户不能攻击另一个用户。因此,桌面操作系统通常以多用户安全模型为基础,试图将用户彼此隔离,并确保一个用户不能在同一台计算机上攻击其他用户。然而,今天大多数机器都是单用户机器,主要的威胁不是其他用户,而是来自互联网上其他站点或数据的恶意攻击。因此,移动操作系统就是为了解决这种现代威胁模型而设计的。它们的目的是使下载和运行某个不受信任的开发人员制作的应用程序变得简单和安全;现有的机制(应用程序沙箱、权限系统、应用程序商店、应用程序审查)帮助使这个应用程序变得非常安全。因此,移动操作系统专注于保护您免受恶意/粗略应用程序的攻击,并将应用程序彼此隔离开来,而不是将用户与其他用户隔离开来。这在很大程度上解释了为什么移动操作系统拥有细粒度权限,而桌面操作系统却没有:细粒度权限在处理现代威胁模型(保护用户免受恶意/欺诈应用程序的影响)方面比旧的大型机威胁模型(相互保护用户)更有帮助。如果我们今天从头开始设计桌面操作系统,看起来可能更像现代移动操作系统,重点放在应用模型,应用威胁模型,而不是多用户威胁模型,等等。然而,由于遗留的限制,桌面操作系统要转向这种新方法并不容易:用户希望现有的桌面应用程序能够工作,因此操作系统不能简单地阻止它们。相比之下,当苹果和谷歌推出iOS和安卓系统时,它们都是没有遗留基础的新操作系统;它们没有任何现有的应用程序必须兼容,因此它们可以以桌面操作系统不容易做到的基本方式改变编程模式。
  2. 不同的用户基础,不同的权衡,不同的威胁。智能手机是一种大众市场的设备。他们必须为每个人工作。在桌面上,安装一个粗略的应用程序会让你的桌面表现不佳,让你的桌面被间谍软件弄得乱七八糟,并使系统变得缓慢或不稳定。在台式机上,如果你不知道你在做什么,你真的会把你的电脑的可靠性和性能搞砸。如果你的手机像这样工作,那是不能接受的--所以苹果和谷歌努力设计一个操作系统,以确保安装一个糟糕的应用程序不能做到这一点。这就带来了不同的权衡和不同的设计目标,自然会导致一个更封闭的平台,并使一些设计在桌面上可能被认为是可以接受的。此外,智能手机有各种各样的传感器,可以捕捉你生活中的很多部分(例如,记录对话、跟踪你的位置等),而且你的手机整天都在你身边,所以有可能会有更多的机会让你的隐私受到严重侵犯。这是建立一个更强大的安全模型的另一个动机。

尽管如此,现代桌面操作系统正开始慢慢地采用以应用为中心的移动操作系统的一些想法。例如:

  • Mac支持沙箱应用程序,这使得应用程序看起来更像移动应用程序。在Mac应用商店上的应用通常是砂箱。操作系统提供了一个细粒度的权限模型,应用程序必须声明它需要的权限(应享权利)。
  • Windows 8支持沙箱应用程序,其安全模型看起来非常类似于移动应用程序。特别是,Windows商店应用程序在沙箱中运行,必须声明它们想要的权限。用户可以查看应用程序具有哪些权限

顺便说一句,您可能会注意到,移动应用程序安全模型在很大程度上类似于web的安全模型: web也是基于相互隔离的站点,因此一个邪恶的网站不能攻击另一个网站。如果你认为移动应用类似于一个网站,那么移动应用沙箱现在看起来类似于浏览器的相同来源的策略。从历史上看,网络应用程序所能做的事情要有限得多,但随着HTML5的出现,这种情况正在发生变化。浏览器开始使web服务具有更广泛的功能(从传感器读取、读取和写入文件系统上的文件等),并开始实现权限系统来控制对这些资源的访问,就像移动操作系统一样。因此,您可以将其视为借鉴移动操作系统的一些想法的浏览器。

其他可能让你感兴趣的阅读:

票数 10
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/83692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档