鸿蒙HAR对外发布安全流程

本文作者:杉木@涂鸦智能安全实验室

了解鸿蒙HAR

构建HAR-配置构建流程-构建应用 - 华为HarmonyOS开发者

字节码HAR包中包含的是编译后的abc字节码,当字节码HAR被其他应用模块(HAP/HSP)依赖时,执行应用模块的编译构建,不需要再对依赖的HAR进行语法检查和编译等操作,相比源码HAR,可以有效提升应用模块的编译构建效率,提高安全性,降低代码泄漏的风险。

HAR包的安装和使用

安装 HAR 包到你的项目中,主要有两种方式:从远程仓库安装和从本地安装。

  • 从远程仓库安装(以官方三方库中心仓为例)

    1. 命令行一键安装 :在 DevEco Studio 的 Terminal 中,进入你的项目目录(通常是 entry目录),执行以下命令。这会自动下载最新的 HAR 包并更新依赖配置。

      bash 复制代码
      ohpm install @ohos/[HAR包名]
    2. 手动配置依赖 :在项目的 oh-package.json5文件中的 dependencies字段添加依赖信息,然后执行 ohpm install

      json 复制代码
      "dependencies": {
        "@ohos/lottie": "^2.0.9"// 格式通常为 "包名": "版本号"}
  • 从本地安装

    1. 依赖本地模块 :如果你的 HAR 包是项目内的另一个 Library 模块,可以在 oh-package.json5中配置。

      json 复制代码
      "dependencies": {
        "@ohos/mylibrary": "file:../library"// "file:"后跟模块的相对路径}
    2. 依赖本地 HAR 文件 :如果你有现成的 .har文件,可以将其放入项目下的一个目录(如 libs),然后在 oh-package.json5中配置。完成上述配置后,同样需要在 Terminal 中执行 ohpm install 命令来完成安装。安装成功后,依赖项会存储在项目的 oh_modules目录下。

      json 复制代码
      "dependencies": {
        "@ohos/log_fishing": "file:./libs/logfishing.har"
      }

关于HAR、HAP、HSP

特性 HAR (Harmony Archive) HAP (Harmony Ability Package) HSP (Harmony Shared Package)
全称与本质 鸿蒙静态共享包 鸿蒙能力包,应用部署包 鸿蒙共享包,动态共享包
主要作用 代码和资源的静态共享与复用 应用的安装和运行单元 代码和资源的动态共享,减少体积
编译行为 编译时被复制到依赖它的HAP中 独立编译或依赖HAR/HSP 编译时不复制,运行时动态依赖
代码共享方式 源码级共享,副本式(多份拷贝) 不直接用于共享 二进制级共享,单例式(一份实例)
是否可以独立运行

ohpm-repo私仓搭建

个人或公司可以上传编译后的HAR到ohpm仓库中,也可以自己搭建私仓,官方提供了私仓搭建工具,具体参考:

快速开始-ohpm-repo私仓搭建工具-模块管理-工程创建-开发环境搭建 - 华为HarmonyOS开发者

其中需要注意相关安全配置:

安全配置指南-ohpm-repo私仓搭建工具-模块管理-工程创建-开发环境搭建 - 华为HarmonyOS开发者

HAR对外发布安全流程

其实看到这里,HAR可以类比Android的SDK或者so库,只不过HAR没有c的安全编译配置,只有混淆配置,因此HAR对外发布因在安全编译配置中默认开启混淆设置,以增加逆向工程难度,防止源代码泄露风险;

且遵循代码安全开发规范,不要硬编码敏感信息到代码中;

漏洞悬赏计划:涂鸦智能安全响应中心(https://src.tuya.com)欢迎白帽子来探索。

相关推荐
一只大侠的侠7 小时前
Flutter开源鸿蒙跨平台训练营 Day 10特惠推荐数据的获取与渲染
flutter·开源·harmonyos
Hello.Reader10 小时前
Flink ZooKeeper HA 实战原理、必配项、Kerberos、安全与稳定性调优
安全·zookeeper·flink
智驱力人工智能11 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
数据与后端架构提升之路11 小时前
论系统安全架构设计及其应用(基于AI大模型项目)
人工智能·安全·系统安全
市场部需要一个软件开发岗位13 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
lingggggaaaa13 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
凯子坚持 c13 小时前
CANN-LLM:基于昇腾 CANN 的高性能、全功能 LLM 推理引擎
人工智能·安全
御承扬13 小时前
鸿蒙NDK UI之文本自定义样式
ui·华为·harmonyos·鸿蒙ndk ui
前端不太难13 小时前
HarmonyOS 游戏上线前必做的 7 类极端场景测试
游戏·状态模式·harmonyos
大雷神14 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地--第29篇:数据管理与备份
华为·harmonyos