一种二维码安全移动支付方法及系统
技术领域
本发明属于信息安全技术领域,尤其涉及一种二维码安全移动支付方法及系统。
背景技术
移动支付允许用户使用移动终端对所消费的商品或服务进行账务支付的一种服务方式,具有方便、实用、快捷的特点,是当前非常流行和比较具有潜力的支付方式之一。
目前,常见的移动支付有短信支付、电话支付、网银支付三类。(1)短信支付将用户手机SIM卡与用户本人的银行卡账号建立一种一一对应的关系,用户通过发送短信的方式在系统短信指令的引导下完成交易支付请求,同时手机短信验证有天然缺陷,在传播过程中被恶意攻击者截获、篡改或者重放的危险,因此通常需要与密码验证结合使用,被称为“双因子验证”,但密码验证算法密钥量大,计算复杂,验证时间较长的问题。(2)电话支付是指消费者使用电话、手机或其他类似电话的终端设备,通过银行系统就能从个人银行账户里直接完成付款的方式,具有成本低、业务扩展性强等特点。但需要消费者输入银行卡号、密码、身份证号等个人敏感信息,存在巨大的泄密风险。随着专业的窃听技术发展,就可以轻易盗取信息,显然,电话支付的安全性问题,已经成为其当前发展过程中的瓶颈问题。(3)网银支付就当前最为成熟的在线支付功能之一,用户银行卡需事先开通网银支付功能,且在支付时完全是在银行网银页面输入银行卡信息并验证支付密码,具有稳定易用,安全可靠的特点。但需要用户额外携带U盾、电子口令卡等动态密钥存储设备,且支付方法操作流程复杂,导致用户体验不佳,且不适用于计算能力较低的移动终端,因而应用范围受限。
随着智能手机的快速发展,智能手机的普及催生了一个新的需求,即利用手机作为条码读取设备,带摄像头的手机具有二维条码阅读软件,就可以通过扫码解读其中隐含的信息。既可以是专业的二维码软件如“我查查”等,也可以是一般软件如“淘宝”、“微信”和“UC浏览器”等集成的二维码插件。目前智能手机中的二维条码阅读软件已经非常成熟,这进一步推动了二维码应用在我国的普及,基于二维码的支付方式也成为一种新兴受欢迎移动支付方式。二维码具有成本低、抗损性强、储存量大等优点,具有对移动终端计算能力要求低,操作简单、方便的特点,已广泛应用于淘宝、支付宝和微信等应用平台,以支付宝为例,用户通过支付宝交易平台向商户发出支付请求后,支付宝给用户发送一个包含支付信息的二维码,用户通过扫描此二维码就可以完成支付。然而,二维码在实际应用时同样存在诸如恶意链接植入、手机病毒、钓鱼网站传播等安全隐患,导致用户在进行支付时无法分辨其真实性,致使个人隐私泄露,甚至造成重大经济财产损失,如何提高二维码移动支付的安全性成为亟待解决的技术问题。
发明内容
本发明针对所述问题,公开了一种二维码安全移动支付方法及系统,利用可视密码验证二维码的真实性,一方面二维码的解码纠错和机器识别特性恰好符合可视密码的“视觉”恢复特性;另一方面,可视密码的秘密共享特性也可以为二维码提供灵活多变的信息管理机制。本发明结合扩展多秘密可视密码,以黑白二值二维码秘密图像为主体,设计了一种安全移动支付方法,利用机器的“视觉”代替人的“视觉”,完成秘密图像的识别。以该方法为基础,实现了基于可视密码和二维码的安全移动支付系统。本发明可以有效鉴别出伪造二维码,达到“一次一密”的安全特性,可以抵抗伪造、穷举和重放等多种恶意攻击,显著增强了移动支付的安全性。同时操作简单,使用灵活方便,计算复杂度为O(1),对移动终端的计算能力要求低。
本发明的技术方案为:
一种二维码安全移动支付方法,其步骤包括:
1)支付平台根据用户的基本信息生成该用户的验证共享份UVS并发送给该用户,验证共享份UVS是包含该用户的用户帐户基本信息的二维码;
2)当该用户选择好商品需要支付时发送支付请求给该支付平台,该支付平台根据该支付请求生成该用户第f次支付时的秘密信息SPIf;商户依据该用户选取的购物信息生成支付订单信息OPIf发送到该支付平台,该支付平台根据该支付订单信息OPIf和该用户的验证共享份UVS生成支付共享份PSf并将其发送给该用户的客户端;支付共享份PSf是该用户第f次订单的支付公开信息的二维码,SPIf为用户第f次支付时的秘密信息二维码,包含支付链接信息;OPIf为用户第f次支付时订单的公开信息二维码;
3)该用户的客户端通过对支付共享份PSf扫码,根据得到的该支付订单的公开信息核实支付信息是否正确,如果正确,则将自己的验证共享份UVS和接收的支付共享份PSf叠加并扫描,得到支付链接SPIf,通过该支付链接SPIf完成支付。
进一步的,生成验证共享份UVS的方法为:
21)支付平台根据户基本信息生成二维码图像UI,尺寸为X×X;
22)支付平台按行列顺序对二维码图像UI逐像素点进行加密;令i为正在加密的行号,初始化为1,1≤i≤X;令j为正在加密的列号,初始化为1,1≤j≤X;
23)令(UVS(2i-1,2j-1),UVS(2i-1,2j))=(UI(i,j),1),UI(i,j)为二维码图像UI中位置(i,j)上的像素值,UVS(2i-1,2j-1)为验证共享份UVS中位置(2i-1,2j-1)上的像素值;以相等的概率令(UVS(2i,2j-1),UVS(2i,2j))等于(0,1)或(1,0);
24)令j=j+1,若j≤X,则重复步骤23);否则令i=i+1,若i≤X,则将j初始化为1,重复步骤23),否则输出验证共享份UVS。
进一步的,生成支付共享份PSf的方法为:
31)支付平台根据商户提交的第f次支付时的公开信息生成二维码图像OPIf,尺寸为X×X;
32)支付平台生成二维码图像SPIf,尺寸为X×X;
33)支付平台按行列顺序逐像素点并行对二维码图像OPIf和SPIf进行加密;令i为正在加密的行号,初始化为1,1≤i≤X;令j为正在加密的列号,初始化为1,1≤j≤X;
34)令(PS
f(2i-1,2j-1),PS
f(2i-1,2j))=(OPI
f(i,j),1),PS
f(2i-1,2j-1)为支付
共享份中位置(2i-1,2j-1)上的像素值,OPI
f(i,j)为第f次支付公开信息二维码图像OPI
f中
位置(i,j)上的像素值;
表示对
支付共享份中(2i,2j-1)位置上的像素值取反;
35)令j=j+1,若j≤X,则重复步骤34);否则令i=i+1,若i≤X,则将j初始化为1,重复步骤34),否则输出支付共享份PSf。
进一步的,支付平台通过安全信道将该用户的验证共享份UVS发送给该用户。
进一步的,当该用户选择好商品需要支付时,该用户的客户端读取验证共享份UVS得到对应帐户的基本信息,选取一帐户发出支付请求给该支付平台。
一种二维码安全移动支付系统,其特征在于,包括支付平台和手机客户端;其中,支付平台包括用户管理中心模块、数据中心模块、共享份生成模块和支付响应模块;
用户管理中心模块,用户管理注册用户的帐户信息功能;
数据中心模块,用于实现服务器与商户端口以及服务器与用户端的数据交互功能,根据用户的支付请求生成该用户第f次支付时的秘密信息SPIf;接收商户依据用户选取的购物信息生成的支付订单OPIf;OPIf为用户第f次支付时订单的公开信息二维码;
共享份生成模块,用于根据二维码UI生成验证共享份UVS、根据支付订单OPIf和用户的验证共享份UVS生成支付共享份PSf;其中,支付共享份PSf是用户第f次订单的支付公开信息的二维码,UI为包含用户账户基本信息的二维码;SPIf为用户第f次支付时的秘密信息二维码;
支付响应模块,用于监听客户端的支付请求功能;
手机客户端,包括订单管理模块、接收保存模块、叠加操作模块、支付申请模块、二维码扫描模块和注销更新模块。
订单管理模块,用于实现订单查询、删除和添加功能;
接收保存模块,用于将支付平台分配的验证共享份UVS保存在指定路径;
叠加操作模块,用于根据验证共享份UVS和支付共享份PSf生成第f次支付时支付链接秘密信息的二维码SPIf;
支付申请模块,向支付平台发起支付申请功能;
二维码扫描模块,扫描二维码图像并读取二维码信息的功能;
注销更新模块,用户注销验证共享份UVS或更换验证共享份UVS。
根据以上目的,所述安全移动支付方法的基本原理如附图1所示。
所述方法涉及支付平台、用户和商户三方参与,UI为包含用户基本信息的二维码,包括账户名和账号等信息;SPIf为用户第f次支付时的秘密信息二维码,主要包含支付链接信息;OPIf为用户第f次支付时订单的公开信息二维码,包括订单流水号、订单生成时间和支付金额等信息。利用设计的扩展多秘密可视密码,生成验证共享份UVS和支付共享份PSf。
验证共享份UVS是呈现出用户帐户基本信息的二维码,支付共享份PSf是呈现用户第f次订单的支付公开信息的二维码,叠加验证共享份UVS和支付共享份PSf是呈现用户第f次支付时支付链接秘密信息的二维码SPIf。扩展多秘密可视密码的有效性保证了验证和支付共享份中公开信息图像的对比性、共享份叠加后隐私信息图像的对比性、禁止子集的安全性。
安全移动支付方法包括步骤:
步骤1支付平台首先通过线下安全信道给用户发送一个验证共享份UVS,用户通过扫码验证共享份二维码可以核实自己的帐户信息,同时区分名下多个帐户的不同验证共享份,方法如附图2(a);
步骤2当用户选择好商品需要支付时,商户依据用户购物信息生成支付订单发送到支付平台,支付平台根据该支付订单和该用户的验证共享份UVS生成支付共享份二维码,通过公开信道发送给用户,用户通过扫码可以得到关于订单的公开信息以核实支付信息是否正确,方法如附图2(b);
步骤3用户将自己的验证共享份和接收的支付共享份叠加并扫描,即可得到支付链接完成支付,方法如图附2(c)。
在所述方法中,只有当用户接收到的二维码为支付平台发出的唯一支付共享份二维码时,用户端才能通过叠加扫描完成支付,若用户接收的是恶意二维码,则叠加后扫描不出任何内容,从而实现对支付二维码安全性的验证。
本发明的另一目的在于提供一种与所述方法对应的安全移动支付系统。
下面分别从系统结构和功能模块组成2方面进行介绍。
(1)系统结构
该系统采用客户服务器(C/S)模式,结构如附图3,支付平台作为服务器端,可为多个手机客户端同时提供服务。
(2)系统功能模块
a)服务器端功能模块,如附图4
●用户管理中心模块,管理注册用户的帐户信息功能;
●数据中心模块,用于实现服务器与商户端口以及服务器与用户端的数据交互功能;
●共享份生成模块,利用扩展多秘密可视密码生成验证共享份UVS和支付共享份PSf功能;
●支付响应模块,监听客户端的支付请求功能。
b)手机客户端功能模块,如附图5
●订单管理模块,用于实现订单查询、删除和添加功能;
●接收保存模块,将服务器分配的共享份按bmp格式保存在指定路径下的功能;
●叠加操作模块,读取验证共享份UVS和支付共享份PSf并进行异或运算的功能,得到第f次支付时支付链接秘密信息的二维码;
●支付申请模块,向服务器发起支付申请功能;
●二维码扫描模块,扫描二维码图像并读取二维码信息的功能;
●注销更新模块,注销验证共享份和更换验证共享份的功能。
本发明的技术效果在于:
本发明利用可视密码生成验证二维码对接收到的支付二维码进行真实性验证,利用可视密码“一次一密”的特性抵御伪造攻击,并且通过设置支付失败次数上限抵御穷举攻击,进一步利用支付共享份中订单的生成时间作为时间戳来抵御重放攻击,显著增强了二维码支付的安全性。相比原方法,验证过程仅增加一次共享份叠加操作,该操作的算法复杂度为O(1),同时利用机器“视觉”代替人眼“视觉”完成秘密识别,确保了系统简单、方便、安全、实用,在网银购物、购票系统、快的打车等方面都有着广阔的应用前景。
附图说明
图1为共享份生成原理图;
图2为安全移动支付流程图;
(a)用户账户的基本信息恢复过程,(b)支付订单的公开信息OPIf恢复过程,(c)支付链接的秘密信息SPIf恢复过程;
图3为安全移动支付系统架构图;
图4为支付平台服务器端功能模块图;
图5为手机客户端功能模块图;
图6为验证共享份生成流程图;
图7为共享份像素块结构图;
图8为支付共享份生成流程图。
具体实施方式
下面介绍详细过程,首先给出验证共享份、支付共享份的生成方法,支付共享份的验证方法。然后结合实例,进一步描述本发明的具体实施步骤。
(1)生成验证共享份UVS,方法如附图6。
步骤e)用于加密用户基本信息像素点,步骤f)利用随机数覆盖与支付信息相关的秘密信息。
a)用户管理中心模块将用户基本信息发送至二维码生成模块,输出二维码图像UI,尺寸为X×X。
b)共享份生成模块按行列顺序对二维码图像UI逐像素点进行加密;
c)令i=1,i为正在加密的行号,1≤i≤X;
d)令j=1,j为正在加密的列号,1≤j≤X;
e)令(UVS(2i-1,2j-1),UVS(2i-1,2j))=(UI(i,j),1),UI(i,j)为用户基本信息二维码图像UI中位置(i,j)上的像素值,UVS(2i-1,2j-1)为对应验证共享份中位置(2i-1,2j-1)上的像素值,原秘密UI图像中的一个像素点对应于共享份UVS中由四个子像素点构成的一个像素块,像素位置分布如附图7;
f)以相等的概率令(UVS(2i,2j-1),UVS(2i,2j))等于(0,1)或(1,0);
g)令j=j+1,若j≤X,则转至e),即处理第i行上第j+1列位置上的像素;否则转至h);
h)令i=i+1,若i≤X,则转至d),即处理下一行(第i+1行)第1个元素,即j初始化为1;否则转至i);
i)输出验证共享份UVS。
(2)生成支付共享份PSf,方法如附图8。
步骤f)用于加密支付公开信息二维码OPIf,步骤g)用于加密支付秘密信息二维码SPIf。
a)数据中心模块将商户提交的第f次支付时的公开信息发送到二维码生成模块,生成二维码图像OPIf,尺寸为X×X;
b)支付平台生成第f次支付时的秘密信息,调用二维码生成模块生成二维码图像SPIf,尺寸为X×X;
c)共享份生成模块按行列顺序逐像素点并行对OPIf和SPIf进行加密;
d)令i=1,i表示正在加密的行号,1≤i≤X;
e)令j=1,j表示正在加密的列号,1≤j≤X;
f)令(PSf(2i-1,2j-1),PSf(2i-1,2j))=(OPIf(i,j),1),PSf(2i-1,2j-1)为支付共享份中位置(2i-1,2j-1)上的像素值,OPIf(i,j)为第f次支付公开信息二维码图像OPIf中位置(i,j)上的像素值;
g)按下列公式进行变换:
表示对支付共享份中(2i,2j-1)位置上的像素值取反;
h)令j=j+1,若j≤X,则转至f),即处理第i行第j+1列位置上的像素;否则转至i);
i)令i=i+1,若i≤X,则转至e),将j初始化为1,即处理第i+1行第1个像素;否则,转至j)算法结束;
j)输出支付共享份PSf。
(3)支付共享份验证
叠加操作模块对验证共享份UVS和支付共享份PS
f进行异或叠加,按行列顺序将对应位置上的像素值依次进行异或
运算,运算规则:
在介绍完所述验证共享份和支付共享份生成,共享份叠加方法后,下面结合实例说明本发明的实施流程。
实例:用户张三通过某二维码支付平台向商户支付购买商品的费用。
1.用户张三利用线下安全信道将用户基本信息UI,包括账户用户名和账号等(账户名:张三,账号:622202170****413,编号:10001),发送给支付平台;
2.支付平台通过管理中心模块管理用户的基本信息UI,二维码生成模块将用户基本信息植入二维码图像;然后共享份生成模块生成n个带有编号的验证二维码共享份UVS,选取其中一个作为主验证共享份,其余为备用验证共享份;随后数据中心模块利用线下安全信道将验证共享份发送给用户;手机客户端接收保存模块将收到的共享份保存到指定路径下。
3.当用户注册多个支付帐户时,重复调用共享份生成模块,分别为每个支付帐户生成多个验证共享份;
4.当用户选好商品后,商户根据用户的购物信息生成相应的订单,该信息即为支付公开信息OPIf,包括订单流水号、订单生成时间和支付金额等(订单流水号:71208738,订单生成时间:2014.1.1,支付金额:12.00元);
5.商户将订单信息OPIf(订单流水号:71208738,订单生成时间:2014.1.1,支付金额:12.00元)发送给支付平台的数据中心模块。
6.手机客户端开启摄像头功能,执行扫码验证模块,读取验证共享份UVS,可以得到对应帐户的基本信息(账户名:张三,账号:622202170****413,编号:10001),便于用户选取某个帐户进行支付;
7.用户调用支付申请模块选取一个帐户提出支付申请,支付响应模块监听到支付请求后,调用二维码生成模块生成第f次支付时的秘密信息SPIf,即支付链接(http://www.zhifubao11.com),并调用共享份生成模块,结合支付公开信息OPIf和验证共享份UVS生成支付共享份PSf,数据中心模块将支付共享份PSf发送给用户;
8.用户调用扫码验证模块扫描支付共享份PSf,如果得到与订单相关的支付公开信息OPIf(订单流水号:71208738,订单生成时间:2014.1.1,支付金额:12.00元),则核实支付信息为正确;
9.客户端叠加操作模块将验证共享份UVS与支付共享份PSf叠加后得到USV+PSf,扫码验证模块读取支付秘密信息SPIf,即支付链接地址(http://www.zhifubao11.com),通过链接完成付款;
10.若用户接收的是恶意二维码,则叠加后扫描不出任何内容,此时用户调用支付申请模块重新向支付平台提出支付请求;
11.若重复申请次数达到t次仍不成功时,注销更新模块注销当前使用的验证共享份,并启用备用验证共享份;
12.用户调用支付申请模块,利用备用验证共享份继续向支付平台提出支付请求;
13.支付共享份验证通过后,支付平台将钱款转至商户,完成此次支付活动。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。