CN114490010A - 资源操作控制方法、电子设备、芯片及可读存储介质 - Google Patents
资源操作控制方法、电子设备、芯片及可读存储介质 Download PDFInfo
- Publication number
- CN114490010A CN114490010A CN202011166230.7A CN202011166230A CN114490010A CN 114490010 A CN114490010 A CN 114490010A CN 202011166230 A CN202011166230 A CN 202011166230A CN 114490010 A CN114490010 A CN 114490010A
- Authority
- CN
- China
- Prior art keywords
- driver
- hardware resource
- authority
- information
- device driver
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种资源操作控制方法,涉及电子设备领域。通过获取设备驱动程序的权限信息与标识信息,并将权限信息与标识信息进行绑定存储至预设存储区,当运行该设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于预设存储区存储的权限信息确定驱动进程是否具备操作该硬件资源的操作权限,若确定具备操作权限,允许驱动进程通过硬件资源访问接口操作该硬件资源;若不具备操作权限,拒绝操作该硬件资源。本申请实施例还提供了一种电子设备、芯片及计算机可读存储介质。本申请可以实现对硬件资源的操作权限控制,避免驱动程序非法访问或操作硬件资源。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种资源操作控制方法、电子设备、芯片及计算机可读存储介质。
背景技术
随着信息社会的发展,各种智能设备如雨后春笋般不断涌现出来。为了降低智能设备驱动开发的难度,现有操作系统提供商提供了移动归一化的用户态设备驱动开发框架,实现可以在用户态使用归一化的接口开发各种驱动代码。当提供在用户态进行驱动开发的能力后,特定硬件(如相机)的提供商可以自行根据该提供商的标准接口定义开发自己的驱动,并通过该提供商认证后针对驱动进行升级,不需要将全部代码集成到系统版本中进行开发,极大简化了设备商的驱动开发流程,方便设备上对驱动进行快速更新,也降低了该提供商集成三方驱动代码的难度。但是,将设备驱动开发开放给第三方后,无法对三方驱动的代码进行实质性的审查和控制,可能会导致三方驱动非法访问其他硬件资源的情况。
发明内容
有鉴于此,有必要提供一种资源操作控制方法,其可克服上述问题,可以实现对硬件资源的访问权限控制,避免驱动程序非法访问或操作硬件资源。
本申请实施例第一方面公开了一种资源操作控制方法,包括:获取设备驱动程序的权限信息与标识信息;将所述设备驱动程序的所述权限信息与所述标识信息进行绑定得到操作权限信息对,并将所述操作权限信息对存储至预设存储区;当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限;及当确定所述驱动进程具备操作所述硬件资源的操作权限时,允许所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
通过采用该技术方案,可实现对硬件资源的操作权限控制,避免驱动程序非法访问或操作硬件资源。
在一种可能的实现方式中,所述将所述设备驱动程序的所述权限信息与所述标识信息进行绑定得到操作权限信息对,包括:将所述权限信息转换为比特位数;将所述比特位数以预设进制的数字进行表示,其中所述预设进制包括二进制、八进制、十进制、十六进制中的任意一种;及将所述权限信息对应的数字与所述标识信息进行绑定,得到所述操作权限信息对。
通过采用该技术方案,可实现将权限信息转换为便于存储的数字形式,且可节省存储空间。
在一种可能的实现方式中,所述方法还包括:将所述标识信息保存至所述设备驱动程序中用于存储驱动程序属性的数据结构中。
通过采用该技术方案,可实现将设备驱动程序的标识信息保存至其属性数据结构中,便于后续基于该标识信息进行权限信息查找。
在一种可能的实现方式中,所述方法还包括:获取所述设备驱动程序中保存的标识信息,并依据所述标识信息从所述预设存储区中找到与所述标识信息对应的权限信息;及将所述标识信息对应的权限信息保存至所述驱动进程的私有数据结构中。
通过采用该技术方案,可实现将权限信息与驱动进程进行动态绑定,避免其他进程仿冒驱动进程从而非法操作硬件资源。
在一种可能的实现方式中,所述当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限,包括:当运行所述设备驱动程序的驱动进程尝试通过所述硬件资源访问接口操作所述硬件资源时,基于所述驱动进程的私有数据结构中保存的权限信息,确定所述驱动进程是否具备操作所述硬件资源的操作权限。
通过采用该技术方案,可实现基于驱动进程绑定的权限信息来确定是否具备操作所述硬件资源的操作权限,可以避免其他进程仿冒驱动进程从而非法操作硬件资源。
在一种可能的实现方式中,所述方法还包括:当所述标识信息对应的权限信息被保存至所述驱动进程的私有数据结构中时,删除存储在所述预设存储区的所述设备驱动程序的所述标识信息与所述权限信息。
通过采用该技术方案,可实现权限信息和驱动进程的动态绑定,避免了将权限信息保存在固定区域导致的暴力或其他方式破解风险。
在一种可能的实现方式中,所述将所述标识信息对应的权限信息保存至所述驱动进程的私有数据结构中,包括:若所述驱动进程包括多个不同级别的安全区域,将所述标识信息对应的权限信息保存至所述驱动进程的最高级别的安全区域。
通过采用该技术方案,可实现在驱动进程包括多个不同级别的安全区域时,将权限信息保存至驱动进程的最高级别的安全区域,可以提高进程运行安全性。
在一种可能的实现方式中,所述当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限,包括:当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,获取所述设备驱动程序中保存的标识信息;及依据所述标识信息从所述预设存储区中找到与所述标识信息对应的权限信息,并基于所找到的权限信息确定所述驱动进程是否具备操作所述硬件资源的操作权限。
通过采用该技术方案,可实现对于安全性要求不高的设备,可以直接基于预设存储区存储的权限信息确定驱动进程是否具备操作所述硬件资源的操作权限。
在一种可能的实现方式中,所述方法还包括:采用预设随机数生成算法生成一随机数,并以所述随机数为种子生成一哈希ID;及将所述哈希ID定义为所述设备驱动程序的标识信息。
通过采用该技术方案,可实现使用随机数来生成哈希ID,并作为设备驱动程序的标识信息,可以提高系统运行安全性。
在一种可能的实现方式中,所述设备驱动程序的标识信息为所述设备驱动程序ID、所述设备驱动程序名称、运行所述设备驱动程序的驱动进程ID、运行所述设备驱动程序的驱动进程名称中的任意一种。
通过采用该技术方案,可实现对于安全性要求不高的设备,可以直接采用设备驱动程序ID或名称,或者驱动进程ID或名称作为设备驱动程序的标识信息,节省存储空间。
在一种可能的实现方式中,所述方法还包括:当确定所述驱动进程不具备操作所述硬件资源的操作权限时,拒绝所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
通过采用该技术方案,可实现当确定驱动进程不具备操作硬件资源的操作权限时,拒绝驱动进程操作该硬件资源。
在一种可能的实现方式中,所述获取设备驱动程序的权限信息,包括:读取所述设备驱动程序的权限配置信息,并对所述权限配置信息进行解析得到所述设备驱动程序的权限信息。
通过采用该技术方案,可实现通过对读取到的权限配置信息进行解析得到设备驱动程序的权限信息,便于后续进行权限检查。
第二方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面所述的资源操作控制方法。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行如第一方面所述的资源操作控制方法。
第四方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的资源操作控制方法。
第五方面,本申请实施例提供一种装置,该装置具有实现上述第一方面所提供的方法中的电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的电子设备,第四方面所述的计算机程序产品,第五方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请一实施例提供的资源操作控制方法的流程示意图;
图2为本申请一实施例提供的电子设备实现资源操作控制的系统架构示意图;
图3为本申请另一实施例提供的电子设备实现资源操作控制的系统架构示意图;
图4为本申请又一实施例提供的电子设备实现资源操作控制的系统架构示意图;
图5为本申请又一实施例提供的电子设备实现资源操作控制的系统架构示意图;
图6为本申请一实施例提供的驱动管理程序控制方法的流程示意图;
图7为本申请一实施例提供的一种可能的电子设备的结构示意图。
具体实施方式
需要说明的是,本申请中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参考。
参照图1所示,本申请实施例提供的一种资源操作控制方法,应用于电子设备100中,电子设备100可以是手机、电脑、智能手表等设备。本实施例中,资源操作控制方法可以包括:
11、获取设备驱动程序的权限信息与标示信息。
在一些实施例中,所述设备驱动程序可以是指电子设备100的硬盘驱动程序、显卡驱动程序、屏幕驱动程序等。所述权限信息为记录有该设备驱动程序可以操作(比如读操作、写操作、拉高操作、拉低操作、打开操作、关闭操作等)的硬件资源的描述信息,例如记录了该设备驱动程序是否可以操作通用输入输出(General Purpose Input Output,GPIO)、集成电路总线(Inter-Integrated Circuit,I2C)、串行外设接口(Serial PeripheralInterface,SPI)等硬件资源,或者可以读GPIO、写I2C等。
在一些实施例中,可以通过读取设备驱动程序的权限配置信息并对所述权限配置信息进行解析得到设备驱动程序的权限信息,所述权限配置信息可以以文本文件、设备树文件或者其他格式的文件进行保存。所述权限配置信息中记载的权限信息可以采用诸如GPIO=“write”、I2C=“read”的形式(可以读GPIO、写I2C),或者Permission=[“GPIO”,“I2C”](可以读写GPIO、I2C),或者Write_permission=[“GPIO”,“I2C”](可以写GPIO、I2C)等形式来表示。
在一些实施例中,可以在电子设备100开机启动时,读取设备驱动程序的权限配置信息,并进行解析。当解析得到多个设备驱动程序的权限信息时,可以将解析得到的多个权限信息暂存至指定存储区,也可以将权限信息转换成数字等其他易于保存的形式后再进行暂存。多个设备驱动程序的权限信息可以暂存至一个或多个文件中。
在一些实施例中,可以采用比特位(bit)的形式对每种硬件资源分配1~2bit进行表示,然后将硬件资源的权限信息转换成数字进行表示,数字可以是二进制数字、八进制数字、十进制数字、十六进制数字等。
例如,可以采用Bit0~Bit7分别表示GPIO、SPI、I2C、高速平行接口(HighPerformance Parallel Interface,HIPPI)、串行高级技术附件(Serial AdvancedTechnology Attachment,SATA)、外设组件互连(Peripheral Component Interconnect,PCI)、高速串行计算机扩展总线标准(Peripheral Component Interconnect Express、PCIe)、通用串行总线(Universal Serial Bus,USB)等硬件资源,如下表1所示:
表1
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
USB | PCIe | PCI | SATA | HIPPI | I2C | SPI | GPIO |
针对所支持的上述8种硬件资源,可以使用一位数据长度来表示是否可以操作,比如采用二进制数字“1”代表该硬件资源可以操作,数字“0”代表该硬件资源不可以操作。例如设备驱动程序A的权限信息对应的Bit0~Bit7为“00000011”,即表示设备驱动程序A的权限信息为具备操作GPIO与SPI的权限,不具备操作I2C、HIPPI、SATA、PCI、PCIe及USB的权限。设备驱动程序A的权限信息对应的Bit0~Bit7“00000011”可以转换为十六进制数字“0x3”,即可以将设备驱动程序A的权限信息表示为“0x3”。
在实际系统使用中,可以根据硬件资源的能力丰富程度选取合适的数据长度来进行权限表示,比如还可以使用二位数据长度、三位数据长度来进行权限表示,比如采用二进制数字“10”代表该硬件资源可以被读操作,数字“01”代表该硬件资源可以被写操作,采用二进制数字“11”代表该硬件资源可以被读写操作,采用二进制数字“00”代表该硬件资源不可以被操作。
在一些实施例中,可以在设备驱动程序启动时,获取设备驱动程序的标识信息,也可以在电子设备100开机启动时,获取电子设备100中每一设备驱动程序的标识信息。所述设备驱动程序的标识信息可以是指可唯一标识所述设备驱动程序的信息,比如可以是所述设备驱动程序ID、所述设备驱动程序名称、运行所述设备驱动程序的驱动进程ID、或运行所述设备驱动程序的驱动进程名称等。
在一些实施例中,对安全性要求较高的应用场景,还可以采用哈希ID来作为该设备驱动程序的标识信息。具体地,针对当前的设备驱动程序,可以采用预设随机数生成器来生成一个随机数,并以该随机数为种子来生成一个固定长度的哈希ID,再将该哈希ID定义为该设备驱动程序的标识信息。比如可以采用OpenSSL的哈希ID生成函数来生成64位的哈希ID。随机数生成器采用的随机数生成算法可以根据实际需求进行选择,在此不作限定。
12、将所述设备驱动程序的权限信息与标识信息进行绑定得到操作权限信息对,并将所述操作权限信息对存储至预设存储区。
在一些实施例中,设备驱动程序的标识信息可以被保存到该设备驱动程序的相关数据结构中,具体保存至设备驱动程序的那个数据结构中,可以根据实际需求进行预先设定。比如,可以将设备驱动程序的标识信息保存至该设备驱动程序中用于存储驱动程序属性的数据结构中。
在一些实施例中,当获取得到设备驱动程序的权限信息与标识信息时,可以将设备驱动程序的权限信息与标识信息进行绑定得到操作权限信息对,并将该操作权限信息对存储至预设存储区。比如,设备驱动程序A的权限信息被表示为十六进制数字“0x3”,设备驱动程序A的标识信息为“hash_ID1”,设备驱动程序A对应的操作权限信息对表示为<hash_ID1,0x3>。操作权限信息对中的“hash_ID1”实际是一64位的哈希ID,为了方便说明,在此仅以符号“hash_ID1”进行表示。
在一些实施例中,加载至电子设备100的操作系统一般会划分一个或多个安全存储区来存储关键信息。所述预设存储区可以是指安全存储区,安全存储区可以是由专门硬件管控的一个存储器件,也可以是由可信执行环境(TEE)操作系统(Operating System,OS)等安全OS控制的区域,或者是安全性高于当前设备驱动程序运行空间的存储区,例如相对于用户态程序,内核可以认为是安全存储区。
13、当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限。
在一些实施例中,当需要启动一设备驱动程序时,可以先创建一个进程,并将该设备驱动程序分配到该进程上运行,进而可以实现执行该设备驱动程序。
该硬件资源可以是指当前驱动进程尝试操作的硬件资源,比如可以是GPIO、I2C、SPI等硬件资源。当设备驱动程序的驱动进程尝试通过硬件资源访问接口操作该硬件资源时,可以基于预设存储区存储的操作权限信息对,确定该驱动进程是否具备操作硬件资源的操作权限。具体地,驱动进程可以基于设备驱动程序所保存的标识信息进行权限获取。权限获取的方式可以是:通过系统安全调用至安全存储区,并依据设备驱动程序所保存的标识信息从该安全存储区查找与该标识信息对应的权限信息,进而基于查找到的权限信息确定所述驱动进程是否具备操作所述硬件资源的操作权限。如果具有该操作权限,则可以正常操作所述硬件资源;否则,若不具有该操作权限,拒绝操作所述硬件资源。
在一些实施例中,当从安全存储区查找到与该设备驱动程序所保存的标识信息对应的权限信息时,还可以将该权限信息保存至该驱动进程的私有数据结构中。比如,该私有数据结构为priv数据结构。如果设备驱动程序包含多种访问或操作权限信息,也可以在priv数据结构中新建一个专门用于存储该多种访问或操作权限信息的子数据结构,该权限信息可以保存至该子数据结构。
在一些实施例中,如果该驱动进程拥有多个不同级别的安全区域,则该权限信息可以保存在其安全级别最高的安全区域中。比如在Linux平台,若内核内存空间为安全级别最高的安全区域,该权限信息可以保存至驱动进程的内核内存空间中。
在一些实施例中,可以为安全存储区设定一个读写锁,避免多线程或多进程对安全存储区进行读写操作发生互斥保护问题,该读写锁可以允许多个进程或多个线程对安全存储区进行读操作,但只允许一个进程或线程对安全存储区进行写操作。
在一些实施例中,为了提升系统安全性,避免权限信息保存在固定存储区被暴力或其他方式破解,当该标识信息对应的权限信息被保存至该驱动进程的私有数据结构时,可以删除安全存储区保存的该标识信息对应的数据,即删除安全存储区保存的该标识信息和该标识信息对应的权限信息。同时,由于设备驱动程序的驱动进程是动态创建的,权限信息保存在动态创建的驱动进程的私有数据结构中。当驱动进程退出,或发生异常,或被攻击,或破坏时,权限信息一同被销毁,避免权限信息泄露,进一步提升了系统安全性。
在一些实施例中,当驱动进程发生异常退出时,驱动进程的相关数据会被销毁掉,驱动进程保存的权限信息也会被清除。当驱动管理程序检测到驱动进程异常退出后,可以重新获取设备驱动程序对应的权限信息,并将重新生成的操作权限信息对存储至安全存储区,重新创建新的驱动进程,重新将权限信息保存至该驱动进程的私有数据结构中,从而实现权限信息和驱动进程的动态绑定,避免其他进程仿冒驱动进程从而非法操作硬件资源。
可以理解,对于安全性要求不高的电子设备100,也可以将标识信息和权限信息一直保存在安全存储区中,当设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,可以直接去安全存储区查找该标识信息对应的权限信息,以进行权限校验。该标识信息对应的权限信息可以被保存至该驱动进程的私有数据结构中,也可以不用被保存至该驱动进程的私有数据结构中。
在一些实施例中,驱动进程需要操作硬件资源时,可以通过驱动管理程序提供的硬件资源访问接口进行硬件资源的操作,该驱动管理程序可以是指提供给设备驱动程序进行硬件资源操作、启动驱动进程、在驱动进程异常后进行处理的一系列程序的集合,该驱动管理程序可以是一些进程、静态库或共享库的集合,也可以是其他一些业界通用的驱动管理程序包。该硬件资源访问接口在操作该硬件资源时,先读取驱动进程中存储的权限信息,并根据该权限信息判断是否可以操作该硬件资源。例如硬件资源为GPIO,当驱动进程准备操作GPIO时,首先去检查驱动进程的私有数据结构中绑定的权限信息,查看是否具有操作GPIO的权限。如果具有该权限,则可以允许驱动进程正常操作GPIO;否则,如果不具有该权限,拒绝驱动进程操作GPIO。
14、当确定所述驱动进程具备操作所述硬件资源的操作权限时,允许所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
15、当确定所述驱动进程不具备操作所述硬件资源的操作权限时,拒绝所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
在一些实施例中,驱动进程执行完毕操作硬件资源操作后,可以进入等待状态,等待系统发送的其他操作请求。当驱动进程的操作请求中包含有新的硬件资源的操作请求时,需要重新进行权限检查,只有具有该硬件资源的操作权限时才能正常进行操作。
在一些实施例中,设备驱动程序在启动后也可以不进行硬件资源操作,此时驱动进程可以进入等待状态,当有硬件资源操作需求时,驱动进程再进行权限检查,只有具有该硬件资源的操作权限时才能正常进行操作。
在一些实施例中,当驱动管理程序启动时,也可能有部分设备驱动程序不执行加载启动,而是在有需求时才进行加载启动。例如,正常情形下,当驱动管理程序启动时,驱动列表中的所有设备驱动程序可以被依次加载启动,而对于驱动列表中属于热拔插设备的设备驱动程序,可以先不执行加载启动,当侦测到该热拔插设备接入时,再启动该热拔插设备的设备驱动程序。即,等待有设备驱动程序启动请求时,再将该设备驱动程序启动,此时再进行权限信息的获取、权限信息对的存储,并在操作硬件资源之前进行权限检查。
上述资源操作控制方法,可以实现对硬件底层资源的操作权限控制,从而可以提高设备驱动程序操作硬件资源的安全可靠性,避免设备驱动程序非法访问或操作硬件资源,或者其他非法进程或非法程序非法访问或操作硬件资源。
参照图2所示,本申请一实施例提供的一种电子设备100实现资源操作控制的系统架构示意图。
驱动管理程序101可以从权限配置文件102(存储权限配置信息的文件)中解析得到设备驱动程序A1的权限信息Pemissions_1。
对于设备驱动程序A1,随机数生成器103可以生成一随机数,并基于该随机数进一步生成一哈希标识Hash_ID1,并将该哈希标识Hash_ID1保存到该设备驱动程序A1的相关数据结构中。
驱动管理程序101将该权限信息Pemissions_1和该哈希标识Hash_ID1进行绑定,组成一个操作权限信息对<Hash_ID1,Pemissions_1>,然后将该操作权限信息对<Hash_ID1,Pemissions_1>存入安全存储区104。
对于设备驱动程序A1,驱动管理程序101可以创建一驱动进程105来运行该设备驱动程序A1。
当驱动管理程序101启动驱动进程105来运行设备驱动程序A1时,驱动进程105可以基于设备驱动程序A1所保存的哈希标识Hash_ID1查询安全存储区104中存储的与该哈希标识Hash_ID1对应的权限信息,即可以基于设备驱动程序A1所保存的哈希标识Hash_ID1在安全存储区104中查找到权限信息Pemissions_1,并将该权限信息Pemissions_1保存在驱动进程105的私有数据结构中。
当权限信息Pemissions_1被保存在驱动进程105的私有数据结构时,可以将安全存储区104中存储的操作权限信息对<Hash_ID1,Pemissions_1>删除,可以避免权限信息被保存在固定存储区被暴力或其他方式破解的风险。
当驱动进程105通过硬件资源访问接口106操作硬件资源107(图2以硬件资源107包括SPI、GPIO、I2C为例进行示意)时,硬件资源访问接口106可以进行权限检查,基于驱动进程105的私有数据结构所保存的权限信息Pemissions_1确定驱动进程105是否拥有对应硬件资源的操作权限;如果认为驱动进程105拥有操作权限,则驱动进程105可以正常操作对应硬件资源,否则,拒绝驱动进程105操作对应硬件资源。
可以理解,对于其他设备驱动程序,其资源操作控制方式与设备驱动程序A1相同,在此不再赘叙。
参照图3所示,本申请另一实施例提供的一种电子设备100实现资源操作控制的系统架构示意图。与图2相比,操作权限信息对可以一直保留在安全存储区104中。
在该种场景下,权限信息Pemissions_1无需保存在驱动进程105的私有数据结构中。当驱动进程105通过硬件资源访问接口106操作硬件资源107时,硬件资源访问接口106可以直接基于安全存储区104存储的操作权限信息对进行权限检查,即可以直接基于设备驱动程序A1所保存的哈希标识Hash_ID1在安全存储区104中查找到权限信息Pemissions_1,并根据查找到的权限信息Pemissions_1确定驱动进程105是否拥有对应硬件资源的操作权限;如果认为驱动进程105拥有操作权限,则驱动进程105可以正常操作对应硬件资源,否则,拒绝驱动进程105操作对应硬件资源。
在一些实施例中,对于内存空间较小或安全性要求不高的电子设备100,若哈希标识Hash_ID1占用较多的存储空间,还可以直接使用设备驱动程序ID、设备驱动程序名称、驱动进程ID、驱动进程名称等作为标识信息。
参照图4所示,本申请另一实施例提供的一种电子设备100实现资源操作控制的系统架构示意图。在图4中,以驱动进程ID作为设备驱动程序A1的标识信息进行举例说明。
驱动管理程序101可以从权限配置文件102中解析得到设备驱动程序A1的权限信息Pemissions_1。
对于设备驱动程序A1,驱动管理程序101可以创建驱动进程105来运行该设备驱动程序A1,并可以将该驱动进程105的进程标识Process_ID1保存到该设备驱动程序A1的相关数据结构中。
驱动管理程序101可以将该权限信息Pemissions_1和进程标识Process_ID1进行绑定,组成一个操作权限信息对<Process_ID1,Pemissions_1>,然后将该操作权限信息对<Process_ID1,Pemissions_1>存入安全存储区104。
当驱动管理程序101启动驱动进程105运行设备驱动程序A1时,驱动进程105可以基于设备驱动程序A1所保存的进程标识Process_ID1查询安全存储区104中存储的与该进程标识Process_ID1对应的权限信息,即可以基于设备驱动程序A1所保存的进程标识Process_ID1在安全存储区104中查找到权限信息Pemissions_1,并将该权限信息Pemissions_1保存在驱动进程105的私有数据结构中。
当权限信息Pemissions_1被保存在驱动进程105的私有数据结构时,可以将安全存储区104中存储的操作权限信息对<Process_ID1,Pemissions_1>删除,可以避免权限信息被保存在固定存储区被暴力或其他方式破解的风险。
当驱动进程105通过硬件资源访问接口106操作硬件资源107(图4以硬件资源107包括SPI、GPIO、I2C为例进行示意)时,硬件资源访问接口106可以进行权限检查,基于驱动进程105的私有数据结构所保存的权限信息Pemissions_1确定驱动进程105是否拥有对应硬件资源的操作权限;如果确定驱动进程105拥有操作权限,则驱动进程105可以正常操作对应硬件资源,如果确定驱动进程105不拥有操作权限,则拒绝驱动进程105操作对应硬件资源。
参照图5所示,本申请另一实施例提供的一种电子设备100实现资源操作控制的系统架构示意图。与图4相比,权限信息对可以一直保留在安全存储区104中。
在此种场景下,权限信息Pemissions_1无需保存在驱动进程105的私有数据结构中。当驱动进程105通过硬件资源访问接口106操作硬件资源107时,硬件资源访问接口106可以直接基于安全存储区104存储的操作权限信息对进行权限检查,即可以直接基于设备驱动程序A1所保存的进程标识Process_ID1在安全存储区104中查找到权限信息Pemissions_1,并根据查找到的权限信息Pemissions_1确定驱动进程105是否拥有对应硬件资源的操作权限;如果认为驱动进程105拥有操作权限,则驱动进程105可以正常操作对应硬件资源,如果认为驱动进程105不拥有操作权限,则拒绝驱动进程105操作对应硬件资源。
如图6所示,为本申请一实施例提供的驱动管理程序控制方法,应用于电子设备100中。本实施例中,驱动管理程序控制方法可以包括:
61、启动驱动管理程序101并控制所述驱动管理程序101根据预设存储路径读取权限配置信息,并解析所述权限配置信息,以创建设备数据结构。
在一些实施例中,可以在电子设备100开机时,启动驱动管理程序101。所述预设存储路径即为权限配置信息当前存储的文件路径,该预设存储路径可以根据实际需求进行设定。
在一些实施例中,所述权限配置信息可以如下述代码所示:
其中,上述代码中的“permissions”字段代表设备驱动程序的权限信息,“permissions”字段后面的字符串表示设备驱动程序可以操作的硬件资源。例如permissions="gpio,spi"表示可以操作gpio和spi这两种硬件资源。
在一些实施例中,解析所述权限配置信息来创建设备数据结构可以是指从该权限配置信息中提取得到多个关键字段及其后面的字符串,并将该多个关键字段及其后面的字符串存储至一数据结构中,该存储有多个关键字段及其后面的字符串的数据结构即为设备数据结构。多个关键字段可以根据实际需求进行设定,比如包括上述代码中的“hostId”、“hostName”、“driverId”、“driverName”、“deviceId”、“deviceName”、“serviceName”、“driverPath”、“permissions”字段等。
在一些实施例中,还可以通过解析所述权限配置信息来构建设备权限树结构,便于后续基于该设备权限树结构启动设备驱动程序。比如,设备权限树结构的第一层节点为“root”,第二层节点为“host”,第三层节点为“driver”,第四层节点为“device”。
62、控制驱动管理程序101基于所述设备数据结构启动设备驱动程序。
在一些实施例中,驱动管理程序101可以根据设备数据结构创建一新进程,并将host0分配到该新进程上运行,host0进程再创建子进程或线程来运行其节点下的设备驱动程序,比如运行设备device0的设备驱动程序,以实现启动设备device0。同样地,驱动管理程序101还可以根据设备数据结构创建一新进程,并将host1分配到该新进程上运行,host1进程再创建子进程或线程来运行其节点下的设备驱动程序,比如运行设备device1的设备驱动程序,以实现启动设备device1。
在一些实施例中,驱动管理程序101在启动host0进程或host1进程后,后续执行步骤可以由host0进程或host1进程控制,host0进程或host1进程在启动每个设备的设备驱动程序时会进行权限获取与判断,以确定是否具备操作硬件资源的操作权限。
参考图7,为本申请实施例提供的电子设备100的硬件结构示意图。如图7所示,电子设备100可以包括处理器1001、存储器1002、通信总线1003。存储器1002用于存储一个或多个计算机程序1004。一个或多个计算机程序1004被配置为被该处理器1001执行。该一个或多个计算机程序1004包括指令,上述指令可以用于实现在电子设备100中执行上述资源操作控制方法或者驱动管理程序控制方法。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
处理器1001可以包括一个或多个处理单元,例如:处理器1001可以包括应用处理器(application processor,AP),图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,DSP,CPU,基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器1001还可以设置有存储器,用于存储指令和数据。在一些实施例中,处理器1001中的存储器为高速缓冲存储器。该存储器可以保存处理器1001刚用过或循环使用的指令或数据。如果处理器1001需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器1001的等待时间,因而提高了系统的效率。
在一些实施例中,处理器1001可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM接口,和/或USB接口等。
在一些实施例中,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的资源操作控制方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的资源操作控制方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的资源操作控制方法。
其中,本实施例提供的第一电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种资源操作控制方法,其特征在于,包括:
获取设备驱动程序的权限信息与标识信息;
将所述设备驱动程序的所述权限信息与所述标识信息进行绑定得到操作权限信息对,并将所述操作权限信息对存储至预设存储区;
当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限;及
当确定所述驱动进程具备操作所述硬件资源的操作权限时,允许所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
2.如权利要求1所述的资源操作控制方法,其特征在于,所述将所述设备驱动程序的所述权限信息与所述标识信息进行绑定得到操作权限信息对,包括:
将所述权限信息转换为比特位数;
将所述比特位数以预设进制的数字进行表示,其中所述预设进制包括二进制、八进制、十进制、十六进制中的任意一种;及
将所述权限信息对应的数字与所述标识信息进行绑定,得到所述操作权限信息对。
3.如权利要求1或2所述的资源操作控制方法,其特征在于,所述方法还包括:
将所述标识信息保存至所述设备驱动程序中用于存储驱动程序属性的数据结构中。
4.如权利要求3所述的资源操作控制方法,其特征在于,所述方法还包括:
获取所述设备驱动程序中保存的标识信息,并依据所述标识信息从所述预设存储区中找到与所述标识信息对应的权限信息;及
将所述标识信息对应的权限信息保存至所述驱动进程的私有数据结构中。
5.如权利要求4所述的资源操作控制方法,其特征在于,所述当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限,包括:
当运行所述设备驱动程序的驱动进程尝试通过所述硬件资源访问接口操作所述硬件资源时,基于所述驱动进程的私有数据结构中保存的权限信息,确定所述驱动进程是否具备操作所述硬件资源的操作权限。
6.如权利要求4所述的资源操作控制方法,其特征在于,所述方法还包括:
当所述标识信息对应的权限信息被保存至所述驱动进程的私有数据结构中时,删除存储在所述预设存储区的所述设备驱动程序的所述标识信息与所述权限信息。
7.如权利要求4所述的资源操作控制方法,其特征在于,所述将所述标识信息对应的权限信息保存至所述驱动进程的私有数据结构中,包括:
若所述驱动进程包括多个不同级别的安全区域,将所述标识信息对应的权限信息保存至所述驱动进程的最高级别的安全区域。
8.如权利要求3所述的资源操作控制方法,其特征在于,所述当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,基于所述预设存储区存储的所述操作权限信息对,确定所述驱动进程是否具备操作所述硬件资源的操作权限,包括:
当运行所述设备驱动程序的驱动进程尝试通过硬件资源访问接口操作硬件资源时,获取所述设备驱动程序中保存的标识信息;及
依据所述标识信息从所述预设存储区中找到与所述标识信息对应的权限信息,并基于所找到的权限信息确定所述驱动进程是否具备操作所述硬件资源的操作权限。
9.如权利要求1所述的资源操作控制方法,其特征在于,所述方法还包括:
采用预设随机数生成算法生成一随机数,并以所述随机数为种子生成一哈希ID;及
将所述哈希ID定义为所述设备驱动程序的标识信息。
10.如权利要求1所述的资源操作控制方法,其特征在于,所述设备驱动程序的标识信息为所述设备驱动程序ID、所述设备驱动程序名称、运行所述设备驱动程序的驱动进程ID、运行所述设备驱动程序的驱动进程名称中的任意一种。
11.如权利要求1所述的资源操作控制方法,其特征在于,所述方法还包括:
当确定所述驱动进程不具备操作所述硬件资源的操作权限时,拒绝所述驱动进程通过所述硬件资源访问接口操作所述硬件资源。
12.如权利要求1所述的资源操作控制方法,其特征在于,所述获取设备驱动程序的权限信息,包括:
读取所述设备驱动程序的权限配置信息,并对所述权限配置信息进行解析得到所述设备驱动程序的权限信息。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至权利要求12中任一项所述的资源操作控制方法。
14.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行权利要求1至权利要求12中任一项所述的资源操作控制方法。
15.一种芯片,与电子设备中的存储器耦合,其特征在于,所述芯片用于控制所述电子设备执行权利要求1至权利要求12中任一项所述的资源操作控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166230.7A CN114490010A (zh) | 2020-10-27 | 2020-10-27 | 资源操作控制方法、电子设备、芯片及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011166230.7A CN114490010A (zh) | 2020-10-27 | 2020-10-27 | 资源操作控制方法、电子设备、芯片及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490010A true CN114490010A (zh) | 2022-05-13 |
Family
ID=81470914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011166230.7A Pending CN114490010A (zh) | 2020-10-27 | 2020-10-27 | 资源操作控制方法、电子设备、芯片及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490010A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700815A (zh) * | 2022-10-21 | 2023-09-05 | 荣耀终端有限公司 | 硬件资源控制方法、电子设备及可读存储介质 |
-
2020
- 2020-10-27 CN CN202011166230.7A patent/CN114490010A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700815A (zh) * | 2022-10-21 | 2023-09-05 | 荣耀终端有限公司 | 硬件资源控制方法、电子设备及可读存储介质 |
CN116700815B (zh) * | 2022-10-21 | 2024-04-26 | 荣耀终端有限公司 | 硬件资源控制方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2439665C2 (ru) | Компиляция исполняемого кода в менее доверяемом адресном пространстве | |
US7930760B2 (en) | Centralized enforcement of name-based computer system security rules | |
RU2377634C2 (ru) | Программный интерфейс для лицензирования | |
US9489328B2 (en) | System on chip and method for accessing device on bus | |
US9734311B1 (en) | Secure authentication of firmware configuration updates | |
US20130205067A1 (en) | Storage Device Aware of I/O Transactions and Stored Data | |
US20210357258A1 (en) | Method, device and medium for allocating resource based on type of pci device | |
US9047176B2 (en) | Storage device and method for utilizing unused storage space | |
CN110138767B (zh) | 事务请求的处理方法、装置、设备和存储介质 | |
CN112347329A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN111078279A (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
US10664594B2 (en) | Accelerated code injection detection using operating system controlled memory attributes | |
CN110070360B (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
US8006009B2 (en) | Methods and device for implementing multifunction peripheral devices with a single standard peripheral device driver | |
CN114490010A (zh) | 资源操作控制方法、电子设备、芯片及可读存储介质 | |
US20170249457A1 (en) | Secure receive packet processing for network function virtualization applications | |
US10146943B2 (en) | System and method to disable the erasure of an administrator password in an information handling system | |
CN115840618A (zh) | 一种hypervisor中虚拟机模拟设备寄存器的访问方法及装置 | |
US11995199B2 (en) | Mapping container user and group IDs to host | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
CN114697440B (zh) | 网络管理方法及移动终端 | |
US8635331B2 (en) | Distributed workflow framework | |
US9086895B1 (en) | Controlling hardware driver selection | |
CN108804144B (zh) | 操作系统启动的控制方法/系统、存储介质及电子设备 | |
CN114124524A (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 |