在安卓系统内进行安全支付的方法及系统与流程

文档序号:13736875阅读:470来源:国知局
在安卓系统内进行安全支付的方法及系统与流程

本发明涉及支付安全技术领域,尤其是涉及一种在安卓系统内进行安全支付的方法及系统。



背景技术:

如今,pos(销售点终端)作为银联卡受理终端正被越来越多的商户使用,pos的安全也受到越来越多的关注。正如大家所熟悉的,商户用pos完成一笔收单,需要持卡人出示银行卡,pos终端完成读卡后再由持卡人输入密码,按照iso9564规范对持卡人密码进行填充、异或操作后的数据,称为明文pinblock。而使用收单行工作密钥加密明文pinblock后得到的数据,称为密文pinblock。并最后发送到收单行后台进行验证。但pos终端面临着各种攻击:穿透、窃听、偷窥、伪装、恶意程序等,攻击者最终都是为了窃取持卡人的数据信息。

因为安全性要求,pos产品通常采用专用的安全处理器。安全处理器通过了国际或国内安全标准认证,具备成熟的软硬件安全机制,具备安全启动和安全固件更新机制,防攻击、反攻击、防探测、防监听功能,敏感数据的访问保护和自动擦除功能等。但是专用的安全处理器性能较低且多媒体扩展不宜,通用性差,较难胜任目前智能操作系统如android的要求。

此外,目前运行android系统的通用处理器具有性能高、多媒体支持丰富等优点,但是通用处理器虽然部分具备安全启动等软件安全机制,却无法提供足够的等同安全处理器级别的全套软硬件安全性能保证。同时,如果仅简单搭建双处理器架构,则暴露的通讯总线又存在被监听和篡改的安全隐患,数据安全仍然无法达到安全处理器级别。



技术实现要素:

本发明所要解决的技术问题是:提供一种在安卓系统内进行安全支付的方法及系统,可保证运行于安全处理器内的pos终端的支付api能被通用的安卓应用透明而可靠地调用,且支持多应用并发调用,有效扩展了智能操作系统在安全支付领域的应用范围。

为了解决上述技术问题,本发明采用的技术方案为:提供一种在安卓系统内进行安全支付的方法,至少包括如下步骤:

s1:通过串行总线连接安全处理器及通用处理器;

s2:为安卓系统添加支付服务管理器接口;

s3:为安卓系统添加支付服务及对应的支付权限声明;

s4:安全处理器及通用处理器之间通过串行总线进行双向认证,获得通讯密钥;

s5:为安全处理器添加安全支付接口,安卓支付应用使用所述支付服务管理器接口调用支付服务,支付服务依据所述支付应用权限声明,并使用所述通讯密钥远程交互调用安全处理器安全支付接口,实现安全支付。

其中,所述安全处理器内置安全信息及第一rsa公钥及第一rsa私钥,安全处理器设为支付服务api的rpc服务端;所述通用处理器运行安卓系统,并内置第二rsa公钥及第二rsa私钥,且支付服务管理器接口设为支付服务的ipc客户端,支付服务设为ipc服务端及rpc客户端。

其中,步骤s2具体为:

s21:通过aidl技术将运行于安卓系统应用线程内的支付服务管理器接口设为ipc客户端;

s22:ipc客户端申请连接安卓系统支付服务管理器接口,并检测是否连接成功,

若是,则执行步骤s23:ipc客户端向支付服务发送安全支付api请求;

反之,则执行步骤s6:显示异常,并终止流程;

s24:ipc客户端获得支付服务解析所述安全支付api请求的反馈应答。

其中,步骤s3的ipc服务端运行于安卓系统内,并使用同步技术,以实现多应用的并发请求,具体为:

s31:ipc服务端线程接收安卓支付应用ipc客户端支付服务连接请求;

s32:ipc服务端从安卓支付应用上下文判断应用端是否声明支付权限,

若是,则执行步骤s33:ipc服务端接收支付服务api调用请求,并进入命令同步块;

