CN113468188A - 一种SELinux策略库更新的方法及装置 - Google Patents

一种SELinux策略库更新的方法及装置 Download PDF

Info

Publication number
CN113468188A
CN113468188A CN202010239459.2A CN202010239459A CN113468188A CN 113468188 A CN113468188 A CN 113468188A CN 202010239459 A CN202010239459 A CN 202010239459A CN 113468188 A CN113468188 A CN 113468188A
Authority
CN
China
Prior art keywords
selinux
selinux policy
ree
policy base
tee
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
Application number
CN202010239459.2A
Other languages
English (en)
Inventor
周冲
付天福
吴财军
张大成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010239459.2A priority Critical patent/CN113468188A/zh
Publication of CN113468188A publication Critical patent/CN113468188A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种SELinux策略库更新的方法及装置,涉及安全技术领域。该方法解决了REE装置中SELinux策略库被攻击篡改后,引起的SELinux策略防护失效的问题。该方法应用于终端设备,该终端设备包括REE装置和TEE装置,TEE装置和REE装置通过硬件隔离,TEE装置预置有第一SELinux策略库。该方法由TEE装置执行,该方法包括:接收REE装置发送的校验值。基于校验值,检验第二SELinux策略库与第一SELinux策略库是否相同。若第二SELinux策略库与第一SELinux策略库不同,向REE装置发送第一SELinux策略库。

Description

