加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Android系统安全

发布时间:2022-12-08 14:03:10 所属栏目:安全 来源:互联网
导读: 系统安全
android安全机制如下:
系统和内核安全
在操作系统级别,Android 平台不仅提供 Linux 内核的安全功能,而且还提供安全的进程间通信 (IPC) 机制,以便在不同进程中运行的应用之间安

系统安全

android安全机制如下:

系统和内核安全

在操作系统级别,Android 平台不仅提供 Linux 内核的安全功能,而且还提供安全的进程间通信 (IPC) 机制,以便在不同进程中运行的应用之间安全通信。操作系统级别的这些安全功能旨在确保即使是原生代码也要受应用沙盒的限制。无论相应代码是自带应用行为导致的结果,还是利用应用漏洞导致的结果,系统都能防止违规应用危害其他应用、Android 系统或设备本身。要了解您可以采取哪些措施来增强设备的内核安全性,请参阅内核配置。要了解必需的设置,请参阅 Android 兼容性定义文档 (CDD)。

Linux 安全

Android 平台的基础是 Linux 内核。Linux 内核多年来得到了非常广泛的应用,在千百万对安全敏感的环境中都有它的身影。在历经无数攻击以及成千上万的开发者的不断研究和修复之后,Linux 已成为许多公司和安全专业人士信任的一款既稳定又安全的内核。

作为移动计算环境的基础,Linux 内核为 Android 提供了一些关键的安全功能,其中包括:

基于用户的权限模式

防止用户 A 读取用户 B 的文件

确保用户 A 不会占用用户 B 的内存

确保用户 A 不会占用用户 B 的 CPU 资源

确保用户 A 不会占用用户 B 的设备(例如,电话、GPS、蓝牙)

这样就设置了一个内核级应用沙盒。内核会在进程级别利用标准的 Linux 机制(例如,分配给应用的用户 ID 和组 ID)实现应用和系统之间的安全防护。默认情况下,应用不能彼此交互,而且应用对操作系统的访问权限会受到限制。如果应用 A(一个单独的应用)尝试执行恶意操作,例如在没有权限的情况下读取应用 B 的数据或拨打电话,操作系统会阻止此类操作,因为应用 A 没有适当的用户权限。这一沙盒机制非常简单,可审核,并且基于已有数十年历史的 UNIX 风格的进程用户隔离和文件权限机制。

由于应用沙盒位于内核层面,因此该安全模型的保护范围扩展到了原生代码和操作系统应用。位于更高层面的所有软件(例如,操作系统库、应用框架、应用运行时环境和所有应用)都会在应用沙盒中运行。在某些平台上,为了执行安全防护机制,会限制开发者只能使用特定的开发框架、API 或语言。在 Android 上,并没有为此而限制开发者必须如何编写应用,在这方面,原生代码与解释型代码一样安全。

在某些操作系统中,一个应用中的内存异常可能会破坏位于同一内存空间中的其他应用的内存数据,进而导致设备的安全性荡然无存。在 Android 中,由于所有应用及其资源都在操作系统级别的沙盒内,因此,即使出现内存数据损坏,也只能在相应应用的环境内执行代码,而且只能以操作系统确立的权限执行代码。

与所有安全功能一样,应用沙盒并不是坚不可摧的。不过,要在经过适当配置的设备上攻破应用沙盒这道防线,必须要先攻破 Linux 内核的安全功能。

系统分区和安全模式

系统分区包含 Android 的内核,以及操作系统库、应用运行时、应用框架和应用。该分区设为了只读分区。当用户将设备启动到安全模式时,第三方应用可由设备所有者手动启动,但不会默认启动。

文件系统权限

在 UNIX 风格的环境中,文件系统权限可确保一个用户不能更改或读取另一个用户的文件。在 Android 中,每个应用都以自己的用户身份运行。除非开发者明确地与其他应用共享文件,否则一个应用不能读取或更改另一个应用创建的文件。

安全增强型 Linux

Android 使用安全增强型 Linux (SELinux) 来实施访问控制策略并针对进程建立强制访问控制 (mac) 机制。如需详细信息,请参阅 Android 中的安全增强型 Linux。

验证启动

