一种SElinux安全访问方法和POS终端与流程

文档序号:11831213阅读:604来源:国知局
一种SElinux安全访问方法和POS终端与流程

本发明属于数据通信技术领域,具体地说,是涉及一种SElinux安全访问方法和POS终端。



背景技术:

Linux为一个开源的操作系统,具有丰富的功能接口和良好的可扩展性,在嵌入式设备领域应用广泛。

SElinux在Linux基础上增加了安全模块(LSM,Linux Security Module),安全模块提供了安全框架,允许将安全访问控制载入Linux内核,使用最小特权原则,根据安全访问控制策略配置文件中的定义,分配指定进程的访问权限。

但是,这种访问控制权限的授权是在系统中预设的,实现预设应用程序的安全访问控制,但若应用程序在加载过程中被恶意篡改,系统则无法阻止这种应用软件的非法运行。



技术实现要素:

本申请提供了一种SElinux安全访问方法和POS终端,解决现有SElinux访问中存在的无法阻止应用程序在加载过程中被恶意篡改的技术问题。

为解决上述技术问题,本申请采用以下技术方案予以实现:

提出一种SElinux安全访问方法,包括:加载应用程序至内存后,对应用程序的可执行文件进行签章验证;判断签章验证是否通过;若通过执行所述应用程序。

提出一种POS终端,运行有SElinux操作系统,连接有安全外接设备,所述SElinux操作系统加载应用程序至内存后,对应用程序的可执行文件进行签章验证,并判断签章验证是否通过,若通过,执行所述应用程序。

与现有技术相比,本申请的优点和积极效果是:本申请提出的SElinux安全访问方法和POS终端中,将应用程序的可执行文件中增加签章,在将应用程序加载到内存后开始运行前,由内核对应用程序进行签章验证,确保在内存中运行的应用完整性和真实性,只有通过签章验证的应用程序,才能执行,这种采取内存中签章验证的方法,杜绝了应用程序的执行文件在加载过程中被恶意篡改的可能性,解决了现有SElinux访问中存在的无法阻止应用程序在加载过程中被恶意篡改的技术问题。

结合附图阅读本申请实施方式的详细描述后,本申请的其他特点和优点将变得更加清楚。

附图说明

图1 为本申请提出的SElinux安全访问方法的方法流程图;

图2为本申请提出的Linux操作系统的架构图。

具体实施方式

下面结合附图对本申请的具体实施方式作进一步详细地说明。

本申请提出的SElinux安全访问方法和POS终端,是在SElinux基础上,结合电子签名技术,在应用程序每次加载到内存开始运行之前,由Linux操作系统读取存储在安全区域的验证公钥对使用私钥签章的应用程序执行文件进行身份性验证,确保应用程序可执行文件的真实性和完整性,能够杜绝应用程序在文件系统中或加载过程中被篡改。

本申请提出的SElinux安全访问方法运用于如图2所示的Linux系统中,Linux系统运行于POS终端中,其在用户层包括有主应用程序11、应用程序12和安全守护进程13;在内核空间包括有RSA加密算法模块21、LSM模块22和授权判断模块23;在硬件层包括有诸如键盘、显示和/或读卡器等涉及个人账户信息和密码信息的安全外接设备31、以及其他的硬件设备32。

在用户层,分为主应用程序11和应用程序12,其中主应用程序11负责应用程序12的下载、选择等人机接口工作,与应用程序12区别开,使得软件结构层次清晰,维护便捷。安全守护进程13采用通常由安全外接设备的厂商授权的授权私钥进行签章,并通过签章验证后才能被授予获取安全外接设备信息的访问权限,以及进行数据安全加密处理等工作,并对应用程序12进行管理。这里,安全外接设备信息包含秘钥等安全数据。

应用程序12需要采用诸如应用程序开发方提供的私钥签章,并通过系统的签章验证后才能执行。

本申请基于SElinux,安全模块LSM22配置外接设备的访问权限,经过签章验证的安全守护进程,才能被授予访问安全外接设备信息的权限。

基于如图2所示的Linux系统,本申请提出的SElinux安全访问方法,如图1所示,包括如下步骤:

步骤S11:加载应用程序至内存。

应用程序被加载至内存之前,需要使用应用程序开发方提供的私钥对应用程序的可执行文件采用诸如RSA算法增加签章信息,同时不影响原有可执行文件格式信息。签章的应用程序由内核加载到内存。在加载到内存之后,

步骤S12:对应用程序的可执行文件进行签章验证。

签章的应用程序由内核加载到内存后,由内核读取存储在安全区域的验证公钥,对应用程序的可执行文件进行签章验证,确保在内存中运行的应用完整性和真实性。

步骤S13:判断签章验证是否通过;若通过,

步骤S14:执行该应用程序。

在SElinux系统内核加载应用程序到内存中后,由内核验证应用程序的签章,只有通过签章验证的应用程序,才能运行。

上述可以看出,采用应用程序被加载至内存后进行签章验证的方法,当应用程序在加载之前或者加载过程中被恶意篡改了,则不能通过签章验证,也就不能运行,因此,采用本申请提出的SElinux安全访问方法,能够杜绝应用程序的执行文件在加载过程中被恶意篡改的可能性,解决了现有SElinux访问中存在的无法阻止应用程序在加载过程中被恶意篡改的技术问题。

在确保了应用程序的完整性、真实性和安全性之后,应用程序得以运行。根据现有技术,运行后的应用程序,所有与安全外接设备的秘钥相关的数据处理功能全部在内核层实现,例如用于POS终端的刷卡应用,在POS终端的读卡器上刷卡后读取到了卡片的账户信息后,账户信息由内核读取报文秘钥后对报文进行加密处理,并将加密报文发送至后台使用;这种在内核层进行秘钥相关处理的方式,将秘钥相关处理功能固化在了内核层,若秘钥相关处理方式升级或者更新,则需要更新固件,这会增加后期维护的难度和成本。

