发明内容
有鉴于此,本发明创造;旨在克服上述现有技术中存在的缺陷,提出一种移动支付中防止二维码盗刷的方法。
为达到上述目的,本发明创造的技术方案是这样实现的:
一种移动支付中防止二维码盗刷的方法,包括:
S1、对手机App消费二维码进行数据签名和加密;
S2、消费时,手机App进行消费二维码的动态发码;手机App消费二维码含有客户识别码UID、发码时间CreateTime;
S3、智能扫码终端进行消费二维码的动态识别,并对消费二维码进行解密和验签;通过验证两个消费二维码发码时间CreateTime的连续性来防止二维码盗刷;
S4、验证通过后,智能扫码终端停止扫描,对得到的消费二维码进行时间合理性检查;通过计算最后一个消费二维码发码时间与智能终端当前时间的差值是否在预设差值InteTime范围内,来判断此顾客消费是否真实有效;
S5、若最后一个消费二维码发码时间与智能终端当前时间的差值在预设差值InteTime设范围内,则认定此顾客为真实消费,将进行正常消费解析,进入后续消费流程,否则判定消费失败。
进一步的,所述步骤S1中消费二维码的加密方法如下:
S11、对二维码原始数据RawData进行MD5或者SHA1散列得到数据签名SignData;
S12、对原始数据RawData和数据签名SignData进行3DES或者RSA加密得到密文的消费二维码。
进一步的,所述步骤S2中消费二维码动态发码的具体方法如下:
S21、将发码时间CreateTime精确到毫秒级,毫秒有效位为3位;
S22、顾客打开App后,以几百毫秒的时间间隔不断生成消费二维码;
S23、产生不同的消费二维码发码时间CreateTime、以及相同的生成间隔时间IntervalTime。
进一步的,所述步骤S3中消费二维码动态识别的具体方法如下:
S31、智能扫码终端不断扫描手机App;
S32、当发现两个连续消费二维码中具有唯一相同客户条件,且两个消费二维码中发码时间CreateTime不相同,发码时间CreateTime的差值与生成间隔时间IntervalTime之间存在预设阈值的关系时,初步认定此顾客为真实消费,进行下一步时间合理性检查。
进一步的,所述步骤S32中,所述预设阈值关系为发码时间的差值等于生成间隔时间Intervaltime的整数倍。
进一步的,所述步骤S32中,所述预设阈值关系为发码时间的差值小于生成间隔时间Intervaltime的1.5倍、2倍或多倍。
相对于现有技术,本发明创造具有以下优势:
本发明创造的有益效果为:通过手机App动态发码,智能终端动态识别,在确定是唯一相同客户条件后,通过判断两个连续二维码的时间差值来确定不是拷屏或者盗屏,防止二维码静态作假,大大提高了消费二维码的安全性;并且通过判断消费二维码和智能扫码终端时间是否在预设范围内,来对消费二维码的安全性进行二次判定,进一步降低二维码盗录作假通过的可能性,通过双重判定,进一步提高了这种方法验证的准确性;通过使用MD5、SHA1、SHA256等消息摘要算法,3DES、RSA、SM2等密钥算法保证原始数据的安全,也极大的提高了移动支付安全性。
本发明创造使用二维码时间差及数据安全加解密,来判断真伪及有效性判断,因此对手机或者发码后台时钟及智能扫码终端时钟是否同步要求不高;并且本发明创造改变了离线发码和在线发码的场景模式,彻底改变二维码消费对网络的过渡依赖,适应各种网络环境,通过采用本方法可以彻底解决移动支付中二维码盗刷的问题,将对手机移动支付模式及信息安全产生重大且深远影响。
具体实施方式
需要说明的是,在不冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。
在本发明创造的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明创造的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。
下面将参考附图并结合实施例来详细说明本发明创造。
一种移动支付中防止二维码盗刷的方法,如图1所示,包括:
S1、对手机App消费二维码进行数据签名和加密;
S2、消费时,手机App进行消费二维码的动态发码;手机App消费二维码含有客户识别码UID、发码时间CreateTime;
S3、智能扫码终端进行消费二维码的动态识别,并对消费二维码进行解密和验签;通过验证两个消费二维码发码时间CreateTime的连续性来防止二维码盗刷;
S4、验证通过后,智能扫码终端停止扫描,对得到的消费二维码进行时间合理性检查;通过计算最后一个消费二维码发码时间与智能终端当前时间的差值是否在预设差值InteTime范围内,来判断此顾客消费是否真实有效;具体的,操作人员可根据实际消费经验预设一个任一手机App时间与智能扫码终端时间的可能差值InteTime;
S5、若最后一个消费二维码发码时间与智能终端当前时间的差值在预设差值InteTime设范围内,则认定此顾客为真实消费,将进行正常消费解析,进入后续消费流程,否则判定消费失败。
所述步骤S1中消费二维码的加密方法如下:
S11、对二维码原始数据RawData进行MD5或者SHA1散列得到数据签名SignData;
S12、对原始数据RawData和数据签名SignData进行3DES或者RSA加密得到密文的消费二维码。
所述步骤S2中消费二维码动态发码的具体方法如下:
S21、发码时间精确到毫秒级,有效位3位;S22、顾客打开App后,以几百毫秒时间间隔不断生成消费二维码;
S23、产生消费二维码生成间隔时间IntervalTime。
所述步骤S3中消费二维码动态识别的具体方法如下:
S31、智能扫码终端不断扫描手机App;
S32、当发现两个连续消费二维码中具有唯一相同客户条件,且发码时间间隔与生成间隔时间IntervalTime之间存在预设阈值的关系时,初步认定此顾客为真实消费,进行下一步时间合理性检查。
在一个可选的实施例中,所述步骤S32中,所述预设阈值关系为发码时间的差值等于生成间隔时间Intervaltime的整数倍;该整数倍可以为1倍、2倍或多倍,这样可以防止由于智能扫码终端扫描问题导致的识别失败,只要智能扫码终端可以连续扫描到符合时间整数倍关系的消费二维码,即可实现验证成功,有利于在确保验证安全性的同时,提高消费二维码的验证成功率和验证效率。
在另一个可选的实施例中,所述步骤S32中,所述预设阈值关系为发码时间的差值小于生成间隔时间Intervaltime的1.5倍、2倍或多倍,具体的,为确保客户体验,降低扫描延时,该多倍最好不要超过3倍;由于发码时间在实际应用过程中存在精确度问题,可能出现几毫秒到几十毫秒的误差,为了提高用户的体验,可以将预设阙值关系设置宽泛一些,通过限定发码时间的差值小于生成间隔时间Intervaltime的1.5倍、2倍或多倍,连续扫描的二维码只要符合上述预设阙值关系,即可实现验证,这样可以大大降低由于智能扫码终端扫描或延迟等问题导致的识别失败,在确保安全的同时,大大提高了二维码识别的成功率。
具体的,本发明创造公开一种在城市公共交通和城市小额免密消费中,防止二维码盗刷的方法:
(1)防止静态消费二维码盗刷:手机App动态发码,扫码端动态识别,通过判断两个连续二维码来防止二维码盗刷。无论离线码还是在线码,都在消费二维码中至少含有但不限于客户识别码UID,发码时间CreateTime,并且发码时间精确到毫秒级,有效位3位。顾客打开App后,以几百毫秒时间间隔不断生成消费二维码,其中发码时间为每个二维码当时生成时间。具体生成间隔时间,依据消费场景需要和二维码摄像头性能而定,一般推荐100到200毫秒,时间太长影响客户体验。智能扫码终端不断扫描手机App,当发现两个连续消费二维码中具有唯一相同客户条件且发码时间有几百毫秒差值后,认定此顾客可能为真实消费,进行下一步合法性检查。
(2)防止盗录的消费二维码:通过第一步后,扫码头停止扫码,对得到的二维码进行时间合理性检查,及通过计算最后一个消费二维码发码时间与智能终端当前时间的差值是否在预设范围内,即人为设定且符合本领域认定的合理范围,来判断此顾客消费是否真实有效。若差值在预设范围内,则认定此顾客为真实消费,将进行正常消费解析,进入后续消费流程。
(3)对手机App消费二维码进行数据签名和加密,智能扫码终端再对消费二维码进行解密和验签。本方案中推荐使用两种数据安全方法:
A)对二维码原始数据RawData进行MD5或者SHA1散列得到数据签名SignData,再对原始数据RawData和数据签名SignData进行3DES或者RSA加密得到密文的消费二维码。
B)使用国密SM2对二维码原始数据RawData进行加解密。这样既保证了二维码数据的安全性又彻底防止了二维码盗刷的问题。
涉及的设备:智能扫码终端,具备识别二维码的扫码头、二维码解密及传输用安全算法、快速识别二维码并判断二维码生成时间间隔的机制及嵌入式程序,此方法彻底解决了移动支付中二维码盗刷的问题。
本发明创造的有益效果为:通过手机App动态发码,智能终端动态识别,在确定是唯一相同客户条件后,通过判断两个连续二维码的时间差值来确定不是拷屏或者盗屏,防止二维码静态作假,大大提高了消费二维码的安全性;并且通过判断消费二维码和智能扫码终端时间是否在预设范围内,来对消费二维码的安全性进行二次判定,进一步降低二维码盗录作假通过的可能性,通过双重判定,进一步提高了这种方法验证的准确性;通过使用MD5、SHA1、SHA256等消息摘要算法,3DES、RSA、SM2等密钥算法保证原始数据的安全,也极大的提高了移动支付安全性。
本发明创造使用二维码时间差及数据安全加解密,来判断真伪及有效性判断,因此对手机或者发码后台时钟及智能扫码终端时钟是否同步要求不高;并且本发明创造改变了离线发码和在线发码的场景模式,彻底改变二维码消费对网络的过渡依赖,适应各种网络环境,通过采用本方法可以彻底解决移动支付中二维码盗刷的问题,将对手机移动支付模式及信息安全产生重大且深远影响。
以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明创造的保护范围之内。