反之,则执行步骤s6:显示异常,并终止流程;

s34:ipc服务端向rpc客户端的api命令队列发送api命令请求;

s35:ipc服务端接收所述api命令队列的调用应答,并退出命令同步块。

其中,步骤s3中rpc客户端通过串行总线与安全处理器通讯,使用jni访问串行总线设备节点,具体为:

s36:rpc客户端检测到api命令队列存在api命令请求,则将api调用请求转换成rpc请求数据包,并使用通讯密钥进行des加密,生成rpc请求加密包;

s37:rpc客户端通过串口向安全处理器的rpc服务端发送rpc请求加密包;

s38:rpc客户端通过串口接收安全处理器的rpc应答加密包,并解析,获得api调用返回数据;

s39:rpc客户端将返回数据发送给支付服务的ipc服务端。

其中,步骤s37与步骤s38之间,还包括如下步骤:

s371:安全处理器rpc服务端接收rpc客户端发出的请求加密包;

s372:判断请求加密包的数据是否有效,

若是,则执行步骤s373:使用通讯密钥解密rpc请求加密包,获得支付服务api请求;

反之,则返回步骤s371;

s374:在安全处理器内执行支付服务api,获得api调用返回数据;

s375:rpc服务端将api调用返回数据转换为应答包,并使用通讯密钥加密成rpc应答加密包;

s376:rpc服务端向rpc客户端发送所述prc应答加密包。

其中,步骤s4具体为:

s41:根据所述支付服务管理器接口、支付服务及其权限声明,通用处理器发送8字节的第一通用随机数给安全处理器;

s42:安全处理器生成8字节的安全随机数,然后与所述第一通用随机数组合生成16字节的第一组合数,并使用第一rsa私钥对第一组合数进行加密,生成第一组合数密文,并将第一组合数密文和第一rsa公钥发送给通用处理器;

s43:通用处理器根据第一rsa公钥,对第一组合数密文进行解密,得到16字节的第一组合数,并判断第一组合数的前8字节数是否与第一通用随机数匹配,

若不匹配,则执行步骤s6:显示异常,并终止流程;

若匹配,则执行步骤s44:通用处理器生成8字节第二通用随机数,与所述安全随机数组合生成16字节的第二组合数,并使用第二rsa私钥对第二组合数进行加密,生成第二组合数密文,并将第二组合数密文和第二rsa公钥发送给安全处理器;

s45:安全处理器根据第二rsa公钥,对第二组合数密文进行解密,得到16字节的第二组合数,并判断第二组合数的前8字节数是否与安全随机数匹配,

若不匹配,则执行步骤s6:显示异常,并终止流程;

若匹配,则执行步骤s46:安全处理器和通用处理器均将第二组合数设为rpc通讯数据的加密/解密密钥,以作为安全支付通讯密钥。

为了解决上述技术问题,本发明还提供一种在安卓系统内进行安全支付的系统,包括通过串行总线连接的安全处理器及通用处理器,其中所述通用处理器的安卓系统设有支付服务管理器接口、支付服务及对应的支付权限申明,安全处理器及通用处理器之间通过串行总线进行双向认证,获得通讯密钥,且所述安全处理器设有安全支付接口,安卓支付应用使用所述支付服务管理器接口调用支付服务,支付服务依据所述支付应用权限声明,使用所述通讯密钥远程交互调用安全处理器安全支付接口,实现安全支付。

其中,所述安全处理器内置安全信息及第一rsa公钥及第一rsa私钥,安全处理器设为支付服务api的rpc服务端;所述通用处理器运行安卓系统,并内置第二rsa公钥及第二rsa私钥,且支付服务管理器接口设为支付服务的ipc客户端,支付服务设为ipc服务端及rpc客户端。

其中,根据所述支付服务管理器接口、支付服务及其权限声明,通用处理器发送8字节的第一通用随机数给安全处理器;

安全处理器生成8字节的安全随机数,然后与所述第一通用随机数组合生成16字节的第一组合数,并使用第一rsa私钥对第一组合数进行加密,生成第一组合数密文,并将第一组合数密文和第一rsa公钥发送给通用处理器;

