一种生成动态二维码的安全设备、方法及系统与流程

文档序号:14655919发布日期:2018-06-12 03:57阅读:206来源:国知局

本发明涉及信息安全领域,由于涉及一种生成动态二维码的安全设备、方法及系统。



背景技术:

随着二维码的普遍应用,二维码扫码支付已经应用于许多的应用场景。现在在二维码支付的市场,支付宝和微信占据了大部分的市场。商户在使用支付宝和微信收款的时候,可以把自己的收款二维码打印出来,贴在客户比较容易扫描的位置,用户在给商户付款的时候直接扫描商户的收款二维码进行付款。

然而由于打印出来的二维码是静态的,容易被不法分子篡改,造成不必要的经济损失。基于此,本发明应用而生。



技术实现要素:

本发明为了解决现有技术中存在的问题,提供了一种生成动态二维码工作方法、装置及系统。

本发明采用的技术方案是:一种生成动态二维码的方法,包括:

初始化序列号、主密钥和动态因子;

每隔预设时间,根据所述序列号、所述主密钥和所述动态因子重新生成二维码图片并显示;

所述动态因子包括时间因子、事件因子、随机数据组合、指纹信息集或人脸信息集中的至少之一。

所述初始化序列号、主密钥和动态因子,具体步骤为:

为安全设备写入具有全球唯一标识的序列号;

根据所述序列号应用密钥分散算法生成主密钥;

初始化动态因子与服务器动态因子,使得动态因子与服务器动态因子同步。

所述初始化动态因子与服务器动态因子,使得动态因子与服务器动态因子同步服务器,具体包括如下初始化方法中的至少之一:

当所述动态因子包括时间因子时,将所述安全设备时钟时间与服务器时钟时间设置为同步;

当所述动态因子包括事件因子时,将所述安全设备中的事件次数与服务器中的事件次数设置为相同;

当所述动态因子包括随机数据组合时,将所述安全设备接收到的随机数据组合排序存储并发送至服务器依序存储;

当所述动态因子包括指纹信息集时,将所述安全设备录入的多个指纹信息数据排序存储并发送至服务器依序存储;

当所述动态因子包括人脸信息集时,将所述安全设备捕捉到的多个人脸信息数据排序存储并发送至服务器依序存储。

所述根据所述序列号、所述主密钥和所述动态因子重新生成二维码图片,具体包括如下子步骤:

根据所述序列号、所述主密钥和当前动态因子应用密钥生成算法重新计算,生成工作密钥;所述当前动态因子包括当前时间、当前事件次数、从所述随机数据组合中选出的一个随机数据、从所述指纹信息集中随机选出的一个指纹数据、从所述人脸信息集中随机选出的一个人脸数据中的至少之一;

计算得到工作密钥后,应用所述工作密钥对付款地址进行加密,得到加密付款地址,将所述加密付款地址和所述工作密钥作为二维码数据,将所述二维码数据转换为二维码图片。

本发明还提供一种生成动态二维码的安全设备,其特征在于,包括:

初始化模块,用于初始化序列号、主密钥和动态因子;

二维码生成模块,用于每隔预设时间,根据所述序列号、所述主密钥和所述动态因子重新生成二维码图片,所述动态因子包括时间因子、事件因子、随机数据组合、指纹信息集或人脸信息集中的至少之一;

显示模块,用于显示所述二维码图片。

所述初始化模块具体用于:为安全设备写入具有全球唯一标识的序列号,根据所述序列号应用密钥分散算法生成主密钥,并初始化动态因子与服务器动态因子,使得动态因子与服务器动态因子同步。

所述初始化模块中初始化动态因子与服务器动态因子,使得动态因子与服务器动态因子同步的服务器,具体用于:

当所述动态因子包括时间因子时,将所述安全设备时钟时间与服务器时钟时间设置为同步;

当所述动态因子包括事件因子时,将所述安全设备中的事件次数与服务器中的事件次数设置为相同;

