一种在Android智能平台收银机上实现安全PIN输入的系统和方法

文档序号:1406798 发布日期:2020-03-06 浏览:28次 >En<

阅读说明:本技术 一种在Android智能平台收银机上实现安全PIN输入的系统和方法 (System and method for realizing safe PIN input on cash register with Android intelligent platform ) 是由 王震懿 于 2019-11-28 设计创作,主要内容包括:本发明涉及POS机安全系统技术领域,具体涉及一种在Android智能平台收银机上实现安全PIN输入的系统和方法;其系统包括密码键盘、读卡模块与安卓端应用,其中密码键盘端用于获取用户的PIN数据;读卡模块用于获取账号数据;交易密钥下载在读卡模块端;安卓应用端用于8583交易报文的组包和解析。(The invention relates to the technical field of POS machine safety systems, in particular to a system and a method for realizing safe PIN input on an Android intelligent platform cash register; the system comprises a password keyboard, a card reading module and an android application, wherein the password keyboard is used for acquiring PIN data of a user; the card reading module is used for acquiring account data; the transaction key is downloaded at the card reading module end; and the android application end is used for packaging and analyzing the 8583 transaction message.)

一种在Android智能平台收银机上实现安全PIN输入的系统和 方法

技术领域

本发明涉及POS机安全系统技术领域,具体涉及一种在Android智能平台收银机上实现安全PIN输入的系统和方法。

背景技术

基于Android系统的智能台式收银机是目前市场上新兴的一种产品形态,相比于传统封闭系统的收银机,Android平台更加开发,相应的交易风险也更高,收银机本身无法存储和处理交易密钥、银行卡信息、用户PIN等敏感数据,在银行卡交易场景中,需要通过外接或内置的安全读卡模块来处理用户的银行卡数据,并通过外接密码键盘来处理用户输入的PIN数据。

目前市场上的智能台式收银机系统中读卡模块和密码键盘是两个相互独立的功能模块,硬件上并不直接连接,而是分别连接或嵌入在收银机主机上,二者通过主机端进行数据转发实现通讯。由于密码键盘不一定集成有卡处理功能,因而需要由读卡模块将卡片主账号等信息通过主机端传递给密码键盘,根据行业的安全设计要求,需要对这部分敏感信息进行保护,不能直接将明文暴露在基于Android系统的主机端。

另一方面,银行卡交易时,银行后台下发的交易密钥主要包括加密卡片数据用的数据加密密钥(TDK)和加密用户PIN的PIN加密密钥(TPK)以及计算8583交易报文MAC的MAC加密密钥(TAK),由于PIN输入功能在密码键盘端输入,现有的设计上多将三类交易密码分别下装到读卡模块和密码键盘中,这种设计需要保证银行后台,读卡模块,密码键盘三者的交易密钥一致,而密码键盘作为一个外接设备,并非标准配置,多数时候用户还会进行拔插,这就造成了交易密钥数据同步的复杂性。

本申请设计了一种在台式收银机的读卡器模块和密码键盘间进行双向认证,构建两者间的安全加密通道的方法,满足用户敏感数据的保护要求,并设计了一种新的用户PIN转加密方案,使得交易密钥只需要保存在安全读卡模块端,无需下发给密码键盘,这样只需要保证银行后台和读卡模块两者的交易密钥一致即可完成交易,简化了整个系统中交易密钥管理的复杂性。

发明内容

本发明提供了一种在Android智能平台收银机上实现安全PIN输入的系统和方法,可以有效解决上述问题。

为实现以上目的,本发明通过以下技术方案予以实现:

一种在Android智能平台收银机上实现安全PIN输入的系统,包括密码键盘、读卡模块与安卓端应用,其中密码键盘端用于获取用户的PIN数据;读卡模块用于获取账号数据;交易密钥下载在读卡模块端;安卓应用端用于8583交易报文的组包和解析。

进一步的,密码键盘端仅存放用于保护敏感数据的临时会话密钥。

本发明还进一步提供一种在Android智能平台收银机上实现安全PIN输入的方法,包括以下步骤:

