鸿蒙开发(NEXT/API 12)【应用加密】程序访问控制

news2024/11/25 2:53:26

能力简介

为了保护应用代码安全,保护开发者的核心资产,HarmonyOS提供了端到端的应用代码保护机制,该机制以系统安全为基础,构建内核级应用生命周期内的代码安全保护能力。

1

开发者向应用市场提交上架申请,上传应用包后可[选择是否加密]

选择加密的应用,在经过应用市场审核后,应用市场会对上架应用做代码加密。应用在设备上安装时,安装文件落盘后仍是处于加密状态,有效的保护应用程序;当应用程序启动时,通过内核加载的应用文件是加密状态,因此这些文件会在内核中按需解密执行。

应用加密采用标准AES加密算法,解密后的明文只存在于内存中,不会存储到设备,形成端到端的加密方案,有效的保障应用程序的安全性。

系统级应用加密具有如下优点:

  • 应用端到端加密,应用启动后在内核内按需解密执行。
  • 系统级的解密优化,相对于传统加壳等加固方式对性能的影响更小。
  • 解密密钥经过安全传输后存储在系统TEE环境中,更加安全。

加密影响

  1. 加密后的应用在程序启动和运行过程中可能会小幅度增加性能开销。
  2. 加密后的应用相比于不加密的应用体积更大,可能会小幅度增加下载和安装时间。

注意

  • 加密对应用的性能影响与被加密的代码文件大小成线性关系,可以根据以下冷启动性能劣化估算公式估算影响:

    • 冷启动劣化时间(ms) ≈ .abc文件大小(MB) * 8
    • 该公式只能进行粗略估算,跟实际劣化可能相差较大。

加密效果

加密对象为应用内编译后的代码文件,覆盖.abc文件,加密前的代码文件可被反编译,加密后的代码文件不可被分析,保障应用代码防逆向分析、防破解。

注意

  • .abc文件除了文件头外,全部进行加密。
  • 当前.so文件默认不进行加密,后续可能支持按照开发者配置进行.so文件的加密

由于应用加密使用的密钥完全不会在应用包中出现,因此,即使加密后的应用应用包被获取,攻击者仅能获取到代码的密文,仍然相当于要破解AES密码算法才能进行逆向分析。

使用步骤

应用加密特性在应用上架时加密,应用运行时按需解密。安全增强的同时,确保开发者、消费者无感的安全体验,避免应用开发者适配工作,保障用户无感的纯净安全体验。通过内核高效解密能力,打造优于三方加壳工具的性能体验。

注意

当前ArkTS卡片服务对应的widgets.abc文件暂不支持加密服务。

应用加密在不同阶段中的步骤如下:

  • 开发阶段:开发者无感知。

  • 上架阶段:开发者选取待发布的软件包并上传后,可选择设置分发的软件包是否加密,选择加密后即被加密。

  • 分发阶段:应用将被应用市场加密分发,防止安装包被获取后逆向分析。

  • 安装阶段:应用解密密钥经端云安全协商后在TEE环境内安全存储。

  • 运行阶段:内核加载应用时,按需解密。

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

在这里插入图片描述

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

在这里插入图片描述

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2196888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

<Rust>iced库(0.13.1)学习之番外:如何为窗口添加初始值?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 注:新版本已更新为0.13 概述 这是本专栏的番外篇,主要介绍一下新…

国产测径仪的发展历史

关键字:国产测径仪,进口测径仪,蓝鹏测控,测径仪厂家,测径仪品牌 国产测径仪的发展史是一段从引进技术到自主创新、从依赖进口到逐步国产替代的历程。以下是国产测径仪发展史上的几个关键阶段和里程碑: 起步与引进阶段 在早期,国内测径仪技术相对落后&a…

AI Agent现状:为何企业落地AI应用这么难

本文旨在探讨一个关键问题:为何在企业AI应用场景中,大模型应用在用户眼中显得乏善可陈,以至于未能激发出足够的实施意愿。简要来说,当前大多数文本相关应用所提供的智能增值不足,用户需要至少100次以96%准确率进行的LL…

虚拟化数据恢复—互斥不当导致vmfs卷损坏的数据恢复案例

虚拟化数据恢复环境: 某企业信息管理平台, 几台VMware ESX Server主机共享一台存储设备,大约有几十台虚拟机。 虚拟化故障&原因: Vcenter报告虚拟磁盘丢失。管理员通过ssh远程到ESX中执行fdisk -l命令查看磁盘,发…

第二十天|二叉搜索树的公共祖先,修改与构造| 235. 二叉搜索树的最近公共祖先, 701. 二叉搜索树中的插入操作,450. 删除二叉搜索树中的节点

关于二叉搜索树的题目,貌似普遍用迭代法比递归法简单。目前做到的除了98验证二叉搜索树都是如此。 701其实很简单,只是之前自己想不到直接添加到叶子节点这个方法。 注意一个问题:判断需要返回 root 还是 newRoot 返回 root:当操…

超好用的数据库连接工具-DBeaver连接ClickHouse后找不到系统表?

一、前言 公司内部禁止使用Navicat,又不想装JetBrains的DataGrip。找了半天找到这款完全开源的数据库连接工具,几乎可以连接市面上所有的数据库,功能非常强大 二、工具简介 对关系数据库的基本支持:MySQL、SQL Server、PostgreS…

双十一好物清单!这5款高端又实用的双十一好物千万别错过!