通用处理器根据第一rsa公钥,对第一组合数密文进行解密,得到16字节第一组合数,并判断第一组合数的前8字节数是否与第一通用随机数匹配,

若匹配,则通用处理器生成8字节第二通用随机数,与所述安全随机数组合生成16字节的第二组合数,并使用第二rsa私钥对第二组合数进行加密,生成第二组合数密文,并将第二组合数密文和第二rsa公钥发送给安全处理器;

安全处理器根据第二rsa公钥,对第二组合数密文进行解密,得到16字节的第二组合数,并判断第二组合数的前8字节数是否与安全随机数匹配,

若匹配,则安全处理器和通用处理器均将第二组合数设为rpc通讯数据的加密/解密密钥,以作为安全支付通讯密钥。

本发明的有益效果在于:区别于现有技术,本发明通过双处理器架构配合rpc(远程过程调用)和双向认证安全通讯协议,使pos(销售点终端)安全相关的系统调用实际运行于安全处理器内部,而通用处理器端应用程序可以安全和方便地调用支付服务,具体地通过串行总线连接安全处理器及通用处理器,并进行双向认证,获得通讯密钥;安卓支付应用使用所述支付服务管理器接口调用支付服务,支付服务依据所述支付应用权限声明,使用所述通讯密钥远程交互调用安全处理器安全支付接口,实现安全支付。通过上述方式,本发明实现运行于安全处理器内的pos终端的支付api能被通用的安卓应用透明而可靠地调用,且支持多应用并发调用,有效扩展了智能操作系统在安全支付领域的应用范围。

附图说明

图1为本发明方法步骤s2的具体流程示意图;

图2为本发明中ipc服务端使用同步技术支持多应用并发请求的流程示意图;

图3为本发明中rpc客户端使用jni技术访问串行总线设备节点的具体流程示意图;

图4为本发明在安全处理器内部实现支付api调用的rpc服务端的具体流程示意图;

图5为本发明通用处理器和安全处理器之间进行双向认证并获得通讯密钥的具体流程示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明通过双处理器架构配合rpc(远程过程调用)和双向认证安全通讯协议,使pos(销售点终端)安全相关的系统调用实际运行于安全处理器内部,而通用处理器端应用程序可以安全和方便地调用支付服务。

本发明提供一种在安卓系统内进行安全支付的方法,至少包括如下步骤:

s1:通过串行总线连接安全处理器及通用处理器;

s2:为安卓系统添加支付服务管理器接口;

s3:为安卓系统添加支付服务及对应的支付权限声明;

s4:安全处理器及通用处理器之间通过串行总线进行双向认证,获得通讯密钥;

s5:为安全处理器添加安全支付接口,安卓支付应用使用所述支付服务管理器接口调用支付服务,支付服务依据所述支付应用权限声明,并使用所述通讯密钥远程交互调用安全处理器安全支付接口,实现安全支付。

首先,系统里所有安全相关的信息只存储于安全处理器内部的敏感数据区,同时,所有支付服务相关的api(应用程序编程接口)调用均运行于安全处理器内部,安全处理器的对外接口实际是支付服务api的rpc调用服务端。在运行于通用处理器的安卓系统中,为系统服务添加支付服务和对应的支付服务权限。支付服务作为系统服务扩展,实际是一个应用层ipc调用的服务端和安全相关api调用的rpc客户端。安全处理器和通用处理器之间通过串行总线连接,只有具备系统权限的安卓端支付服务可以访问串行总线,支付服务通过标准的权限检查方法,限制用户权限的应用访问支付服务api,只有声明了相关支付权限的应用可以通过ipc(进程间通讯)方式间接调用支付api。系统上电后,安全处理器和通用处理器之间进行双向认证并取得通讯des密钥,其后正式通讯过程中的rpc调用数据均使用该通讯密钥加密传送防止敏感数据被窃听和篡改。