S1:系统初始化时由主机端的安卓应用来触发读卡模块与密码键盘间的双向认证,双向认证成功后,密码键盘与读卡模块间协商出相同的终端会话主密钥(SMK),用于后续用户PIN的转加密;

S2:读卡模块与密码键盘根据读卡信息与用户输入的PIN信息,利用读卡模块每次随机生成的PAN和一次一密的随机的PIN保护密钥(TSK),对用户输入的PIN进行转加密,生成实际的交易密文,经安卓应用打包发送给银行交易后台。

进一步的,S1中读卡模块与密码键盘间双向认证的流程步骤如下:

S1.1设备出厂时在读卡模块和密码键盘注入相同的用于终端身份认证的认证密钥(AUK),与终端信息对应,一机一密;

S1.2设备出厂时在读卡模块和密码键盘注入相同的用于解密安装会话密钥主密钥SMK的终端密钥加密密钥(TEK),与终端信息对应,一机一密;

S1.3主机端安卓应用调用读卡模块的认证初始化接口,读卡模块生成认证随机数RN1并通过安卓应用转发给密码键盘;

S1.4密码键盘使用AUK加密RN1获得RN1密文;

S1.5密码键盘生成随机数RN2,并通过安卓应用将RN1密文和RN2转发给读卡模块;

S1.6读卡模块使用AUK解密RN1,比对RN1明文是否一致;

S1.7读卡模块使用AUK加密RN2,获得RN2密文;

S1.8读卡模块生成随机数RN3,并通过安卓应用将RN2密文和RN3转发给密码键盘;

S1.9密码键盘使用AUK解密RN2,比对RN2明文是否一致;

S1.10密码键盘使用AUK加密RN3;

S1.11密码键盘生成随机的SMK,并使用TEK加密SMK明文,获得SMK密文;

S1.12密码键盘将RN3密文,SMK密文通过安卓应用转发至读卡模块;

S1.13读卡模块使用AUK解密RN3,比对RN3明文是否一致;

S1.14读卡模块使用TEK解密SMK密文,得到SMK明文;

TEK在认证通过后用于安装SMK;SMK作为会话密钥主密钥在终端退出联机交易模式后失效,重启交易模式需要重新握手协商会话密钥,流程中任一步失败,则回退至最初状态。

进一步的,S2中用户PIN转加密流程步骤如下:

S2.1主机端安卓应用调用读卡模块随机主账号生成接口,读卡模块生成随机的主账号PAN;

S2.2安卓应用将随机PAN转发给密码键盘;

S2.3密码键盘生成随机的PIN保护密钥(TSK);

S2.4用户在密码键盘端输入PIN,密码键盘使用TSK和随机PAN加密PIN得到密文PinBlock_Enc1;

S2.5密码键盘使用SMK加密TSK得到TSK密文;

S2.6密码键盘将PinBock_Enc1和TSK密文通过安卓应用转发至读卡模块;

S2.7读卡模块使用SMK解密TSK密文,得到TSK明文;

S2.8读卡模块使用TSK明文和随机PAN解密PinBlock_Enc1,还原出用户输入的明文PIN;

S2.9读卡模块使用终端交易密钥(TPK)和用户的实际PAN加密明文PIN得到用于实际交易的密文PinBlock_Enc2;

S2.10读卡模块将PinBlock_Enc2返回给安卓应用,由安卓应用打包入8583交易报文发送给银行交易后台。

进一步的,临时会话密钥TSK每次转加密时重新生成,一次一密。

与现有技术相比,本发明的有益效果是:

本发明设计了一种基于对称密钥的在读卡模块与密码键盘端建立安全数据通道的方法,相比于常见的非对称密钥认证方式,基于对称密钥的认证速度更快,对CPU的运算能力的要求也更低,更符合密码键盘和低成本安全模块的特点。

另,本发明设计的一次一密的PIN转加密方案,满足PCI认证的安全要求,并使得交易密钥只需要保存在安全读卡模块端,无需下发给密码键盘,简化了整个系统中交易密钥管理的复杂性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中系统的逻辑功能框图;

图2为双向认证的流程图;

