CN111193736A - 一种信息的认证方法、装置、系统及存储介质 - Google Patents
一种信息的认证方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN111193736A CN111193736A CN201911390375.2A CN201911390375A CN111193736A CN 111193736 A CN111193736 A CN 111193736A CN 201911390375 A CN201911390375 A CN 201911390375A CN 111193736 A CN111193736 A CN 111193736A
- Authority
- CN
- China
- Prior art keywords
- authentication
- information
- terminal
- account number
- unique account
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请提供一种信息的认证方法、装置、系统及存储介质。通过独立的信息安全设备来将应用程序的AppID以及终端唯一账户号计算,可以确保用户的登录信息的安全。而通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
Description
技术领域
本申请涉及信息安全技术领域,具体而言,涉及一种信息的认证方法、装置、系统及存储介质。
背景技术
随着互联网以及移动互联网技术的不断发展,第三方应用已经频繁的被使用。
目前,有的第三方应用可以具备第三方授权登录功能,通过该第三方应用的授权就能登录大多数的其他应用。这样的好处是省去了用户登录每一个应用都要注册一遍的麻烦,用户体验非常好。但是这样就会存在一个问题,即用户必须无条件地信任这该具备第三方授权登录功能的第三方应用,但若该第三方应用的安全受到了攻击,那么该第三方应用所有的授权信息都可能会被盗取,用户使用这些授权信息来登录的其他应用,盗取者使用这些授权信息也都能够登录进去,如此一来后果不堪设想,因此,这是一个很大的安全隐患。
针对此安全问题,目前的解决方案不再使用第三方授权而是利用区块链技术,将用户的登录账户和密钥的关键信息单独离线存储,并在登录时将关键信息上链认证。这样做的好处是,用户可以离线操作自己的登录账户和密钥,便可以很好的保护用户信息的安全。但由于区块链一般是在网上公开的,任何有能力的团体或者个人都可以参与到区块链的运行、维护和管理中,因此在区块链上任何一个有效的节点中都能够查看链上的信息以至于如果想的话,哪个用户什么时候登录了什么应用,都可以在链上查到的,这些无疑泄露了用户的隐私。
发明内容
本申请实施例的目的在于提供一种信息的认证方法、装置、系统及存储介质,用以实现即确保用户的登录信息的安全,又避免用户的隐私泄露。
第一方面,本申请实施例提供了一种信息的认证方法,应用于信息安全设备,所述方法包括:
接收终端发送的认证信息获取请求,其中,所述认证信息获取请求中至少携带有AppID以及区块链为所述终端分配的唯一账户号,所述认证信息获取请求为所述终端基于登录所述AppID对应的应用程序而发起的请求;根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息;通过所述终端将所述认证信息发送到所述区块链上认证。
在本申请实施例中,通过独立的信息安全设备来将应用程序的AppID以及终端唯一账户号计算,可以确保用户的登录信息的安全。而通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,因此AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第一方面,在一些可能的实现方式中,所述信息安全设备在接收到所述认证信息获取请求后生成一个参数,所述认证信息获取请求中携带的信息还包括所述终端生成的参数,根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息,包括:计算所述AppID、所述唯一账户号,以及计算预设的所述终端的私钥、所述终端和所述信息安全设备生成的参数,获得所述认证信息。
在本申请实施例中,通过将终端的私钥以及参数一并混合进行计算,可以进一步提高对AppID的保护,降低AppID泄露的风险。
结合第一方面,在一些可能的实现方式中,所述终端生成的参数包括第一随机数和/或设置的动态序列号所述终端生成的参数包括第一随机数和/或设置的动态序列号,所述信息安全设备生成的参数为第二随机数,计算所述AppID、所述唯一账户号,以及计算预设的所述终端的私钥、所述终端和所述信息安全设备生成的参数,获得所述认证信息,具体包括:
利用所述预设算法计算所述第二随机数获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息;以及,利用所述预设算法计算所述第二随机数、所述AppID、所述唯一账户号,获得计算信息;其中,所述认证信息包括:所述第一认证子信息、所述第二认证子信息以及所述计算信息。
在本申请实施例中,由于需要的第一认证子信息和第二认证子信息均不通过计算AppID获得,故可以避免认证过程中AppID泄露。
结合第一方面,在一些可能的实现方式中,利用预设的预设算法计算获得第二认证子信息,包括:
利用所述预设算法对所述动态序列号、所述第一随机数、所述第二随机数和所述私钥进行计算,获得所述第二认证子信息。
在本申请实施例中,利用动态序列号来进行计算,由于动态序列号是动态变化的,故可以避免终端利用同一序列号进行重复认证,进一步提高了安全性。
结合第一方面,在一些可能的实现方式中,在接收终端发送的认证信息获取请求之前,所述方法还包括:
接收终端发送的初始认证信息获取请求,根据预设算法对初始认证信息获取请求中携带的参数、预设的所述终端的私钥以及所述信息安全设备预先生成的参数计算,获得初始认证信息;通过所述终端将所述初始认证信息发送到所述区块链上认证,以使所述区块链在对所述初始认证信息认证通过后为所述终端分配所述唯一账户号,并将所述唯一账户号返回给所述终端。
在本申请实施例中,由于唯一账户号是区块链对终端的初始认证通过而为终端分配的,故确保了被分配唯一账户号的终端是安全可信的,进而也确保了发起登录的终端是安全可信的,因而可以提高登录的安全性。
结合第一方面,在一些可能的实现方式中,所述信息安全设备生成的参数为在接收到所述初始认证信息获取请求后生成的第二随机数,所述初始认证信息获取请求中携带的参数为所述终端生成的第一随机数;根据预设算法对初始认证信息获取请求中携带的参数、预设的所述终端的私钥以及所述信息安全设备预先生成的参数计算,获得初始认证信息,包括:利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息,其中,所述初始认证信息包括:所述第一认证子信息和所述第二认证子信息。
在本申请实施例中,由于生成的是第一认证子信息和第二认证子信息两个认证子信息,故使得对终端的初始认证是对两个认证子信息进行认证,故确保了初始认证的安全性。
第二方面,本申请实施例提供了一种信息的认证方法,应用于终端,所述方法包括:
当所述终端登录应用程序时,向信息安全设备发送认证信息获取请求,所述认证信息获取请求携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;接收所述信息安全设备返回的认证信息,其中,所述认证信息为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得;将所述认证信息发送到区块链上认证。
在本申请实施例中,终端通过将应用程序的AppID以及终端的唯一账户号发送给独立的信息安全设备的计算,可以确保用户的登录信息的安全。而通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,因此AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第二方面,在一些可能的实现方式中,在将所述认证信息发送到区块链上认证之后,所述方法还包括:
获得所述区块链返回的所述应用程序的用户ID,其中,所述用户ID为所述区块链基于对所述认证信息认证通过而生成;利用所述用户ID登录所述应用程序。
在本申请实施例中,把用户ID放到区块链上生成,可以降低终端以及信息安全设备的负载。
结合第二方面,在一些可能的实现方式中,在向信息安全设备发送认证信息获取请求之前,所述方法还包括:
从所述区块链上获取所述唯一账户号。
在本申请实施例中,区块链的安全性一般是强度终端自身的安全性,故将唯一账户号存储到区块链,较于将其存储到终端,可以降低唯一账户号的泄露风险。
结合第二方面,在一些可能的实现方式中,从所述区块链上获取所述唯一账户号,包括:
向所述信息安全设备发送公钥获取请求;接收所述信息安全设备基于所述公钥获取请求而返回的所述终端的公钥;利用所述公钥,从所述区块链上获取所述唯一账户号。
在本申请实施例中,通过向信息安全设备请求公钥,再通过请求到公钥去链上获取唯一账户号,使得唯一账户号的获取需要三方设备共同参与,确保了安全性。
第三方面,本申请实施例提供了一种信息的认证方法,应用于部署在区块链上的认证客户端,所述认证客户端还与所述区块链中的各节点连接,所述方法包括:
接收终端发送的认证信息,其中,所述认证信息为所述终端基于登录应用程序而发送的信息,所述认证信息为通过加密所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;将所述认证信息发送给所述各节点;判断所述各节点对所述认证信息的认证是否通过;若通过,基于所述认证信息生成所述应用程序的用户ID,并将所述用户ID返回给所述终端。
在本申请实施例中,通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第三方面,在一些可能的实现方式中,所述认证信息包括:计算参数获得的第一认证子信息、计算所述参数和所述终端的私钥获得的第二认证子信息、以及计算所述参数所述AppID和所述唯一账户号而获得的计算信息;判断所述各节点对所述认证信息的认证是否通过,包括:
判断所述各节点对所述第一认证子信息和所述第二认证子信息的认证是否通过;
对应的,基于所述认证信息生成所述应用程序的用户ID,包括:
确定出所述计算信息与所述第一认证子信息之间的差异信息,所述差异信息为所述用户ID。
在本申请实施例中,通过将计算信息与所述第一认证子信息之间的差异作为用户ID,可以实现快速便捷的确定出用户ID。
结合第三方面,在一些可能的实现方式中,在接收终端发送的认证信息之前,所述方法还包括:
接收终端发送的初始认证信息,其中,所述初始认证信息为所述终端需要所述认证客户端为所述终端分配所述唯一账户号而发送的信息;将所述初始认证信息发送给所述各节点;判断所述各节点对所述初始认证信息的认证是否通过;若通过,为所述终端分配所述唯一账户号;将所述唯一账户号返回给所述终端。
在本申请实施例中,由于唯一账户号是区块链对终端的初始认证通过而为终端分配的,故确保了被分配唯一账户号的终端是安全可信的,进而也确保了发起登录的终端是安全可信的,因而可以提高登录的安全性。
结合第三方面,在一些可能的实现方式中,在确定所述各节点对所述初始认证信息的认证通过时,所述方法还包括:
创建所述终端的动态序列号,并将所述动态序列号返回所述终端,以使所述终端发送经计算所述AppID、所述唯一账户号以及所述动态序列号而获得所述认证信息;
对应的,在确定所述各节点对所述认证信息的认证通过时,所述方法还包括:
更新所述动态序列号,并将更新后的动态序列号返回所述终端。
在本申请实施例中,通过将动态序列号更新,可以避免终端利用同一序列号进行重复认证,进一步提高了安全性。
第四方面,本申请实施例提供了一种信息的认证方法,应用于区块链上各节点中的任一个节点,所述各节点还与部署在所述区块链上的认证客户端连接,所述方法包括:
接收所述认证客户端转发的认证信息,其中,所述认证信息为终端登录应用程序而向所述认证客户端发送的信息,且所述认证信息为通过计算所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;对所述认证信息进行认证,生成认证结果;向所述认证客户端发送所述认证结果。
在本申请实施例中,通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第四方面,在一些可能的实现方式中,所述认证信息包括:计算参数获得的第一认证子信息、以及计算所述参数和所述终端的私钥获得的第二认证子信息;对所述认证信息进行认证,生成认证结果,包括:
判断计算所述第一认证子信息所得的值与计算所述第二认证子信息所得的值是否相同;若相同,生成用于表示认证通过的所述认证结果,否则,生成用于表示认证未通过的所述认证结果。
在本申请实施例中,通过将不同的两个认证子信息各自计算后再比较的认证方式,即将差异化信息进行匹配,这种方式可以确保认证过程的安全性。
第五方面,本申请实施例提供了一种信息的认证方法,应用于信息安全设备,所述方法包括:
接收终端基于登录应用程序而发送的认证请求,其中,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;所述认证请求触发所述信息安全设备利用预先获得的参数向所述区块链发起对所述终端的认证;在所述认证通过时,计算所述AppID和所述唯一账户号生成所述用户ID,将所述用户ID返回所述终端。
在本申请实施例中,通过独立的信息安全设备来将应用程序的AppID以及终端唯一账户号计算生成用户ID,可以确保用户的登录信息的安全。而通过将与AppID无关的信息发送到区块链上认证,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第五方面,在一些可能的实现方式中,利用预先获取的参数向所述区块链发起对所述终端的认证,包括:
计算所述终端的私钥以及所述参数,获得所述终端的认证信息;通过所述终端将所述认证信息发送到所述区块链上认证。
在本申请实施例中,通过将终端的私钥以及预设参数一并混合进行计算,可以进一步提高计算的安全性,从而提高认证的安全性。
结合第五方面,在一些可能的实现方式中,所述参数包括:所述终端生成的第一随机数和/或设置的动态序列号、所述信息安全设备在接收到所述认证请求后生成的第二随机数;计算所述终端的私钥以及所述参数,获得所述终端的认证信息,包括:
利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息,其中,所述认证信息包括:所述第一认证子信息和所述第二认证子信息。
在本申请实施例中,由于生成的是第一认证子信息和第二认证子信息两个认证子信息,故使得认证过程是对两个认证子信息进行认证,确保了认证的安全性。
结合第五方面,在一些可能的实现方式中,利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得所述第二认证子信息,包括:
利用所述预设算法对所述动态序列号、所述第一随机数、所述第二随机数和所述私钥计算,获得所述第二认证子信息。
在本申请实施例中,利用区块链预先为终端设置的动态序列号来进行计算,由于动态序列号是动态变化的,故可以避免终端利用同一序列号进行重复认证,进一步提高了安全性。
结合第五方面,在一些可能的实现方式中,在接收终端基于登录应用程序而发送的认证请求之前,所述方法还包括:
计算所述终端的私钥以及预先获得的初始参数,获得初始认证信息;通过所述终端将所述初始认证信息发送到所述区块链认证,以使所述区块链在对所述初始认证信息认证通过后为所述终端分配所述唯一账户号,并将所述唯一账户号返回给所述终端。
在本申请实施例中,由于唯一账户号是区块链对终端的初始认证通过而为终端分配的,故确保了被分配唯一账户号的终端是安全可信的,进而也确保了发起登录的终端是安全可信的,因而可以提高登录的安全性。
结合第五方面,在一些可能的实现方式中,所述初始参数包括:所述终端生成的第一随机数、所述信息安全设备生成的第二随机数;计算所述终端的私钥以及预先获得的初始参数,获得初始认证信息,包括:
利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息;其中,所述初始认证信息包括:所述第一认证子信息和所述第二认证子信息。
在本申请实施例中,由于生成的是第一认证子信息和第二认证子信息两个认证子信息,故使得对终端的初始认证是对两个认证子信息进行认证,故确保了初始认证的安全性。
第六方面,本申请实施例提供了一种信息的认证方法,应用于终端,所述方法包括:
当所述终端登录应用程序时,向信息安全设备发送认证请求,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;接收所述信息安全设备基于认证所述终端所需的参数而生成的认证信息;将所述认证信息发送到所述区块链上认证,并判断是否认证通过;若认证通过,获取所述信息安全设备生成的所述用户ID,其中,所述用户ID为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得。
在本申请实施例中,通过独立的信息安全设备来将应用程序的AppID以及终端唯一账户号计算生成用户ID,可以确保用户的登录信息的安全。而通过将与AppID无关的信息发送到区块链上认证,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第六方面,在一些可能的实现方式中,在所述终端上的应用程序需要登录之后,在向信息安全设备发送认证请求之前,所述方法还包括:
从所述区块链上获取所述唯一账户号。
在本申请实施例中,区块链的安全性一般是强度终端自身的安全性,故将唯一账户号存储到区块链,较于将其存储到终端,可以降低唯一账户号的泄露风险。
结合第六方面,在一些可能的实现方式中,从所述区块链上获取所述唯一账户号,包括:
向所述信息安全设备发送公钥获取请求;接收所述信息安全设备基于所述公钥获取请求而返回的所述终端的公钥;利用所述公钥,从所述区块链上获取所述唯一账户号。
在本申请实施例中,通过向信息安全设备请求公钥,再通过请求到公钥去链上获取唯一账户号,使得唯一账户号的获取需要三方设备共同参与,确保了安全性。
第七方面,本申请实施例提供了一种信息的认证方法,应用于部署在区块链上的认证客户端,所述认证客户端还与所述区块链中的各节点连接,所述方法包括:
接收终端基于登录应用程序而发送的认证信息,其中,所述认证信息为通过计算与所述应用程序的AppID无关的参数而获得;将所述认证信息发送给所述各节点;判断所述各节点对所述认证信息的认证是否通过;若通过,将认证通过告知所述终端,以使所述终端从离线的设备上获取所述应用程序的用户ID,并基于所述用户ID登录所述应用程序。
在本申请实施例中,通过离线的设备将应用程序的AppID以及终端的唯一账户号计算,可以确保用户的登录信息的安全。而通过将计算所获得的认证信息发送到区块链上认证,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
结合第七方面,在一些可能的实现方式中,所述认证信息包括:计算参数获得的第一认证子信息、以及计算所述参数和所述终端的私钥获得的第二认证子信息;判断所述各节点对所述认证信息的认证是否通过,包括:
判断所述各节点对所述第一认证子信息和所述第二认证子信息的认证是否通过。
在本申请实施例中,由于节点是对第一认证子信息和第二认证子信息这两个信息进行认证,故可以提高认证的安全性。
结合第七方面,在一些可能的实现方式中,在接收终端基于登录应用程序而发送的认证信息之前,所述方法还包括:
接收所述终端发送的初始认证信息,其中,所述初始认证信息为所述终端需要所述认证客户端为所述终端分配唯一账户号而发送的信息;将所述初始认证信息发送给所述各节点;判断所述各节点对所述初始认证信息的认证是否通过;若通过,为所述终端分配所述唯一账户号;将所述唯一账户号返回所述终端,以使所述设备基于终端发送的所述唯一账户号和所述AppID而生成所述用户ID。
在本申请实施例中,由于唯一账户号是区块链对终端的初始认证通过而为终端分配的,故确保了被分配唯一账户号的终端是安全可信的,进而也确保了发起登录的终端是安全可信的,因而可以提高登录的安全性。
结合第七方面,在一些可能的实现方式中,在确定所述各节点对所述初始认证信息的认证通过时,所述方法还包括:
创建所述终端的动态序列号,并将所述动态序列号返回所述终端,以使所述终端发送经计算所述参数以及所述动态序列号而获得所述认证信息;
对应的,在确定所述各节点对所述认证信息的认证通过时,所述方法还包括:
更新所述动态序列号,并将更新后的动态序列号返回所述终端。
在本申请实施例中,通过将动态序列号更新,可以避免终端利用同一序列号进行重复认证,进一步提高了安全性。
第八方面,本申请实施例提供了一种信息的认证装置,应用于信息安全设备,所述装置包括:
数据收发模块,用于接收终端发送的认证信息获取请求,其中,所述认证信息获取请求中至少携带有AppID以及区块链为所述终端分配的唯一账户号,所述认证信息获取请求为所述终端基于登录所述AppID对应的应用程序而发起的请求;
数据计算模块,用于根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息;
所述数据收发模块,还用于通过所述终端将所述认证信息发送到所述区块链上认证。
第九方面,本申请实施例提供了一种信息的认证装置,应用于信息安全设备,所述装置包括:
数据收发模块,用于接收终端基于登录应用程序而发送的认证请求,其中,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据计算模块,用于所述认证请求触发所述信息安全设备利用预先获得的参数向所述区块链发起对所述终端的认证;
所述数据收发模块,还用于在所述认证通过时,计算所述AppID和所述唯一账户号生成所述用户ID,将所述用户ID返回所述终端。
第十方面,本申请实施例提供了一种信息的认证装置,应用于终端,所述装置包括:
数据发送模块,用于当所述终端登录应用程序时,向信息安全设备发送认证信息获取请求,所述认证信息获取请求携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块,用于接收所述信息安全设备返回的认证信息,其中,所述认证信息为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得;
所述数据发送模块,还用于将所述认证信息发送到区块链上认证。
第十一方面,本申请实施例提供了一种信息的认证装置,应用于终端,所述装置包括:
数据发送模块,用于当所述终端登录应用程序时,向信息安全设备发送认证请求,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块,用于接收所述信息安全设备基于认证所述终端所需的参数而生成的认证信息;
所述数据发送模块,还用于将所述认证信息发送到所述区块链上认证,并判断是否认证通过;
所述数据接收模块,还用于若认证通过,获取所述信息安全设备生成的所述用户ID,其中,所述用户ID为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得。
第十二方面,本申请实施例提供了一种信息的认证装置,应用于部署在区块链上的认证客户端,所述认证客户端还与所述区块链中的各节点连接,所述装置包括:
数据收发模块,用于接收终端发送的认证信息,其中,所述认证信息为所述终端基于登录应用程序而发送的信息,所述认证信息为通过计算所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;将所述认证信息发送给所述各节点;
数据处理模块,用于判断所述各节点对所述认证信息的认证是否通过;若通过,基于所述认证信息生成所述应用程序的用户ID;
所述数据收发模块,还用于将所述用户ID返回给所述终端。
第十三方面,本申请实施例提供了一种信息的认证装置,应用于部署在区块链上的认证客户端,所述认证客户端还与所述区块链中的各节点连接,所述装置包括:
数据收发模块,用于接收终端基于登录应用程序而发送的认证信息,其中,所述认证信息为通过计算与所述应用程序的AppID无关的参数而获得;将所述认证信息发送给所述各节点;
数据处理模块,用于判断所述各节点对所述认证信息的认证是否通过;
若通过,所述数据收发模块,还用于将认证通过告知所述终端,以使所述终端从离线的设备上获取所述应用程序的用户ID,并基于所述用户ID登录所述应用程序。
第十四方面,本申请实施例提供了一种信息的认证装置,应用于区块链上各节点中的任一个节点,所述各节点还与部署在所述区块链上的认证客户端连接,所述装置包括:
数据收发模块,用于接收所述认证客户端转发的认证信息,其中,所述认证信息为终端登录应用程序而向所述认证客户端发送的信息,且所述认证信息为通过计算所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;
数据处理模块,用于对所述认证信息进行认证,生成认证结果;
所述数据收发模块,还用于向所述认证客户端发送所述认证结果。
第十五方面,本申请实施例提供了一种信息的认证系统,包括终端、与所述终端连接的信息安全设备、部署在区块链上且与所述终端连接的认证客户端、以及所述区块链中与所述认证客户端连接的各节点;
所述信息安全设备,用于执行如第一方面或第一方面的任一种可能的实现方式所述的信息的认证方法;
所述终端,用于执行如第二方面或第二方面的任一种可能的实现方式所述的信息的认证方法;
所述认证客户端,用于执行如第三方面或第三方面的任一种可能的实现方式所述的信息的认证方法;
所述各节点中的任一个节点,用于执行如第四方面或第四方面的一种可能的实现方式所述的信息的认证方法。
第十六方面,本申请实施例提供了一种信息的认证系统,包括终端、与所述终端连接的信息安全设备、部署在区块链上且与所述终端连接的认证客户端、以及所述区块链中与所述认证客户端连接的各节点;
所述信息安全设备,用于执行如第五方面或第五方面的任一种可能的实现方式所述的信息的认证方法;
所述终端,用于执行如权利要求第六方面或第六方面的任一种可能的实现方式所述的信息的认证方法;
所述认证客户端,用于执行如第七方面或第七方面的任一种可能的实现方式所述的信息的认证方法;
所述各节点中的任一个节点,用于执行如第四方面或第四方面的一种可能的实现方式所述的信息的认证方法。
第十七方面,本申请实施例提供了一种具有计算机可执行的非易失程序代码的计算机可读存储介质,所述程序代码使所述计算机执行如第一方面到第四方面中任一方面或任一种可能的实现方式所述的信息的认证方法或者执行如第四方面到第七方面中任一方面或任一种可能的实现方式所述的信息的认证方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种信息的认证系统的结构框图;
图2为本申请实施例提供的一种信息的认证方法的第一流程图;
图3为本申请实施例提供的一种信息的认证方法的第一交互流程图;
图4为本申请实施例提供的一种信息的认证方法的第二流程图;
图5为本申请实施例提供的一种信息的认证方法的第二交互流程图
图6为本申请实施例提供的一种信息的认证方法的第三流程图;
图7为本申请实施例提供的一种信息的认证方法的第三交互流程图;
图8为本申请实施例提供的一种信息的认证装置的第一结构框图;
图9为本申请实施例提供的一种信息的认证装置的第二结构框图;
图10为本申请实施例提供的一种信息的认证装置的第三结构框图;
图11为本申请实施例提供的一种信息的认证装置的第四结构框图;
图12为本申请实施例提供的一种信息的认证装置的第五结构框图;
图13为本申请实施例提供的一种信息的认证装置的第六结构框图;
图14为本申请实施例提供的一种信息的认证装置的第七结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,本申请实施例提供了一种信息的认证系统10,该信息的认证系统10可以包括:终端30、与终端30连接的信息安全设备40、部署在区块链上且与终端30连接的认证客户端50、以及区块链中与认证客户端50连接的各节点60。
本实施例中,终端30可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
信息安全设备40可以是移动存储型的设备比如U盘、U盾、移动硬盘等设备,或者信息安全设备40也可以是类似于终端的设备比如为个人电脑、平板电脑、智能手机、个人数字助理等,亦或者信息安全设备40还可以是服务器。信息安全设备40可以采用离线的方式进行部署,以便与终端30通过线下的方式进行数据交互,这样可以有效确保终端30发往信息安全设备40的数据的安全性。
认证客户端50可以是功能性的程序模块,其可以部署在区块链上与终端30能够通信的任一个节点60上。而在区块链上的各节点60中,每个节点60都可以是终端和/或服务器。其中,若节点60是终端,那么该节点60可以是个人电脑、平板电脑、智能手机、个人数字助理等;若节点60是服务器,那么该节点60可以是网络服务器、数据库服务器、以及服务器集群等。
本实施例中,终端30上可以安装各种应用程序,以及终端30上还可以安装用于与区块链对接的区块链客户端。当用户控制终端30发起对应用程序的登录时,终端30可以通过自身的区块链客户端与信息安全设备40进行交互,从而将发起登录的应用程序的AppID以及区块链预先为终端30分配的唯一账户号发送给信息安全设备40。可以理解到,由于信息安全设备40是离线部署,故信息安全设备40上的AppID难以被盗取者窃取,故可以有效避免用户发起应用程序登录时AppID泄露。
信息安全设备40在接收到AppID以及该唯一账户号后,信息安全设备40的处理方式可以有两种。
作为一种方式,信息安全设备40可以将AppID以及唯一账户号计算成认证信息,再通过终端30将认证信息发送到区块链上认证。若区块链上的各节点60对该认证信息认证通过后,认证客户端50会基于该认证信息生成登录该应用程序所需的用户ID,并将用户ID返回给终端30,以实现终端30基于该用户ID登录该应用程序。
可以理解到,由于发布到区块链上的是经计算的认证信息,故AppID不会暴露到区块链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,避免了用户的隐私泄露。
作为另一种方式,信息安全设备40在接收到AppID以及唯一账户号后,其可以触发信息安全设备40将认证终端30所需的预设参数计算,以认证信息。与此同时,信息安全设备40还将AppID以及唯一账户号计算,生成登录该应用程序所需的用户ID。信息安全设备40也通过终端30将认证信息发送到区块链上认证。若区块链上的各节点60对该认证信息认证通过后,认证客户端50会通过终端30告知信息安全设备40。这样,信息安全设备40再将用户ID返回给终端30,以实现终端30基于该用户ID登录该应用程序。
也可以理解到,由于AppID仅存储在信息安全设备40上,可以有效避免AppID的泄露。此外,信息安全设备40发送到区块链上认证的认证信息是与AppID无关的信息,故AppID不会暴露到区块链上,这样别人通过区块链也不会知道用户登录的是哪个应用,也避免了用户的隐私泄露。
下面将通过方法实施例,对上述认证登录的过程进行详细说明。此外,由于应用程序和区块链客户端都可以部署在同一终端30上,终端30在上述登录认证的过程执行的动作下面将分别从应用程序和区块链客户端的角度进行说明,以便于理解。
本申请实施例提供了一种信息的认证方法,信息的认证方法可以由终端30、信息安全设备40、认证客户端50以及区块链上的各节点60配合执行。在信息的认证方法的执行过程中,终端30、信息安全设备40、认证客户端50以及区块链上的各节点60可以配合先为终端30分配一个唯一账户号,然后基于该唯一账户号,终端30、信息安全设备40、认证客户端50以及区块链上的各节点60再分配合完成认证登录。
下面将分别对分配唯一账户号的流程,以及认证登录的流程予以说明。
请参阅图2,针对分配唯一账户号流程,本申请实施例提供的一种信息的认证方法主要可以包括:
步骤S100:信息安全设备接收终端发送的初始认证信息获取请求。
步骤S200:信息安全设备根据预设算法对初始认证信息获取请求中携带的参数、预设的终端的私钥以及信息安全设备预先生成的参数计算,获得初始认证信息。
步骤S300:信息安全设备将初始认证信息发送给终端。
步骤S400:终端将初始认证信息发送到区块链上认证。
步骤S500:认证客户端接收终端发送的初始认证信息。
步骤S600:认证客户端将初始认证信息发送给区块链上的各节点。
步骤S700:每个节点将对认证信息认证的认证结果返回给认证客户端。
步骤S800:认证客户端基于认证结果判断各节点对初始认证信息的认证是否通过。
步骤S900:若通过,认证客户端为终端分配唯一账户号。
如图3所示,图3示出了分配唯一账户号的详细交互流程,下面将结合图2和图3,对分配唯一账户号的流程进行详细说明。
本实施例中,唯一账户号需要基于终端30的私钥而进行分配,故在分配唯一账户号之前,用户需要自己创建终端30的私钥。
可选的,用户可以在终端30上编辑终端30的私钥,当然,私钥的数值或字符用户可以根据自己的喜好而设定,比如私钥可以是随机数也可以是助记词。创建出私钥后,终端30将私钥发送给信息安全设备40存储。
在需要分配该终端30的唯一账户号时,终端30可以发起分配唯一账户号的流程。
具体的,在发起分配唯一账户号的流程时,终端30的区块链客户端可以根据预设的控制程序,生成公钥获取请求,并将该公钥获取请求发送给信息安全设备40。对应的,信息安全设备40接收到该公钥获取请求,信息安全设备40通过对该公钥获取请求进行解析,信息安全设备40确定需要生成该终端30的公钥。信息安全设备40可以利用预设算法计算该终端30预先存储在信息安全设备40上的私钥,从而生成该终端30的公钥,其中,生成公钥的预设算法可以采用经典椭圆曲线ECC预设算法或者爱德华椭圆曲线(如ed25519等)预设算法,对此,本实施例并不限定。然后,信息安全设备40可以将该公钥返回给终端30的区块链客户端。
本实施例中,唯一账户号的分配是基于区块链对信息安全设备40生成的该终端30的初始认证信息认证通过,那么为便于信息安全设备40生成该初始认证信息,终端30的区块链客户端在接收到该公钥后,终端30的区块链客户端可以基于该公钥生成一个参数比如随机生成一个第一随机数,然后将携带该第一随机数的初始认证信息获取请求发送给信息安全设备40。
对于信息安全设备40来说,信息安全设备40在接收到初始认证信息获取请求后,该请求可以触发自己也生成一个参数比如随机生成一个第二随机数。这样,信息安全设备40通过预设算法对初始认证信息获取请求中携带的参数、预设的终端30的私钥以及信息安全设备40预先生成的参数进行零知识证明计算,获得初始认证信息。
作为基于零知识证明生成初始认证信息的可选方式,信息安全设备40可以利用预设算法如非对称ECC椭圆曲线密码,计算第二随机数和该预设算法,获得第一认证子信息;比如,若第二随机数为r,算法参数为G,第一认证子信息为R1,那么计算过程可以是:R1=r*G。与此同时,信息安全设备40也可以利用预设的预设算法,计算第一随机数、第二随机数和私钥,获得第二认证子信息;比如,若第一随机数为b、第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+bk;其中,初始认证信息包括该第一认证子信息和第二认证子信息,计算出第一认证子信息和第二认证子信息即为获得初始认证信息。
当然,利用第一随机数、第二随机数以及秘钥生成初始认证信息的方式仅为本实施例例举的一种方式,其并不作为本实施例的限定。例如,在发起分配唯一账户号的流程时,终端30的区块链客户端可以直接向信息安全设备40发送初始认证信息获取请求,而信息安全设备40基于该初始认证信息获取请求,可以直接计算第二随机数和私钥生成该终端30的初始认证信息。
本实施例中,获得初始认证信息后,信息安全设备40可以将初始认证信息返回给终端30的区块链客户端。对应的,终端30的区块链客户端接收到该初始认证信息后,便可以将该初始认证信息发送到区块链上认证。
作为认证该初始认证信息的一种示例性方式,终端30的区块链客户端可以将该初始认证信息直接发送给区块链上的认证客户端50。然后,认证客户端50将该初始认证信息转发给区块链上各节点60,以便各节点60各自都直接对该初始认证信息进行认证。
具体的,每个节点60可以利用预设的预设算法,对第一认证子信息进行计算,以及对第二认证子信息也进行零知识证明的计算。然后,每个节点60可以判断计算第一认证子信息所得的值与计算第二认证子信息所得的值是否相同。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
作为基于零知识证明认证该初始认证信息的另一种示例性方式,终端30的区块链客户端还可以将该初始认证信息、终端30的区块链客户端生成的第一随机数以及终端30的公钥一并发送给区块链上的认证客户端50。然后,认证客户端50将该初始认证信息、第一随机数以及公钥转发给区块链上各节点60,以便各节点60各自利用第一随机数以及公钥对该初始认证信息进行认证。
具体的,每个节点60可以利用预设算法如非对称ECC椭圆曲线密码,计算第二认证子信息和该预设算法中的算法参数,以及计算第一认证子信息、公钥和第一随机数;比如,算法参数为G,第一认证子信息为R1,那么计算过程可以是:P1=R2*G;若第一随机数为b、公钥为Q、第二认证子信息为R2,那么计算过程可以是:P2=R1+bQ。然后,每个节点60可以判断计算第二认证子信息和算法参数所得的值与计算第一认证子信息、第一随机数和公钥所得的值是否相同,即判断P1是否等于P2。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
对应的,认证客户端50可以判断各节点60对第一认证子信息和第二认证子信息的认证是否通过。具体的,认证客户端50通过统计各节点60反馈的认证结果,便可以判断各节点60对初始认证信息的认证是否通过。例如,若认证客户端50确定所有认证结果中有超过阈值比例的认证结果表示认证通过,或者若认证客户端50确定获得认证通过的认证结果的数量已经超出阈值,那么认证客户端50判定各节点60对初始认证信息的认证通过,否则,则判定各节点60对初始认证信息的认证不通过。
当认证客户端50确定认证通过后,认证客户端50可以为终端30分配一个唯一账户号,并告知终端30的区块链客户端该唯一账户号已经分配成功。而当认证客户端50确定认证未通过后,认证客户端50无需为终端30分配唯一账户号,并告知终端30的区块链客户端认证失败。
本实施例中,为避免终端30发起重复认证,当认证客户端50确定认证通过后,认证客户端50还可以为终端30设置一个动态序列号。该动态序列号的初始值可以为0,每当终端30使用该动态序列号在区块链上发起一次认证,认证客户端50便将该动态序列号更新自加1,从而避免终端30利用同一动态序列号发起重复认证。
请参阅图4,针对计算认证流程,若用户ID是利用区块链生成,那么本申请实施例提供的一种信息的认证方法主要可以包括:
步骤S101:当终端登录的应用程序时,终端从区块链上获取唯一账户号。
步骤S201:向信息安全设备发送认证信息获取请求,认证信息获取请求至少携带有应用程序的AppID以及唯一账户号。
步骤S301:信息安全设备接收终端发送的认证信息获取请求。
步骤S401:信息安全设备根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息。
步骤S501:信息安全设备将认证信息发送给终端。
步骤S601:终端接收信息安全设备返回的认证信息。
步骤S701:终端将认证信息发送到区块链上认证。
步骤S801:认证客户端将认证信息发送给区块链上的各节点。
步骤S901:每个节点将对认证信息认证的认证结果返回给认证客户端。
步骤S111:认证客户端基于认证结果判断各节点对认证信息的认证是否通过。
步骤S221:若通过,认证客户端基于认证信息生成应用程序的用户ID,并将用户ID返回给终端。
步骤S331:终端获得区块链返回的应用程序的用户ID。
步骤S441:终端利用用户ID登录应用程序。
如图5所示,图5示出了计算认证的详细交互流程,下面将结合图4和图5,对计算认证的流程进行详细说明。
本实施例中,终端30的应用程序发起登录时,比如用户点击终端30的显示界面上显示的应用程序登录按钮,便可以触发终端30的应用程序发起登录。终端30的应用程序发起登录可以触发终端30的区块链客户端去获取认证所需的唯一账户号。
具体的,终端30的区块链客户端可以向信息安全设备40发送一个公钥获取请求,其中,该公钥获取请求可以携带有表明终端30身份的终端30标识比如终端30的MAC(MediaAccess Control Address,媒体存取控制位址)号。
对应的,信息安全设备40接收到该公钥获取请求后,可以基于该公钥获取请求将终端30的公钥返回给终端30。比如,信息安全设备40对该公钥获取请求进行解析,便可以获取到终端30标识。信息安全设备40在为终端30生成公钥时,便建立该终端30标识与该终端30的公钥的映射关系,那么根据该映射关系以及当前获取到的终端30标识,信息安全设备40便可以找到该终端30的公钥,并将该终端30的公钥返回给终端30。
在本实施例前述的一种实施方式中,由于认证客户端50在分配唯一账户号的过程中,认证客户端50使用了终端30的公钥进行认证,故认证客户端50可以建立终端30的公钥与为该终端30分配的唯一账户号的映射关系。终端30接收到信息安全设备40返回的公钥后,便可以利用该公钥去区块链上获取终端30的唯一账户号。即终端30将该公钥发送给认证客户端50,认证客户端50基于该公钥找到该公钥的映射关系,便可以确定出该终端30的唯一账户号,从而再将该终端30的唯一账户号返回给终端30。
需要指出的是,若认证客户端50在分配唯一账户号的过程中,采用的是前述中对认证信息直接认证的方式。那么认证客户端50在分配唯一账户号的过程中,还可以从终端30获取的终端30标识,并建立终端30标识与该终端30的唯一账户号的映射关系。这样,终端30的区块链客户端可以直接将携带有表明终端30身份的终端30标识的公钥获取请求发送给认证客户端50,以便认证客户端50基于终端30标识与该终端30的唯一账户号的映射关系,确定出终端30的唯一账户号,并将其返回给终端30。
换言之,若在分配唯一账户号的过程中采用了公钥进行认证,那么终端30后续则需要先从信息安全设备40上获取公钥,再利用公钥从认证客户端50上获取唯一账户号;而若在分配唯一账户号的过程中采用的是直接对认证信息进行认证,那么终端30后续则可以利用自身的终端30标识,直接从认证客户端50上获取唯一账户号。
还可以理解到的是,若认证客户端50还为终端30设置了动态序列号,那么在将唯一账户号返回给终端30的同时,认证客户端50还将该终端30的动态序列号一并返回给终端30。
本实施例中,终端30在获取到唯一账户号后,终端30的区块链客户端可以利用发起登录的应用程序的AppID以及唯一账户号来触发信息安全设备40生成认证信息,即终端30的区块链客户端可以将携带有应用程序的AppID以及唯一账户号的认证信息获取请求发送给信息安全设备40,以便信息安全设备40基于AppID以及唯一账户号生成终端30的认证信息,并将认证信息返回给终端30。
可选的,信息安全设备40在接收到认证信息获取请求后,信息安全设备40可以生成一个参数比如随机生成一个第二随机数,信息安全设备40基于预设算法计算第二随机数,获得第一认证子信息;以及基于该预设算法计算第二随机数和终端30的私钥,获得第二认证子信息;以及,还基于该预设算法计算第二随机数、AppID和唯一账户号,获得计算信息。显然,获得的第一认证子信息、第二认证子信息以及计算信息则构成了该认证信息。
比如,若第二随机数为r,算法参数为G,第一认证子信息为R1,那么计算过程可以是:R1=r*G;又比如,若第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+k;再比如,若信息安全设备40将AppID与唯一账户号进行哈希计算获得的哈希值为H、第二随机数为r、算法参数为G、计算信息为R3,那么计算过程可以是:R3=(r+H)*G。
可以理解到,为提高安全性,终端30的区块链客户端发送的认证信息获取请求中除了有应用程序的AppID以及唯一账户号,其还可以携带终端30的区块链客户端生成的一个参数比如随机生成的一个第一随机数,以便信息安全设备40利用预设算法对AppID、唯一账户号、终端30的区块链客户端生和信息安全设备40生成的参数进行零知识证明的计算,生成终端30的认证信息,并将认证信息返回给终端30。
可选的,信息安全设备40可以基于预设算法计算第二随机数和算法参数,获得第一认证子信息;以及基于该预设算法计算第一随机数、第二随机数和终端30的私钥,获得第二认证子信息;以及,还基于该预设算法计算第二随机数、AppID、唯一账户号和算法参数,获得计算信息。
比如,若第二随机数为r,算法参数为G,第一认证子信息为R1,那么计算过程可以是:R1=r*G;又比如,若第一随机数为b、第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+bk;再比如,若信息安全设备40将AppID与唯一账户号进行哈希计算获得的哈希值为H、第二随机数为r、算法参数为G、计算信息为R3,那么计算过程可以是:R3=(r+H)*G。
值得注意的是,若终端30还获得的认证客户端50返回的动态序列号,终端30的区块链客户端发送的认证信息获取请求中除了有应用程序的AppID、唯一账户号以及第一随机数外,其还携带有终端30的动态序列号,以便利用信息安全设备40基于预设算法计算该动态序列号、第一随机数、第二随机数和终端30的私钥,获得第二认证子信息。比如,若动态序列号为Sequence、第一随机数为b、第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+(b+Sequence)k。
对应的,终端30在接收到信息安全设备40返回的认证信息后,终端30的区块链客户端便可以将认证信息发送到区块链上认证。
作为认证该认证信息的一种示例性方式,终端30的区块链客户端可以将该初证信息直接发送给区块链上的认证客户端50。然后,认证客户端50将该认证信息转发给区块链上各节点60,以便各节点60各自都直接对该认证信息进行认证。
具体的,每个节点60可以利用预设的预设算法,对第一认证子信息进行计算,以及对第二认证子信息也进行计算。然后,每个节点60可以判断计算第一认证子信息所得的值与计算第二认证子信息所得的值是否相同。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
作为认证该认证信息的另一种示例性方式,终端30的区块链客户端还可以将该认证信息、终端30的区块链客户端生成的第一随机数以及终端30的公钥一并发送给区块链上的认证客户端50。然后,认证客户端50将该认证信息、第一随机数以及公钥转发给区块链上各节点60,以便各节点60各自利用第一随机数以及终端30的公钥对该认证信息进行零知识证明的认证。
具体的,每个节点60可以利用预设算法如非对称ECC椭圆曲线密码,计算第二认证子信息和该预设算法中的算法参数,以及计算第一认证子信息、公钥和第一随机数;比如,算法参数为G,第一认证子信息为R1,那么计算过程可以是:P1=R2*G;若第一随机数为b、公钥为Q、第二认证子信息为R2,那么计算过程可以是:P2=R1+bQ。然后,每个节点60可以判断计算第二认证子信息和算法参数所得的值与计算第一认证子信息、第一随机数和公钥所得的值是否相同,即判断P1是否等于P2。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
对应的,认证客户端50可以判断各节点60对第一认证子信息和第二认证子信息的认证是否通过。具体的,认证客户端50通过统计各节点60反馈的认证结果,便可以判断各节点60对认证信息的认证是否通过。例如,若认证客户端50确定所有认证结果中有超过阈值比例的认证结果表示认证通过,或者若认证客户端50确定获得认证通过的认证结果的数量已经超出阈值,那么认证客户端50判定各节点60对认证信息的认证通过,否则,则判定各节点60对认证信息的认证不通过。
当认证客户端50确定认证通过后,说明通过第一认证子信息和第二认证子信息已经表明了终端30的身份且终端30的身份是可信的,那么认证客户端50可以基于认证信息生成该应用程序的用户ID,并将该用户ID返回给终端30。可选的,认证客户端50可以确定出计算信息与第一认证子信息之间的差异信息,该差异信息即为用户ID;比如,第一认证子信息为R1而计算信息为R3,那么计算过程可以是:用户ID=R3-R1。
当认证客户端50确定认证不通过后,说明终端30不确定的身份是不可信的,那么认证客户端50不仅不生成该应用程序的用户ID,还会向终端30返回认证失败的信息。
需要说的是,若信息安全设备40是利用终端30的动态序列号、第一随机数、第二随机数和终端30的私钥生成第二认证子信息。那么认证客户端50还可以将该终端30的动态序列号发送给各节点60,以便每个节点60都利用该终端30的动态序列号、第一随机数以及终端30的公钥对该认证信息进行认证。
具体的,每个节点60可以利用预设算法如非对称ECC椭圆曲线密码,计算第二认证子信息和该预设算法中的算法参数,以及计算第一认证子信息、终端30的动态序列号、终端30的公钥和第一随机数;比如,算法参数为G,第一认证子信息为R1,那么计算过程可以是:P1=R2*G;若动态序列号为Sequence、第一随机数为b、公钥为Q、第二认证子信息为R2,那么计算过程可以是:P2=R1+(b+Sequence)Q。然后,每个节点60可以判断计算第二认证子信息和算法参数所得的值与计算第一认证子信息、第一随机数和公钥所得的值是否相同,即判断P1是否等于P2。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
进一步的,在认证客户端50在确认通过后,认证客户端50还可以将动态序列号更新,比如将动态序列号更新自加1,以便下次终端30发起认证时将该最新更新的动态序列号返回给终端30,以便终端30利用最新更新的动态序列号发起认证。显然,这种方式可以确保终端30每次发起认证的动态序列号都不同,且只有终端30每次都利用不同的动态序列号发起认证才能够认证通过,故有效避免了终端30利用同一动态序列号进行重复认证。
于本实施例中,终端30的区块链客户端在获取到认证客户端50返回的用户ID后,终端30的区块链客户端可以将该用户ID返回给终端30的应用程序,以便终端30的应用程序利用该用户ID执行登录。
请参阅图6,针对计算认证流程,若用户ID是信息安全设备40生成,那么本申请实施例提供的一种信息的认证方法主要可以包括:
步骤S110:当终端登录应用程序时,终端从区块链上获取唯一账户号。
步骤S120:向信息安全设备发送认证请求,认证请求携带有应用程序的AppID以及区块链为终端分配的唯一账户号。
步骤S130:信息安全设备接收终端发送的认证请求。
步骤S140:信息安全设备接收的认证请求触发信息安全设备利用预先获得的参数向区块链发起对终端的认证。
步骤S150:认证客户端接收终端基于登录应用程序而发送的认证信息,其中,认证信息为信息安全设备通过计算与应用程序的AppID无关的预设参数而获得。
步骤S160:认证客户端将认证信息发送给区块链上的各节点。
步骤S170:每个节点将对认证信息认证的认证结果返回给认证客户端。
步骤S180:认证客户端基于认证结果判断各节点对认证信息的认证是否通过。
步骤S190:若通过,认证客户端将认证通过告知终端。
步骤S210:信息安全设备通过终端确定认证通过,计算AppID和唯一账户号生成该用户ID,并将该用户ID返回终端。
步骤S220:终端利用用户ID登录应用程序。
如图7所示,图7示出了计算认证的详细交互流程,下面将结合图6和图7,对计算认证的流程进行详细说明。
本实施例中,终端30的应用程序发起登录时,比如用户点击终端30的显示界面上显示的应用程序登录按钮,便可以触发终端30的应用程序发起登录。终端30的应用程序发起登录可以触发终端30的区块链客户端去获取认证所需的唯一账户号。
具体的,终端30的区块链客户端可以向信息安全设备40发送一个公钥获取请求,其中,该公钥获取请求可以携带有表明终端30身份的终端30标识比如终端30的MAC号。
对应的,信息安全设备40接收到该公钥获取请求后,可以基于该公钥获取请求将终端30的公钥返回给终端30。比如,信息安全设备40对该公钥获取请求进行解析,便可以获取到终端30标识。信息安全设备40在为终端30生成公钥时,便建立该终端30标识与该终端30的公钥的映射关系,那么根据该映射关系以及当前获取到的终端30标识,一旦信息安全设备40确定终端30标识匹配即确定终端30标识是正确无误的,信息安全设备40便将该终端30的公钥返回给终端30。
在本实施例前述的一种实施方式中,由于认证客户端50在分配唯一账户号的过程中,认证客户端50使用了终端30的公钥进行认证,故认证客户端50可以建立终端30的公钥与为该终端30分配的唯一账户号的映射关系。终端30接收到信息安全设备40返回的公钥后,便可以利用该公钥去区块链上获取终端30的唯一账户号。即终端30将该公钥发送给认证客户端50,认证客户端50基于该公钥找到该公钥的映射关系,便可以确定出该终端30的唯一账户号,从而再将该终端30的唯一账户号返回给终端30。
需要指出的是,若认证客户端50在分配唯一账户号的过程中,采用的是前述中对认证信息直接认证的方式。那么认证客户端50在分配唯一账户号的过程中,还可以从终端30获取的终端30标识,并建立终端30标识与该终端30的唯一账户号的映射关系。这样,终端30的区块链客户端可以直接将携带有表明终端30身份的终端30标识的公钥获取请求发送给认证客户端50,以便认证客户端50基于终端30标识与该终端30的唯一账户号的映射关系,确定出终端30的唯一账户号,并将其返回给终端30。
换言之,若在分配唯一账户号的过程中采用了公钥进行认证,那么终端30后续则需要先从信息安全设备40上获取公钥,再利用公钥从认证客户端50上获取唯一账户号;而若在分配唯一账户号的过程中采用的是直接对认证信息进行认证,那么终端30后续则可以利用自身的终端30标识,直接从认证客户端50上获取唯一账户号。
还可以理解到的是,若认证客户端50还为终端30设置了动态序列号,那么在将唯一账户号返回给终端30的同时,认证客户端50还将该终端30的动态序列号一并返回给终端30。
本实施例中,终端30在获取到唯一账户号后,终端30的区块链客户端可以利用发起登录的应用程序的AppID以及唯一账户号来触发信息安全设备40生成认证信息,即终端30的区块链客户端可以生成并将携带有应用程序的AppID以及唯一账户号的认证请求发送给信息安全设备40,以便信息安全设备40基于AppID以及唯一账户号生成应用程序的用户ID。此外,认证请求还能够触发信息安全设备40计算终端30的私钥以及预先获得的参数,获得终端30的认证信息。
获得终端30的认证信息的示例性方式,预先获得的参数可以包括:信息安全设备40在接收到认证信息后随机生成一个参数比如随机生成的第二随机数,以及终端30的私钥。那么信息安全设备40基于该预设算法计算第二随机数,获得第一认证子信息;以及基于该预设算法计算第二随机数和终端30的私钥,获得第二认证子信息。显然,获得的第一认证子信息以及第二认证子信息则构成了该认证信息。
比如,若第二随机数为r,算法参数为G,第一认证子信息为R1,那么计算过程可以是:R1=r*G;又比如,若第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+k。
可以理解到,为提高安全性,终端30的区块链客户端发送的认证请求中除了有应用程序的AppID以及唯一账户号,其还可以携带终端30的区块链客户端随机生成一个参数比如随机生成的一个第一随机数,那么信息安全设备40基于预设算法对终端30的私钥、以及终端30的区块链客户端和信息安全设备40随机生成的参数进行零知识证明的计算,获得终端30的认证信息。
具体的,信息安全设备40可以基于预设算法计算第二随机数和算法参数,获得第一认证子信息;以及基于该预设算法计算第一随机数、第二随机数和终端30的私钥,获得第二认证子信息。
比如,若第二随机数为r,算法参数为G,第一认证子信息为R1,那么计算过程可以是:R1=r*G;又比如,若第一随机数为b、第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+bk。
值得注意的是,若终端30还获得的认证客户端50返回的动态序列号,终端30的区块链客户端发送的认证请求中除了有应用程序的AppID、唯一账户号以及第一随机数外,其还可以携带有终端30的动态序列号,以便利用信息安全设备40基于预设算法计算该动态序列号、第一随机数、第二随机数和终端30的私钥,获得第二认证子信息。比如,若动态序列号为Sequence、第一随机数为b、第二随机数为r、私钥为k、第二认证子信息为R2,那么计算过程可以是:R2=r+(b+Sequence)k。
信息安全设备40在生成用户ID以及认证信息后,信息安全设备40可以先将认证信息发送给终端30,以便终端30基于认证信息在区块链上认证通过后,信息安全设备40再将用户ID返回给终端30。
对应的,终端30在接收到信息安全设备40返回的认证信息后,终端30的区块链客户端便可以将认证信息发送到区块链上认证。
作为认证该认证信息的一种示例性方式,终端30的区块链客户端可以将该认证信息直接发送给区块链上的认证客户端50。然后,认证客户端50将该认证信息转发给区块链上各节点60,以便各节点60各自都直接对该认证信息进行认证。
具体的,每个节点60可以利用预设算法,对第一认证子信息进行计算,以及对第二认证子信息也进行计算。然后,每个节点60可以判断计算第一认证子信息所得的值与计算第二认证子信息所得的值是否相同。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
作为认证该认证信息的另一种示例性方式,终端30的区块链客户端还可以将该认证信息、终端30的区块链客户端生成的第一随机数以及终端30的公钥一并发送给区块链上的认证客户端50。然后,认证客户端50将该认证信息、第一随机数以及公钥转发给区块链上各节点60,以便各节点60各自利用第一随机数以及终端30的公钥对该认证信息进行零知识证明的认证。
具体的,每个节点60可以利用预设算法如非对称ECC椭圆曲线密码,计算第二认证子信息和该预设算法中的算法参数,以及计算第一认证子信息、公钥和第一随机数;比如,算法参数为G,第一认证子信息为R1,那么计算过程可以是:P1=R2*G;若第一随机数为b、公钥为Q、第二认证子信息为R2,那么计算过程可以是:P2=R1+bQ。然后,每个节点60可以判断计算第二认证子信息和算法参数所得的值与计算第一认证子信息、第一随机数和公钥所得的值是否相同,即判断P1是否等于P2。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
对应的,认证客户端50可以判断各节点60对第一认证子信息和第二认证子信息的认证是否通过。具体的,认证客户端50通过统计各节点60反馈的认证结果,便可以判断各节点60对认证信息的认证是否通过。例如,若认证客户端50确定所有认证结果中有超过阈值比例的认证结果表示认证通过,或者若认证客户端50确定获得认证通过的认证结果的数量已经超出阈值,那么认证客户端50判定各节点60对认证信息的认证通过,否则,则判定各节点60对认证信息的认证不通过。
当认证客户端50确定认证通过后,说明通过第一认证子信息和第二认证子信息已经表明了终端30的身份且终端30的身份是可信的,那么认证客户端50可以向终端30返回一个认证通过的信息。而当认证客户端50确定认证不通过后,说明终端30不确定的身份是不可信的,那么认证客户端50则向终端30返回认证失败的信息。
需要说的是,若信息安全设备40是利用终端30的动态序列号、第一随机数、第二随机数和终端30的私钥生成第二认证子信息。那么认证客户端50还可以将该终端30的动态序列号发送给各节点60,以便每个节点60都利用该终端30的动态序列号、第一随机数以及终端30的公钥对该认证信息进行零知识证明的认证。
具体的,每个节点60可以利用预设算法如非对称ECC椭圆曲线密码,计算第二认证子信息和该预设算法中的算法参数,以及计算第一认证子信息、终端30的动态序列号、终端30的公钥和第一随机数;比如,算法参数为G,第一认证子信息为R1,那么计算过程可以是:P1=R2*G;若动态序列号为Sequence、第一随机数为b、公钥为Q、第二认证子信息为R2,那么计算过程可以是:P2=R1+(b+Sequence)Q。然后,每个节点60可以判断计算第二认证子信息和算法参数所得的值与计算第一认证子信息、第一随机数和公钥所得的值是否相同,即判断P1是否等于P2。若相同,则生成用于表示认证通过的认证结果,并将其反馈给认证客户端50;否则,生成用于表示认证未通过的认证结果,并也将其反馈给认证客户端50。
进一步的,在认证客户端50在确认通过后,认证客户端50还可以将动态序列号更新,比如将动态序列号更新自加1,以便下次终端30发起认证时将该最新更新的动态序列号返回给终端30,以便终端30利用最新更新的动态序列号发起认证。显然,这种方式可以确保终端30每次发起认证的动态序列号都不同,且只有终端30每次都利用不同的动态序列号发起认证才能够认证通过,故有效避免了终端30利用同一动态序列号进行重复认证。
于本实施例中,终端30的区块链客户端在获取到认证客户端50返回的认证通过的信息后,终端30的区块链客户端可以将该认证通过的信息转发给信息安全设备40。由于该认证通过的信息表示终端30是可信的,那么信息安全设备40便可以基于AppID与唯一账户号生成用户ID,比如信息安全设备40可以将AppID与唯一账户号组合,以获得应用程序的用户ID。或者,信息安全设备40还可以将AppID与唯一账户号组合计算,以通过计算来获得应用程序的用户ID。然后,信息安全设备40便可以将应用程序的用户ID返回给终端30。而终端30的区块链客户端可以再将该用户ID返回给终端30的应用程序,以便终端30的应用程序利用该用户ID执行登录。
而终端30的区块链客户端在获取到认证客户端50返回的认证未通过的信息后,终端30的区块链客户端也可以将该认证未通过的信息转发给信息安全设备40。由于该认证未通过的信息表示终端30是不可信的,那么信息安全设备40基于该认证不通过的信息不仅不将应用程序的用户ID返回给终端30,还将该用户ID销毁。
请参阅图8,基于同一发明构思,本申请实施例提供了一种信息的认证装置400,应用于信息安全设备40,该信息的认证装置400包括:
数据收发模块410,用于接收终端发送的认证信息获取请求,其中,所述认证信息获取请求中至少携带有AppID以及区块链为所述终端分配的唯一账户号,所述认证信息获取请求为所述终端基于登录所述AppID对应的应用程序而发起的请求;
数据计算模块420,用于根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息;
所述数据收发模块410,还用于通过所述终端将所述认证信息发送到所述区块链上认证。
请参阅图9,基于同一发明构思,本申请实施例提供了一种信息的认证装置400,应用于信息安全设备40,该信息的认证装置400包括:
数据收发模块401,用于接收终端基于登录应用程序而发送的认证请求,其中,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据计算模块402,用于所述认证请求触发所述信息安全设备利用预先获得的参数向所述区块链发起对所述终端的认证;
所述数据收发模块401,还用于在所述认证通过时,计算所述AppID和所述唯一账户号生成所述用户ID,将所述用户ID返回所述终端。
请参阅图10,基于同一发明构思,本申请实施例提供了一种信息的认证装置300,应用于终端30,该信息的认证装置300包括:
数据发送模块310,用于当所述终端登录应用程序时,向信息安全设备发送认证请求,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块320,用于接收所述信息安全设备基于认证所述终端所需的参数而生成的认证信息;
所述数据发送模块310,还用于将所述认证信息发送到所述区块链上认证,并判断是否认证通过。
所述数据接收模块120,还用于若认证通过,获取所述信息安全设备生成的所述用户ID,其中,所述用户ID为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得。
请参阅图11,基于同一发明构思,本申请实施例提供了一种信息的认证装置300,应用于终端30,该信息的认证装置300包括:
数据发送模块301,用于当所述终端登录应用程序时,向信息安全设备发送认证信息获取请求,所述认证信息获取请求携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块302,用于接收所述信息安全设备返回的认证信息,其中,所述认证信息为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得;
所述数据发送模块301,还用于将所述认证信息发送到区块链上认证。
请参阅图12,基于同一发明构思,本申请实施例提供了一种信息的认证装置500,应用于部署在区块链上的认证客户端50,所述认证客户端50还与所述区块链中的各节点60连接,该信息的认证装置500包括:
数据收发模块510,用于接收终端发送的认证信息,其中,所述认证信息为所述终端基于登录应用程序而发送的信息,所述认证信息为通过计算所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;将所述认证信息发送给所述各节点;
数据处理模块520,用于判断所述各节点对所述认证信息的认证是否通过;若通过,基于所述认证信息生成所述应用程序的用户ID;
所述数据收发模块510,还用于将所述用户ID返回给所述终端。
请参阅图13,基于同一发明构思,本申请实施例提供了一种信息的认证装置500,应用于部署在区块链上的认证客户端50,所述认证客户端50还与所述区块链中的各节点60连接,该信息的认证装置500包括:
数据收发模块501,用于接收终端基于登录应用程序而发送的认证信息,其中,所述认证信息为通过计算与所述应用程序的AppID无关的参数而获得;将所述认证信息发送给所述各节点;
数据处理模块502,用于判断所述各节点对所述认证信息的认证是否通过;
若通过,所述数据收发模块501,还用于将认证通过告知所述终端,以使所述终端从离线的设备上获取所述应用程序的用户ID,并基于所述用户ID登录所述应用程序。
请参阅图14,基于同一发明构思,本申请实施例提供了一种信息的认证装置600,应用于区块链上各节点中的任一个节点60,所述各节点60还与部署在所述区块链上的认证客户端50连接,信息的认证装置600包括:
数据收发模块610,用于接收所述认证客户端转发的认证信息,其中,所述认证信息为终端登录应用程序而向所述认证客户端发送的信息,且所述认证信息为通过计算所述应用程序的AppID以及所述区块链为所述终端分配的唯一账户号而获得;
数据处理模块620,用于对所述认证信息进行认证,生成认证结果;
所述数据收发模块610,还用于向所述认证客户端发送所述认证结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请一些实施例还提供了一种计算机可执行的非易失的程序代码的计算机可读储存介质,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上存储有程序代码,该程序代码被计算机运行时执行上述任一实施方式的信息的认证方法的步骤。
本申请实施例所提供的信息的认证方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
综上所述,本申请实施例提供了一种信息的认证方法、装置、系统及存储介质。通过独立的信息安全设备来将应用程序的AppID以及终端唯一账户号计算,可以确保用户的登录信息的安全。而通过将计算所获得的认证信息发送到区块链上认证,链上的认证信息则是通过计算掩藏起来的信息,那么AppID便不会泄露到链上,这样别人只能知道某个账号在某个时候登录了一个应用,但是却不会知道登录的是哪个应用,故在确保用户的登录信息的安全的基础上,还可以避免用户的隐私泄露。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (26)
1.一种信息的认证方法,其特征在于,应用于信息安全设备,所述方法包括:
接收终端发送的认证信息获取请求,其中,所述认证信息获取请求中至少携带有AppID以及区块链为所述终端分配的唯一账户号,所述认证信息获取请求为所述终端基于登录所述AppID对应的应用程序而发起的请求;
根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息;
通过所述终端将所述认证信息发送到所述区块链上认证。
2.根据权利要求1所述的信息的认证方法,其特征在于,所述信息安全设备在接收到所述认证信息获取请求后生成一个参数,所述认证信息获取请求中携带的信息还包括所述终端生成的参数,根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息,包括:
计算所述AppID、所述唯一账户号,以及计算预设的所述终端的私钥、所述终端和所述信息安全设备生成的参数,获得所述认证信息。
3.根据权利要求2所述的信息的认证方法,其特征在于,所述终端生成的参数包括第一随机数和/或设置的动态序列号所述终端生成的参数包括第一随机数和/或设置的动态序列号,所述信息安全设备生成的参数为第二随机数,计算所述AppID、所述唯一账户号,以及计算预设的所述终端的私钥、所述终端和所述信息安全设备生成的参数,获得所述认证信息,具体包括:
利用预设算法计算所述第二随机数获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息;以及,利用所述预设算法计算所述第二随机数、所述AppID、所述唯一账户号,获得计算信息;其中,所述认证信息包括:所述第一认证子信息、所述第二认证子信息以及所述计算信息。
4.根据权利要求3所述的信息的认证方法,其特征在于,利用预设的预设算法计算获得第二认证子信息,包括:
利用所述预设算法对所述动态序列号、所述第一随机数、所述第二随机数和所述私钥进行计算,获得所述第二认证子信息。
5.根据权利要求1所述的信息的认证方法,其特征在于,在接收终端发送的认证信息获取请求之前,所述方法还包括:
接收终端发送的初始认证信息获取请求,根据预设算法对初始认证信息获取请求中携带的参数、预设的所述终端的私钥以及所述信息安全设备预先生成的参数计算,获得初始认证信息;
通过所述终端将所述初始认证信息发送到所述区块链上认证,以使所述区块链在对所述初始认证信息认证通过后为所述终端分配所述唯一账户号,并将所述唯一账户号返回给所述终端。
6.根据权利要求5所述的信息的认证方法,其特征在于,所述信息安全设备生成的参数为在接收到所述初始认证信息获取请求后生成的第二随机数,所述初始认证信息获取请求中携带的参数为所述终端生成的第一随机数;根据预设算法对初始认证信息获取请求中携带的参数、预设的所述终端的私钥以及所述信息安全设备预先生成的参数计算,获得初始认证信息,包括:
利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息,其中,所述初始认证信息包括:所述第一认证子信息和所述第二认证子信息。
7.一种信息的认证方法,其特征在于,应用于终端,所述方法包括:
当所述终端登录应用程序时,向信息安全设备发送认证信息获取请求,所述认证信息获取请求携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
接收所述信息安全设备返回的认证信息,其中,所述认证信息为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得;
将所述认证信息发送到区块链上认证。
8.根据权利要求7所述的信息的认证方法,其特征在于,在将所述认证信息发送到区块链上认证之后,所述方法还包括:
获得所述区块链返回的所述应用程序的用户ID,其中,所述用户ID为所述区块链基于对所述认证信息认证通过而生成;
利用所述用户ID登录所述应用程序。
9.根据权利要求8所述的信息的认证方法,其特征在于,在向信息安全设备发送认证信息获取请求之前,所述方法还包括:
从所述区块链上获取所述唯一账户号。
10.根据权利要求9所述的信息的认证方法,其特征在于,从所述区块链上获取所述唯一账户号,包括:
向所述信息安全设备发送公钥获取请求;
接收所述信息安全设备基于所述公钥获取请求而返回的所述终端的公钥;
利用所述公钥,从所述区块链上获取所述唯一账户号。
11.一种信息的认证方法,其特征在于,应用于信息安全设备,所述方法包括:
接收终端基于登录应用程序而发送的认证请求,其中,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
所述认证请求触发所述信息安全设备利用预先获得的参数向所述区块链发起对所述终端的认证;
在所述认证通过时,计算所述AppID和所述唯一账户号生成所述用户ID,将所述用户ID返回所述终端。
12.根据权利要求11所述的信息的认证方法,其特征在于,利用预先获取的参数向所述区块链发起对所述终端的认证,包括:
计算所述终端的私钥以及所述参数,获得所述终端的认证信息;
通过所述终端将所述认证信息发送到所述区块链上认证。
13.根据权利要求12所述的信息的认证方法,其特征在于,所述参数包括:所述终端生成的第一随机数和/或设置的动态序列号、所述信息安全设备在接收到所述认证请求后生成的第二随机数;计算所述终端的私钥以及所述参数,获得所述终端的认证信息,包括:
利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息,其中,所述认证信息包括:所述第一认证子信息和所述第二认证子信息。
14.根据权利要求13所述的信息的认证方法,其特征在于,利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得所述第二认证子信息,包括:
利用所述预设算法对所述动态序列号、所述第一随机数、所述第二随机数和所述私钥计算,获得所述第二认证子信息。
15.根据权利要求11所述的信息的认证方法,其特征在于,在接收终端基于登录应用程序而发送的认证请求之前,所述方法还包括:
计算所述终端的私钥以及预先获得的初始参数,获得初始认证信息;
通过所述终端将所述初始认证信息发送到所述区块链认证,以使所述区块链在对所述初始认证信息认证通过后为所述终端分配所述唯一账户号,并将所述唯一账户号返回给所述终端。
16.根据权利要求15所述的信息的认证方法,其特征在于,所述初始参数包括:所述终端生成的第一随机数、所述信息安全设备生成的第二随机数;计算所述终端的私钥以及预先获得的初始参数,获得初始认证信息,包括:
利用所述预设算法计算所述第二随机数,获得第一认证子信息;利用所述预设算法计算所述第一随机数、所述第二随机数和所述私钥,获得第二认证子信息;其中,所述初始认证信息包括:所述第一认证子信息和所述第二认证子信息。
17.一种信息的认证方法,其特征在于,应用于终端,所述方法包括:
当所述终端登录应用程序时,向信息安全设备发送认证请求,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
接收所述信息安全设备基于认证所述终端所需的参数而生成的认证信息;
将所述认证信息发送到所述区块链上认证,并判断是否认证通过;
若认证通过,获取所述信息安全设备生成的所述用户ID,其中,所述用户ID为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得。
18.根据权利要求17所述的信息的认证方法,其特征在于,在所述终端上的应用程序需要登录之后,在向信息安全设备发送认证请求之前,所述方法还包括:
从所述区块链上获取所述唯一账户号。
19.根据权利要求18所述的信息的认证方法,其特征在于,从所述区块链上获取所述唯一账户号,包括:
向所述信息安全设备发送公钥获取请求;
接收所述信息安全设备基于所述公钥获取请求而返回的所述终端的公钥;
利用所述公钥,从所述区块链上获取所述唯一账户号。
20.一种信息的认证装置,其特征在于,应用于信息安全设备,所述装置包括:
数据收发模块,用于接收终端发送的认证信息获取请求,其中,所述认证信息获取请求中至少携带有AppID以及区块链为所述终端分配的唯一账户号,所述认证信息获取请求为所述终端基于登录所述AppID对应的应用程序而发起的请求;
数据计算模块,用于根据认证信息获取请求中携带的信息计算获得所述终端请求的认证信息;
所述数据收发模块,还用于通过所述终端将所述认证信息发送到所述区块链上认证。
21.一种信息的认证装置,其特征在于,应用于信息安全设备,所述装置包括:
数据收发模块,用于接收终端基于登录应用程序而发送的认证请求,其中,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据计算模块,用于所述认证请求触发所述信息安全设备利用预先获得的参数向所述区块链发起对所述终端的认证;
所述数据收发模块,还用于在所述认证通过时,计算所述AppID和所述唯一账户号生成所述用户ID,将所述用户ID返回所述终端。
22.一种信息的认证装置,其特征在于,应用于终端,所述装置包括:
数据发送模块,用于当所述终端登录应用程序时,向信息安全设备发送认证信息获取请求,所述认证信息获取请求携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块,用于接收所述信息安全设备返回的认证信息,其中,所述认证信息为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得;
所述数据发送模块,还用于将所述认证信息发送到区块链上认证。
23.一种信息的认证装置,其特征在于,应用于终端,所述装置包括:
数据发送模块,用于当所述终端登录应用程序时,向信息安全设备发送认证请求,所述认证请求中携带有所述应用程序的AppID以及区块链为所述终端分配的唯一账户号;
数据接收模块,用于接收所述信息安全设备基于认证所述终端所需的参数而生成的认证信息;
所述数据发送模块,还用于将所述认证信息发送到所述区块链上认证,并判断是否认证通过;
所述数据接收模块,还用于若认证通过,获取所述信息安全设备生成的所述用户ID,其中,所述用户ID为所述信息安全设备通过计算所述AppID以及所述唯一账户号而获得。
24.一种信息的认证系统,其特征在于,包括终端、与所述终端连接的信息安全设备;
所述信息安全设备,用于执行如权利要求1-6任一权项所述的信息的认证方法;
所述终端,用于执行如权利要求7-10任一权项所述的信息的认证方法。
25.一种信息的认证系统,其特征在于,包括终端、与所述终端连接的信息安全设备;
所述信息安全设备,用于执行如权利要求11-16任一权项所述的信息的认证方法;
所述终端,用于执行如权利要求17-19任一权项所述的信息的认证方法。
26.一种具有计算机可执行的非易失程序代码的计算机可读存储介质,其特征在于,所述程序代码使所述计算机执行如权利要求1-10任一权项所述的信息的认证方法或者执行如权利要求11-19任一权项所述的信息的认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390375.2A CN111193736B (zh) | 2019-12-30 | 2019-12-30 | 一种信息的认证方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390375.2A CN111193736B (zh) | 2019-12-30 | 2019-12-30 | 一种信息的认证方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193736A true CN111193736A (zh) | 2020-05-22 |
CN111193736B CN111193736B (zh) | 2020-12-29 |
Family
ID=70707849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911390375.2A Active CN111193736B (zh) | 2019-12-30 | 2019-12-30 | 一种信息的认证方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193736B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106534160A (zh) * | 2016-12-02 | 2017-03-22 | 江苏通付盾科技有限公司 | 基于区块链的身份认证方法及系统 |
CN107154852A (zh) * | 2017-04-18 | 2017-09-12 | 杭州趣链科技有限公司 | 一种面向区块链应用的移动端身份验证方法 |
CN108347428A (zh) * | 2017-12-29 | 2018-07-31 | 北京世纪互联宽带数据中心有限公司 | 基于区块链的应用程序的注册系统、方法和装置 |
CN109005186A (zh) * | 2018-08-20 | 2018-12-14 | 杭州复杂美科技有限公司 | 一种隔离用户身份信息的方法、系统、设备和存储介质 |
CN109547404A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 数据的获取方法及服务器 |
US20190147431A1 (en) * | 2017-11-16 | 2019-05-16 | Blockmason Inc. | Credit Protocol |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357640B (zh) * | 2016-09-18 | 2019-11-08 | 江苏通付盾科技有限公司 | 基于区块链网络的身份认证方法、系统及服务器 |
CN106779716B (zh) * | 2016-11-21 | 2021-06-04 | 江苏通付盾区块链科技有限公司 | 基于区块链账户地址的认证方法、装置及系统 |
CN109767215A (zh) * | 2018-12-29 | 2019-05-17 | 杭州趣链科技有限公司 | 一种在线的基于多种私钥存储方式的区块链身份认证方法 |
CN110309663B (zh) * | 2019-06-25 | 2023-03-03 | 湖南搜云网络科技股份有限公司 | 基于区块链的隐私认证方法及系统 |
-
2019
- 2019-12-30 CN CN201911390375.2A patent/CN111193736B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106534160A (zh) * | 2016-12-02 | 2017-03-22 | 江苏通付盾科技有限公司 | 基于区块链的身份认证方法及系统 |
CN107154852A (zh) * | 2017-04-18 | 2017-09-12 | 杭州趣链科技有限公司 | 一种面向区块链应用的移动端身份验证方法 |
US20190147431A1 (en) * | 2017-11-16 | 2019-05-16 | Blockmason Inc. | Credit Protocol |
CN108347428A (zh) * | 2017-12-29 | 2018-07-31 | 北京世纪互联宽带数据中心有限公司 | 基于区块链的应用程序的注册系统、方法和装置 |
CN109005186A (zh) * | 2018-08-20 | 2018-12-14 | 杭州复杂美科技有限公司 | 一种隔离用户身份信息的方法、系统、设备和存储介质 |
CN109547404A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 数据的获取方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111193736B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114788226B (zh) | 用于建立分散式计算机应用的非托管工具 | |
US20190356472A1 (en) | Blockchain-implemented method and system | |
CN108880822B (zh) | 一种身份认证方法、装置、系统及一种智能无线设备 | |
EP3725026A1 (en) | Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner | |
KR101523132B1 (ko) | 멀티미디어 통신 시스템에서의 보안 통신을 위한 계층적 키 관리 | |
KR101982237B1 (ko) | 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템 | |
US20140068739A1 (en) | Method and system for verifying an access request | |
JP2006513641A (ja) | 暗号鍵を入れ替えるためのシステム、装置及び方法 | |
US9230092B1 (en) | Methods and apparatus for obscuring a valid password in a set of passwords in a password-hardening system | |
KR20150092719A (ko) | 증명서 생성 디바이스 및 방법 | |
CN113626802B (zh) | 一种设备密码的登录验证系统及方法 | |
KR20170045134A (ko) | 비대칭 키 유도를 위한 방법 및 시스템 | |
WO2022256181A1 (en) | Method and apparatus for utilizing off-platform-resolved data as input to code execution on a decentralized platform | |
CN113709115A (zh) | 认证方法及装置 | |
Tsai et al. | Secure anonymous authentication scheme without verification table for mobile satellite communication systems | |
CN108449568A (zh) | 用于视频会议的身份认证方法及装置 | |
CN110519222B (zh) | 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统 | |
JP2007318806A (ja) | 移動ネットワーク環境におけるデータトラフィックの保護方法 | |
CN115473655A (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN108769038B (zh) | 基于区块链的数据处理方法及装置 | |
CN114417309A (zh) | 一种双向身份验证方法、装置、设备及存储介质 | |
KR102413497B1 (ko) | 보안 전자 데이터 전송을 위한 시스템 및 방법 | |
CN111193736B (zh) | 一种信息的认证方法、装置、系统及存储介质 | |
CN112242976B (zh) | 一种身份认证方法及装置 | |
CN112437158A (zh) | 一种基于电力物联网的网络安全身份验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |