【鸿蒙开发】安全

发布于:2025-05-20 ⋅ 阅读:(10) ⋅ 点赞:(0)

应用隐私保护最佳实践

使用隐私声明获取用户同意

初次访问使用隐私声明弹窗,只有用户同意后才能开始正常使用。

减少应用的位置访问权限

使用模糊定位获取位置信息

位置权限申请方式

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;
}

数据加密算法

内置的通用加密库实现密钥管理能力。


网站公告

今日签到

点亮在社区的每一天
去签到