鸿蒙生态如何构建安全能力?

最佳答案 匿名用户编辑于2024/07/22 16:43

鸿蒙生态是在应用开发安全环节构建的安全能力。

1)开发者注册和实名认证 在开发鸿蒙应用之前,开发者首先需要在 HarmonyOS 应用开发官网完成注册并进行实 名认证。认证通过后,官网为开发者分配开发者 ID,用于后续申请应用开发所需的开发者 证书和应用配置文件,开发者开发的所有鸿蒙应用都会关联到对应的开发者 ID,可以有效 地对应用进行追溯。 鸿蒙应用上架到鸿蒙应用市场分发前,应用市场会对应用进行严格地审核,确保鸿蒙应 用的安全和质量。一旦在审核时发现应用不满足应用市场上架标准,会及时通知应用开发者 对应用进行整改或优化。综上,通过开发者注册和实名认证,我们可以确保鸿蒙应用的来源都是可信的。

2)申请开发者证书 鸿蒙应用开发者在拥有开发者 ID 后,可以申请开发者证书,用于后续对其开发的鸿蒙 应用进行签名。鸿蒙应用签名是鸿蒙应用必须包含的内容,用于校验鸿蒙应用的完整性和来 源可靠,只有签名校验通过,才能在应用市场发布,以及在 HarmonyOS 上安装。 鸿蒙应用的开发者证书遵从 X.509 公钥证书标准,证书中包含开发者公钥以及用于校验 的证书链等信息;在应用上架和安装时,都会基于 HarmonyOS 信任根证书对鸿蒙应用的开 发者证书进行校验,校验成功后再使用开发者证书中的开发者公钥校验鸿蒙应用安装包的完 整性。

开发者证书中的开发者公钥,由开发者生成并提交给 HarmonyOS 应用开发官网;开发 者公钥对应的私钥由开发者保管,开发者需要确保私钥的安全,严格管理私钥的访问权限, 避免私钥泄露、损坏等情况出现。 鸿蒙应用开发者证书分为两类:调试证书和发布证书,分别用于鸿蒙应用调试阶段和上 架发布阶段。  调试证书:调试证书仅允许对调试应用签名,不能用于其他目的。为了平衡安 全性和开发效率,使用调试证书签名的调试应用可以不经上架检测,直接运行在 HarmonyOS设备上,限制条件是:调试应用只允许运行在指定的设备上(该设备的设 备ID需要与应用调试Profile中的设备ID匹配),以限制其运行设备的范围。

发布证书:发布证书用于正式上架应用的签名。只有使用发布证书签名的应用 才允许上架应用市场。使用发布证书签发的应用不对运行设备的ID进行限制,但必须经 过应用市场检测上架后,才能分发到用户的设备上。应用市场会对经过检测的上架应用 进行应用市场重签名。 综上,鸿蒙应用都是经过开发者证书签名的应用,在应用上架和安装时会对应用签名进 行强制校验,确保安装在 HarmonyOS 设备上的应用安装包都是未经篡改和来源可信的;并 且可以通过开发者证书关联到经过实名认证的开发者。

3)申请应用 Profile 文件(HarmonyAppProvision) 开发者进行实名认证获取开发者 ID,以及申请开发者证书之后,还需要申请待开发应 用的 Profile 授权文件。应用 Profile 授权文件是应用的身份证明文件,用于 HarmonyOS 对 应用进行识别和管理,该文件中包含应用的关键信息,包括应用的包名、应用受限权限(仅 少数场景才需要申请)、应用的开发者 ID、应用的开发者证书等。 应用 Profile 授权文件需要在开发者网站申请并审核后签发,该文件使用 ECC 密钥签名, 签名符合 PKCS#7 标准。应用 Profile 授权文件是应用必不可少的组成部分,被打包到应用 安装包中,在应用上架审核和安装时进行校验。

4)代码安全检查 鸿蒙生态服务于开发者,帮助开发者开发高质量应用,有效提高代码质量,减少代 码中的潜在安全风险。在 DevEco Studio 中集成检测能力,可以帮助开发人员及时发现 代码中的问题,避免在后期发现问题,也可以提高代码的可维护性和可读性。 DevEco Studio 提供了 code linter 功能,对代码的通用规范性检测,同时也会重 点对代码的安全性做检查,包括静态代码分析,性能分析等,静态代码分析可以在开发 过程中发现问题,开发者可根据扫描结果中告警提示手工修复代码缺陷。

开发者完成编译构建后,可通过 DevEco Studio 安全检测插件对二进制进行安全检 查,重点检测应用攻击面管控不足、权限或证书配置不当等可能会导致的安全风险,建 议开发者在发布应用之前完成相关安全检查动作,并基于风险评估进行修改,其中主要 安全风险及漏洞来源于攻击面分析。

 5)代码混淆 移动应用的代码安全非常重要,为了保护应用开发者的代码,避免应用被恶意逆向分析, 提高攻击者分析代码的难度,DevEco Studio 中默认提供了代码混淆能力,混淆后的 JS、 TS、ArkTS 代码,不容易被逆向后读懂,混淆功能支持对名称进行混淆,包括对类、方法等 做混淆处理。

代码混淆方案是基于源码混淆,将源码转为抽象语法树(AST),在 AST 上进行作用域 分析和符号分析,混淆名称和属性,移除开发期间的日志打印代码,合并语句,压缩代码体 积,生成 sourcemap 文件用于编译混淆后应用的调试,生成 namecache 文件用于热更新 修复,在保证运行时性能无变化的前提下,有效保护鸿蒙开发者核心知识产权免受恶意逆向 分析。