blob: a10334fa2cd4987e1680a44c497745810174b67b [file] [log] [blame]
<html devsite><head>
<title>加密</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>
加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程。设备经过加密后,所有由用户创建的数据在存入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程之前自动解密数据。加密可确保未经授权方在尝试访问相应数据时无法读取它们。
</p>
<p>
Android 有两种设备加密方法,即全盘加密和文件级加密。
</p>
<h2 id="full-disk">全盘加密</h2>
<p>
Android 5.0 及更高版本支持<a href="full-disk.html">全盘加密</a>。全盘加密是使用单个密钥(由用户的设备密码加以保护)来保护设备的整个用户数据分区。设备启动后,用户必须提供其凭据才能访问磁盘的任何部分。
</p>
<p>
虽然这非常有利于确保安全性,但如果采用这种加密方式,当用户重新启动设备后,手机的大多数核心功能都将无法立即可用。由于对数据的访问受单个用户凭据的保护,因此闹钟等功能将无法运行,无障碍服务将无法使用,并且手机将无法接听电话。
</p>
<h2 id="file-based">文件级加密</h2>
<p>
Android 7.0 及更高版本支持<a href="file-based.html">文件级加密</a>。采用文件级加密时,可以使用不同的密钥(可单独解锁)对不同的文件进行加密。支持文件级加密的设备还支持一种称为<a href="https://developer.android.com/preview/features/direct-boot.html">直接启动</a>的新功能。该功能处于启用状态时,已加密设备在启动后将直接进入锁定屏幕,从而可让用户快速访问重要的设备功能,例如无障碍服务和闹钟。
</p>
<p>
引入文件级加密和新 API 后,便可以将应用设为加密感知型应用,这样一来,它们将能够在受限环境中运行。这些应用将可以在用户提供凭据之前运行,同时系统仍能保护私密用户信息。
</p>
</body></html>