Android CE DE加密小结
1.全盘加密
数据在空闲的时候进行加密
每个设备只有一个用户可以被全盘加密进行保护
那个用户在做任何工作前必须登录
2.文件级别加密
使用ext4文件系统
使用AES-256方式对文件内容进行加密
文件名也需要进行加密
文件级别加密的性能要稍微好于全盘加密
f2fs文件系统用于支持nand flash
DE(device encrypted)
文件会被一个密钥进行加密,这个密钥仅在系统执行了可验证的启动后才能获得。
在系统中,只有一个DEsys的key,有多个DEn的key对于每一个用户
CE(credential encrypted)
文件加密使用一个和用户认证(PIN,图案,密码)关联的key,这个key只有用户先执行了认证后才能获取
每一个用户拥有一个ce key
NE(none encrypted)
文件不加密,这种情况十分少见,而OTA更新文件是个例子
用户数据布局的变更:
APPS: 1.默认的app的存储必须使用ce key来保证数据安全
2.一个app可以存取一个DE存储空间
MEDIA: 内部的共享存储必须是使用CE进行加密的
SYSTEM: 1.默认的系统存储空间必须是使用DEsys进行加密的,以使数据迁移变得简单
2.系统可以访问多个CE和DE存储空间,以便更好地保护数据
存储空间和key的对应关系
system存储空间 SYSTEM
DEsys /data/system/
/data/misc
CE0-n /data/system_ce/{0-n}
/data/misc_ce/{0-n}
DE0-n /data/system_de/{0-n}
/data/misc_de/{0-n}
media存储空间 MEDIA
CE0-n /data/media/{0-n}
应用存储空间 APP
CE0-n /data/user/{0-n}
DE0-n /data/user_de/{0-n}
如何判断数据应该属于CE还是DE
DE:
WIFI认证,蓝牙匹配码
闹钟数据
壁纸,铃声
CE:
通讯录
账户授权密码
历史浏览信息,地址信息
最近任务,截屏
获取系统存储空间的CE,DE目录的API
Environment.getUserSystemDirectory DEsys
Environment.getUserSystemEncryptedDirectory DE0-n
Environment.getUserSystemCredentialEncryptedDirectory CE0-N
Environment.getMiscNotEncryptedDirectory
获取应用存储空间的CE,DE目录的API
应用中的上下文(Context)默认指向CE目录,如果需要访问DE目录,需要使用Context.createDeviceEncryptedStorageContext函数创建指向DE目录的上下文
用户的状态和key的获取
running locked: DEsys和DEn
running unlocked: DEsys,DEn,CEn
加密敏感APP
应用的组件可以申明encryptionAware=true,以在没有拿到CE的key的时候也可以运行
package会根据用户的状态对组件的查询进行过滤
判断用户状态的API
当用户进入locked state状态的时候,会发送LOCKED_BOOT_COMPLETED
当用户进入unlocked state状态的时候,BOOT_COMPLETED,USER_UNLOCKED广播会被发送
Android CE DE加密小结相关推荐
- 【译】Android中的安全数据— Android中的加密(第2部分)
目录 锁屏 选择一个钥匙 密钥存储 密钥生成 密钥管理 加密与解密 使用范例 下一步是什么 安全提示 锁屏 如果要保护数据,请保护设备. 为了更加安全,在提供对任何应用程序功能的访问权限之前,我们可以 ...
- Android之设备加密
相关推荐:Android EventBus源码解析 带你深入理解EventBus 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/4 ...
- 深入理解Android之设备加密Device Encryption
深入理解Android之设备加密Device Encryption Android从4.4开始就支持一项功能,那就是对设备进行加密.加密自然是为了安全性考虑,由于/system目录是只读的,手机里那些 ...
- 【数据安全】3. Android 文件级加密(File-based Encryption)技术介绍
1. 概览 1.1 设计概览 采用文件级加密时: 可以使用不同的密钥对不同的文件进行加密,也可以对加密文件单独解密 可以有的放矢,没有安全要求的文件可以不加密 支持多用户,不同用户使用不同的密钥 基 ...
- Android 即时通讯开发小结(二)
<Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 相关推荐阅读:. Android即时通讯 ...
- 利用SQLChiper对Android SQLite数据库加密
利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher ...
- Android APK程序加密,防止被别人反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-s ...
- Android 即时通讯开发小结(一)
本文将基于 IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 客户端架构 作为一个 IM 软件,最重要的一个特性就是保证消息的达到率和实时性. ...
- android视频播放异常,Android 播放视频常见问题小结
在android 开发中常见到视频播放的问题,在常规的视频中 有直接用videoView + MediaController 或者 mediaController + serfercie holder ...
最新文章
- php析构函数的用法
- DPDK — PMD,DPDK 的核心优化
- plsqldev远程连接mysql_PLSQL Developer连接远程Oracle数据库
- bzoj3589 动态树 求链并 容斥
- pointnet分割自己的点云数据_细嚼慢咽读论文:PointNet论文及代码详细解析
- 云计算概况及第一个Azure程序
- jmeter jdbc mysql_jmeter获取JDBC响应做接口关联(三)
- 函数节流-避免重复提交
- 超级外链SEO工具源码 可发9600条优质外链
- 空气阻力对乒乓球运动轨迹的影响
- 使用 prometheus 监控 MySQL
- NXP JN5169 使用红外发送 / 接收
- 从异常堆栈中还原 ProGuard 混淆过的代码
- 2021-10-18 WPF调用dll出现异常
- 腾讯代码安全指南开源,涉及 C/C++、Go 等六门编程语言
- 在 ASP.NET Core 使用 IOptions pattern
- 使用数据流引擎进行大型矩阵操作
- 5 款非常好用的 Docker 工具
- 超市积分管理系统(Java+Web+MySQL)
- 【工具】1640- 这 5 款 AI 绘图工具,让你的绘图更高效!
热门文章
- Oracle ERP财务系统——固定资产
- 经济学基础(本)【3】
- 在Ubuntu16.04上安装Aegisub
- 通过wlanapi连接无线网络
- 2.1.5 校验码(一文带你分析搞懂:奇偶校验码、海明码、CRC码)
- 【Spark分布式内存计算框架——Structured Streaming】2. Structured Streaming 核心设计与编程模型
- Linux 内核clk 添加clk provider
- 编程,绘图,设置坐标轴,做出自己的坐标轴
- uiautomator2 库中文手册
- 从0学习C语言(第3天)---- C语言初探、把C玩弄于股掌之中的思维(思维无限扩展法)