图3为用户PIN的转加密流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1-3所示,本发明实施例提供一种在Android智能平台收银机上实现安全PIN输入的系统,包括密码键盘、读卡模块与安卓端应用,其中密码键盘端用于获取用户的PIN数据;读卡模块用于获取IC\磁卡\非接卡等账号数据;交易密钥下载在读卡模块端;密码键盘端仅存放用于保护敏感数据的临时会话密钥,安卓应用端用于8583交易报文的组包和解析。

本发明还进一步提供一种在Android智能平台收银机上实现安全PIN输入的方法,包括以下步骤:

S1:系统初始化时由主机端的安卓应用来触发读卡模块与密码键盘间的双向认证,双向认证成功后,密码键盘与读卡模块间协商出相同的终端会话主密钥(SMK),用于后续用户PIN的转加密;

S2:读卡模块与密码键盘根据读卡信息与用户输入的PIN信息,利用读卡模块每次随机生成的PAN和一次一密的随机的PIN保护密钥(TSK),对用户输入的PIN进行转加密,生成实际的交易密文,经安卓应用打包发送给银行交易后台。

进一步的,S1中读卡模块与密码键盘间双向认证的流程步骤如下:

S1.1设备出厂时在读卡模块和密码键盘注入相同的用于终端身份认证的认证密钥(AUK),与终端信息对应,一机一密;

S1.2设备出厂时在读卡模块和密码键盘注入相同的用于解密安装会话密钥主密钥SMK的终端密钥加密密钥(TEK),与终端信息对应,一机一密;

S1.3主机端安卓应用调用读卡模块的认证初始化接口,读卡模块生成认证随机数RN1并通过安卓应用转发给密码键盘;

S1.4密码键盘使用AUK加密RN1获得RN1密文;

S1.5密码键盘生成随机数RN2,并通过安卓应用将RN1密文和RN2转发给读卡模块;

S1.6读卡模块使用AUK解密RN1,比对RN1明文是否一致;

S1.7读卡模块使用AUK加密RN2,获得RN2密文;

S1.8读卡模块生成随机数RN3,并通过安卓应用将RN2密文和RN3转发给密码键盘;

S1.9密码键盘使用AUK解密RN2,比对RN2明文是否一致;

S1.10密码键盘使用AUK加密RN3;

S1.11密码键盘生成随机的SMK,并使用TEK加密SMK明文,获得SMK密文;

S1.12密码键盘将RN3密文,SMK密文通过安卓应用转发至读卡模块;

S1.13读卡模块使用AUK解密RN3,比对RN3明文是否一致;

S1.14读卡模块使用TEK解密SMK密文,得到SMK明文;

TEK在认证通过后用于安装SMK;SMK作为会话密钥主密钥在终端退出联机交易模式后失效,重启交易模式需要重新握手协商会话密钥,流程中任一步失败,则回退至最初状态。

流程中所用认证随机数由AUK加密,每一步数据交互均带有认证随机数,以达到防重放攻击的目的。

进一步的,S2中用户PIN转加密流程步骤如下:

S2.1主机端安卓应用调用读卡模块随机主账号生成接口,读卡模块生成随机的主账号PAN;

S2.2安卓应用将随机PAN转发给密码键盘;

S2.3密码键盘生成随机的PIN保护密钥(TSK);

S2.4用户在密码键盘端输入PIN,密码键盘使用TSK和随机PAN加密PIN得到密文PinBlock_Enc1;

S2.5密码键盘使用SMK加密TSK得到TSK密文;

S2.6密码键盘将PinBock_Enc1和TSK密文通过安卓应用转发至读卡模块;

S2.7读卡模块使用SMK解密TSK密文,得到TSK明文;

S2.8读卡模块使用TSK明文和随机PAN解密PinBlock_Enc1,还原出用户输入的明文PIN;

S2.9读卡模块使用终端交易密钥(TPK)和用户的实际PAN加密明文PIN得到用于实际交易的密文PinBlock_Enc2;

S2.10读卡模块将PinBlock_Enc2返回给安卓应用,由安卓应用打包入8583交易报文发送给银行交易后台。

上述步骤中,临时会话密钥TSK每次转加密时重新生成,一次一密。

用于生成PinBlock_Enc1的随机PAN由读卡模块生成,从而避免重放攻击。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种共享按摩枪终端装置及其交互方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!