Android 6.0 及更高版本支持验证启动功能和 device-mapper-verity。验证启动功能旨在保证设备软件(从硬件信任根直到系统分区)的完整性。在启动过程中,无论是在哪个阶段,都会在进入下一个阶段之前以加密形式先验证下一个阶段的完整性和正确性。

Android 7.0 及更高版本支持严格强制执行的验证启动,这意味着遭到入侵的设备将无法启动。

如需更多详细信息,请参阅验证启动。

加密算法库 KeyChain/KeyStore/JCA/BC/BoringSSL/KeyMaster/TEE

Android 提供了一系列加密 API 供应用使用,其中包括标准和常用加密基元(例如,AES、RSA、DSA 和 SHA)的实现。此外,Android 还提供了适用于更高级别协议(例如,SSL 和 HTTPS)的 API。

Android 4.0 中引入了 KeyChain 类,以便应用使用系统凭据存储空间来存储私钥和证书链。

获取设备的 Root 权限

默认情况下系统安全,在 Android 上,只有内核和一小部分核心应用能够以 Root 权限运行。Android 不会阻止具有 Root 权限的用户或应用修改操作系统、内核或任何其他应用。一般来说,Root 对所有应用和所有应用数据拥有完整访问权限。如果用户在 Android 设备上更改权限来向应用授予 Root 访问权限,那么在面对恶意应用以及潜在应用缺陷时,安全风险会更大。

能够修改自己的 Android 设备对于使用 Android 平台的开发者来说非常重要。在许多 Android 设备上,用户都可以解锁引导加载程序,以便安装替代操作系统。这些替代操作系统可能会允许所有者获得 Root 访问权限,以便他们调试应用和系统组件,或者使用 Android API 未提供给应用的功能。

在某些设备上,能够亲手控制设备并拥有 USB 数据线的用户可以安装能够向其提供 Root 权限的新操作系统。为了保护所有现有用户数据免遭入侵,引导加载程序解锁机制要求引导加载程序在解锁期间清空所有现有用户数据。利用内核错误或安全漏洞获得 Root 访问权限后,可以绕过这种保护机制。

使用存储在设备上的密钥对数据进行加密的做法并不能防止 Root 用户访问应用数据。应用可以使用存储在设备之外的密钥(例如,存储在服务器上的密钥,或用户密码)进行加密,从而添加一道数据保护屏障。在没有密钥的情况下,这种方法可以提供临时保护,但应用迟早要获取密钥来进行解密,此时 Root 用户也就可以取得相应密钥了。

一种更强大的防止 Root 用户获取数据的方式是使用硬件解决方案。OEM 可以选择实现可限制特定类型的内容的访问权限的硬件解决方案,例如,适用于视频播放的 DRM 解决方案或适用于 Google 电子钱包的 NFC 相关可信存储空间。

如果设备丢失或被盗,Android 设备上的全文件系统加密功能会用设备密码来保护加密密钥,这样一来,修改启动加载程序或操作系统的做法将不足以在没有用户设备密码的情况下访问用户数据。

用户安全功能

Android 5.0 及更高版本支持全盘加密。全盘加密功能旨在用一个密钥(由用户的设备密码加以保护)来保护设备的整个用户数据分区。在启动时,用户必须先提供其凭据,然后才能访问磁盘的任何部分。

Android 7.0 及更高版本支持文件级加密。采用文件级加密时,可以使用不同的密钥对不同的文件进行加密,并且可以对这些文件进行单独解密。

如需详细了解如何实现文件系统加密,请参阅加密部分。

设备管理员可以要求使用密码和/或设置密码复杂度规则。

除了 Android 系统自带的应用,提供设备管理解决方案的第三方也可使用该 API。如需详细了解该 API,请参阅设备管理。

身份验证生物识别解锁

模式 冒名攻击 欺骗攻击

指纹 不适用 指纹 + 指纹模具

脸部 试图看上去像是用户的脸部 高分辨率照片、乳胶(或其他高质量)面罩

语音 试图听起来像是用户的声音 录音

虹膜 不适用 高分辨率照片 + 隐形眼镜

文件加密TrustZone-TEE

参考开源的optee

InSE芯片系统

芯片系统COS,之前实验室做过相关的自主研发芯片,C51 CPU集成了小型的COS系统,不支持applet。熟悉基本原理。

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!