本发明涉及认证领域,特别涉及一种基于数字证书的二维码认证方法和设备。
背景技术:
随着移动互联网的快速发展,二维码技术被越来越多的应用到各种日常生活中。由于二维码单向信息传递的特性,为了对二维码信息进行验证,必须联网在线实时认证,这导致了二维码验证对网络严重依赖。在网络信号不好或者完全没有网络的地方,如偏远地区、山洞、隧道等,在线实时认证无法进行,影响了二维码的应用与普及。
因此如何实现二维码的离线安全认证,是当前迫切需要解决的问题。
技术实现要素:
针对现有技术中的缺陷,本发明提出了一种基于数字证书的二维码认证方法和设备,基于预先存储的数字证书,实现了离线的二维码认证。
具体的,本发明提出了以下具体的实施例:
本发明实施例提出了一种基于数字证书的二维码认证方法,应用于包括证书授权中心、二维码平台、扫描终端及用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;该方法包括:
通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书、所述二维码对应的用户的公钥证书、所述用户的签名;
基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书、所述二维码对应的用户的公钥证书、所述用户的签名进行验证;
当验证都通过时,确认所述二维码认证通过。
在一个具体的实施例中,在通过所述扫描终端获取所述用户指定上的待认证的二维码之前,还包括:
通过所述二维码平台向所述证书授权中心发送证书签发申请;
通过所述二维码平台接收所述证书授权中心基于所述证书签发申请反馈的已签名的二维码平台证书;
通过所述扫描终端获取所述证书授权中心的证书授权中心证书;
通过所述扫描终端获取所述二维码平台证书。
在一个具体的实施例中,完成认证的二维码的生成过程包括:
在所述二维码平台接收到用户发送的二维码申请时,根据所述用户指定的业务生成基本信息;
通过所述二维码平台的私钥以及用户的私钥对所述基本信息依次进行签名;其中,所述二维码平台在接收到所述二维码申请时,生成对应所述用户的公钥证书和私钥;
基于完成所述签名后的所述基本信息生成包含有所述二维码平台的二维码平台证书,所述公钥证书、所述用户的签名的二维码。
在一个具体的实施例中,
所述“基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证”,包括:
基于所述扫描终端内存储的所述证书授权中心证书对所述二维码平台证书进行合法性验证;
若所述合法性验证通过;基于验证通过的所述二维码平台证书对所述二维码对应的用户的公钥证书进行合法性确认;
若所述合法性确认成功,则基于所述公钥证书对所述用户的签名进行验证;
若验证通过,则确认所有验证都通过。
在一个具体的实施例中,还包括:
当验证不都通过时,确认所述二维码认证不通过。
本发明实施例还提出了一种基于数字证书的二维码认证设备,应用于包括证书授权中心、二维码平台、扫描终端及用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;该设备包括:
读取模块,用于通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名;
验证模块,用于基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证;
确认模块,用于当验证都通过时,确认所述二维码认证通过。
在一个具体的实施例中,还包括:
获取模块,用于在通过所述扫描终端获取所述用户指定上的待认证的二维码之前,通过所述二维码平台向所述证书授权中心发送证书签发申请;
通过所述二维码平台接收所述证书授权中心基于所述证书签发申请反馈的已签名的二维码平台证书;
通过所述扫描终端获取所述证书授权中心的证书授权中心证书;
通过所述扫描终端获取所述二维码平台证书。
在一个具体的实施例中,完成认证的二维码的生成过程包括:
在所述二维码平台接收到用户发送的二维码申请时,根据所述用户指定的业务生成基本信息;
通过所述二维码平台的私钥以及用户的私钥对所述基本信息依次进行签名;其中,所述二维码平台在接收到所述二维码申请时,生成对应所述用户的公钥证书和私钥;
基于完成所述签名后的所述基本信息生成包含有所述二维码平台的二维码平台证书,所述公钥证书、所述用户的签名的二维码。
在一个具体的实施例中,
所述验证模块,用于:
基于所述扫描终端内存储的所述证书授权中心证书对所述二维码平台证书进行合法性验证;
若所述合法性验证通过;基于验证通过的所述二维码平台证书对所述二维码对应的用户的公钥证书进行合法性确认;
若所述合法性确认成功,则基于所述公钥证书对所述用户的签名进行验证;
若验证通过,则确认所有验证都通过。
在一个具体的实施例中,所述确认模块,还用于:
当验证不都通过时,确认所述二维码认证不通过。
以此,本发明提出了一种基于数字证书的二维码认证方法和设备,应用于包括证书授权中心,二维码平台,扫描终端,用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;该方法包括:通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名;基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证;当验证都通过时,确认所述二维码认证通过。以此基于预先存储的数字证书,实现了离线的二维码认证。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提出的一种基于数字证书的二维码认证方法的流程示意图;
图2为本发明实施例提出的一种基于数字证书的二维码认证方法的流程示意图;
图3为本发明实施例提出的一种基于数字证书的二维码认证方法中验证过程的流程示意图;
图4为本发明实施例提出的一种基于数字证书的二维码认证设备的结构示意图。
具体实施方式
在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开的各种实施例限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。
在下文中,可在本公开的各种实施例中使用的术语“包括”或“可包括”指示所公开的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本公开的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
在本公开的各种实施例中,表述“或”或“a或/和b中的至少一个”包括同时列出的文字的任何组合或所有组合。例如,表述“a或b”或“a或/和b中的至少一个”可包括a、可包括b或可包括a和b二者。
在本公开的各种实施例中使用的表述(诸如“第一”、“第二”等)可修饰在各种实施例中的各种组成元件,不过可不限制相应组成元件。例如,以上表述并不限制所述元件的顺序和/或重要性。以上表述仅用于将一个元件与其它元件区别开的目的。例如,第一用户装置和第二用户装置指示不同用户装置,尽管二者都是用户装置。例如,在不脱离本公开的各种实施例的范围的情况下,第一元件可被称为第二元件,同样地,第二元件也可被称为第一元件。
应注意到:如果描述将一个组成元件“连接”到另一组成元件,则可将第一组成元件直接连接到第二组成元件,并且可在第一组成元件和第二组成元件之间“连接”第三组成元件。相反地,当将一个组成元件“直接连接”到另一组成元件时,可理解为在第一组成元件和第二组成元件之间不存在第三组成元件。
在本公开的各种实施例中使用的术语“用户”可指示使用电子装置的人或使用电子装置的装置(例如,人工智能电子装置)。
在本公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本公开的各种实施例中被清楚地限定。
实施例1
本发明实施例1提出了一种基于数字证书的二维码认证方法,应用于包括证书授权中心、二维码平台、扫描终端及用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;如图1所示,该方法包括:
步骤101、通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名;
步骤102、基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证;
步骤103、当验证都通过时,确认所述二维码认证通过。
具体的,在一个实际的例子中,其完整的流程可以如图2所示,本发明提供的基于数字证书的二维码离线认证的方法,包括以下步骤:
1.证书准备
1.1二维码平台向证书授权中心申请签发证书;
1.2授权中心下发已签名证书;
1.3终端设备从证书授权中心下载证书授权中心证书;
1.4终端设备从二维码平台下载二维码平台证书;
2.二维码生成
2.1用户向二维码平台申请二维码,二维码平台根据具体业务,生成基本信息,然后使用二维码平台的私钥和用户的私钥分别对基本信息进行两次签名。平台会为每个用户分配一个公钥证书和私钥。
2.2二维码返回二维码,返回的二维码除了基本的信息外,还包含了二维码平台签名、用户自己的签名和用户的公钥证书。
3.二维码验证
3.1用户使用手机展示二维码;
3.2终端扫描二维码,读取信息,进行验证,如图3所示,具体验证步骤如下:
1)使用证书授权中心的证书验证二维码平台证书的合法性;
2)在二维码平台证书的合法性得到确认后,使用该二维码平台证书对二维码信息中的用户公钥证书进行验证,由于用户的公钥证书是二维码平台签发的,因此可以确认其合法性。
3)在用户公钥证书的合法性得到确认后,使用用户公钥证书对二维码中的用户签名进行验证,如验证通过则表示二维码合法,否则表示非法。
其中,数字证书是一个经证书授权中心(certificateauthority,简称ca)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。
通常的证书包含一个公开密钥、名称以及证书授权中心的数字签名。
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。
通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
在一个具体的实施例中,在通过所述扫描终端获取所述用户指定上的待认证的二维码之前,还包括:
通过所述二维码平台向所述证书授权中心发送证书签发申请;
通过所述二维码平台接收所述证书授权中心基于所述证书签发申请反馈的已签名的二维码平台证书;
通过所述扫描终端获取所述证书授权中心的证书授权中心证书;
通过所述扫描终端获取所述二维码平台证书。
在一个具体的实施例中,完成认证的二维码的生成过程包括:
在所述二维码平台接收到用户发送的二维码申请时,根据所述用户指定的业务生成基本信息;
通过所述二维码平台的私钥以及用户的私钥对所述基本信息依次进行签名;其中,所述二维码平台在接收到所述二维码申请时,生成对应所述用户的公钥证书和私钥;
基于完成所述签名后的所述基本信息生成包含有所述二维码平台的二维码平台证书,所述公钥证书、所述用户的签名的二维码。
在一个具体的实施例中,
所述“基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证”,包括:
基于所述扫描终端内存储的所述证书授权中心证书对所述二维码平台证书进行合法性验证;
若所述合法性验证通过;基于验证通过的所述二维码平台证书对所述二维码对应的用户的公钥证书进行合法性确认;
若所述合法性确认成功,则基于所述公钥证书对所述用户的签名进行验证;
若验证通过,则确认所有验证都通过。
此外,本方案中的数字证书的非对称算法,可以是国际标准的rsa算法,也可以是国家标准的sm2算法;终端下载证书授权中心的证书,也可以是证书授权中心主动下发证书,或是二维码平台主动下发证书;二维码平台只是一个用于管理二维码的平台的一个名称,也可以是其他具有同样功能的平台;向二维码平台申请二维的除了手机,也可以是普通台式电脑、笔记本电脑、平板电脑;与此对应的展示二维码的除了手机,也可以使用普通台式电脑、平板电脑、笔记本本电脑,甚至可以将二维码打印到纸张上或者其他可以印刷的材料上。
在一个具体的实施例中,还包括:
当验证不都通过时,确认所述二维码认证不通过。
实施例2
本发明实施例2还公开了一种基于数字证书的二维码认证设备,应用于包括证书授权中心、二维码平台、扫描终端及用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;如图4所示,该设备包括:
读取模块201,用于通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名;
验证模块202,用于基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证;
确认模块203,用于当验证都通过时,确认所述二维码认证通过。
在一个具体的实施例中,还包括:
获取模块,用于在通过所述扫描终端获取所述用户指定上的待认证的二维码之前,通过所述二维码平台向所述证书授权中心发送证书签发申请;
通过所述二维码平台接收所述证书授权中心基于所述证书签发申请反馈的已签名的二维码平台证书;
通过所述扫描终端获取所述证书授权中心的证书授权中心证书;
通过所述扫描终端获取所述二维码平台证书。
在一个具体的实施例中,完成认证的二维码的生成过程包括:
在所述二维码平台接收到用户发送的二维码申请时,根据所述用户指定的业务生成基本信息;
通过所述二维码平台的私钥以及用户的私钥对所述基本信息依次进行签名;其中,所述二维码平台在接收到所述二维码申请时,生成对应所述用户的公钥证书和私钥;
基于完成所述签名后的所述基本信息生成包含有所述二维码平台的二维码平台证书、所述公钥证书、所述用户的签名的二维码。
在一个具体的实施例中,
所述验证模块202,用于:
基于所述扫描终端内存储的所述证书授权中心证书对所述二维码平台证书进行合法性验证;
若所述合法性验证通过;基于验证通过的所述二维码平台证书对所述二维码对应的用户的公钥证书进行合法性确认;
若所述合法性确认成功,则基于所述公钥证书对所述用户的签名进行验证;
若验证通过,则确认所有验证都通过。
在一个具体的实施例中,所述确认模块203,还用于:
当验证不都通过时,确认所述二维码认证不通过。
以此,本发明提出了一种基于数字证书的二维码认证方法和设备,应用于包括证书授权中心,二维码平台,扫描终端,用户终端的系统中,其中,所述扫描终端中预先存储有所述证书授权中心的证书授权中心证书以及所述二维码平台的二维码平台证书;该方法包括:通过所述扫描终端获取所述用户指定上的待认证的二维码,并读取所述二维码对应的数据;其中,所述数据包括:二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名;基于所述扫描终端内存储的所述证书授权中心证书以及所述二维码平台证书对所述二维码平台证书,所述二维码对应的用户的公钥证书、所述用户的签名进行验证;当验证都通过时,确认所述二维码认证通过。以此基于预先存储的数字证书,实现了离线的二维码认证。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。