安卓全设备加密技术 |Secure Code Warrior

发表于 2017年11月02日
作者:Pieter De Cremer
案例研究

安卓全设备加密技术 |Secure Code Warrior

发表于 2017年11月02日
作者:Pieter De Cremer
查看资源
查看资源

设备加密是对安卓设备上的所有数据进行加密的过程。一旦为安卓设备启用了这一功能,所有用户创建的数据在被写入存储空间之前就会立即被加密。这就保护了数据,即使任何未经授权的一方试图访问数据,他们也无法读取数据。这对智能手机设备来说是一个特别好的功能,因为这些设备是由用户随身携带的,比其他计算设备更容易丢失或被盗。任何好奇的发现者或小偷都无法访问数据,除非他能解锁手机。

安卓系统有两种类型的设备加密:全磁盘加密和基于文件的加密。

全磁盘加密

全盘加密在API级别19(安卓4.4 KitKat)中引入,但API级别21(安卓5.0 Lollipop)中的新功能真正启动了它的使用。全盘加密使用一个单一的密钥来保护整个设备的用户数据分区。该密钥由用户证书保护,在启动时必须提供这些证书,才能访问磁盘的任何部分。

这对安全来说是很好的,但这也意味着设备的大部分功能在用户输入他们的凭证之前是不可用的。这意味着当设备被重新启动但没有解锁时,一些功能如警报器无法运行,服务不可用,电话也不能接听。由于这个原因,第二种加密模式应运而生。

基于文件的加密

基于文件的加密,是设备加密的第二种模式,从API级别24(Android 7.0 Nougat)开始提供。在这种模式下,不同的文件用不同的密钥进行加密,可以独立解锁。有了这种加密模式,就有了直接启动模式,它允许加密的设备直接启动到锁屏,在解锁设备之前启用以前缺少的功能。

直接启动允许应用程序在设备解锁前在有限的环境中运行。这样一来,它们仍然可以按预期运行,而不会损害用户的信息。为了提供这种功能,安卓设备需要两个存储位置。

  1. 凭证加密的存储。默认存储位置,只有在用户解锁设备后才能使用。
  2. 设备加密存储。在直接启动模式下,以及在用户解锁设备后可用。
保护敏感的客户数据

如果你的应用程序在直接启动模式下运行时需要访问数据,它应该使用设备加密存储。但要注意安全问题!设备加密存储不应该被用来存储任何敏感数据!设备加密存储是用一个密钥加密的,一旦设备成功启动,这个密钥就可以使用。任何只能由用户访问的数据都应该保存在默认位置,即凭证加密存储。

如果你想进一步了解什么是加密或为什么它很重要,请查看Secure Code Warrior 门户上的视频。或者你可以尝试通过玩一些挑战来测试你对加密的认识。

你的设备需要一个分步指南吗?请看这篇来自Pixel Privacy的Bill Hess的文章

我希望你能学到一些新东西。下周见!

凭证加密存储,这是默认的存储位置,只有在用户解锁设备后才能使用。

https://developer.android.com/training/articles/direct-boot.html

查看资源
查看资源

作者

皮特-德-克雷默

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

安卓全设备加密技术 |Secure Code Warrior

发表于 2017年11月02日
作者:Pieter De Cremer

设备加密是对安卓设备上的所有数据进行加密的过程。一旦为安卓设备启用了这一功能,所有用户创建的数据在被写入存储空间之前就会立即被加密。这就保护了数据,即使任何未经授权的一方试图访问数据,他们也无法读取数据。这对智能手机设备来说是一个特别好的功能,因为这些设备是由用户随身携带的,比其他计算设备更容易丢失或被盗。任何好奇的发现者或小偷都无法访问数据,除非他能解锁手机。

安卓系统有两种类型的设备加密:全磁盘加密和基于文件的加密。

全磁盘加密

全盘加密在API级别19(安卓4.4 KitKat)中引入,但API级别21(安卓5.0 Lollipop)中的新功能真正启动了它的使用。全盘加密使用一个单一的密钥来保护整个设备的用户数据分区。该密钥由用户证书保护,在启动时必须提供这些证书,才能访问磁盘的任何部分。

这对安全来说是很好的,但这也意味着设备的大部分功能在用户输入他们的凭证之前是不可用的。这意味着当设备被重新启动但没有解锁时,一些功能如警报器无法运行,服务不可用,电话也不能接听。由于这个原因,第二种加密模式应运而生。

基于文件的加密

基于文件的加密,是设备加密的第二种模式,从API级别24(Android 7.0 Nougat)开始提供。在这种模式下,不同的文件用不同的密钥进行加密,可以独立解锁。有了这种加密模式,就有了直接启动模式,它允许加密的设备直接启动到锁屏,在解锁设备之前启用以前缺少的功能。

直接启动允许应用程序在设备解锁前在有限的环境中运行。这样一来,它们仍然可以按预期运行,而不会损害用户的信息。为了提供这种功能,安卓设备需要两个存储位置。

  1. 凭证加密的存储。默认存储位置,只有在用户解锁设备后才能使用。
  2. 设备加密存储。在直接启动模式下,以及在用户解锁设备后可用。
保护敏感的客户数据

如果你的应用程序在直接启动模式下运行时需要访问数据,它应该使用设备加密存储。但要注意安全问题!设备加密存储不应该被用来存储任何敏感数据!设备加密存储是用一个密钥加密的,一旦设备成功启动,这个密钥就可以使用。任何只能由用户访问的数据都应该保存在默认位置,即凭证加密存储。

如果你想进一步了解什么是加密或为什么它很重要,请查看Secure Code Warrior 门户上的视频。或者你可以尝试通过玩一些挑战来测试你对加密的认识。

你的设备需要一个分步指南吗?请看这篇来自Pixel Privacy的Bill Hess的文章

我希望你能学到一些新东西。下周见!

凭证加密存储,这是默认的存储位置,只有在用户解锁设备后才能使用。

https://developer.android.com/training/articles/direct-boot.html

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。