当所述动态因子包括随机数据组合时,将所述安全设备接收到的随机数据组合排序存储并发送至服务器依序存储;

当所述动态因子包括指纹信息集时,将所述安全设备录入的多个指纹信息数据排序存储并发送至服务器依序存储;

当所述动态因子包括人脸信息集时,将所述安全设备捕捉到的多个人脸信息数据排序存储并发送至服务器依序存储。

所述二维码生成模块,具体用于:

根据所述序列号、所述主密钥和当前动态因子应用密钥生成算法重新计算,生成工作密钥;所述当前动态因子包括当前时间、当前事件次数、从所述随机数据组合中选出的一个随机数据、从所述指纹信息集中随机选出的一个指纹数据、从所述人脸信息集中随机选出的一个人脸数据中的至少之一;

计算得到工作密钥后,应用所述工作密钥对付款地址进行加密,得到加密付款地址,将所述加密付款地址和所述工作密钥作为二维码数据,将所述二维码数据转换为二维码图片。

本发明还提供一种生成动态二维码的系统,包括:上述安全设备,以及移动设备和服务器;

所述移动设备,包括处理模块,用于扫描二维码图片,将对应的二维码数据发送至所述服务器;

所述服务器,包括判断模块,用于判断所述二维码数据是否正确;发送模块,用于当所述二维码数据正确时,将所述二维码数据中的付款地址发送至所述移动设备。

所述判断模块具体用于,

当所述动态因子包括时间因子时,根据所述序列号、当前计时器时间、时间漂移值和所述主密钥重新计算,得到工作密钥窗口,比较所述二维码数据中的工作密钥是否与所述工作密钥窗口中的任意一个工作密钥匹配;

当所述动态因子包括事件因子时,根据所述序列号、当前计数器次数和所述主密钥重新计算,得到工作密钥,比较所述工作密钥与所述二维码数据中的工作密钥是否相同;

当所述动态因子包括随机数据组合/指纹信息集/人脸信息集时,根据内部保存的通过所述随机数据组合/指纹信息集/人脸信息集计算完成的工作密钥窗口,比较所述二维码数据中的工作密钥是否与所述工作密钥窗口中的任意一个工作密钥匹配。

本发明取得的有益效果是:在二维码的生成过程中,加入动态因子,如时间因子、事件因子或随机数据组合,实现定时更新二维码的目的,也可以加入商户的生物特征如指纹信息集或人脸信息集,更加保证二维码生成的安全性,防止二维码被恶意篡改。

附图说明

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

图1是一种生成动态二维码的系统图;

图2是本发明实施例一提供的一种生成动态二维码的工作方法流程图;

图3是本发明实施例一提供的扫描二维码后的具体操作流程图;

图4是本发明实施例二提供的一种生成动态二维码的系统方框图。

具体实施方式

本申请提供一种生成动态二维码的安全设备、工作方法及系统,实现了二维码的动态改变,在二维码失效后服务器验证不能通过,保证了二维码的时效性和安全性。

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

参见图1,本申请的生成动态二维码的工作方法所应用的系统包括安全设110、移动设备120和服务器130。其中,各设备的具体描述如下:

安全设备110,内部集成有安全芯片、计时器,外部设置有显示屏,安全芯片中存储有具有全球唯一性的序列号、主密钥以及用户生物特征数据或随机数据等,安全设备110里的计时器每隔预设时间,触发重新计算二维码数据,将其转换为二维码图片并通过显示屏显示,从而使得二维码具有时效性,随着时间的改变而改变。

移动设备120,如手机、平板电脑等具有扫描二维码功能的设备,用于扫描安全设备110上显示的二维码图片,解析二维码图片得到二维码数据,将二维码数据发送至服务器130。

