HarmonyOS 鸿蒙Next应用加固

HarmonyOS 鸿蒙Next应用加固 目前harmony 的app上架前需要加固吗?如何加固?

4 回复
  • HarmonyOS反编译安全性提供基础的应用加固安全能力,包括混淆、加密和代码签名,保护代码免受反编译和反调试。高级混淆功能目前由第三方支持。
  • 当前提供的加固方式有:混淆,加密。
    • 代码混淆:在编译的过程中,Ide根据配置的混淆规则对项目代码进行混淆处理。
    • 应用加密:应用加密特性在应用上架时加密,应用运行时按需解密安全增强的同时,确保开发者、消费者无感的安全体验,避免应用开发者适配工作,保障用户无感的纯净安全体验。

【解决方案】

  • 代码混淆:代码混淆是一种软件安全技术,旨在增加代码的复杂性和模糊性,从而增加攻击者分析和理解代码的难度。

    1. 开启混淆能力:Stage模型的工程在Release编译模式下,模块级build-profile.json5配置文件中开启混淆配置,enable默认为false,默认不开启代码混淆功能,enable为true时表示开启混淆。
    "arkOptions": {
      "obfuscation": {
        "ruleOptions": {
          "enable": true  // 配置true,即可开启代码混淆功能
        }
      }
    }
    
    1. 混淆配置能力:混淆配置文件obfuscation-rules.txt默认开启了四项推荐的混淆选项:-enable-property-obfuscation-enable-toplevel-obfuscation-enable-filename-obfuscation-enable-export-obfuscation,开发者可以根据需要进一步修改混淆配置。如果存在多个混淆规则文件,则可以参考混淆规则合并策略
    2. 配置保留选项:代码中可能有部分字段,方法不希望被混淆,这个时候可以通过配置混淆白名单。如果属性混淆白名单可以配置 -keep-property-name ;如果是顶层作用域名混淆白名单可以配置 -keep-global-name ,如果是文件名称混淆白名单可以配置 -keep-file-name ,如果是导入/导出名称混淆需要分情况看具体可以参考:导入/导出名称混淆混淆常见案例汇总
  • 应用加密:为了保护应用代码安全,保护开发者的核心资产,HarmonyOS提供了端到端的应用代码保护机制,该机制以系统安全为基础,构建内核级应用生命周期内的代码安全保护能力。 开发者向应用市场提交上架申请,上传应用包后可选择是否加密。选择加密的应用,在经过应用市场审核后,应用市场会对上架应用做代码加密。 应用在设备上安装时,安装文件落盘后仍是处于加密状态,有效的保护应用程序;当应用程序启动时按需解密。应用加密采用标准AES加密算法,解密后的明文只存在于内存中,不会存储到设备。

更多关于HarmonyOS 鸿蒙Next应用加固的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前提供代码混淆和应用加密功能来提升代码安全性,增加逆分析难度。可参考:混淆加固 ,应用加密

鸿蒙Next应用加固采用ArkTS语言开发,通过编译优化和二进制混淆技术保护代码安全。加固过程包括代码混淆、资源加密和反调试机制,防止逆向工程和篡改。应用签名使用华为自研证书体系,确保应用完整性。加固后的应用在鸿蒙运行时环境中执行,不依赖Java或C语言底层。

目前HarmonyOS Next应用上架前不需要强制加固。系统本身通过分布式安全架构、微内核设计和形式化验证提供了较强的安全防护能力。若开发者希望额外加固应用,可考虑以下方式:

  1. 使用华为提供的DevEco Studio工具进行代码混淆和压缩;
  2. 通过华为应用市场提供的安全检测服务进行漏洞扫描;
  3. 对敏感数据采用端到端加密或使用系统提供的密钥管理服务。

建议关注华为官方文档获取最新安全开发指南。

回到顶部