排行榜 统计
  • 文章总数:1224 篇
  • 评论总数:5 条
  • 分类总数:8 个
  • 最后更新:2小时前

鸿蒙应用上架流程及安全防范措施

本文阅读 9 分钟
首页 安全资讯 正文

图片

鸿蒙应用前景

随着鸿蒙生态的逐步发展,鸿蒙应用数量也在持续增长,支持了手机、平板等多种设备,覆盖了生活、办公、娱乐等多个领域,开发者可以创造出更多的应用场景,用于促进鸿蒙生态的完善。

当应用开发完成后,可在 AppGallery Connect 平台上申请上架,程序上架成功后在鸿蒙应用市场中显示,用户在应用市场中可直接搜索、下载、安装和使用。

相对于开发者而言,开发的过程或许不难,难的是开发完成后应用的上架,这个上架流程相对比较复杂,所以文章内总结了鸿蒙应用(Harmony OS)上架过程中的重要操作,可供开发者参考。



图片

鸿蒙应用上架流程

鸿蒙应用上架需严格遵循 AGC流程(注册→调试→签名→提审)。


前置条件


图片
  • 注册与实名认证

    需在华为开发者联盟注册账号并完成个人/企业实名认证

  • 安装 DevEco Studio 工具

    可在华为开发者平台下载集成开发环境 (IDE)。


创建鸿蒙应用


图片

1、登录 AppGallery Connect (AGC) 平台,在我的项目-》添加项目-》创建项目。

图片

2、在创建的项目中的 APP ID 界面创建 HarmonyOS 应用,根据界面提示选择应用类型,填写应用名称、包名等信息。

图片


包名要求:  

  1. 全网唯一,不与安卓包名重复;

  2. 需与 DevEco Studio中app.json5 文件中的 bundleName 字段完全一致。


编译打包鸿蒙应用


图片

Harmony OS 应用/元服务通过数字证书(.cer)和 Profile 文件(.p7b)来保证应用/元服务的完整性,所以在申请数字证书和 Profile 文件前需要进行下述操作:


  1. 首先,需要通过 DevEco Studio 来生成密钥(.p12)和证书请求文件(.csr);

  2. 然后,申请发布数字证书和 Profile 文件;

  3. 最后,将密钥(.p12)文件、数字证书(.cer)文件和 Profile(.p7b)文件配置到工程中。


创建签名文件

在 IDE 生成密钥(.p12)和证书请求文件(.csr)

  • 在 DevEco Studio 工具中,点击 Build-》Generate Key and CSR 界面创建 p12 密钥库文件;

  • 在 Generate Key and CSR 界面,设置 CSR 文件存储路径和 CSR 文件名;

图片


申请发布证书

在 AGC 申请发布证书(.cer)和发布 Profile(.p7b)

  • 在 AGC 平台申请发布证书(仅支持 1 个发布证书),在弹出的"新增证书窗口"填写要申请的证书信息,点击"提交";

图片


  • 绑定发布证书,包名与应用一致,申请发布 Profile;

图片

IDE 配置签名

  1. 申请发布证书和发布 Profile 文件后,在 IDE 工具里进行配置;

  2. 在 File-》Project Structure-》Project-》Signing Configs 窗口中,取消勾选 Automatically generate signature;

  3. 如果是 HarmonyOS 应用,勾选 Support HarmonyOS,然后配置工程的签名信息。


打包应用

在 DevEco Studio 配置完成后,编译生成 .app 格式包;

图片


提交上架


图片
  1. 应用必须满足华为应用市场的审核要求,具体请参见应用审核指南

  2. 登录 AppGallery Connect,选择"我的应用";

  3. 点击待发布的应用/元服务,在左侧导航栏选择"应用信息"菜单,开始配置应用信息,如应用名称、应用介绍、隐私声明等,所有配置完成后点击"提交审核"。



图片

安全防范措施

应用在提交上架后,可能面临着代码安全的问题,Virbox Protector 工具支持对 Harmony so 库文件的保护,可以实现代码虚拟化、代码混淆、反调试、完整性校验等功能,可以有效的代码的泄露。


SO库的特点


图片
  1. so 库一般是 c/c++ 语言开发,可一套代码编译成多个应用平台(比如 Android、Linux、Harmony),故大部分开发者将核心功能或算法等封装在 so 库中,可以在多个应用和平台中复用,提高开发效率 ;

  2. so 库是直接与操作系统交互执行,可提高执行效率,所以它更适合底层的控制(比如传感器、摄像头等),也适合处理计算型任务(如图像处理、音视频编解码等);

  3. 开发过程中可能需要集成第三方的功能模块,而很多模块都是以 so 库提供,所以重要功能放在 so 库也更方便的去集成第三方库;

  4. 另外 so 库是二进制文件,比高级语言代码更难反编译和逆向工程,可以更好地保护核心算法和逻辑。


综上所述,Virbox Protector 从开发者反馈使用的场景和代码安全层面考虑,直接支持 Harmony so 库的保护。


SO库的安全性问题


图片

1. 程序被反编译

虽然编译生成的二进制文件逆向分析难度较高,但由于相应的反编译工具(比如 ida、Ghidra)也成熟强大,依然可以反编译为类 C 伪代码,再加上特征库、符号信息、模块交叉引用等方式,进而更容易去读取核心逻辑和算法;

2. 被调试风险

攻击者可通过调试工具比如(DevEco Studio)附加应用进程进行调试,在调试过程中可能暴露敏感信息(如密钥、算法逻辑);

3. 程序被篡改

攻击者可以通过修改应用内存改变程序行为,绕过安全检查或实现恶意功能,导致数据泄露;

4. 调试符号暴漏

so 库中包含调试符号(如函数名、变量名、函数地址),可能暴露敏感信息,则攻击者可以更容易地理解代码逻辑,对代码进行分析。


SO库的加固


图片

对 SO 库的加固一般有两种方式:

第一种方式

  1. 先打包 hap 或 app,然后解压包;

  2. 拿出 lib 目录下的 so 库,对 so 库直接进行加固;

  3. so 库加固后再替换到 hap 或 app 包中,然后再进行重签名。

第二种方式

  1. 在 IDE 工具中直接集成调用 Virbox Protector 工具,在编译 so 库的时候在 CMakeLists.txt 中添加配置,如图所示:

  2. 可以使编译过程中对 so 库进行加固,这样打包后的 hap 或 app 包中的 so 库就是保护过后的。

图片


参数介绍

set:设置 Virbox Protector 工具的路径;

TARGET:指要添加自定义命令的目标,命令会在构建目标时执行;

TARGET_FILE:entry:指待保护的 so 库文件;

COMMAND:指要执行的命令。


END




👇扫码进群,一起畅聊技术,共享前沿资讯!


图片




👇点击关注,🌟星标深盾,了解更多精彩内容!



本文来自投稿,不代表本站立场,如若转载,请注明出处:https://typecho.firshare.cn/archives/6069.html
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。避免网络欺诈,本站不倡导任何交易行为。如您私自与本站转载自公开互联网中的资讯内容中提及到的个人或平台产生交易,则需自行承担后果。本站在注明来源的前提下推荐原文至此,仅作为优良公众、公开信息分享阅读,不进行商业发布、发表及从事营利性活动。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
-- 展开阅读全文 --
Java 虚拟机代码保护原理
« 上一篇 06-23
Java SDK标签和Allatori混淆工具共同使用
下一篇 » 06-23