服务器130,内置安全设备110的序列号、与安全设备对应的主密钥和与安全设备存储相同的用户生物特征数据或随机数据等,并设置有与安全设备110同步的计时器,允许有时间漂移,当接收到来自移动设备120的二维码数据并验证二维码数据通过后,将二维码数据中的付款地址发送给移动设备120。

实施例一

下面结合附图2进一步介绍本发明提供的生成动态二维码的工作方法,具体操作如下:

步骤210:安全设备初始化;

安全设备初始化包括初始化序列号、动态因子和主密钥,具体为:为安全设备写入具有全球唯一标识的序列号、根据所述序列号通过密钥分散算法生成主密钥、初始化动态因子与服务器动态因子同步;

其中,动态因子可以为时间因子、事件因子、随机键入值、指纹信息集或人脸信息集中的至少之一。

当动态因子包括时间因子时,初始化具体为:将安全设备时钟时间与服务器时钟时间设置为同步;其中时间因子随时间的改变而改变。

当动态因子包括事件因子时,初始化具体为:将安全设备中的事件次数与服务器中的事件次数相同;其中事件因子随二维码生成次数而改变。

当动态因子包括随机数据组合时,初始化具体为:将安全设备接收到的随机数据组合排序存储并发送至服务器进行依序存储;随机数据组合可以为商户通过安全设备输入的多组数据也可以为安全设备内部随机生成的多组数据。

当动态因子包括指纹信息集时,初始化具体为:将安全设备录入的多个指纹信息数据排序存储并发送至服务器依序存储;多个指纹信息数据可以为商户的多个手指指纹信息,也可以是与商户相关可信任人的手指指纹信息,例如,以商户五个手指为例,在安全设备中按照拇指、食指、中指、无名指和小指的顺序录入并排序存储,然后将这些指纹信息发送给服务器,服务器也按照相同的顺序存储。

当动态因子包括人脸信息集时,初始化具体为:将安全设备捕捉到的多个人脸信息数据排序存储并发送至服务器依序存储。人脸信息数据可以是商户自身人脸信息也可以是商户可信任人的人脸信息的集合,安全设备对捕捉到的人脸信息数据按序存储并发送至服务器按相同顺序存储。

进一步的,当动态因子包括随机数据组合或指纹信息集或人脸信息集至少之一时,还可以采用如下方式:安全设备每隔预设时间,重新提示用户输入数据信息或采集指纹信息或录入人脸信息,当接收到上述信息后,计算二维码;采用此即时输入方式安全设备内部无需保存数据信息/指纹信息/人脸信息,更加保证了安全性。

步骤220:安全设备根据序列号、主密钥和动态因子生成二维码图片并显示。

具体的,安全设备根据序列号、主密钥和时间因子生成二维码包括如下子步骤:

步骤2201:安全设备每隔预设时间后,根据序列号、当前动态因子和主密钥,应用预设算法重新计算,得到工作密钥;

当前动态因子包括当前时间、当前事件次数、从随机数据组合中选出的一个随机数据、从指纹信息集中随机选出的一个指纹数据、从人脸信息集中随机选出的一个人脸数据中的至少之一;

以当前动态因子为当前事件次数和指纹信息中随机选出的一个指纹数据为例来具体说明,根据序列号、当前事件次数、一个指纹数据和主密钥,应用密钥生成算法重新计算,得到工作密钥具体包括:

将序列号、当前事件次数和指纹数据之和作为第一数据,当第一数据的字节数不足8的整数倍时,在第一数据后补加一个字节0x80,然后再补0x00直至补足到8的整数倍;应用密钥算法对补位后的第一数据和主密钥进行计算,得到工作密钥;

例如,序列号为0x22113210128A 71556394,当前事件次数为0x546283749C 81,指纹数据为0x1545165475A4B6C5AD,将三者相加得到第一数据为0x22267726BB 629980C5C2,第一数据的字节数为10,不足8的整数倍,因此,先在第一数据后补0x80,得到字节数为11,然后补5个字节的0x00,得到8的倍数,即16个字节的第一数据0x22267726BB 629980C5C2800000000000,然后对第一数据和主密钥进行计算,得到工作密钥。

