CN115982726A - 一种基于Openharmony的组件权限管理方法 - Google Patents
一种基于Openharmony的组件权限管理方法 Download PDFInfo
- Publication number
- CN115982726A CN115982726A CN202211500453.1A CN202211500453A CN115982726A CN 115982726 A CN115982726 A CN 115982726A CN 202211500453 A CN202211500453 A CN 202211500453A CN 115982726 A CN115982726 A CN 115982726A
- Authority
- CN
- China
- Prior art keywords
- application
- openharmony
- modifying
- authority
- napi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于Openharmony的组件权限管理方法,其特征在于,在不改变Openharmony本身架构的前提下,为系统服务和NAPI访问控制提供了一种通用的技术方案,具体包括:S1、建立区别于Openharmony原生的全新注册表;S2、在Openharmony系统的BUNDLEMGR追加应用注册操作;S3、修改应用管理服务appmgr,植入应用启动权限控制功能;S4、修改NAPI框架功能;S5、修改ACE框架;S6、修改SAMGR服务;S7、系统服务组件访问权限配置;S8、系统服务组件访问权限修改;S9、组件状态修改;本发明填补了基于Openharmony的系统服务访问控制组件的空白,可根据需求自主设置系统服务的访问者权限,系统服务的访问权限可远程修改,权限修改指令可定制化,保障了隐私与安全性,使用方法灵活可按需使用,不影响原系统技术架构体系。
Description
技术领域
本发明涉及Openharmony操作系统的系统服务开发管理领域,具体地说是一种基于Openharmony的组件权限管理方法。
背景技术
Openharmony是国产的一款开源的操作系统,具有先进的分布式框架,同时由于发布的时间不长,功能尚不完善。特别是在金融场景下,NAPI(新型应用程序编程接口)可以被任何经过简单签名的应用调用,对系统服务的访问也没有做实质性的权限控制,这导致一些具有金融属性的需要进行访问控制的系统服务和NAPI被暴露在信息泄露和恶意操作的危险之中。而在每个系统服务和NAPI中加入权限控制功能将耗费大量的开发工作量,最终影响整体的开发效率。
现有技术中,系统服务的调用是通过Openharmony系统的SAMGR,而NAPI的调用是通过BUNDLEMGR中转实现,需要将以上两种服务融合到一种框架中。
操作系统中进程间的通信都是经过binder以代理的方式进行,被调双方均无法获取对方的信息,也就无法进行权限控制。需要使用一种机制能够使被调用方能够感知调用者的身份,进而判断访问权限。
发明内容
本发明基于Openharmony L2(开源鸿蒙标准系统)系统,为系统开发者提供一种针对系统服务和NAPI的权限管理方法,既一种基于Openharmony的组件权限管理方法,以解决现有技术中系统服务的调用是通过Openharmony系统的SAMGR(系统能力管理服务),而NAPI的调用是通过BUNDLEMGR(系统包管理服务)中转实现,需要将以上两种服务融合到一种框架中;和操作系统中进程间的通信都是经过binder(进程通信套件)以代理的方式进行,被调双方均无法获取对方的信息,也就无法进行权限控制的问题。
为实现上述目的,本发明提供以下技术方案:
一种基于Openharmony的组件权限管理方法,在不改变Openharmony本身架构的前提之下,为系统服务和NAPI的访问控制提供了一种通用的技术方案,具体包括以下步骤:
S1、建立区别于Openharmony原生的全新注册表;
S2、在Openharmony系统的BUNDLEMGR追加应用注册操作;
S2.1、修改应用安装进程ProcessBundleInstall方法,在应用安装过程完成后插入注册表注册功能;
S2.1.1、取得应用的BundleName(组件名称)并传入注册表对应NAME字段;
S2.1.2、取得应用版本号存入注册表;
S2.1.3、取得应用版本号、签名、描述、版权信息存入注册表;
S2.1.4、判断应用类型,系统预置应用为OS,第三方应用为EXT,存入注册表;
S2.1.5、设置应用初始状态为“使用中”;
S2.1.6、生成应用安全签名;
S2.1.7、提交注册信息,存入系统内置数据库,完成注册。
S2.2、修改应用卸载进程ProcessBundleUninstall方法,在应用卸载时清除注册表记录。
S2.2.1、通过bundleName取得应用注册信息;
S2.2.2、删除对应注册表信息;
S2.2.3、完成应用删除。
S3、修改应用管理服务appmgr(应用管理服务),植入应用启动权限控制功能;
S3.1、取得应用注册信息;
S3.2、判断是否具有应用启动权限;
S3.3、如权限验证通过则启动应用,否则结束应用启动过程。
S4、修改NAPI框架功能;
S4.1、在NAPI启动时追加注册功能;
S4.1.1、调用系统原注册接口进行注册;
S4.1.2、取得NAPI名称信息;
S4.1.3、初始化NAPI的类型、运行状信息;
S4.1.4、向[步骤S1]的注册表中注册NAPI;
S4.2、成生数字签名;
S4.2.1、取得Napi的数型和名称;
S4.2.2、使用BlowFinsh算法生成数字签名;
S4.3、返回数字签名,保存至内存中;
S4.4、增加NAPI访问控制功能;
S4.4.1、取得访问NAPI应用的数字签名,根据CID(组件表示码)判断是否具有访问权限;
S4.4.2、具有访问权限的应用继续执行NAPI调用操作;
S4.4.3、中断没有访问权限应用的调用操作。
S5、修改ACE(跨平台能力环境)框架;
S5.1、在应用安装时,取得应用属性信息;
S5.2、将应用的属性信息存入注册表。
S6、修改SAMGR服务;
S6.1、在safwk(系统服务框架)中追加权限判断功能;
S6.1.1、取得SAMGER代理服务;
S6.1.2、判断服务是否正常取得,如未正常取得则返回错误消息,结束SA(系统服务)调用服务;
S6.1.3、取得系统注册码以及SA的数字签名;
S6.1.4、判断是否具有访问权限;
S6.2、在SAMGR中追加权限判断功能;
S6.2.1、判断系统注册码是否有效,如无效,调用中断,返回错误信息;
S6.2.2、根据传入数字签名判断是否具有访问权限。
S7、系统服务组件访问权限配置;
S7.1、在系统启动时读取系统服务接口访问权限的初始化文件;
S7.2、根据配置文件生成和更新已注册组件的CID,CID由组件编号和访问者数字签名组件;
S7.3、将CID存入注册表中对应的字段中。
S8、系统服务组件访问权限修改;
S8.1、在被访问组件的CID增加访问者的数字签名,即可添加访问权限;
S8.2、在被访问组件的CID删除访问者的数字签名,即可删除访问权限。
S9、组件状态修改。
S9.1、被访问组件注册信息中的STATUS字段默认为1:使用中;
S9.2、将被访问组件注册信息中的STATUS字段改为0:停用,则该组件停用,处于不可使用状态。
与现有技术相比,本发明有益效果如下:
本发明填补了基于Openharmony的系统服务访问控制组件的空白,可做到根据需求自主设置系统服务的访问者权限,系统服务的访问权限可远程修改,权限修改指令可定制化,保障了隐私与安全性,且使用方法灵活,可按需使用,不影响原系统技术架构体系。
附图说明
图1为本发明步骤S1中的注册表结构;
图2为本发明组件管理功能系统启动加载流程;
图3为本发明权限判断流程图。
具体实施方式
为阐明技术问题、技术方案、实施过程及性能展示,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释。本发明,并不用于限定本发明。以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
实施例1
一种基于Openharmony的组件权限管理方法,在不改变Openharmony本身架构的前提之下,为系统服务和NAPI的访问控制提供了一种通用的技术方案,具体包括以下步骤:
S1、建立区别于Openharmony原生的全新注册表;
S2、在Openharmony系统的BUNDLEMGR追加应用注册操作;
S2.1、修改应用安装进程ProcessBundleInstall方法,在应用安装过程完成后插入注册表注册功能;
S2.1.1、取得应用的BundleName并传入注册表对应NAME字段;
S2.1.2、取得应用版本号存入注册表;
S2.1.3、取得应用版本号、签名、描述、版权信息存入注册表;
S2.1.4、判断应用类型,系统预置应用为OS,第三方应用为EXT,存入注册表;
S2.1.5、设置应用初始状态为“使用中”;
S2.1.6、生成应用安全签名;
S2.1.7、提交注册信息,存入系统内置数据库,完成注册。
S2.2、修改应用卸载进程ProcessBundleUninstall方法,在应用卸载时清除注册表记录。
S2.2.1、通过bundleName取得应用注册信息;
S2.2.2、删除对应注册表信息;
S2.2.3、完成应用删除。
S3、修改应用管理服务appmgr,植入应用启动权限控制功能;
S3.1、取得应用注册信息;
S3.2、判断是否具有应用启动权限;
S3.3、如权限验证通过则启动应用,否则结束应用启动过程。
S4、修改NAPI框架功能;
S4.1、在NAPI启动时追加注册功能;
S4.1.1、调用系统原注册接口进行注册;
S4.1.2、取得NAPI名称信息;
S4.1.3、初始化NAPI的类型、运行状信息;
S4.1.4、向[步骤S1]的注册表中注册NAPI;
S4.2、成生数字签名;
S4.2.1、取得Napi的数型和名称;
S4.2.2、使用BlowFinsh算法生成数字签名;
S4.3、返回数字签名,保存至内存中;
S4.4、增加NAPI访问控制功能;
S4.4.1、取得访问NAPI应用的数字签名,根据CID判断是否具有访问权限;
S4.4.2、具有访问权限的应用继续执行NAPI调用操作;
S4.4.3、中断没有访问权限应用的调用操作。
S5、修改ACE框架;
S5.1、在应用安装时,取得应用属性信息;
S5.2、将应用的属性信息存入注册表。
S6、修改SAMGR服务;
S6.1、在safwk中追加权限判断功能;
S6.1.1、取得SAMGER代理服务;
S6.1.2、判断服务是否正常取得,如未正常取得则返回错误消息,结束SA调用服务;S6.1.3、取得系统注册码以及SA的数字签名;
S6.1.4、判断是否具有访问权限;
S6.2、在SAMGR中追加权限判断功能;
S6.2.1、判断系统注册码是否有效,如无效,调用中断,返回错误信息;
S6.2.2、根据传入数字签名判断是否具有访问权限。
S7、在系统启动时读取系统服务接口访问权限的初始化文件;
S7.1、在系统启动时读取权限初始化文件;
S7.2、根据配置文件生成和更新已注册组件的CID,CID由组件编号和访问者数字签名组件;
S7.3、将CID存入注册表中对应的字段中。
S8、系统服务组件访问权限修改;
S8.1、在被访问组件的CID增加访问者的数字签名,即可添加访问权限;
S8.2、在被访问组件的CID删除访问者的数字签名,即可删除访问权限。
S9、组件状态修改。
S9.1、被访问组件注册信息中的STATUS字段默认为1:使用中;
S9.2、将被访问组件注册信息中的STATUS字段改为0:停用,则该组件停用,处于不可使用状态。
具体使用时,将本申请的组件权限管理方法加载到操作系统中,并开始进行权限管理工作需要经过如下具体加载流程:
Step1:系统启动时从指定目录读取系统服务访问权限配置文件;
Step2:启动权限控制服务Module_Management;
Step3:判断系统是否第一次启动,满足的情况下,即自动生成注册表;
Step4:读取配置文件中需要进行管控的系统服务,生成以下注册信息;
1:编号,2:类型,3:名称,4:版本,5:签名6:描述,7:版权,8:种类,9:状态,10:标识码;
Step5:读取配置文件中需要进行管控的Napi,生成注册信息,注册信息内容同Step4;
Step6:扫描系统预装应用,将预装应用信息自动写入注册表,注册表内容同Step4;
Step7:使用对称分组加密算法生成CID,CID由组件授权ID与调用者指纹组成;
Step8:从Step1读取的配置文件中取得调用者初始化信息,使用非对称加密算法为调用者生成指纹信息;
Step9:从Step1读取的配置文件中取得调用者初始化信息,使用非对称加密算法为调用者生成指纹信息。
当本申请的组件权限管理功能经过上述步骤加载到系统中后,访问系统组件所经过的访问权限验证过程如下所示:
Step1:调用者发出调用请求,调用请求的参数需包含调用者指纹以及系统服务全局唯一识别码,在SAMGR处理之前由权限控制服务拦截;
Step2:权限控制服务判断调用者是否具有访问被调用服务的权限,取得被调用服务的CID,与调用者指纹进行匹配。如匹配成功则运行Step3-1,如不成功则运行Step3-2;
Step3-1:验证成功,将请求服务交由SAGMR继续处理,并由SAMGR代理服务返回请求结果;
Step3-2:验证失败,结束调用动作。
本发明填补了基于Openharmony的系统服务访问控制组件的空白,可做到根据需求自主设置系统服务的访问者权限,系统服务的访问权限可远程修改,权限修改指令可定制化,保障了隐私与安全性,且使用方法灵活,可按需使用,不影响原系统技术架构体系。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (9)
1.一种基于Openharmony的组件权限管理方法,其特征在于,在不改变Openharmony本身架构的前提之下,为系统服务和NAPI的访问控制提供了一种通用的技术方案,具体包括以下步骤:
S1、建立区别于Openharmony原生的全新注册表;
S2、在Openharmony系统的BUNDLEMGR追加应用注册操作;
S3、修改应用管理服务appmgr,植入应用启动权限控制功能;
S4、修改NAPI框架功能;
S5、修改ACE框架;
S6、修改SAMGR服务;
S7、系统服务组件访问权限配置;
S8、系统服务组件访问权限修改;
S9、组件状态修改。
2.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S2包括以下内容:
S2.1、修改应用安装进程ProcessBundleInstall方法,在应用安装过程完成后插入注册表注册功能;
S2.2、修改应用卸载进程ProcessBundleUninstall方法,在应用卸载时清除注册表记录;
其中,所述步骤S2.1具体包括:
S2.1.1、取得应用的BundleName并传入注册表对应NAME字段;
S2.1.2、取得应用版本号存入注册表;
S2.1.3、取得应用版本号、签名、描述、版权信息存入注册表;
S2.1.4、判断应用类型,系统预置应用为OS,第三方应用为EXT,存入注册表;
S2.1.5、设置应用初始状态为“使用中”;
S2.1.6、生成应用安全签名;
S2.1.7、提交注册信息,存入系统内置数据库,完成注册;
所述步骤S2.2具体包括:
S2.2.1、通过bundleName取得应用注册信息;
S2.2.2、删除对应注册表信息;
S2.2.3、完成应用删除。
3.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S3具体包括以下内容:
S3.1、取得应用注册信息;
S3.2、判断是否具有应用启动权限;
S3.3、如权限验证通过则启动应用,否则结束应用启动过程。
4.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S4包括以下内容:
S4.1、在NAPI启动时追加注册功能;
S4.2、成生数字签名;
S4.3、返回数字签名,保存至内存中;
S4.4、增加NAPI访问控制功能;
其中步骤S4.1具体包括:
S4.1.1、调用系统原注册接口进行注册;
S4.1.2、取得NAPI名称信息;
S4.1.3、初始化NAPI的类型、运行状信息;
S4.1.4、向[步骤S1]的注册表中注册NAPI;
步骤S4.2具体包括:
S4.2.1、取得Napi的数型和名称;
S4.2.2、使用BlowFinsh算法生成数字签名;
步骤S4.4具体包括:
S4.4.1、取得访问NAPI应用的数字签名,根据CID判断是否具有访问权限;
S4.4.2、具有访问权限的应用继续执行NAPI调用操作;
S4.4.3、中断没有访问权限应用的调用操作。
5.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S5具体包括以下内容:
S5.1、在应用安装时,取得应用属性信息;
S5.2、将应用的属性信息存入注册表。
6.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S6包括以下内容:
S6.1、在safwk中追加权限判断功能;
S6.2、在SAMGR中追加权限判断功能;
其中,步骤S6.1具体包括:
S6.1.1、取得SAMGER代理服务;
S6.1.2、判断服务是否正常取得,如未正常取得则返回错误消息,结束SA调用服务;
S6.1.3、取得系统注册码以及SA的数字签名;
S6.1.4、判断是否具有访问权限;
步骤S6.2具体包括:
S6.2.1、判断系统注册码是否有效,如无效,调用中断,返回错误信息;
S6.2.2、根据传入数字签名判断是否具有访问权限。
7.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S7具体包括以下内容:
S7.1、在系统启动时读取系统服务接口访问权限的初始化文件;
S7.2、根据配置文件生成和更新已注册组件的CID,CID由组件编号和访问者数字签名组件;
S7.3、将CID存入注册表中对应的字段中。
8.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S8具体包括以下内容:
S8.1、在被访问组件的CID增加访问者的数字签名,即可添加访问权限;
S8.2、在被访问组件的CID删除访问者的数字签名,即可删除访问权限。
9.根据权利要求1所述的一种基于Openharmony的组件权限管理方法,其特征在于,所述步骤S9具体包括以下内容:
S9.1、被访问组件注册信息中的STATUS字段默认为1:使用中;
S9.2、将被访问组件注册信息中的STATUS字段改为0:停用,则该组件停用,处于不可使用状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211500453.1A CN115982726A (zh) | 2022-11-28 | 2022-11-28 | 一种基于Openharmony的组件权限管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211500453.1A CN115982726A (zh) | 2022-11-28 | 2022-11-28 | 一种基于Openharmony的组件权限管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115982726A true CN115982726A (zh) | 2023-04-18 |
Family
ID=85963694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211500453.1A Pending CN115982726A (zh) | 2022-11-28 | 2022-11-28 | 一种基于Openharmony的组件权限管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982726A (zh) |
-
2022
- 2022-11-28 CN CN202211500453.1A patent/CN115982726A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2302549B1 (en) | Platform security apparatus and method thereof | |
US6754828B1 (en) | Algorithm for non-volatile memory updates | |
US9572025B2 (en) | Method, server, computer program and computer program product for communicating with secure element | |
US20080022381A1 (en) | Uniform framework for security tokens | |
CN105975850B (zh) | 一种基于移动终端的软件下载方法及系统 | |
US9390259B2 (en) | Method for activating an operating system in a security module | |
JP2002150233A (ja) | Icカードシステム用記録媒体及びicカードシステム | |
WO2022179076A1 (zh) | 机卡绑定方法、通信模组、通信设备和存储介质 | |
CN103119600A (zh) | 信息处理装置、信息处理装置控制方法、信息处理装置控制程序以及记录了信息处理装置控制程序的计算机可读取的记录介质 | |
US10440056B2 (en) | Method for deploying an application in a secure element | |
CN111786995B (zh) | 账号密码管理方法、管理中间件、系统、设备及存储介质 | |
CN106576239B (zh) | 一种安全单元中内容管理的方法及装置 | |
CN102067147A (zh) | 验证密钥处理 | |
CN115982726A (zh) | 一种基于Openharmony的组件权限管理方法 | |
CN117616389A (zh) | 安全元件中可执行加载文件的替换 | |
CN110852139A (zh) | 生物特征识别方法、装置、设备以及存储介质 | |
KR20230019032A (ko) | 사전 개인화된 보안 요소 및 내장된 개인화 | |
US7684992B2 (en) | Remote application correction | |
CN112367339A (zh) | 一种系统安全登录管理方法及装置 | |
US20230401576A1 (en) | Portable electronic device for cryptocurrency transaction | |
CN114528033A (zh) | 控制方法、装置、电子设备以及存储介质 | |
US20240097917A1 (en) | User data management method and related device | |
CN110719341B (zh) | 数据处理方法及装置、dhcp服务器及存储介质 | |
KR100823631B1 (ko) | 키 저장 관리 | |
CN118036018A (zh) | 安全元件中操作系统的更新方法、相关装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |