0


关于Android系统的安全权限

权限的目的是保护用户的隐私。

Android 安全架构的中心设计点是:在默认情况下任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读取或写入用户的私有数据(例如联系人或电子邮件)、读取或写入其他应用程序的文件、执行网络访问、使设备保持唤醒状态等。

由于每个Android 应用都是在进程沙盒中运行,因此应用必须显示共享资源和数据。显示共享的方法是声明需要哪些权限来获取基本沙盒未提供的额外功能。应用以静态方式声明它们需要的权限,然后Android系统提示用户同意。

一个Android 应用默认情况下是不拥有任何权限的。在默认情况下,一个应用没有权限进行可能会造成安全影响的操作。安全影响包括此应用是否会对其它应用,操作系统,或者用户信息有安全威胁。

如果应用确实需要一些安全权限,对权限要求是合理的,就需要在 AndroidManifest.xml中静态地声明需要用到的权限。

Android 权限分成四类:

  • 普通权限(normal permission):也叫正常权限,即使拥有了该类权限,用户的隐私数据被泄露篡改的风险也很小。例如,设置时区的权限就是正常权限。如果应用声明其需要正常权限,系统会自动向应用授予该权限。
  • 敏感权限(dangerous permission):也叫危险权限,运行时权限,跟普通权限相反,一旦某个应该获取了该类权限,用户的隐私数据就面临被泄露篡改的风险。比如 READ_CONTACTS 权限就属于危险权限。如果应用声明其需要危险权限,则用户必须明确向应用授予该权限。
  • 签名权限(signature permission):该类权限只对拥有相同签名的应用开放,比如手机QQ 自定义了一个permission 且在权限标签中加入 android:protectionLevel=”signature”,而访问它的某个数据时,必须要拥有该权限。然后微信和 QQ 发布时采用相同的签名,微信就可以申请访问 QQ 中的此权限,并使用对应权限控制的数据。其他程序即使知道了这个开放数据的接口,也在 Manifest 注册了权限,但由于应用签名不同,还是无法访问的对应的数据。
  • 系统签名权限(signatureOrSystem permission):与 signature permission类似,但它不光要求签名相同,还要求是同类的系统级应用,一般手机厂商开发的预制应用,才会用到该类权限。

权限组和动态权限

任何权限都可属于一个权限组,包括正常权限和应用定义的权限。但权限组仅当权限危险时才影响用户体验。可以忽略正常权限的权限组。

如果设备运行的是Android 6.0(API 级别 23),并且应用的targetSdkVersion 是 23 或更高版本,则当用户请求危险权限时系统会发生以下行为:

  • 如果应用请求其Manifest中列出的危险权限,而应用目前在权限组中没有任何权限,则系统会向用户显示一个对话框,描述应用要访问的权限组。对话框不描述该组内的具体权限。例如,如果应用请求 READ_CONTACTS 权限,系统对话框只说明该应用需要访问设备的联系信息。如果用户批准,系统将向应用授予其请求的权限。
  • 如果应用请求其Manifest中列出的危险权限,而应用在同一权限组中已有另一项危险权限,则系统会立即授予该权限,而无需与用户进行任何交互。例如,如果某应用已经请求并且被授予了READ_CONTACTS权限,然后它又请WRITE_CONTACTS,系统将立即授予该权限。

除了危险权限,Android 还有两个特殊敏感权限,但需要通过在设置应用中授权:

  • SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技。(通过发送 intent action Settings.ACTION_MANAGE_OVERLAY_PERMISSION请求权限. 通过接口Settings.canDrawOverlays()检测权限)
  • WRITE_SETTINGS修改系统设置(通过发送 intent action Settings.ACTION_MANAGE_WRITE_SETTINGS.请求权限. 通过接口Settings.System.canWrite()检测权限)

这两个特殊权限的授权,和危险权限授权不同,它使用startActivityForResult 启动授权界面来完成。另外Location权限组的相关危险权限,除了要动态授权,也是需要在设置中进行授权的。

所有危险的Android 系统权限都属于权限组(这些权限组也包含一些非危险权限)。

以Android Pie(api level 28)最新代码总结(官网文档有细节缺失),Android 系统预定义了10 组权限组(包含了所有28 种危险权限,4 种其它权限),大部分普通权限不属于任何分组。

使用安卓系统提供的安全设置可以帮助保护您的个人信息并减少对隐私的风险。

以下是一些简单而有效的方法:

  1. 更新系统:始终保持您的安卓系统和应用程序更新到最新版本,这样可以确保您的设备具有最新的安全补丁和功能。

  2. 使用屏幕锁:在设置中启用屏幕锁(如密码、图案或指纹识别),以防止他人未经许可进入您的设备。确保使用复杂且独特的密码或图案,避免使用常见的组合或简单的密码。

  3. 指纹和面部解锁:尽可能使用指纹或面部解锁功能。这比较难以伪造或破解,并提供更高的安全性。

  4. 管理应用权限:在应用程序管理中,审查和控制每个应用程序的权限。只允许应用程序访问其需要的最低权限,而非一次性授予所有权限。

  5. 定位服务:对定位服务进行管理,只允许授权的应用程序使用此功能。选择在仅使用应用程序时授权或选择限制定位精度,以减少对隐私的侵犯。

  6. 安装应用程序:只从官方的应用商店(如Google Play)下载应用程序,并定期检查并删除无用的或已被官方认定为不安全的应用。

  7. 数据加密:在设置中启用设备存储的数据加密功能。这样即使设备丢失或被盗,您的个人信息也能得到一定程度的保护。

  8. 使用VPN:考虑使用受信任的VPN(虚拟专用网络)服务加密您的互联网连接。这可以帮助保护您的在线活动,隐藏您的IP地址并提供更安全的网络连接。

  9. 了解应用权限:在安装新应用之前,仔细阅读并了解应用所请求的权限。如果应用要求的权限看起来与其功能无关或过于冗余,请谨慎安装。

  10. 定期备份数据:定期备份您的个人数据,以防止数据丢失或设备受损。

  11. 开启远程擦除:在安卓设备管理器或类似的服务中启用远程擦除功能。这样,如果您的设备丢失或被盗,您可以远程删除其中的个人数据。最重要的是,保持警惕并保持与您个人信息相关的最佳安全实践。这包括不点击可疑的链接或下载未知来源的文件,不在公共Wi-Fi网络上输入敏感信息,以及定期审查和更新您的密码。

标签: android 安全

本文转载自: https://blog.csdn.net/Truelove0/article/details/136675453
版权归原作者 Truelove0 所有, 如有侵权,请联系我们删除。

“关于Android系统的安全权限”的评论:

还没有评论