应用隐私保护最佳实践
使用隐私声明获取用户同意
初次访问使用隐私声明弹窗,只有用户同意后才能开始正常使用。
减少应用的位置访问权限
使用模糊定位获取位置信息
位置权限申请方式
target API level | 申请位置权限 | 申请结果 | 位置的精确度 |
---|---|---|---|
小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 |
大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 |
大于等于9 | 同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
减少使用存储权限
使用Picker选择器,只会得到所选择的图片权限,从而减少了不必要的权限授权。
动态申请敏感权限
用户敏感数据权限可在使用的时候动态申请。
应用数据安全
安全等级划分
SL2安全级别的设备只能访问SL1到SL2级别的数据进行同步,SL3的只能访问S1到SL3的,以此类推。
分级数据加密
分级数据保护
不同级别的加密区,处于不同的文件目录下。
分级加密 | 策略 |
---|---|
el4 | 用户锁定设备后不久(一般为 10 秒钟),解密的数据保护类密钥会被从内存丢弃,此类的所有数据都无法访问,除非用户再次输入密码或使用指纹或面容解锁设备。 |
el3 | 用户锁定设备后,如果文件已经被打开,则文件始终可以被继续访问,一旦文件关闭(锁屏),文件将不能被再次访问,除非用户再次输入密码或使用指纹或面容解锁设备 |
el2 | 用户开机后首次解锁设备后,即可对文件进行访问。默认级别 |
el1 | 设备在直接启动模式下和用户解锁设备后均可对文件进行访问 |
一般应用数据放在el2级加密区,需要不解锁也能访问的数据放在el1的加密区。
获取不同级别加密区目录的方法:
getEl1Path() {
let context = getContext(this) as common.UIAbilityContext;
context.area = contextConstant.AreaMode.EL1;
let filePath = context.filesDir + '/health_data.txt';
this.message = filePath;
}
getEl2Path() {
let context = getContext(this) as common.UIAbilityContext;
context.area = contextConstant.AreaMode.EL2;
let filePath = context.filesDir + '/health_data.txt';
this.message = filePath;
}
数据加密算法
内置的通用加密库实现密钥管理能力。