步骤2202:安全设备应用工作密钥对付款地址进行加密,得到加密付款地址,将加密付款地址和工作密钥作为二维码数据;

安全设备将要显示的网址和内容作为待加密信息,先在待加密信息后补一个字节的0x80,然后得到的待加密信息的字节数不足8的整数倍,则补0x00直至补足到8的整数倍;应用预设加密算法,使用工作密钥对补位后的待加密信息进行加密,得到二维码数据,然后将二维码数据转换为二维码图片通过安全设备显示屏进行显示。

安全设备每隔预设时间重新计算一次工作密钥,保证了工作密钥的时效性,在工作密钥失效后,服务器验证不能通过,防止二维码被篡改,保证了二维码的安全性。

参见图3,在安全设备生成二维码数据,并以二维码图片形式显示在安全设备显示屏上后,当用户通过移动设备扫描二维码图片后,执行如下操作:

步骤310:移动设备扫描二维码图片后,将对应的二维码数据发送至服务器;

步骤320:服务器解析二维码数据,得到加密付款地址和工作密钥;

步骤330:服务器根据内部存储的安全设备序列号、当前动态因子和主密钥计算得到工作密钥窗口;

具体的,安全设备生成二维码数据中携带有安全设备生成工作密钥的动态因子种类,服务器从二维码数据中获取动态因子种类,根据动态因子种类获取对应的当前动态因子;动态因子种类包括时间、事件、随机数据组合、指纹、人脸信息中的至少之一。

当动态因子包括时间因子时,根据序列号、当前计时器时间、时间漂移值和主密钥重新计算,得到工作密钥窗口;

当动态因子包括事件因子时,根据序列号、当前计数器次数和主密钥重新计算,得到工作密钥;

当动态因子为随机数据组合/指纹信息集/人脸信息集时,根据内部保存的通过随机数据组合/指纹信息集/人脸信息集计算完成的工作密钥窗口。

以动态因子种类为事件和指纹为例来说明,根据序列号、当前动态因子和主密钥计算得到工作密钥窗口具体包括:

根据动态因子种类获取到当前事件次数和全部指纹数据集;根据序列号、主密钥、当前事件次数、各个指纹数据进行计算,生成多个工作密钥,将其组成工作密钥窗口。

例如,获取到当前事件次数为30次,全部指纹数据集为拇指、食指、中指、无名指和小指,然后根据当前事件和五个手指分别计算出五个工作密钥,组成工作密钥窗口。

进一步的,如果动态因子只为随机数据组合/指纹信息集/人脸信息集中的任意之一时,服务器在进行验证时,先判断是否能够从存储区中获取到工作密钥窗口,如果是,则执行步骤340,否则根据内部保存的随机数据组合/指纹信息集/人脸信息集中的多个数据、序列号和主密钥计算生成多个工作密钥,将其组合工作密钥窗口,并保存至存储区中,再执行步骤340。

在此需要说明的是,动态因子为事件因子时,工作密钥窗口中只包含一个工作密钥,动态因子为时间因子/随机数据组合/指纹信息集/人脸信息集时,工作密钥窗口包括多个工作密钥。

步骤340:服务器比较二维码数据中的工作密钥和工作密钥窗口是否匹配成功,如果是,则执行步骤350,否则返回错误信息。

本步骤具体包括如下情形:

(1)当动态因子为时间因子时,比较计算生成的工作密钥窗口中是否存在任意一个工作密钥与二维码数据中的工作密钥匹配;

(2)当动态因子为事件因子时,比较计算生成的工作密钥窗口中的唯一一个工作与二维码数据中的工作密钥是否相同;

(3)当动态因子为随机数据组合/指纹信息集/人脸信息集时,比较存储区中的工作密钥窗口中是否存在任意一个工作密钥与二维码数据中的工作密钥匹配。

