Android 安全(1)---概述
安全
Android 采用了业界领先的安全功能,并与开发者和设备实现人员密切合作,以确保 Android 平台和生态系统的安全。要打造一个由基于 Android 平台以及围绕 Android 平台开发且由云服务提供支持的应用和设备组成的强大生态系统,稳定可靠的安全模型至关重要。为此,在整个开发生命周期内,Android 都遵循了严格的安全计划。
Android 是一款开放的系统。Android 应用使用通过 Android 平台提供的先进硬件和软件以及本地数据和收到的数据,为消费者带来创新和价值。为了实现这一价值,Android 平台提供了一个应用环境,该环境可以保护用户、数据、应用、设备和网络的机密性、完整性与可用性。
保障开放平台的安全需要强大的安全架构和严格的安全程序。Android 采用了一个多层安全模型,该模型非常灵活,能够在支持开放平台的同时保护平台的所有用户。如需关于报告安全问题以及关于更新流程的信息,请参阅安全更新和资源。
Android 适合开发者使用。Android 中设计了多种旨在减轻开发者负担的安全控制机制。精通安全技术的开发者可以轻松使用并依赖灵活的安全控制机制。不太熟悉安全技术的开发者则由默认的安全机制提供保护。
除了提供一个稳定的平台来供开发者开发应用之外,Android 还以多种方式为开发者提供其他支持。Android 安全团队会检查应用中是否存在潜在漏洞,并会提出关于如何解决这些问题的建议。对于带有 Google Play 的设备,Play 服务会为关键软件库(例如,用于保障应用通信安全的 OpenSSL)提供安全更新。Android 安全团队发布了一款用于测试 SSL 的工具 (Nogotofail),该工具可以协助开发者发现潜在的安全问题,无论他们是在使用什么平台进行开发。
如需面向 Android 应用开发者的更多信息,请访问 developer.android.com。
Android 适合用户使用。用户可以查看每个应用请求的权限,并可以对这些权限加以控制。这种设计考虑到了攻击者可能会尝试进行一些常见的攻击,例如,诱使设备用户安装恶意软件的社会工程攻击,以及对 Android 上的第三方应用的攻击。Android 能够降低受到这些攻击的可能性,并能够大大限制攻击成功时造成的影响。在设备到达用户手中后,Android 的安全性将会不断提升:Android 会与合作伙伴和公众密切合作,为还在继续接收安全更新的所有 Android 设备提供补丁程序。
如需面向最终用户的更多信息,请访问 Nexus 帮助中心、Pixel 帮助中心或设备制造商的帮助中心。
本文档概述了 Android 安全计划的目标,介绍了 Android 安全架构方面的基础知识,并解答了对系统架构师和安全分析人员来说最相关的问题。本文档重点介绍 Android 核心平台的安全功能,而不是讨论具体应用特有的安全问题,例如,与浏览器或短信应用相关的问题。
背景
Android 提供了一个适用于移动设备的开放源代码平台和应用环境。
以下各个部分和页面介绍了 Android 平台的安全功能。图 1 总结了 Android 软件堆栈各个层的安全组件和注意事项。每个组件都假定下面的组件均已采取适当的安全措施。除了作为 Root 代码运行的少量 Android 操作系统代码外,Linux 内核上方的所有代码都受应用沙盒的限制。
图 1. Android 软件堆栈。
Android 平台的主要构造块包括:
- 设备硬件:Android 能够在多种硬件配置中运行,其中包括智能手机、平板电脑、手表、汽车、智能电视、OTT 游戏盒和机顶盒。Android 独立于处理器,但它确实利用了一些针对硬件的安全功能,例如 ARM eXecute-Never。
- Android 操作系统:核心操作系统是在 Linux 内核之上构建的。所有设备资源(例如,摄像头功能、GPS 数据、蓝牙功能、电话功能、网络连接等)都通过该操作系统访问。
- Android 应用运行时:Android 应用通常都是使用 Java 编程语言编写的,并在 Android 运行时 (ART) 中运行。不过,仍有许多应用(包括核心 Android 服务和应用)是本机应用或包含本机库。ART 和本机应用在相同的安全环境中运行(包含在应用沙盒内)。应用在文件系统中有一个专用部分,它们可以在其中写入私密数据,包括数据库和原始文件。
Android 应用扩展了 Android 核心操作系统。应用有两个主要来源:
- 预先安装的应用:Android 包括一套预先安装的应用,其中包括电话、电子邮件、日历、网络浏览器和通讯录应用。这些应用不仅能够用作用户应用,而且能够提供可供其他应用访问的关键设备功能。预先安装的应用可能是开放源代码 Android 平台的一部分,也可能是由具体设备的制造商开发的。
- 用户安装的应用:Android 提供了一个支持任何第三方应用的开放式开发环境。Google Play 为用户提供了数十万款应用。
Google 安全服务
Google 提供了一套基于云的服务,用户可通过 Google 移动服务将这些服务安装到兼容的 Android 设备上。虽然这些服务不是 Android 开源项目的一部分,但它们包含在许多 Android 设备中。如需关于其中部分服务的更多信息,请参阅 Android 安全团队发布的 2017 年年度回顾报告。
Google 的主要安全服务包括:
- Google Play:Google Play 是一系列服务的总称。借助这些服务,用户可以通过自己的 Android 设备或网络发现、安装和购买应用。Google Play 可让开发者轻松覆盖 Android 用户和潜在客户。此外,Google Play 还提供社区审核、应用许可验证、应用安全扫描以及其他安全服务。
- Android 更新:Android 更新服务可为某些 Android 设备提供新功能和安全更新,其中包括通过网络或无线下载 (OTA) 方式提供的更新。
- 应用服务:可让 Android 应用使用云端功能(例如,应用数据和设置备份功能,以及用于推送消息的“云端至设备消息传递”(C2DM) 功能)的框架。
- 验证应用:在用户安装有害应用时发出警告或自动阻止安装;持续扫描设备上的应用,并在发现有害应用时发出警告或将其移除。
- SafetyNet:一款旨在保护隐私的入侵检测系统,能够帮助 Google 跟踪和降低已知的安全威胁,并能够发现新的安全威胁。
- SafetyNet Attestation:用于确定设备是否与 CTS 兼容的第三方 API。Attestation 还可以协助识别与应用服务器通信的 Android 应用。
- Android 设备管理器:既是一款网络应用,也是一款 Android 应用,用于寻找丢失的设备或被盗的设备。
安全计划概述
Android 安全计划的关键组成部分包括:
- 设计审核:Android 安全流程在开发生命周期的早期便开始了,并会在这一阶段创建大量的可配置安全模型和设计。平台的每项主要功能都会由工程和安全资源进行审核,并且适当的安全控制机制会被集成到系统架构中。
- 渗透测试和代码审核:在平台开发期间,Android 创建的组件和开放源代码组件都要接受严格的安全审核。这些审核由 Android 安全团队、Google 的信息安全工程团队和独立的安全顾问进行。这些审核的目标是在主要版本发布之前找出存在的缺陷和可能的漏洞,并模拟将由外部安全专家在平台发布时进行的各种类型的分析。
- 开放源代码和社区审核:Android 开放源代码项目允许任何感兴趣者对其进行广泛的安全审核。Android 还使用已经过重要外部安全审核的开放源代码技术,例如 Linux 内核。Google Play 面向用户和公司开设了一个论坛,以便直接向用户提供与具体应用相关的信息。
- 事件响应:即使采取了所有这些预防措施,平台发布后也仍可能会出现安全问题,为此,Android 项目制定了一个全面的安全响应流程。Android 安全团队有全职成员负责监控用于讨论潜在漏洞的 Android 专用安全社区和一般安全社区,并且他们会查看提交到 Android 错误数据库中的安全错误。发现确实存在的问题后,Android 团队会启动响应流程,以便快速修复漏洞,确保将所有 Android 用户面临的潜在风险降至最低。这些云支持的响应可能包括更新 Android 平台(无线下载更新)、从 Google Play 中移除应用,以及从现场设备中移除应用。
- 每月安全更新:Android 安全团队会为 Google Nexus 设备和所有设备制造合作伙伴提供每月更新。
平台安全架构
通过将传统的操作系统安全控制机制扩展到以下用途,Android 致力于成为最安全、最实用的移动平台操作系统:
- 保护应用和用户数据
- 保护系统资源(包括网络)
- 将应用同系统、其他应用和用户隔离开来
为了实现这些目标,Android 提供了以下关键安全功能:
- 通过 Linux 内核在操作系统级别提供的强大安全功能
- 针对所有应用的强制性应用沙盒
- 安全的进程间通信
- 应用签名
- 应用定义的权限和用户授予的权限
Android 安全(1)---概述相关推荐
- android逆向分析概述_Android存储概述
android逆向分析概述 Storage is this thing we are all aware of, but always take for granted. Not long ago, ...
- 【Android】Android网络编程概述
Android网络编程概述 原文来自:http://blog.csdn.net/kieven2008/article/details/8210737 首先,应该了解的几个问题: 1)Android平台 ...
- Android 安全机制概述
1 Android 安全机制概述 Android 是一个权限分离的系统 . 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得 ...
- android.opengl.GLSurfaceView概述
android.opengl.GLSurfaceView概述 翻译至android.opengl.GLSurfaceView Class Overview,水平有限,敬请谅解 hankersyan@1 ...
- Android 培训课件编写--- 第1章 Android应用开发概述
第1章 Android应用开发概述 随着Android系统的迅猛发展,它已经成为全球范围内具有广泛影响力的操作系统.Android系统已经不仅仅是一款手机的操作系统,它越来越广泛的被应用于平板电脑.可 ...
- 一、 Android 应用程序概述
转自:http://deaboway.iteye.com/blog/985508 一. Android 应用程序概述 1. Android 的嫡系组件 Android有四项一等公民(或称为嫡系组件) ...
- 第3讲 Android Camera2 API 概述
本讲是Android Camera专题系列的第3讲,我们介绍Android Camera2 API概述,了解Camera2 API的核心组件,以及他们如何交互来完成Camera各种流程. 视频在线观看 ...
- Android P 图形显示系统(九) Android图形显示子系统概述
文章目录 图形系统 显示系统 Buffer管理 显示系统的架构 从应用的角度理解Android Android图形显示子系统概述 Android图形显示系统,是Android比较重要的一个子系统,和很 ...
- Android安卓|安卓概述、安卓开发、安卓入门、安卓架构
Table of Contents Android 概述 什么是 Android? Android 开发优势 Android 的特性 Android 应用程序 Android 应用程序的类别 Andr ...
- Android 视图(View)概述
视图(View)概述 翻译至 Android.View.View Class Overview,水平有限,敬请谅解. 视图(View)是一个矩形区域,它负责这个区域里的绘制和事件处理.视图类是Andr ...
最新文章
- Linux那些事儿之我是Sysfs(3)设备模型上层容器
- YOLO学习-2:win10(64位)+ python3.6 + TensorFlow-GPU + keras + yolov3测试实践(增加笔记本显卡GPU加速)
- mysql setinc_数据库自增自减——setInc、setDec
- 正则学习:组的定义及引用方式
- JavaApplet 绘制火柴棒和轮播图片
- 基于java的班级管理系统
- Oracle项目管理系统之质量保证体系
- nvidia-smi 在 MIG M. 出现 Disabled
- 部落战争COC免费获得绿宝石 内购农民攻略
- 【转】北京大学ACM题目算法分析推荐 acm解决方法
- 计算机组装与维护双系统安装,给你的电脑安装一个不可见的WINPE救援系统(独立启动双系统)...
- Photoshop Resource(PS网站资源)
- 三本 计算机专业,四川哪些三本大学的计算机专业最好?
- m基于matlab的超宽带MIMO雷达对目标的检测仿真,考虑时间反转
- IDEA中pom.xml文件图标变红,而不是蓝问题
- 干货 | 深度学习之卷积神经网络(CNN)的模型结构
- CentOS升级openssl修复部分ssl漏洞
- 我的Hadoop安装流程
- 程序员面试之葵花宝典
- 超级应用成为战略技术趋势,企业建设应该如何落地
热门文章
- IP协议(RFC791)-IP包格式
- 位置式PID与增量式PID区别浅析
- ILI9341液晶LCD彩色显示原理
- ios获取新数据要不要关_100%安卓APP都在获取用户隐私,网络隐私进入深入区
- c#调用c语言的自定义函数,[转]在C#中调用C语言函数(静态调用Native DLL,Windows Microsoft.Net平台)...
- 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字
- 力扣171.Excel表列序号
- SpringDataJPA入门就这么简单
- ARM-Linux中断系统
- wpf中显示HTML