一种智能POS机的权限控制方法及其控制系统
技术领域
本发明涉及POS机数据处理技术领域,更具体地说它涉及一种智能POS机的权限控制方法及其控制系统。
背景技术
随着移动互联网的发展和商户对终端的需求越来越多样化,传统POS封闭系统的局限性已经无法满足多样化的业务需求。相对于传统POS,智能POS的开放平台特性,它允许部署更多的行业应用及收单应用。为了实现对每个应用访问智能POS应用的外设权限进行限制,需要实现一种对应用访问外设权限进行控制的方案。如应用A可以使用IC读卡器、非接读卡器,应用B只能使用IC读卡器。目前,公告号为CN108064383A的中国专利公开的一种应用权限管理方法,包括:对认证通过的操作系统内核使用操作系统内核签名证书进行签名;在认证通过的 POS 终端上安装、和/或修改应用时,调用已签名的操作系统内核,使用应用签名证书对所述应用进行验证,只有通过验证的应用才允许在 POS 终端上执行相应操作。
现有技术中类似于上述的POS机权限控制方法,其一般采用安卓原生操作系统内核签名验证和应用签名验证的方式,在提升可扩展性的同时,保证了操作系统内核的安全性,对应用的权限进行了合理的控制。但由于安卓原生操作系统的权限方案的权限声明位置是在AndroidMainfext.xml文件中声明,APK使用某个权限需要在API接口服务的AndroidMainfext.mxl文件中进行权限声明。按照原生操作系统的签名方案,APK一旦发布后,具有的权限就固定了,如果需要修改权限则需要开发者重新修改权限文件并重新签名,造成了权限修改麻烦的缺陷。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种智能POS机的权限控制方法,其优点在于方便对已签名权限进行修改。
为实现上述目的,本发明提供了如下技术方案:一种智能POS机的权限控制方法,包括:智能POS应用运行时,将应用权限文件与服务接口权限文件以及外设接口权限文件进行比对,判断POS应用是否允许调用外接设备;所述应用权限文件包含有定制安装包文件,所述定制安装包文件包含有原生安装包文件以及认证签名文件,所述认证签名文件由原生安装包文件进行签名动作生成,认证签名文件与原生安装包文件压缩并插入至原生安装包文件内生成所述定制安装包文件。
通过采用上述技术方案,智能POS应用安装在智能POS机终端内时,智能POS应用的应用权限文件一同存储在终端内。在智能POS应用的安装过程中,系统根据运行身份对应用权限文件包含的原生安装包文件进行签名动作,原生安装包文件经过签名后生成认证签名文件。认证签名文件中带有对应于终端系统运行身份的相关认证信息。 之后将认证签名文件插入到原生安装包中生成定制安装包文件,由于定制安装包,定制安装包文件同样包含于应用权限文件中。由于定制安装包文件既包含有认证签名文件中具有系统运行身份的签名认证信息,也包含原生安装包文件中的安卓原生签名,且认证签名文件只是插入在原生安装包文件的目录下,在需要对权限修改时,只需要对原生安装包文件目录下的认证签名文件进行修改,修改动作不需要涉及到原生安装包文件中的安卓原生签名,即不需要开发者重新修改整个应用权限文件,从而方便了对已签名权限进行的修改动作。
本发明进一步设置为:所述认证签名文件在所述原生安装包文件中插入的路径位于原生安装包文件中的META-INF目录下。
通过采用上述技术方案,META-INF目录相当于一个信息包,目录中的文件通常用以配置应用程序、扩展程序、类加载器和服务。位于该目录下的manifest.mf文件用于记录程序入口的相关信息,且在安装包压缩打包时生成。
本发明进一步设置为:所述认证签名文件生成的具体签名动作为:
S1、对所述原生安装包文件进行哈希运算并得出哈希值;
S2、通过POS机终端用户的工作私钥对所得出的哈希值进行签名生成安装包签名;
S3、所述安装包签名与原生安装包文件打包生成认证签名文件。
通过采用上述技术方案,通过哈希结合工作私钥进行签名加密,使得认证签名文件具有抗原像性,抗第二原像性以及抗碰撞性,增强了认证签名文件的安全性能,避免认证签名文件中的信息以及应用权限被非法更改。
本发明进一步设置为:所述原生安装包文件内置有安卓原生签名,且所述原生安装包文件权限声明的位置位于安卓系统中的AndroidMainfext.xml文件中。
通过采用上述技术方案,原生安装包文件的权限声明位置是在AndroidMainfext.xml文件中,使得原生安装包文件一旦发布后,其具有的权限随即固定,若需要修改则需要开发者重新修改原生安装包中的相关权限文件并重新签名,从而保证原生安装包文件中的原生权限不易更改,避免减小出现对智能POS应用随意进行修改操作的风险。
本发明进一步设置为:所述认证签名文件包含有签名信息主体、安装包签名、工作证书、厂商自定义信息与签名文件头,所述认证签名文件还包含有自定义的权限声明。
通过采用上述技术方案,认证签名文件中包含签名信息主体、安装包签名、工作证书、厂商自定义信息、签名文件头以及自定义的权限声明,保证认证签名文件内相关身份签名信息的完整性。
本发明进一步设置为:控制器发出访问请求的权限判断过程为:
S1、控制器获取智能POS应用的运行身份;
S2、控制器根据运行身份查找调用该智能POS应用安装时对应的应用权限文件;
S3、将应用权限文件与服务接口权限文件进行比对,若比对通过则允许智能POS应用访问应用服务接口,反之拒绝访问。
通过采用上述技术方案,智能POS应用运行需要调用某一外接设备的功能时,首先由控制器确定运行智能POS应用的运行身份,之后根据该运行身份查找对应该身份的应用权限文件,保证权限以及身份之间的对应性。应用权限文件与服务接口权限文件进行比对,避免出现违规身份进行违规权限的操作情况的出现。
本发明进一步设置为:所述步骤S1中智能POS应用的运行身份为智能POS机终端的UID。
通过采用上述技术方案,智能POS应用的运行身份为终端的UID,智能POS应用均已使得POS机终端的身份进行运作,有利于智能POS应用使用的方便与快捷。
本发明进一步设置为:所述应用服务接口调用外接设备的权限判断过程为:分别将所述应用权限文件以及服务接口权限文件与外设接口权限文件进行比对,若比对通过则允许智能POS应用通过应用服务接口调用外接设备,否则外接设备调用失败。
通过采用上述技术方案,通过对应应用服务接口的服务接口权限文件与对应外设接口的外设接口权限文件进行比对,保证应用服务接口与外设接口之间的对应性,同时保证应用服务接口与外设接口之间调用动作的合法性。
本发明进一步设置为:所述应用权限文件包含安卓系统所有原生权限字段,同时针对智能POS机特有的应用场景自定义有自定义权限字段。
通过采用上述技术方案,应用权限文件中包含所有原生权限字段,保证在权限对比过程中对比结果的准确与稳定性,同时自定义权限字段设置增强了智能POS机应用的权限应用功能。
针对现有技术存在的不足,本发明的目的在于提供一种智能POS机的权限控制系统,其优点在于方便对已签名权限进行修改。
为实现上述目的,本发明提供了如下技术方案:
一种智能POS机的权限控制系统,包括:
智能POS机终端控制器,用于执行控制智能POS应用的运行以及权限对比动作;
存储介质,用于存储相应智能POS应用的应用权限文件、相应应用服务接口的服务接口权限文件以及相应外设接口的外设接口权限文件;
应用服务接口,用于响应智能POS应用动作的访问请求并执行调用外设接口等相应应用功能操作;
外设接口,用于响应应用服务接口,实现外接设备与智能POS机终端的联动;
外接设备,用于执行智能POS应用的指定权限所对应的调用功能;
其特征在于:所述应用服务接口与外设接口中,服务接口权限文件与外设权限文件同应用权限文件的比对过程由控制器控制Check_Permission功能接口执行。
通过采用上述技术方案,智能POS机终端控制器用以访问请求发送以及权限文件的调取等系统操作。存储介质用于存储应用权限文件、服务接口权限文件与外设接口权限文件。通过控制器控制访问请求在应用服务接口与外设接口之间的传输配合存储介质中权限文件的调取以及控制器控制Check_Permission功能接口执行各权限文件的对比,实现智能POS应用对外接设备的调用过程。
综上所述,本发明具有以下优点:
1、通过签名认证文件插入原生安装包文件目录下生成定制安装包文件的应用权限文件签名方式,方便对已签名权限进行修改;
2、通过应用权限文件汇总自定义权限字段的设置增强智能POS机应用的权限应用功能;
3、通过将原生安装包权限声明位置位于安卓系统中的AndroidMainfext.xml文件中,以保证智能POS应用使用的安全合法性。
附图说明
图1是本实施例中智能POS应用运行的访问流程图;
图2是本实施例中原生安装包文件签名动作的结构框图;
图3是本实施例中智能POS应用调用外接设备的控制流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
实施例,一种智能POS机的权限控制方法及控制系统,控制系统包括智能POS机终端控制器、存储介质、应用服务接口、外设接口以及外接设备。智能POS机终端内安装有智能POS应用。智能POS应用与外接设备的访问流程如下:智能POS机终端在运行智能POS应用需要调用外接设备时,通过控制器发出访问请求,并通过应用服务接口与外设接口实现对外接设备的调用与运行,控制流程如图1、2所示。
存储介质中存储有分别对应于智能POS应用的应用权限文件、对应于应用服务接口的服务接口权限文件、对应于外设接口的外设接口权限文件。应用权限文件在智能POS应用安装于POS机终端时生成,应用权限文件中包含有定制安装包文件。图3为定制安装包文件的生成框图,智能POS应用安装时,其自带的应用权限文件存储于存储介质中,应用权限文件中包含有应用自带的原生安装包文件。在智能POS应用的安装过程中,首先根据对原生安装包文件进行签名动作。签名动作包括以下步骤:
S1、对原生安装包文件进行哈希运算并得出哈希值;
S2、通过POS机终端用户的工作私钥对所得出的哈希值进行签名生成安装包签名;
S3、安装包签名与原生安装包文件打包生成认证签名文件。
在以上步骤S2中,对应用进行签名前,系统首先获取智能POS应用的运行身份。本发明中智能POS应用的运行身份为智能POS机终端的UID,以方便多个智能POS应用在终端上的运行。认证签名文件包含有签名信息主体、安装包签名、工作证书、厂商自定义信息与签名文件头,认证签名文件中还包含有自定义的权限声明。原生安装包文件内置有安卓原生签名,且原生安装包文件权限声明的位置位于安卓系统中的AndroidMainfext.xml文件中。表一为经过签名改造后应用服务接口与应用权限之间的关系,✓表示具有权限,×不具有权限。
表一:
权限文件 |
SDK服务接口 |
APK |
权限 |
权限声明位置 |
AndroidMainfext.xml |
认证签名文件SGN |
✓ |
权限声明位置 |
认证签名文件SGN |
AndroidMainfext.xml |
× |
权限声明位置 |
AndroidMainfext.xml |
AndroidMainfext.xml |
✓ |
权限声明位置 |
认证签名文件SGN |
认证签名文件SGN |
✓ |
权限声明位置 |
未声明该权限 |
AndroidMainfext.xml |
× |
权限声明位置 |
未声明该权限 |
认证签名文件SGN |
× |
定制安装包文件包含有原生安装包文件以及认证签名文件,将认证签名文件与原生安装包文件压缩并插入原生安装包文件的META-INF目录下,得到定制安装包文件。应用权限文件包含安卓系统所有原生权限字段,同时针对智能POS机特有的应用场景自定义有自定义权限字段。以POS机收单应用为例,当智能POS应用访问某一设备层的应用服务接口时。此应用需要按照表二所示定义的访问权限进行授权:
表二:
权限条目标识(通过字符串标识) |
权限的含义 |
smartpos.deviceservice.permission.Pinpad |
使用密码键盘设备功能的权限 |
smartpos.deviceservice.permission.MagReader |
使用磁条读卡器设备功能的权限 |
smartpos.deviceservice.permission.ICReader |
使用IC卡读卡器设备功能的权限 |
smartpos.deviceservice.permission.RFReader |
使用非接触IC卡读卡器设备功能的权限 |
smartpos.deviceservice.permission.Printer |
使用打印机设备功能的权限 |
smartpos.deviceservice.permission.Scanner |
使用条码扫描设备功能的权限 |
smartpos.deviceservice.permission.Beeper |
使用蜂鸣器设备功能的权限 |
smartpos.deviceservice.permission.PBOC |
调用PBOC金融交互流程功能的权限 |
smartpos.deviceservice.permission.DeviceInfo |
调用获取终端设备信息的权限 |
smartpos.deviceservice.permission.SerialPort |
使用串口设备功能的权限 |
smartpos.deviceservice.permission.Led |
使用LED灯设备功能的权限 |
智能POS应用运行时,首先由控制器发出访问请求进行权限判断,结合图2,控制器发出访问请求的权限判断过程为:
S1、控制器获取智能POS应用的运行身份;
S2、控制器根据运行身份查找调用该智能POS应用安装时对应的应用权限文件;
S3、将应用权限文件与服务接口权限文件进行比对,若比对通过则允许智能POS应用访问该应用服务接口,反之拒绝访问。
智能POS应用成功访问应用服务接口后,应用服务接口调用外接设备的权限判断过程为:分别将应用权限文件以及服务接口权限文件与外设接口权限文件进行比对,若比对通过则允许智能POS应用通过应用服务接口调用外接设备,否则外接设备调用失败。应用服务接口与外设接口中,服务接口权限文件与外设权限文件同应用权限文件的比对过程由控制器控制Check_Permission功能接口执行。
以智能POS收单应用为例,如果要访问设备所有的应用服务接口,对应签名信息主体中需要包含如下的权限描述文件:
[Main]
Type = APK // 表示该智能POS收单应用的格式是APK;
Version = 3 // 权限描述文件的格式版本号,目前为3,后续有变化再升级;
AccessableKapIds=00010001 // 表示本应用可以访问的收单机构ID,可以为多个取值,此功能为预留功能。
// 下面可以添加要访问的某个应用服务接口的权限
[Uses-permission-1]
Name=smartpos.deviceservice.permission.Pinpad
[Uses-permission-2]
Name=smartpos.deviceservice.permission.MagReader
[Uses-permission-3]
Name= smartpos.deviceservice.permission.ICReader
[Uses-permission-4]
Name= smartpos.deviceservice.permission.RFReader
[Uses-permission-5]
Name= smartpos.deviceservice.permission.Printer
[Uses-permission-6]
Name= smartpos.deviceservice.permission.Scanner
[Uses-permission-7]
Name= smartpos.deviceservice.permission.Beeper
[Uses-permission-8]
Name= smartpos.deviceservice.permission.PBOC
[Uses-permission-9]
Name= smartpos.deviceservice.permission.DeviceInfo
[Uses-permission-10]
Name= smartpos.deviceservice.permission.SerialPort
[Uses-permission-11]
Name= smartpos.deviceservice.permission.Led
智能POS应用在安装签名过程中,通过将认证签名文件与原生安装包文件压缩并插入至原生安装包文件内生成定制安装包文件,使得已签名的定制安装包文件符合安装包文件格式,只是在安装包文件内部的META-INF目录下存在认证签名文件,并不影响智能POS应用自带的安卓原生验签。从而在需要对权限进行修改时,只需要对原生安装包文件目录下的认证签名文件进行修改,修改动作不需要涉及到原生安装包文件中的安卓原生签名,即不需要开发者重新修改整个应用权限文件,方便了对已签名权限进行的修改动作。
以上所述仅为本发明的较佳实施例,并不用于限制本发明,凡在本发明的设计构思之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。