随着双十一购物狂欢节的临近,空气中开始弥漫着一股热烈而兴奋的购物气氛。在这个日子里,商品的折扣与优惠的都比较大,很多人都想挑选一款产品,但是,面对琳琅满目的好物,如何选择变成了一个难题,…

数组综合应用(下标计数)C++

第1题 铅笔 时限:1s 空间:256m 桌面有n个盒子,第i个盒子有a[i]支铅笔。 你想要得到尽量多的铅笔,但是如果某两个盒子有相同数量的铅笔,那么你是不能同时拥有这两个盒子的。 问你最多可以得到多少支铅笔。 输入…

Css flex布局下 两端对齐与居中对齐

两端对齐 <view class"top"><view class"history"><image src"../../static/avatar/history.png" mode"" style"width: 70rpx;height: 70rpx;;"></image></view><view class"title…

【LeetCode】每日一题 2024_10_8 旅行终点站(哈希)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 国庆结束了 . . . 力扣的每日一题也来到了终点站 题目&#xff1a;旅行终点站 代码与解题思路 func destCity(paths [][]string) string { // 国庆结束&#xff0c;旅途到了终点// 今天这道题算是一个小…

Qt Qml Map-地图绘制点与圆的切线

基于此源码替换 main.qml 文件https://download.csdn.net/download/qq_38159549/89860109https://download.csdn.net/download/qq_38159549/89860109 import QtQuick 2.5 import QtQuick.Window 2.2 import QtQuick.Controls 1.3 import QtLocation 5.3 import QtPositi…

【Linux】进程间通信——System V消息队列和信号量

一、消息队列 1.1 概念 进程间通信的原理是让不同进程看到同一份资源&#xff0c;资源种类的不同就决定了通信方式的差异。如果用管道通信&#xff0c;则资源是文件缓冲区&#xff1b;如果用共享内存&#xff0c;则资源是内存块 消息队列是由操作系统提供的资源&#xff0c;…

注意!新增一本期刊解除On Hold!仍有37本无法检索慎投!

On Hold期刊 2024年9月29日&#xff0c;小编从WOS数据库查到新增一本ESCI期刊《SOCAR Proceedings》解除On Hold标识 目前共37本期刊被标记&#xff0c;期刊整理如下&#xff0c;请注意避雷&#xff01; 01 解除风险期刊 SOCAR Proceedings • ISSN&#xff1a;2218-6867 •…

RAR解压缩软件的全面指南:压缩、加密、修复功能一应俱全

在日常文件管理中&#xff0c;压缩文件格式与解压缩工具是不可或缺的组成部分。而RAR格式&#xff0c;凭借其高效的压缩率、丰富的功能和灵活的文件管理方式&#xff0c;成为了用户最常使用的压缩格式之一。 作为处理RAR格式的专业工具&#xff0c;RAR解压缩软件具备压缩、加密…

马哥亲讲k8s集群搭建

文章目录 Docker和K8s安装1.docker安装2.安装cri-dockerd3.安装kubelet、kubeadm、kubectl4.整合kubelet和cri-dockerd 集群节点部署1.配置国内镜像站2.方式一&#xff1a;命令初始化1.kubeadm init2.保存初始化token3.拷贝/etc/kubernetes/admin.conf4.部署网络插件5.kubectl …

reactNative本地调试localhost踩坑

本地调试请求localhost的时候 1.要和电脑处在同一局域网下面&#xff08;同一个wifi&#xff09; 2.把baseURL的localhost改成命令行中ipconfig查询到的IPv4 地址 . . . . . . . . . . . . : &#xff08;例如&#xff09;192.168.1.103 如果报错Net Work Error&#xff0c;可…

算法知识点————贪心

贪心&#xff1a;只考虑局部最优解&#xff0c;不考虑全部最优解。有时候得不到最优解。 DP&#xff1a;考虑全局最优解。DP的特点&#xff1a;无后效性&#xff08;正在求解的时候不关心前面的解是怎么求的&#xff09;&#xff1b; 二者都是在求最优解的&#xff0c;都有最优…

如何扫描HTTP代理:步骤与注意事项

HTTP代理是一个复杂的过程&#xff0c;通常用于寻找可用的代理服务器&#xff0c;以便在网络中实现匿名或加速访问。虽然这个过程可以帮助用户找到适合的代理&#xff0c;但也需要注意合法性和道德问题。本文将介绍如何扫描HTTP代理&#xff0c;并提供一些建议和注意事项。 什…

剖析十大经典二叉树题目:C 语言代码实现与深度解读

&#x1f4af;前言 二叉树是数据结构中的重要概念&#xff0c;在算法和编程中有着广泛的应用。以下是十大经典的二叉树题目及其解析与 C 语言代码实现&#xff0c;同时也会说明题目来源。 二叉树的基本概念&#x1f449;【剖析二叉树】 目录 &#x1f4af;二叉树的遍历 ⭐前…

AI大模型真的是大龄程序员的新的出路吗?_大龄程序员ai创业

前言 在IT行业的高速运转中&#xff0c;许多资深程序员到了一定年龄后&#xff0c;会发现自己陷入了职业发展的瓶颈。尤其是在北京这样的大厂&#xff0c;业务波动、部门调整以及裁员风险&#xff0c;都让“40”的程序员们感受到了前所未有的压力。当昔日的技术热情逐渐消退&a…