通过以上方法,运行在通用处理器上且声明了支付权限的安卓应用可以透明地并行地调用相关支付api,而实际安全相关的api调用发生在安全处理器内部。

本发明所使用的安全处理器必须是通过国际和国内安全认证要求的安全处理器,其具备安全启动和安全固件更新机制,以及防攻击、反攻击、防探测、防监听功能,敏感数据的访问保护和自动擦除功能。安全处理器生产时内置rsa2048公私钥对1,包括第一rsa公钥及第一rsa私钥。

本发明所述的通用处理器具备安全启动功能、可以运行安卓系统,其固件内置rsa2048公私钥对2,包括第二rsa公钥及第二rsa私钥。

通过串行总线连接安全处理器和通用处理器,在通用处理器端安卓系统的linux驱动中设置该总线对应节点用户为sysetm属性为0660,即仅系统用户可访问。

步骤s2中为安卓系统添加支付服务管理器接口,其运行于普通安卓应用线程内,实质为支付服务的ipc客户端,具体流程如图1所示:

s21:通过aidl技术将运行于安卓系统应用线程内的支付服务管理器接口设为ipc客户端;

s22:ipc客户端申请连接安卓系统支付服务管理器接口,并检测是否连接成功,

若是,则执行步骤s23:ipc客户端向支付服务发送安全支付api请求;

反之,则执行步骤s6:显示异常,并终止流程;

s24:ipc客户端获得支付服务解析所述安全支付api请求的反馈应答。

步骤s3中为安卓系统增加支付服务以及对应的支付权限声明。支付服务运行在安卓的systemserver进程内,具备系统权限,其实现包括支付服务的ipc服务端以及安全处理器内部支付api调用的rpc客户端。

具体地,ipc服务端运行于安卓系统的系统进程systemserver内,使用了同步技术支持多应用的并发请求,其具体流程如图2所示:

s31:ipc服务端线程接收安卓系统应用端(即ipc客户端)支付服务连接请求;

s32:ipc服务端从安卓支付应用上下文判断应用端是否声明支付权限,

若是,则执行步骤s33:ipc服务端接收支付服务api调用请求,并进入命令同步块;

反之,则执行步骤s6:显示异常,并终止流程;

s34:ipc服务端向rpc客户端的api命令队列发送api命令请求;

s35:ipc服务端接收api命令队列的调用应答,并退出命令同步块。

而支付api调用的rpc客户端通过串行总线与安全处理器通讯,使用jni技术访问linux操作系统中的串行总线设备节点,其具体流程如图3所示:

s36:rpc客户端检测到api命令队列存在api命令请求,则将api调用请求转换成rpc请求数据包,并使用通讯密钥进行des加密,生成rpc请求加密包;

s37:rpc客户端通过串口向安全处理器的rpc服务端发送rpc请求加密包;

s38:rpc客户端通过串口接收安全处理器的rpc应答加密包,并解析,获得api调用返回数据;

s39:rpc客户端将返回数据发送给支付服务的ipc服务端。

其中,在安全处理器内部实现支付api调用的rpc服务端,具体流程如图4所示:

s371:安全处理器rpc服务端接收rpc客户端发出的rpc请求加密包;

s372:判断rpc请求加密包的数据是否有效,

若是,则执行步骤s373:使用通讯密钥解密rpc请求加密包,获得支付服务api请求;

反之,则返回步骤s371;

s374:在安全处理器内执行支付服务api,获得api调用返回数据;

s375:rpc服务端将api调用返回数据转换为应答包,并使用通讯密钥加密成rpc应答加密包;

s376:rpc服务端向rpc客户端发送所述prc应答加密包。

系统上电后,通用处理器和安全处理器之间进行双向认证并获得通讯密钥,即步骤s4的具体流程如图5所示:

s41:在通用处理器端,通用处理器发送8字节随机数(第一通用随机数)给安全处理器;