一种SELinux策略库更新的方法及装置
技术领域
本申请涉及安全技术领域,尤其涉及一种SELinux(security-enhanced linux,安全增强型Linux)库更新的方法及装置。
背景技术
SELinux是一种美国国家***(national security agency,NSA)制定的对于强制访问控制(mandatory access control,MAC)的实现方法,是Linux操作***中的安全模块。当终端设备加载了SELinux安全模块后,能够极大地提高其操作***的安全等级。SELinux安全模块包括SELinux策略库,SELinux策略库包括至少一条SELinux策略,SELinux策略是SELinux安模块实现MAC的重要组成部分。SELinux策略用于指示操作***中主体对客体的访问控制。例如,控制是否允许社交软件访问本地通讯录,这里,主体为社交软件应用程序(application,App),客体为本地通讯录。
SELinux通常在通用执行环境(rich execution environment,REE)的内核态运行,然而SELinux只能在运行于REE中的Linux***启动时加载SELinux策略。当SELinux策略库中的SELinux策略被攻击篡改后,会导致SELinux策略防护失效。
发明内容
本申请提供了一种SELinux策略库更新的方法及装置,解决了REE装置中SELinux策略库被攻击篡改后,引起的SELinux策略防护失效的问题。
为达上述目的,本申请提供如下技术方案:
第一方面,本申请提供了一种SELinux策略库更新的方法,该方法应用于终端设备。该终端设备包括通用执行环境REE装置和可信执行环境TEE装置,其中,TEE装置和REE装置通过硬件隔离,TEE装置预置有第一SELinux策略库。该方法由TEE装置执行,该方法包括:接收REE装置发送的校验值,该校验值是基于第二SELinux策略库得到的,该第二SELinux策略库是REE装置当前使用的SELinux策略库。基于接收到的校验值,检验第二SELinux策略库与第一SELinux策略库是否相同。若第二SELinux策略库与第一SELinux策略库不同,向REE装置发送第一SELinux策略库,这里,第一SELinux策略库用于REE装置更新第二SELinux策略库。
通过该方法,通过将用于控制REE装置中主体对客体访问权限的第一SELinux策略库预置于TEE装置中,并对REE中的第二SELinux策略库进行校验更新,以确保其与第一SELinux策略库相同。这样,提高了第二SELinux策略库的安全性,并有效的解决了第二SELinux策略库中的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
在一种可能的设计方式中,上述方法还包括:以第一时长为周期,周期性的向REE装置发送第一SELinux策略库,这里,第一SELinux策略库用于REE装置更新第二SELinux策略库。通过该方法,定时的对REE中的第二SELinux策略库进行更新,以确保其与第一SELinux策略库相同。这样,有效的解决了第二SELinux策略库中的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
在另一种可能的设计方式中,上述方法还包括:接收REE装置发送的第一请求和用户的身份信息,其中,第一请求用于请求修改第一SELinux策略库。基于接收到的身份信息,验证该用户是否具有修改第一SELinux策略库的权限。若该用户具有修改第一SELinux策略库的权限,则根据第一请求,修改第一SELinux策略库,得到第三SELinux策略库。通过该可能的设计,本申请提供的SELinux策略库更新的方法,还支持修改TEE装置中预置的SELinux策略库中的SELinux策略,相比现有技术无法修改SELinux策略库,提高了用户体验。
在另一种可能的设计方式中,上述方法还包括:向REE装置发送上述第三SELinux策略库,这里,该第三SELinux策略库用于REE装置更新第二SELinux策略库。通过该可能的设计,可以及时的对REE装置中的第二SELinux策略库进行更新,以使新修改的SELinux策略库及时应用于REE装置中主体对客体的访问控制,提高了用户体验。
在另一种可能的设计方式中,上述“接收REE装置发送的校验值”包括:以第二时长为周期,周期性的接收REE装置发送的校验值;其中,第二时长小于第一时长。通过该可能的设计,定时的对REE中的第二SELinux策略库进行校验更新,以确保其与第一SELinux策略库相同。这样,有效的解决了第二SELinux策略库中的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
第二方面,本申请提供了一种SELinux策略库更新的方法,该方法应用于终端设备,该终端设备包括通用执行环境REE装置和可信执行环境TEE装置。其中,TEE装置和REE装置通过硬件隔离,TEE装置预置有第一SELinux策略库。该方法由REE装置执行,该方法包括:基于第二SELinux策略库确定校验值,其中,第二SELinux策略库是REE装置当前使用的SELinux策略库。向TEE装置发送校验值,该校验值用于TEE装置检验第二SELinux策略库与第一SELinux策略库是否相同,以使TEE装置在第二SELinux策略库与第一SELinux策略库不同时,向REE装置发送第一SELinux策略库。接收TEE装置发送的第一SELinux策略库,以更新第二SELinux策略库。
在一种可能的设计方式中,上述方法还包括:以第一时长为周期,周期性的接收TEE装置发送的第一SELinux策略库,以更新第二SELinux策略库。
在另一种可能的设计方式中,上述方法还包括:向TEE装置发送第一请求和用户的身份信息,其中,第一请求用于请求修改第一SELinux策略库,身份信息用于TEE装置验证用户是否具有修改第一SELinux策略库的权限,以使TEE装置在用户具有修改第一SELinux策略库的权限时,对第一SELinux策略库进行修改而得到第三SELinux策略库。
在另一种可能的设计方式中,上述方法还包括:接收TEE装置发送的上述第三SELinux策略库,以更新第二SELinux策略库。
在另一种可能的设计方式中,上述方法还包括:按照预设的时长为周期,周期性的删除访问矢量缓存AVC中缓存的SELinux策略;或者,当调用AVC中缓存的SELinux策略的次数为预设阈值时,删除AVC中缓存的SELinux策略。其中,AVC用于缓存第二SELinux策略库中的SELinux策略。通过该可能的设计,定期维护了AVC中的缓存的SELinux策略,从而确保了AVC中缓存的SELinux策略均存在于第二SELinux策略库,即AVC中缓存的SELinux策略没有被攻击篡改,从而有效的解决了AVC中缓存的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
在另一种可能的设计方式中,上述“向TEE装置发送校验值”,包括:以第二时长为周期,周期性的向TEE装置发送校验值,其中,第二时长小于第一时长。
可以理解的是,第二方面或其相应的可能的设计提供的技术方案的有益效果,均可以参考上述第一方面或其相应的可能的设计提供的技术方案中的描述,此处不再赘述。
第三方面,本申请提供了一种可信执行环境TEE装置。
在一种可能的设计中,该TEE装置用于执行上述第一方面提供的任一种方法。本申请可以根据上述第一方面提供的任一种方法,对该TEE装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本申请可以按照功能将该TEE装置划分为接收单元、检验单元以及发送单元等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的设计提供的技术方案,此处不再赘述。
在另一种可能的设计中,该TEE装置包括:存储器和一个或多个处理器,存储器和处理器耦合。存储器用于存储计算机指令,处理器用于调用该计算机指令,以执行如第一方面及其任一种可能的设计方式提供的任一种方法。
第四方面,本申请提供了一种通用执行环境REE装置。
在一种可能的设计中,该REE装置用于执行上述第二方面提供的任一种方法。本申请可以根据上述第二方面提供的任一种方法,对该REE装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本申请可以按照功能将该REE装置划分为确定单元、发送单元以及接收单元等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第二方面或其相应的可能的设计提供的技术方案,此处不再赘述。
在另一种可能的设计中,该REE装置包括:存储器和一个或多个处理器,存储器和处理器耦合。存储器用于存储计算机指令,处理器用于调用该计算机指令,以执行如第二方面及其任一种可能的设计方式提供的任一种方法。
第五方面,本申请提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在可信执行环境TEE装置上运行时,使得该TEE装置执行上述第一方面中任一种可能的实现方式提供的任一种方法。
第六方面,本申请提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在通用执行环境REE装置上运行时,使得该REE装置执行上述第二方面中任一种可能的实现方式提供的任一种方法。
第七方面,本申请提供了一种计算机程序产品,当其在可信执行环境TEE装置上运行时,使得第一方面中的任一种可能的实现方式提供的任一种方法被执行。
第八方面,本申请提供了一种计算机程序产品,当其在通用执行环境REE装置上运行时,使得第一方面中的任一种可能的实现方式提供的任一种方法被执行。
第九方面,本申请提供了一种芯片***,包括:处理器,处理器用于从存储器中调用并运行该存储器中存储的计算机程序,执行第一方面中的实现方式提供的任一种方法。
第十方面,本申请提供了一种芯片***,包括:处理器,处理器用于从存储器中调用并运行该存储器中存储的计算机程序,执行第二方面中的实现方式提供的任一种方法。
可以理解的是,上述提供的任一种装置、计算机存储介质、计算机程序产品或芯片***等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
在本申请中,上述可信执行环境TEE装置和通用执行环境REE装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种终端设备的结构示意图;
图2为本申请实施例提供的一种SELinux策略库更新的方法的流程示意图;
图3为本申请实施例提供的另一种SELinux策略库更新的方法的流程示意图;
图4为本申请实施例提供的一种SELinux策略库更新的方法示意图;
图5为本申请实施例提供的可信执行环境TEE装置的结构示意图;
图6为本申请实施例提供的通用执行环境REE装置的结构示意图;
图7为本申请实施例提供的一种芯片***的结构示意图;
图8为本申请实施例提供的一种计算机程序产品的结构示意图。
具体实施方式
以下,说明本申请实施例中涉及的部分术语或技术:
1)、REE
REE是移动设备通用的运行环境,可以在互联互通的网络世界中运转。REE可以用于运行通用的操作***(operating system,OS),例如安卓(android)操作***等。通常,REE可以称为普通世界(normal world)。
REE通常包括内核态和用户态,REE的内核态权限等级高于用户态权限等级。其中,在内核态,应用程序可以访问内存的所有数据,包括***设备,例如硬盘,网卡等的数据。而在用户态,应用程序访问内存受限,且不允许访问***设备。
2)、可信执行环境(trusted execution environment,TEE)
TEE与REE相对应,并从硬件层面隔离于REE。例如,可以通过独立的处理核、内存以及缓存等硬件来实现TEE。通常,可以将TEE称为安全世界(secure world)。
TEE可以保证不被REE中运行的通用操作***干扰,因此称为”可信”。TEE可以用于运行关键的操作(例如具有较高安全等级),从而为REE中运行的通用操作***提供安全服务。例如移动支付需要的指纹验证、个人识别密码(personal identification number,PIN)等,或者,例如机密数据的安全存储,包括私钥或数字证书等机密数据。
TEE和REE之间可以通过特定的输入输出接口实现通信,例如通过应用程序接口(application programming interface,API)通信。相比REE,TEE具有更高的安全等级。TEE可以访问REE的内存,但是REE无法访问与其硬件隔离的TEE的内存。
3)、访问矢量缓存(access vector cache,AVC)
AVC用于缓存SELinux策略库中的部分SELinux策略。通常,当终端设备通过运行于REE内核态的SELinux调用某个SELinux策略时,通常先从AVC中查找该SELinux策略。当AVC中没有缓存该SELinux策略时,终端设备通过SELinux从SELinux策略库中查找该SELinux策略,并在查找到该SELinux策略后,将该SELinux策略添加至AVC中,以便终端设备通过SELinux在下一次需要调用该SELinux策略时,可以从AVC中查找到该SELinux策略,从而提高SELinux策略的调用效率。
4)、其他术语
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供了一种SELinux策略库更新的方法,该方法应用于终端设备。该终端设备可以包括REE装置和TEE装置,并且TEE装置预置有第一SELinux策略库。这样的话,由于TEE装置具有高安全等级,因此由TEE装置预置第一SELinux策略库,可以提高SELinux策略库的安全性。此外,本申请实施例提供的方法通过将REE装置中当前使用的SELinux策略库,同步更新为TEE装置中预置的第一SELinux策略库。有效的解决了REE装置中当前使用的SELinux策略库被攻击篡改后引起的防护失效的问题。
上述的终端设备可以是手机、平板电脑、可穿戴电子设备等便携式设备,也可以是车载设备等设备,还可以是个人计算机(personal computer,PC)、个人数字助理(personaldigital assistant,PDA)、上网本、服务器等计算设备。对此不作限定。
参考图1,图1示出了本申请实施例提供的终端设备10的一种硬件结构。如图1所示,终端设备10包括处理器11、存储器12、通信接口13以及总线14。其中,处理器11、存储器12以及通信接口13之间可以通过总线14连接。
处理器11是终端设备10的控制中心,可以是通用中央处理单元(centralprocessing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为示例,处理器11可以包括至少两个CPU,例如图1中所示的CPU 0和CPU 1。其中,CPU 0可以用于运行TEE,CPU 1可以用于运行REE。
存储器12可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
一种可能的实现方式中,存储器12可以独立于处理器11存在。存储器12可以通过总线14与处理器11相连接,用于存储数据、指令或者程序代码。处理器11调用并执行存储器12中存储的指令或程序代码时,能够实现本申请实施例提供的SELinux策略库更新的方法。
另一种可能的实现方式中,存储器12也可以和处理器11集成在一起。
通信接口13,用于终端设备10与其他设备(如服务器等)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wirelesslocal area networks,WLAN)等。通信接口13可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
作为示例,终端设备10可以通过通信接口13从服务器上下载App。
总线14,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图1中示出的结构并不构成对该终端设备10的限定,除图1所示部件之外,该终端设备10可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
上述的终端设备10按照功能划分,可以包括REE装置和TEE装置。其中,REE装置可以通过上述的处理器和存储器等器件实现REE。TEE装置可以通过上述的处理器和存储器等器件实现TEE。需要说明的是,用于实现TEE的器件与用于实现REE的器件在硬件层面隔离。TEE装置和REE装置之间可以通过特定的输入输出接口通信,例如通过API通信。
下面结合附图对本申请实施例提供的方法进行描述。
在本申请实施例中,为了便于区分,将TEE装置预置的SELinux策略库称为第一SELinux策略库,将REE装置当前的SELinux策略库称为第二SELinux策略库。
参考图2,图2示出了本申请实施例提供的一种SELinux策略库更新的方法,该方法可以包括以下步骤:
S101、TEE装置向REE装置发送第一SELinux策略库。相应的,REE装置将接收到第一SELinux策略库作为第二SELinux策略库。
这里,第一SELinux策略库预置于TEE装置中。第一SELinux策略库包括m(m是大于或等于1的整数)条SELinux策略。其中,SELinux策略用于指示REE装置中主体对客体的访问权限。例如,是否允许运行于REE的金融软件使用指纹支付功能。这时,主体是金融软件,客体是指纹支付功能。由于TEE装置具有高安全等级,因此将第一SELinux策略库预置于TEE装置中,可以提高SELinux策略库的安全性。
具体的,TEE装置可以在终端设备启动时,或者,在运行于REE装置中的OS启动时,向REE装置发送第一SELinux策略库。作为响应,REE装置接收到第一SELinux策略库,并将接收到的第一SELinux策略库作为第二SELinux策略库。然后,REE装置根据第二SELinux策略库中的SELinux策略,控制REE装置中主体对客体的访问权限。
可选的,TEE装置还可以在终端设备启动时,或者,在运行于REE装置中的OS启动时,向REE装置发送第一SELinux策略库之后,以第一时长为周期,周期性的向REE装置发送第一SELinux策略库。
作为响应,REE装置周期性的接收到第一SELinux策略库。具体的,REE装置可以删除当前使用的第二SELinux策略库,然后将接收到的第一SELinux策略库作为新的第二SELinux策略库。然后REE装置根据该新的第二SELinux策略库中的SELinux策略,控制REE中主体对客体的访问权限。
这样的话,REE装置可以根据第一SELinux策略库,定时的对第二SELinux策略库进行同步更新,以使第二SELinux策略库与第一SELinux策略库相同。这样,可以有效的避免第二SELinux策略库中的SELinux策略被攻击篡改后引起的防护失效的问题。
S102、REE装置基于第二SELinux策略库确定第一校验值。
这里,第一校验值用于TEE装置检验第二SELinux策略库与第一SELinux策略库是否相同。
具体的,REE装置可以基于随机的信息值(Information Value,IV值)和第二SELinux策略库中的SELinux策略,采用预设算法,确定与第二SELinux策略库对应的第一校验值。作为示例,该预设算法可以是任一种哈希算法,对此不作限定。其中,IV值可以是REE装置随机生成的IV值,也可以是TEE装置随机生成并发送给REE装置的IV值,对此不作限定。
可以理解的是,相同的SELinux策略库,不同的IV值,得到的与该SELinux策略库对应的校验值是不同的。通过基于随机的IV值确定SELinux策略库对应的校验值,可以及时发现REE装置中的SELinux策略库被攻击篡改,从而可以及时的更新该SELinux策略库,提高了该SELinux策略库的安全性。
可选的,REE装置可以以第二时长为周期,周期性的基于第二SELinux策略库和随机的IV值确定第一校验值。这里,第二SELinux策略库是REE装置确定第一校验值的时刻所使用的SELinux策略库。其中,第二时长可以小于上述S101中的第一时长。
作为示例,REE装置可以在时刻1,基于时刻1所使用的SELinux策略库和随机的IV值,确定该SELinux策略库所对应的第一校验值。REE装置可以在时刻2,基于时刻2所使用的SELinux策略库和随机的IV值,确定该SELinux策略库所对应的第一校验值。其中,时刻1和时刻2之间间隔n个第二时长,n是大于等于1的整数。
S103、REE装置向TEE装置发送该第一校验值。
可选的,REE装置可以以第一时长为周期,周期性向TEE装置发送第一校验值。这里,该第一校验值是S102中,以第一时长为周期,周期性的基于第二SELinux策略库和随机的IV值确定的第一校验值。
在第一种可能的实现方式中,REE装置可以通过API接口,周期性的向TEE装置发送第一校验值。这里,用于确定第一校验值的IV值是TEE随机生成的。响应于REE装置的操作,TEE装置接收到第一校验值。
在第二种可能的实现方式中,若S102中用于确定第一校验值的IV值是REE随机生成的,则REE装置周期性的向TEE装置发送第一校验值和用于确定该第一校验值的IV值。响应于REE装置的操作,TEE装置接收到第一校验值和用于确定该第一校验值的IV值。
S104、TEE装置基于第一校验值,检验第一SELinux策略库和第二SELinux策略库是否相同。
在第一种可能的实现方式中,若用于确定第一校验值的IV值是TEE装置随机生成的,则TEE装置基于该IV值和第一SELinux策略库,采用预设算法,确定第一SELinux策略库对应的第二校验值。
在第二种可能的实现方式中,若用于确定第一校验值的IV值是REE装置随机生成的,则TEE基于接收到的用于确定该第一校验值的IV值和第一SELinux策略库,采用预设算法,确定与第一SELinux策略库对应的第二校验值。
其中,上述可能的实现方式中的预设算法,可以是任一种哈希算法,对此不作限定。需要说明的是,该预设算法与S102中确定第一校验值中的预设算法相同。
进一步的,当TEE装置确定第二校验值与第一校验值相同,则表示第一SELinux策略库与第二SELinux策略库相同。这样的话,TEE装置可以向REE装置发送校验通过的消息,并等待接收REE装置在下一个周期到来时所发送的第一校验值,然后,进行下一次检验。当TEE装置确定第二校验值与第一校验值不同,表示第一SELinux策略库与第二SELinux策略库不同。也就是说,第二SELinux策略库可能被攻击篡改。这时,TEE装置可以执行S105。
也就是说,通过对第一校验值的校验,TEE装置可以及时有效的发现第二SELinux策略库是否被篡改。
S105、当第一SELinux策略库和第二SELinux策略库不同时,TEE装置向REE装置发送第一SELinux策略库,以使REE装置更新第二SELinux策略库。
这种情况下,TEE装置还可以向REE装置发送校验失败的信息,以使REE装置可以向用户发出告警信息。
具体的,当第一SELinux策略库和第二SELinux策略库不同时,TEE装置向REE装置发送第一SELinux策略库的过程可以通过下述任一种方式实现:
第一种可能的实现方式,当TEE装置确定第一SELinux策略库和第二SELinux策略库不同时,可以触发TEE装置向REE装置发送第一SELinux策略库,以使REE更新第二SELinux策略库。
第二种可能的实现方式,当TEE装置确定第一SELinux策略库和第二SELinux策略库不同时,TEE装置可以向REE装置发送校验未通过的消息。然后,REE装置接收到该校验未通过的消息,并向TEE装置发送更新第二SELinux策略库的请求消息。作为该请求消息的响应,TEE装置可以向REE装置发送第一SELinux策略库,以使REE更新第二SELinux策略库。
S106、REE装置删除AVC中SELinux策略。
为了防止AVC中缓存的SELinux策略被攻击篡改而导致的SELinux策略的防护失效,REE装置可以对AVC中缓存的SELinux策略进行定期维护,以确保AVC中缓存的SELinux策略均源于第二SELinux策略库,且未被篡改。
第一种可能的实现方式,REE装置可以按照第三预设时长为轮询周期,对AVC中的每条SELinux策略进行检验。
具体的,在一个轮询周期内,对于AVC中的每条SELinux策略而言,REE装置可以检验该SELinux策略是否存在于第二SELinux策略库中。当AVC中的任一条SELinux策略不存在于第二SELinux策略库,则REE装置可以删除该SELinux策略。或者,REE装置可以清空AVC中的SELinux策略,并在运行于REE内核态的SELinux下一次调用SELinux策略时,重新在AVC中添加SELinux策略。
当AVC中的任一条SELinux策略不存在于第二SELinux策略库中,REE装置还向用户发出告警信息。
第二种可能的实现方式,REE装置可以以第四预设时长为周期,周期性的清空AVC中缓存的SELinux策略。
第三种可能的实现方式,当运行于REE内核态的SELinux从AVC中调用SELinux策略的次数超过预设阈值时,REE装置清空AVC中的SELinux策略。这里,本申请实施例对该预设阈值不作具体限定。
可以理解的是,本申请实施例可以在终端设备启动后,或运行于REE装置中的OS启动后,REE装置第一次接收到TEE装置发送的第一SELinux策略库开始,即可执行S106。
这样,通过S101-S106所述的SELinux策略库更新的方法,可以及时的根据TEE装置中预置的第一SELinux策略库,对被攻击篡改的第二SELinux策略库进行更新,以确保其与第一SELinux策略库相同。并且,本申请实施例还可以通过定期维护AVC中缓存的SELinux策略,以确保AVC中缓存的SELinux策略均存在于第二SELinux策略库。这样,本申请实施例提供的方法有效的解决了第二SELinux策略库中的SELinux策略、以及AVC中缓存的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
参考图3,图3示出了本申请实施例提供的另一种SELinux策略库更新的方法,该方法可以包括以下步骤:
S201、REE装置向TEE装置发送第一请求。
其中,第一请求用于请求修改第一SELinux策略库。由于第一SELinux策略库中的SELinux策略用于指示REE装置中主体对客体的访问权限,因此,第一请求可以用于请求修改运行于REE装置中的主体对客体访问权限。例如,第一请求可以是:将“允许社交软件访问本地通讯录”的SELinux策略,修改为“不允许社交软件修改本地通讯录”的SELinux策略。再例如,第一请求可以是:新增“允许金融App使用指纹支付功能”的SELinux策略。
具体的,用户可以通过终端设备的输入输出器件,向REE装置输入第一请求。REE装置可以在接收到用户输入的第一请求后,将第一请求通过API接口发送给TEE装置。
示例性的,以终端设备是手机,第一请求是增加“允许金融App使用指纹支付功能”的SELinux策略为例进行说明。如图4所示,当用户下载并安装金融App后,在该金融App的设置页面,用户可以在“是否允许使用指纹支付”一栏上选择“是”。这样,用户将请求增加“允许金融App使用指纹支付功能”的SELinux策略的第一请求输入到REE装置中。然后,REE装置将接收到的第一请求通过API接口发送给TEE装置。
作为响应,TEE装置接收到第一请求。
S202、TEE装置验证用户是否具有修改第一SELinux策略库的权限。
TEE装置接收到第一请求后,在对第一SELinux策略库中的SELinux策略进行修改前,对发起第一请求的用户的身份进行验证。这样的话,可以保证第一请求所请求的修改是经用户允许的修改。
在第一种可能的实现方式中,TEE装置在接收到第一请求后,可以向TEE装置发送身份验证请求。然后,用户可以通过终端设备的输入输出器件向REE装置输入身份信息,该身份信息可以是用户的开机密码或用户的生物识别特征,这里,用户的生物识别特征可以是用户的指纹识别特征或用户的人脸识别特征等。接着,REE装置将获取到的用户的身份信息发送给TEE装置,TEE装置对接收到的用户的身份信息进行验证。
在第二种可能的实现方式中,用户在通过终端设备的输入输出器件向REE装置输入第一请求后,REE装置请求用户输入身份信息。然后,REE装置将第一请求和用户的身份信息发送给TEE装置。接着,TEE装置对接收到的用户的身份信息进行验证。
然后,若TEE装置确定接收到的用户的身份信息与TEE装置保存的用户的身份信息不同,则表示用户身份验证失败。这种情况下,用户不具有修改第一SELinux策略库的权限。这样的话,TEE装置不修改第一SELinux策略库。若TEE装置确定接收到的用户的身份信息与TEE装置保存的用户的身份信息相同,则表示用户身份验证通过。这种情况下,用户具有修改第一SELinux策略库的权限。这样的话,TEE装置可以执行S203。
S203、当用户具有修改第一SELinux策略库的权限,TEE装置根据第一请求修改第一SELinux策略库,得到第三SELinux策略库。
TEE装置可以根据第一请求,对第一SELinux策略库进行修改,从而得到第三SELinux策略库。这里,对第一SELinux策略库进行修改,可以是对第一SELinux策略库中的SELinux策略进行修改,也可以是在第一SELinux策略库新增SELinux策略,当然,还可以是在第一SELinux策略库删除SELinux策略,对此不作限定。
示例性的,TEE装置可以根据第一请求,将第一SELinux策略库中的“允许社交软件访问本地通讯录”的SELinux策略,修改为“不允许社交软件修改本地通讯录”的SELinux策略,从而得到第三SELinux策略库。再例如,在第一SELinux策略库中新增“允许金融App使用指纹支付功能”的SELinux策略,从而得到第三SELinux策略库。
可以理解的是,修改后的第一SELinux策略库,即为第三SELinux策略库。这样的话,在上述S101中,TEE装置在以第一时长为周期,周期性的向REE装置发送第一SELinux策略库的过程中,当TEE装置中的第一SELinux策略库更新为第三SELinux策略库,则TEE装置以第一时长为周期,周期性的向REE装置发送第三SELinux策略库。
S204、TEE装置向REE装置发送第三SELinux策略库,以使REE装置更新第二SELinux策略库。
具体的,在第一种可能的实现方式中,TEE装置可以通过API接口向REE装置发送第三SELinux策略库。
作为响应,REE装置根据接收到第三SELinux策略库,对第二SELinux策略库进行更新。具体的,REE装置可以删除原有的第二SELinux策略库,并将第三SELinux策略库作为新的第二策略库。然后,REE装置根据该新的第二SELinux策略库中的SELinux策略,控制REE装置中主体对客体的访问权限。
在第二种可能的实现方式中,TEE装置可以将第一SELinux策略库中被修改的SELinux策略或新增的SELinux策略,发送给TEE装置。然后,TEE装置根据该被修改的SELinux策略或新增的SELinux策略,更新第二SELinux策略库。
需要说明的是,若第三SELinux策略库是TEE装置根据第一请求,删除了第一SELinux策略库中的至少一条SELinux策略所得到的SELinux策略库。则TEE装置可以通过第一种可能的实现方式,向REE装置发送第三SELinux策略库,以使REE装置更新第二SELinux策略库。
这样,本申请实施例提供的SELinux策略库更新的方法,可以实现动态的增加、修改或删除第一SELinux策略库中的SELinux策略,提高了用户体验。
综上,本申请实施例提供了一种SELinux策略库更新的方法,通过将用于控制REE装置中主体对客体访问权限的第一SELinux策略库预置于TEE装置中,并定时根据第一SELinux策略库,对REE中的第二SELinux策略库进行更新,有效解决了第二SELinux策略库中的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。
进一步的,本申请实施例提供的SELinux策略库更新的方法,还对AVC中的缓存的SELinux策略进行维护,以确保AVC中缓存的SELinux策略均存在于第二SELinux策略库,即AVC中缓存的SELinux策略没有被攻击篡改,从而有效的解决了AVC中缓存的SELinux策略被攻击篡改后而引起的SELinux策略防护失效的问题。同时,本申请实施例提供的SELinux策略库更新的方法,还支持修改TEE装置中预置的SELinux策略库中的SELinux策略,相比现有技术无法修改SELinux策略库,提高了用户体验。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对TEE装置和REE装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图5所示,图5示出了本申请实施例提供的TEE装置50的结构示意图。TEE装置50应用于终端设备,该终端设备还包括REE装置,该REE装置和TEE装置50通过硬件隔离,TEE装置50预置有第一SELinux策略库。TEE装置50用于执行上述的SELinux策略库更新的方法,例如用于执行图2或图3所示的方法。其中,TEE装置50可以包括接收单元51、检验单元52以及发送单元53。
接收单元51,用于接收REE装置发送的校验值,该校验值是基于第二SELinux策略库得到的,该第二SELinux策略库是REE装置当前使用的SELinux策略库。检验单元52,用于基于校验值,检验第二SELinux策略库与第一SELinux策略库是否相同。发送单元53,用于若第二SELinux策略库与第一SELinux策略库不同,向REE装置发送第一SELinux策略库,第一SELinux策略库用于REE装置更新第二SELinux策略库。
作为示例,结合图2,接收单元51可以用于响应S103,检验单元52可以用于执行S104,发送单元53可以用于执行S101。
可选的,发送单元53,还用于以第一时长为周期,周期性的向REE装置发送第一SELinux策略库,第一SELinux策略库用于REE装置更新第二SELinux策略库。
作为示例,结合图2,发送单元53可以用于执行S101。
可选的,TEE装置50还包括验证单元54和修改单元55。接收单元51,还用于接收REE装置发送的第一请求和用户的身份信息,该第一请求用于请求修改第一SELinux策略库。验证单元54,用于基于身份信息,验证用户是否具有修改第一SELinux策略库的权限。修改单元55,用于若用户具有修改第一SELinux策略库的权限,则根据第一请求,修改第一SELinux策略库,得到第三SELinux策略库。
作为示例,结合图3,接收单元51可以用于响应S201,验证单元54可以用于执行S202,修改单元55可以用于执行S203。
可选的,发送单元53,还用于向REE装置发送第三SELinux策略库,第三SELinux策略库用于REE装置更新第二SELinux策略库。
作为示例,结合图3,发送单元53可以用于执行S204。
可选的,接收单元51,具体用于以第二时长为周期,周期性的接收REE装置发送的校验值;其中,第二时长小于第一时长。
作为示例,结合图2,接收单元51可以用于响应S103。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种TEE装置50的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
作为示例,结合图1,TEE装置50中的校验单元54和修改单元55可以通过图1中的处理器11执行图1中的存储器12中的程序代码实现。
如图6所示,图6示出了本申请实施例提供的REE装置60的结构示意图。REE装置60应用于终端设备,该终端设备还包括TEE装置,该TEE装置和REE装置60通过硬件隔离,该TEE装置预置有第一SELinux策略库。REE装置60用于执行上述的SELinux策略库更新的方法,例如用于执行图2或图3所示的方法。其中,REE装置60可以包括确定单元61、发送单元62以及接收单元63。
确定单元61,用于基于第二SELinux策略库确定校验值,该第二SELinux策略库是REE装置当前使用的SELinux策略库。发送单元62,用于向TEE装置发送校验值,校验值用于TEE装置检验第二SELinux策略库与第一SELinux策略库是否相同,以使TEE装置在第二SELinux策略库与第一SELinux策略库不同时,向REE装置发送第一SELinux策略库。接收单元63,用于接收第一SELinux策略库,以更新第二SELinux策略库。
作为示例,结合图2,确定单元61可以用于执行S102,发送单元62可以用于执行S103,接收单元63可以用于响应S105。
可选的,接收单元63,还用于以第一时长为周期,周期性的接收TEE装置发送的第一SELinux策略库,以更新第二SELinux策略库。
作为示例,结合图2,接收单元63可以用于执行S101。
可选的,发送单元62,还用于向TEE装置发送第一请求和用户的身份信息,第一请求用于请求修改第一SELinux策略库;身份信息用于TEE装置验证用户是否具有修改第一SELinux策略库的权限,以使TEE装置在用户具有修改第一SELinux策略库的权限时,对第一SELinux策略库进行修改而得到第三SELinux策略库。
作为示例,结合图3,发送单元62可以用于执行S201。
可选的,接收单元63,还用于接收TEE装置发送的第三SELinux策略库,以更新第二SELinux策略库。
作为示例,结合图3,接收单元63可以用于响应S204。
可选的,REE装置60还包括:删除单元64,用于按照预设的时长为周期,周期性的删除访问矢量缓存AVC中缓存的SELinux策略;或者,当调用AVC中缓存的SELinux策略的次数为预设阈值时,删除AVC中缓存的SELinux策略。其中,AVC用于缓存第二SELinux策略库中的SELinux策略。
作为示例,结合图2,删除单元64可以用于执行S106。
可选的,发送单元62,具体用于以第二时长为周期,周期性的向TEE装置发送校验值;其中,第二时长小于第一时长。
作为示例,结合图2,发送单元62可以用于执行S103。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种REE装置60的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
作为示例,结合图1,REE装置60中的确定单元61和删除单元64可以通过图1中的处理器11执行图1中的存储器12中的程序代码实现。
本申请实施例还提供一种芯片***70,如图7所示,该芯片***70包括至少一个处理器71和至少一个接口电路72。处理器71和接口电路72可通过线路互联。例如,接口电路72可用于接收信号(例如输入输出接口接收信号)。又例如,接口电路72可用于向其它装置(例如处理器71)发送信号。示例性的,接口电路72可读取存储器中存储的指令,并将该指令发送给处理器71。当该指令被处理器71执行时,可使得TEE装置或REE装置执行上述实施例中的各个步骤。当然,该芯片***70还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在TEE装置或REE装置上运行时,该TEE装置或REE装置执行上述方法实施例所示的方法流程中该TEE装置或REE装置执行的各个步骤。
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图8示意性地示出本申请实施例提供的计算机程序产品的概念性局部视图,该计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机程序产品是使用信号承载介质80来提供的。该信号承载介质80可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图2或图3描述的功能或者部分功能。因此,例如,参考图2中S101~S106,或者参考图3中S201~S204的一个或多个特征可以由与信号承载介质80相关联的一个或多个指令来承担。此外,图8中的程序指令也描述示例指令。
在一些示例中,信号承载介质80可以包含计算机可读介质81,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-onlymemory,ROM)或随机存储记忆体(random access memory,RAM)等等。
在一些实施方式中,信号承载介质80可以包含计算机可记录介质82,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。
在一些实施方式中,信号承载介质80可以包含通信介质83,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
信号承载介质80可以由无线形式的通信介质83(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
在一些示例中,诸如针对图2或图3描述的TEE装置和REE装置可以被配置为,响应于通过计算机可读介质81、计算机可记录介质82、和/或通信介质83中的一个或多个程序指令,提供各种操作、功能、或者动作。
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (26)

1.一种SELinux策略库更新的方法,其特征在于,所述方法应用于终端设备,所述终端设备包括通用执行环境REE装置和可信执行环境TEE装置,所述TEE装置和所述REE装置通过硬件隔离,所述TEE装置预置有第一SELinux策略库;所述方法由所述TEE装置执行;所述方法包括:
接收所述REE装置发送的校验值;所述校验值是基于第二SELinux策略库得到的,所述第二SELinux策略库是所述REE装置当前使用的SELinux策略库;
基于所述校验值,检验所述第二SELinux策略库与所述第一SELinux策略库是否相同;
若所述第二SELinux策略库与所述第一SELinux策略库不同,向所述REE装置发送所述第一SELinux策略库,所述第一SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
以第一时长为周期,周期性的向所述REE装置发送所述第一SELinux策略库,所述第一SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述REE装置发送的第一请求和用户的身份信息,所述第一请求用于请求修改所述第一SELinux策略库;
基于所述身份信息,验证所述用户是否具有修改所述第一SELinux策略库的权限;
若所述用户具有修改所述第一SELinux策略库的权限,则根据所述第一请求,修改所述第一SELinux策略库,得到第三SELinux策略库。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述REE装置发送所述第三SELinux策略库,所述第三SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述接收所述REE装置发送的校验值,包括:
以第二时长为周期,周期性的接收所述REE装置发送的校验值;其中,所述第二时长小于所述第一时长。
6.一种SELinux策略库更新的方法,其特征在于,所述方法应用于终端设备,所述终端设备包括通用执行环境REE装置和可信执行环境TEE装置,所述TEE装置和所述REE装置通过硬件隔离,所述TEE装置预置有第一SELinux策略库;所述方法由所述REE装置执行;所述方法包括:
基于第二SELinux策略库确定校验值;所述第二SELinux策略库是所述REE装置当前使用的SELinux策略库;
向所述TEE装置发送所述校验值,所述校验值用于所述TEE装置检验所述第二SELinux策略库与所述第一SELinux策略库是否相同,以使所述TEE装置在所述第二SELinux策略库与所述第一SELinux策略库不同时,向所述REE装置发送所述第一SELinux策略库;
接收所述TEE装置发送的所述第一SELinux策略库,以更新所述第二SELinux策略库。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
以第一时长为周期,周期性的接收所述TEE装置发送的所述第一SELinux策略库,以更新所述第二SELinux策略库。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
向所述TEE装置发送第一请求和用户的身份信息,所述第一请求用于请求修改所述第一SELinux策略库;所述身份信息用于所述TEE装置验证所述用户是否具有修改所述第一SELinux策略库的权限,以使所述TEE装置在所述用户具有修改所述第一SELinux策略库的权限时,对所述第一SELinux策略库进行修改而得到第三SELinux策略库。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述TEE装置发送的所述第三SELinux策略库,以更新所述第二SELinux策略库。
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述方法还包括:
按照预设的时长为周期,周期性的删除访问矢量缓存AVC中缓存的SELinux策略;或者,当调用AVC中缓存的SELinux策略的次数为预设阈值时,删除AVC中缓存的SELinux策略;
其中,AVC用于缓存所述第二SELinux策略库中的SELinux策略。
11.根据权利要求7至10中任一项所述的方法,其特征在于,所述向所述TEE装置发送所述校验值,包括:
以第二时长为周期,周期性的向所述TEE装置发送所述校验值;其中,所述第二时长小于所述第一时长。
12.一种可信执行环境TEE装置,其特征在于,所述装置应用于终端设备,所述终端设备还包括通用执行环境REE装置,所述TEE装置和所述REE装置通过硬件隔离,所述TEE装置预置有第一SELinux策略库;所述装置包括:
接收单元,用于接收所述REE装置发送的校验值;所述校验值是基于第二SELinux策略库得到的,所述第二SELinux策略库是所述REE装置当前使用的SELinux策略库;
检验单元,用于基于所述校验值,检验所述第二SELinux策略库与所述第一SELinux策略库是否相同;
发送单元,用于若所述第二SELinux策略库与所述第一SELinux策略库不同,向所述REE装置发送所述第一SELinux策略库,所述第一SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
13.根据权利要求12所述的装置,其特征在于,所述发送单元还用于:
以第一时长为周期,周期性的向所述REE装置发送所述第一SELinux策略库,所述第一SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
14.根据权利要求12或13所述的装置,其特征在于,所述装置还包括验证单元和修改单元;
所述接收单元,还用于接收所述REE装置发送的第一请求和用户的身份信息,所述第一请求用于请求修改所述第一SELinux策略库;
所述验证单元,用于基于所述身份信息,验证所述用户是否具有修改所述第一SELinux策略库的权限;
所述修改单元,用于若所述用户具有修改所述第一SELinux策略库的权限,则根据所述第一请求,修改所述第一SELinux策略库,得到第三SELinux策略库。
15.根据权利要求14所述的装置,其特征在于,
所述发送单元,还用于向所述REE装置发送所述第三SELinux策略库,所述第三SELinux策略库用于所述REE装置更新所述第二SELinux策略库。
16.根据权利要求13至15中任一项所述的装置,其特征在于,
所述接收单元,具体用于以第二时长为周期,周期性的接收所述REE装置发送的校验值;其中,所述第二时长小于所述第一时长。
17.一种通用执行环境REE装置,其特征在于,所述装置应用于终端设备,所述终端设备还包括可信执行环境TEE装置,所述TEE装置和所述REE装置通过硬件隔离,所述TEE装置预置有第一SELinux策略库;所述装置包括:
确定单元,用于基于第二SELinux策略库确定校验值;所述第二SELinux策略库是所述REE装置当前使用的SELinux策略库;
发送单元,用于向所述TEE装置发送所述校验值,所述校验值用于所述TEE装置检验所述第二SELinux策略库与所述第一SELinux策略库是否相同,以使所述TEE装置在所述第二SELinux策略库与所述第一SELinux策略库不同时,向所述REE装置发送所述第一SELinux策略库;
接收单元,用于接收所述第一SELinux策略库,以更新所述第二SELinux策略库。
18.根据权利要求17所述的装置,其特征在于,
所述接收单元,还用于以第一时长为周期,周期性的接收所述TEE装置发送的所述第一SELinux策略库,以更新所述第二SELinux策略库。
19.根据权利要求17或18所述的装置,其特征在于,
所述发送单元,还用于向所述TEE装置发送第一请求和用户的身份信息,所述第一请求用于请求修改所述第一SELinux策略库;所述身份信息用于所述TEE装置验证所述用户是否具有修改所述第一SELinux策略库的权限,以使所述TEE装置在所述用户具有修改所述第一SELinux策略库的权限时,对所述第一SELinux策略库进行修改而得到第三SELinux策略库。
20.根据权利要求19所述的装置,其特征在于,
所述接收单元,还用于接收所述TEE装置发送的所述第三SELinux策略库,以更新所述第二SELinux策略库。
21.根据权利要求17至20中任一项所述的装置,其特征在于,所述装置还包括:
删除单元,用于按照预设的时长为周期,周期性的删除访问矢量缓存AVC中缓存的SELinux策略;或者,当调用AVC中缓存的SELinux策略的次数为预设阈值时,删除AVC中缓存的SELinux策略;
其中,AVC用于缓存所述第二SELinux策略库中的SELinux策略。
22.根据权利要求18至21中任一项所述的装置,其特征在于,
所述发送单元,具体用于以第二时长为周期,周期性的向所述TEE装置发送所述校验值;其中,所述第二时长小于所述第一时长。
23.一种可信执行环境TEE装置,其特征在于,所述装置包括:存储器和一个或多个处理器,所述存储器用于存储计算机指令,所述处理器用于调用所述计算机指令,以执行如权利要求1至5中任一项所述的方法。
24.一种通用执行环境REE装置,其特征在于,所述装置包括:存储器和一个或多个处理器,所述存储器用于存储计算机指令,所述处理器用于调用所述计算机指令,以执行如权利要求6至11中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在可信执行环境TEE装置上运行时,使得所述TEE装置执行权利要求1至5中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在通用执行环境REE装置上运行时,使得所述REE装置执行权利要求6至11中任一项所述的方法。
CN202010239459.2A 2020-03-30 2020-03-30 一种SELinux策略库更新的方法及装置 Pending CN113468188A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010239459.2A CN113468188A (zh) 2020-03-30 2020-03-30 一种SELinux策略库更新的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010239459.2A CN113468188A (zh) 2020-03-30 2020-03-30 一种SELinux策略库更新的方法及装置

Publications (1)

Publication Number Publication Date
CN113468188A true CN113468188A (zh) 2021-10-01

Family

ID=77865123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010239459.2A Pending CN113468188A (zh) 2020-03-30 2020-03-30 一种SELinux策略库更新的方法及装置

Country Status (1)

Country Link
CN (1) CN113468188A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155716A (zh) * 2023-10-31 2023-12-01 腾讯科技(深圳)有限公司 访问校验方法和装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155716A (zh) * 2023-10-31 2023-12-01 腾讯科技(深圳)有限公司 访问校验方法和装置、存储介质及电子设备
CN117155716B (zh) * 2023-10-31 2024-02-09 腾讯科技(深圳)有限公司 访问校验方法和装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN109617907B (zh) 认证方法、电子装置及计算机可读存储介质
US9960912B2 (en) Key management for a rack server system
CN109617896B (zh) 一种基于智能合约的物联网访问控制方法和***
US11212283B2 (en) Method for authentication and authorization and authentication server using the same for providing user management mechanism required by multiple applications
US20140189119A1 (en) Controlling Access to Resources on a Network
CN110612517B (zh) 基于***状态的存储器保护
US20160048688A1 (en) Restricting System Calls using Protected Storage
US11265702B1 (en) Securing private wireless gateways
CN112131021A (zh) 一种访问请求处理方法及装置
CN108777691B (zh) 网络安全防护方法及装置
US20240211601A1 (en) Firmware policy enforcement via a security processor
CN104348616A (zh) 一种访问终端安全组件的方法、装置及***
KR20200145663A (ko) 블록체인을 이용한 범용 모바일 장치 잠금 시스템 및 방법
EP3846054A1 (en) Data processing method for security authentication, server, client device, and medium
CN112468497B (zh) 区块链的终端设备授权认证方法、装置、设备及存储介质
CN113468188A (zh) 一种SELinux策略库更新的方法及装置
US10606813B2 (en) Systems and methods for securely managing program execution
EP3737129B1 (en) Management method for offline management instruction and terminal
CN111541649A (zh) 一种密码重置方法、装置、服务器及存储介质
CN114692228A (zh) 安全监控方法、装置、设备和可读存储介质
JP6287491B2 (ja) 情報処理装置、認証制御方法及びプログラム
CN109088854B (zh) 共享应用的访问方法、装置及可读存储介质
CN108449753B (zh) 一种手机设备读取可信计算环境中的数据的方法
KR102678671B1 (ko) 보안 인증을 위한 데이터 처리 방법, 서버, 클라이언트 디바이스 및 매체
CN112491893B (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