针对于此,在本申请中,在用户层还创建有一个安全守护进程(Secure Daemon),该安全守护进程需要经过签章验证后才可以授予访问安全外接设备信息的权限,才可以执行。在被授权并运行之后,负责读取安全外接设备的秘钥,并对应用程序产生的报文进行加密处理,将加密报文返回给应用程序,将原来由内核负责执行的加密等涉及安全的功能转移至用户层,通过安全守护进程对应用程序进行动态管理,以适应多种应用场景的不同需求,在秘钥相关处理方式需要升级或者更新时,只需更新用户层的安全守护进程,使得维护更加便捷,也降低了维护的难度,从而降低了维护成本。

具体的,在步骤S14执行应用程序之前,执行以下步骤:

步骤S21:对安全守护进程使用授权私钥签章。

步骤S22:加载安全守护进程至内存。

步骤S23:对安全守护进程进行签章验证。

加载安全守护进程至内存后,由内核从安全存储区域读取授权公钥对安全守护进程进行签章验证。

步骤S24:判断签章验证是否通过;若通过,

步骤S25:授予安全守护进程访问安全外接设备信息的访问权限,并执行安全守护进程。

该安全守护进程只有通过了签章验证后,才授予访问安全外接设备信息的权限,才能够执行,在安全守护进程执行之后,安全守护进程与运行的应用程序之间定义了二者之间通信RPC进程间安全接口,由安全守护进程实现访问秘钥以及加密等涉及安全的处理功能,并将处理数据通过RPC进程间安全接口发送给应用程序直接使用,确保数据处理流程的可控性和应用间的数据安全交互。

具体的,在应用程序执行之后,执行步骤S15:应用程序产生报文并发送给安全守护进程。

以安全外接设备为POS终端的读卡器为例,POS终端中运行有SElinux操作系统,应用程序运行后,用户在读卡器上刷卡后,应用程序获取用户的账户信息,通过RPC进程间安全接口,将报文,也即用户账户信息发送给安全守护进程。

步骤S16:安全守护进程获取安全外接设备的报文秘钥。

安全守护进程被授予访问读卡器信息的权限,则其可从读卡器驱动中读取用于读卡器的报文秘钥。

步骤S17:使用该报文秘钥对报文做加密处理。

获取读卡器的报文秘钥后,通过RPC进程间安全接口将该报文秘钥反馈至安全守护进程,安全守护进程使用该报文秘钥对用户账户信息进行加密处理,得到加密报文,也即加密的用户账户信息;然后将加密报文发送给应用程序。这里的用户账户信息例如账户卡号、密码等支付相关信息。

步骤S18:应用程序接受安全守护进程发送的加密报文。

应用程序接收到加密报文后,可以进一步将加密报文发送至后台,例如银行服务端,由银行服务端对加密报文采用相应的报文秘钥将报文解密使用。

本申请还提出一种POS终端,该POS终端运行有SELinux操作系统,连接有键盘、显示器、读卡器等涉及用户账户信息安全信息输入、输出或显示的安全外接设备;其工作基于上述提出的SElinux安全访问方法,加载应用程序至内存后,对应用程序的可执行文件进行签章验证,并判断签章验证是否通过,若通过,则执行应用程序,能够杜绝应用程序在加载至内存之前或过程中被恶意篡改。

优选的,在该POS终端的操作系统被加载之后,执行应用程序之前,还需加载一个安全守护进程至内存,并对该安全守护进程进行签章验证,该安全守护进程使用授权私钥签章,若所述安全守护进程的签章验证通过,则授予安全守护进程访问安全外接设备信息的权限,并执行安全守护进程,否则不执行。执行之后,能够在接收到应用程序产生的报文后,获取安全外接设备的报文秘钥,并使用报文秘钥对所述报文做加密处理,并向应用程序返回加密报文,将原来由内核负责执行的加密等涉及安全的功能转移至用户层,通过安全守护进程对应用程序进行动态管理,以适应多种应用场景的不同需求,在秘钥相关处理方式需要升级或者更新时,只需更新用户层的安全守护进程,使得维护更加便捷,也降低了维护的难度,从而降低了维护成本。

具体的POS终端的工作方法已经在上述SElinux安全访问方法中详述,此处不予赘述。

上述本申请提出的SElinux安全访问方法和POS终端,在应用程序和安全守护进程被加载到内存之后运行之前,需要进行签章验证,只有签章验证通过的情况下才能运行,应用程序才能够与安全守护进程建立数据通信,安全守护进程才会被授予访问安全外接设备信息的权限,这种由内核在内存中对应用程序和安全守护进程签章验证的方式,能够在确保执行文件完整性和真实性时,还杜绝在加载之前或加载过程中被恶意篡改的可能性,保障了应用程序的安全性。

安全守护进程采用授权私钥进行签章,并在通过签章验证后才可授权和运行,实现对秘钥等安全数据的处理,以及通过安全接口实现对其他应用程序的管理,在执行空间上与主应用程序和其他应用程序隔离,使得软件结构层次清晰,提高了系统的安全性,并且能够适应不同应用的需求,将内核处理私钥等安全数据的功能提到用户应用层,便于后期的功能升级或更新。

基于SElinux技术,在LSM配置安全外接设备的基础上,还需有安全守护进程才可实现对安全外接设备秘钥信息的访问,提高了Linux内核系统的安全性,能够在很大程度上避免Linux系统安全漏洞可能带来的软件系统的安全隐患。

应该指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1