步骤350:服务器应用预设解密算法,使用工作密钥对加密付款地址进行解密,得到付款地址并发送至移动设备。

本实施例中,进一步的,当动态因子包括随机数据组合/指纹信息集/人脸信息集时,步骤2202中,二维码数据中还包括当前动态因子的序号,则在步骤330中,根据内部存储的安全设备序列号、当前动态因子和主密钥计算得到工作密钥窗口,具体包括:根据二维码数据中的序号获取对应的动态因子数值,然后根据序列号、主密钥和动态因子计算生成工作密钥,对比生成的工作密钥与二维码中的工作密钥是否相同,是则执行步骤350。

实施例二

以上结合附图2和附图3介绍了实施例一中生成动态二维码的安全设备的工作方法,以下结合附图4介绍生成动态二维码的系统,包括;安全设备410、移动设备420和服务器430;

安全设备410包括:

初始化模块4101,用于初始化序列号、主密钥和动态因子;

二维码生成模块4102,用于每隔预设时间,根据序列号、主密钥和动态因子重新生成二维码图片;

显示模块,用于显示二维码图片。

移动设备420,包括处理模块4201,用于扫描二维码图片,将对应的二维码数据发送至服务器430。

服务器430,包括

判断模块4301,用于判断二维码数据是否正确;

发送模块4302,用于当二维码数据正确时,将二维码数据中的付款地址发送至移动设备420。

以下对上述模块进行具体描述:

初始化模块4101具体用于:为安全设备写入具有全球唯一标识的序列号、根据序列号分散生成主密钥、初始化动态因子与服务器动态因子同步;

具体的,初始化模块4101中,初始化模块中初始化动态因子与服务器动态因子同步,具体用于:

当动态因子为时间因子时,初始化安全设备时钟时间与服务器时钟时间同步;当动态因子为事件因子时,初始化安全设备中的事件次数与服务器中的事件次数相同;当动态因子为随机数据组合时,将安全设备中接收到的随机数据组合发送至服务器进行存储;当动态因子为指纹信息集时,安全设备将录入的多个指纹信息数据排序存储并发送至服务器依序存储;当动态因子为人脸信息集时,安全设备将捕捉到的多个人脸信息数据排序存储并发送至服务器依序存储。二维码生成模块4102,具体用于:

当动态因子为时间因子/事件因子时,根据序列号、当前时间/事件次数和主密钥重新计算,得到工作密钥;当动态因子为随机数据组合时,根据序列号、主密钥和从随机数据组合中选出的一个随机数据重新计算,得到工作密钥;当动态因子为指纹信息集时,根据序列号、主密钥和从指纹信息集中随机选出一个指纹数据重新计算,得到工作密钥;当动态因子为人脸信息集时,根据序列号、主密钥和从人脸信息集中随机选出一个人脸数据重新计算,得到工作密钥;

计算得到工作密钥后,应用工作密钥对付款地址进行加密,得到加密付款地址,将加密付款地址和工作密钥作为二维码数据,将二维码数据转换为二维码图片。

判断模块4301具体用于:

当动态因子为时间因子时,根据序列号、当前计时器时间、时间漂移值和所述主密钥重新计算,得到工作密钥窗口,比较二维码数据中的工作密钥是否与工作密钥窗口中的任意一个工作密钥匹配;

当动态因子为事件因子时,根据序列号、当前计数器次数和主密钥重新计算,得到工作密钥,比较工作密钥与二维码数据中的工作密钥是否相同;

当动态因子为随机数据组合/指纹信息集/人脸信息集时,根据内部保存的通过随机数据组合/指纹信息集/人脸信息集计算完成的工作密钥窗口,比较二维码数据中的工作密钥是否与工作密钥窗口中的任意一个工作密钥匹配。

发送模块4302具体用于,应用预设解密算法,使用工作密钥对二维码数据中的加密付款地址进行解密,得到付款地址并发送至移动设备。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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