s42:在安全处理器端,安全处理器收到通用处理器发送的8字节随机数后,生成8字节随机数(安全随机数),组合得到16字节第一组合数,并使用rsa私钥1(即第一rsa私钥)和rsa2048算法对第一组合数进行加密,然后将加密结果(第一组合数密文)和rsa公钥1(第一rsa公钥)返回给通用处理器;

s43:在通用处理器端,通用处理器将从安全处理器收到的rsa加密数据通过rsa公钥1进行解密,然后判断解密出的16字节随机数(第一组合数)的前8字节随机数与通用处理器之前(步骤s41)生成的8字节随机数(第一通用随机数)是否匹配,如果不匹配则认证失败,系统停止启动并报错,如果匹配将进入s44;

s44:在通用处理器端,通用处理器再生成8字节随机数(第二通用随机数),将收到的安全随机数与第二通用随机数组合得到16字节第二组合数,并使用rsa私钥2(第二rsa私钥)和rsa2048算法对第二组合数进行加密,然后将加密结果(第二组合数密文)和rsa公钥2(第二rsa公钥)发送给安全处理器;

s45:在安全处理器端,安全处理器将从通用处理器收到的rsa加密数据通过rsa公钥2解密,并比较解密结果(第二组合数)的前8字节与安全处理器之前(步骤s42)生成的8字节随机数(安全随机数)是否匹配。如果结果不匹配则认证失败,安全处理器系统停止启动并报错,如果结果匹配将进入s46;

s46:显示认证成功,安全处理器端和通用处理器端均将安全处理器生成的8字节随机数加上通用处理器第二次生成的8字节随机数(即步骤s44第二组合数)作为之后安全处理器与通用处理器rpc通讯数据的加解密通讯密钥,确保通讯过程的安全性;

s47:其后通用处理器和安全处理器之间的通讯采用该通讯密钥进行3des加密。

综上所述,本发明提供了一种安全而方便的方法,保证了运行于安全处理器内的pos终端的支付api能被通用的安卓应用透明而可靠地调用,且支持多应用并发调用,有效扩展了智能操作系统在安全支付领域的应用范围。

对应地,本发明还提供一种在安卓系统内进行安全支付的系统,包括通过串行总线连接的安全处理器及通用处理器,其中所述通用处理器的安卓系统设有支付服务管理器接口、支付服务及对应的支付权限申明,安全处理器及通用处理器之间通过串行总线进行双向认证,获得通讯密钥,且所述安全处理器设有安全支付接口,安卓支付应用使用所述支付服务管理器接口调用支付服务,支付服务依据所述支付应用权限声明,使用所述通讯密钥远程交互调用安全处理器安全支付接口,实现安全支付。

其中,所述安全处理器内置安全信息及第一rsa公私钥对,安全处理器设为支付服务api的rpc服务端;所述通用处理器运行安卓系统,并内置第二rsa公私钥对,且支付服务管理器接口设为支付服务的ipc客户端,支付服务设为ipc服务端及rpc客户端。

其中,根据所述支付服务管理器接口、支付服务及其权限声明,通用处理器发送8字节的第一通用随机数给安全处理器;

安全处理器生成8字节的安全随机数,然后与所述第一通用随机数组合生成16字节的第一组合数,并使用第一rsa私钥对第一组合数进行加密,生成第一组合数密文,并将第一组合数密文和第一rsa公钥发送给通用处理器;

通用处理器根据第一rsa公钥,对第一组合数密文进行解密,得到16字节第一组合数,并判断第一组合数的前8字节数是否与第一通用随机数匹配,

若匹配,则通用处理器生成8字节第二通用随机数,与所述安全随机数组合生成16字节的第二组合数,并使用第二rsa私钥对第二组合数进行加密,生成第二组合数密文,并将第二组合数密文和第二rsa公钥发送给安全处理器;

安全处理器根据第二rsa公钥,对第二组合数密文进行解密,得到16字节的第二组合数,并判断第二组合数的前8字节数是否与安全随机数匹配,

若匹配,则安全处理器和通用处理器均将第二组合数设为rpc通讯数据的加密/解密密钥,以作为安全支付通讯密钥。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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