基于区块链的多节点认证方法及装置与流程

文档序号:25956237发布日期:2021-07-20 17:15阅读:335来源:国知局
基于区块链的多节点认证方法及装置与流程

在本说明书中提出一种基于区块链技术的终端认证方法及装置。



背景技术:

在网上交易中虚拟货币使用基于区块链的数字虚拟货币,其中比特币(bitcoin)最具代表性且使用最为广泛。众所周知,比特币是由笔名为中本聪的日本程序设计师开发的,并且与现有的法定货币(fiatcurrency)不同,使用p2p(peer-topeer)技术,以在没有中央权限或银行的情况下运营。区块链技术被应用于这些虚拟货币,以防止任意生产和复制货币。

区块链技术是一种分散型数据存储技术,是将数据存储在块中以链的形式连接,并将其同时复制并存储于众多计算机中。也被称为公共交易账簿。在中央集中型服务器中不保存交易记录,将交易内容发送给所有参与交易的用户,并且所有交易参与者在每次交易时会共享信息并对信息进行核对,从而无法伪造或者更改数据。



技术实现要素:

[要解决的技术问题]

在与本人认证有关的现有技术中,本人认证使用账号和密码,当账号和密码泄露时无法执行正常的本人认证功能。

因此,最近为弥补所述问题而使用多种本人认证方式。例如,移动电话本人认证、通过电子证书的本人认证、利用一次性密码(onetimepassword,otp)的本人认证或者利用信用卡的本人认证等。

然而,虽然电子证书是安全等级较高的认证协议,但不容易稳定的携带电子证书,并且移动电话本人认证是利用认证号认证拥有移动电话的方式,存在容易受短信诈骗等的问题。

同时,由于作为敏感信息的身份证号、连接信息(connectinginformation,ci)、ipin等个人识别信息不管何种形式都会在网络上传输,因此具有黑客入侵的风险。

因此,在本说明书中,为了使上述本人认证方式的问题最小化的同时有效提高安全性,新提出一种基于区块链技术的本人认证方法。

[技术方案]

根据本发明的一个实施例,区块链认证模块的认证方法可包括以下步骤:接收对终端的认证准备请求;随机选择将要认证所述终端的多个节点,以构成通道,并且生成分配于所述通道中的通道密钥;生成包括有用于所述终端认证的认证对比数据的块,其中所述块还包括分配于所述块的块密钥;向多个所述节点共同传输所述通道密钥和所述块密钥,并分开传输所述认证对比数据;向所述终端传输包括有所述通道密钥和所述块密钥的认证准备完成信息;从所述终端接收包括有所述通道密钥、所述块密钥和由所述终端请求认证的认证对象数据的认证请求信息;向多个所述节点分开传输所述认证对象数据;从多个所述节点接收分开传输的所述认证对比数据与分开传输的所述认证对象数据的对比结果;以及基于所述接收的对比结果判断所述终端的认证成功与否。

并且,每个所述认证对比数据和所述认证对象数据可被区分为多个类别。

并且,所述分开传输所述认证对比数据的步骤可包括以下步骤:将所述认证对比数据按类别分开向相互不同的节点传输。

并且,所述分开传输所述认证对象数据的步骤可包括以下步骤:将所述认证对象数据按类别分开向相互不同的节点传输,并且按与传输至各节点的认证对比数据相同的类别传输。

并且,多个所述类别可包括:在所述终端注册的用户指纹、虹膜、图案、密码、账号、电子邮件地址、所述终端唯一的序列号、mac地址、蓝牙地址、wifissid、uuid和/或电话号码。

并且,所述判断终端的认证成功与否的步骤可包括以下步骤:当从超过预设比率的节点接收分开传输的所述认证对比数据与分开传输的所述认证对象数据相匹配的结果时,判断所述终端的认证成功。

并且,所述预设比率可被设定为多个所述节点的所有数量的50%。

并且,所述方法进一步包括以下步骤:当对所述终端的认证成功与否判断完成时,删除所述通道、所述通道密钥和所述块。

并且,根据本发明的另一个实施例,区块链认证模块可包括:通信单元,执行通信;存储单元,存储数据;以及处理器,控制所述通信单元和所述存储单元,其中,所述处理器,接收对终端的认证准备请求,随机选择将要认证所述终端的多个节点,以构成通道,并且生成分配于所述通道的通道密钥,生成包括有用于所述终端认证的认证对比数据的块,其中所述块还包括分配于所述块的块密钥,向多个所述节点共同传输所述通道密钥和所述块密钥,并分开传输所述认证对比数据,向所述终端传输包括有所述通道密钥和所述块密钥的认证准备完成信息,从所述终端接收包括有所述通道密钥、所述块密钥和由所述终端请求认证的认证对象数据的认证请求信息,向多个所述节点分开传输所述认证对象数据,从多个所述节点接收分开传输的所述认证对比数据与分开传输的所述认证对象数据的对比结果,基于接收到的所述对比结果来判断所述终端的认证成功与否。

并且,每个所述认证对比数据和所述认证对象数据可区分为多个类别。

并且,当分开传输所述认证对比数据时,所述处理器可将所述认证对比数据按类别向相互不同的节点分开传输。

并且,当分开传输所述认证对象数据时,所述处理器可将所述认证对象数据按所述类别向所述相互不同的节点分开传输,并且按与传输至各节点的认证对比数据相同的类别传输。

并且,多个所述类别可包括:在所述终端注册的用户指纹、虹膜、图案、密码、账号、电子邮件地址、所述终端唯一的序列号、mac地址、蓝牙地址、wifissid、uuid和/或电话号码。

并且,当从超过预设比率的节点接收分开传输的所述认证对比数据与分开传输的所述认证对象数据相匹配的结果时,所述处理器可将判断所述终端的认证成功。

并且,所述预设比率可被设定为多个所述节点的所有数量的50%。

并且,当对所述终端的认证成功与否判断完成时,所述处理器可删除所述通道、所述通道密钥和所述块。

[有益效果]

根据本发明的一个实施例,认证是通过多节点而不是通过认证模块/服务器执行,因此减少认证模块/服务器的系统复杂度和认证开销。

并且,根据本发明的一个实施例,通过多节点执行认证,因此安全性极高,并且认证数据的伪造/更改难,因此具有黑客入侵的风险最小化的效果。

并且,根据本发明的一个实施例,由于导入新的认证方式,产生进一步提高认证方式的灵活性的效果。

附图说明

图1是示意示出根据本发明的一个实施例的认证方式的概念图。

图2是例示根据本发明的一个实施例的基于区块链的认证方法的流程图。

图3是例示根据本发明的一个实施例的基于区块链的认证方法的流程图。

图4是例示根据本发明的一个实施例的在试图通过网络服务/网站认证时的基于区块链的认证方法的流程图。

图5是例示根据本发明的一个实施例的在试图通过认证服务器认证时的基于区块链的认证方法的流程图。

图6是例示根据本发明的一个实施例的认证服务器(或者区块链认证模块)的构成的框图。

附图标记

610:处理器

620:通信单元

630:存储单元

具体实施方式

以下说明的技术可进行多种变更,并且可具有多种实施例,将特定实施例例示在附图中并进行详细说明。然而,并不是要将以下说明的技术限定于特定的实施方式,应理解为所述技术包括在以下说明的技术思想和技术范围内的所有变更、等同物以及替代物。

第一、第二、a、b等术语可用于说明多种组件,但该组件并不受所述术语的限制,所述术语仅用于将一个组件区分于另一个组件。例如,在不脱离以下说明的技术的权利范围的情况下,第一组件可以命名为第二组件,类似地,第二组件也可以被命名为第一组件。“和/或”术语包括多个相关记载的项目的组合或者多个相关记载的项目中的任何一个项目。

应理解为,除非在文本中另外明确的解释,否则在本说明书中使用的术语中单数的表述包括复数的含义,“包括”等术语表示特征、数量、步骤、操作、组件、部件或者其组合的存在,并不排除一个或一个以上的其他特征或者数量、步骤、操作、组件、部件或者其组合的存在可能性或者附加可能性。

在对附图进行详细说明之前,需要明确,在本说明书中对组件的区分仅仅是按各组件所负责的主要功能区分的。即,在以下将要说明的两个以上的组件可以结合为一个组件或者一个组件按更细分化的功能分化为两个以上。另外,在以下将要说明的每个组件,除了自身所负责的主要功能以外,可额外的执行在其他组件所负责的功能中一部分或者全部的功能,当然,在每个组件所负责的主要功能中一部分功能也可由其他组件全面负责来执行。

另外,在执行方法或者操作方法时,形成所述方法的各过程可以按与明确记载的顺序不同的顺序发生,除非在文本中明确记载特定顺序。即,每个过程可以按与明确记载的顺序相同的顺序发生,也可以实质性上同时执行,也可以以相反的顺序执行。

图1是示意示出根据本发明的一个实施例的认证方式的概念图。

参照图1,在本说明书中所提出的基于区块链的认证方式系统大致由(基于区块链)认证服务器/模块/系统/装置(例如,业务服务器/模块/系统/装置,以下简称为“认证服务器”)103、向相应认证服务器请求认证的节点(例如,用户终端)102、直接执行认证的多个节点(例如,当前连接认证服务器中的其他用户终端)101-1~101-n构成。

终端102可向认证服务器请求认证,接收认证请求的认证服务器103可随机选择当前连接的多个节点中的至少一部分101-1~101-n,并生成用于认证相应终端102的临时区块链通道。这样生成的临时区块链通道的节点101-1~101-n可分别从认证服务器103接收用于终端认证的数据和从终端12接收请求认证的数据。进一步的,临时区块链通道的节点101-1~101-n可通过相互对比所述两种数据来执行认证,并将对比结果传输至认证服务器103。

根据所述本发明,由于认证是通过多节点101-1~101-n而不是认证服务器103执行,因此减少认证服务器103的系统复杂度和认证开销。另外,由于通过多节点101-1~101-n执行认证,因此安全性极高,并且认证数据的伪造/更改难,因此对认证请求终端的黑客入侵风险被最小化。

图2是例示根据本发明的一个实施例的基于区块链的认证方法的流程图。

参照图2,基于区块链的认证方法可大致分为:认证准备步骤(s201)、认证步骤(s202)和认证完成步骤(s203)。

在认证准备步骤(s201)中,终端可向认证服务器请求认证的准备,接收请求的认证服务器执行用于终端认证的准备步骤。更详细的,在认证准备步骤中,认证服务器随机选择用于终端认证的多个节点,并构成临时通道,并向该临时通道分开传输用于终端认证的数据(以下称为,认证对比数据)。其中,用于认证的数据可以是事先终端加入认证服务器时所注册的终端的认证数据,例如,可以是在终端注册的用户指纹、虹膜、图案、密码、账号、电子邮件地址、所述终端唯一的序列号、介质访问控制(mediaaccesscontrol,mac)地址、蓝牙地址、wifi服务集标识符(servicesetidentifier,ssid)、通用唯一识别码(universallyuniqueidentifier,uuid)和/或电话号码等。

当这些认证准备步骤完成时,认证服务器可从请求认证的终端接收作为认证的对象的数据(以下简称为,认证对象数据),并可将其以与认证对比数据相同的方式/类别分开传输至临时通道的节点(s202)。临时通道的节点可将认证对比数据和认证对象数据进行相互对比,并将对比结果传输至认证服务器(s202)。

认证服务器可基于接收的对比结果来完成终端的认证(s203)。

当认证成功时,认证服务器可允许终端的连接,当认证失败时,认证服务器可以拒绝终端的连接。

参照图3,在以下更详细的说明认证准备步骤和认证步骤。

图3是例示根据本发明的一个实施例的基于区块链的认证方法的流程图。显而易见,本流程图的执行主体是为了执行终端的认证而被设计的“认证服务器”,可通过认证模块/装置来实现。

参照图3,首先,认证服务器可从终端接收认证准备请求(s301)。

然后,认证服务器可随机选择将要认证所述终端的多个节点,并临时构成区块链通道,并且生成用于识别该通道的通道密钥(s302)。

然后,认证服务器可生成包括用于终端认证的认证对比数据的块(s303)。在这种情况下,认证服务器可生成用于识别生成的块的块密钥,并且将所述块密钥包括在块中。

然后,认证服务器可向包括在通道的多个节点“共同”传输通道密钥和块密钥,“分开”传输认证对比数据(s304)。即,认证服务器可向通道的节点相同地传输整个通道密钥和块密钥,而可将认证对比数据分割成通道的节点数量的程度,将分割的数据向彼此不同的节点传输。其结果,通道的节点仅接收认证对比数据中的一部分,并且节点所接收的数据可能相互不同。

认证对比数据可以以多种实施例分割,在本说明书中提出认证对比数据以“认证类别(或者属性)”为基准分割的实施例。其中认证类别可以是在终端中注册的用户指纹、虹膜、图案、密码、账号、电子邮件地址、所述终端唯一的序列号、mac地址、蓝牙地址、wifissid、uuid和/或电话号码等。即,节点可分别接收/存储相互不同的认证类别的认证对比数据,并将其用于与认证对象数据进行对比。在这种情况下,节点可将认证对象数据与通道密钥和/或块密钥一起存储。这是为了随后能够区分将接收的认证对象数据与何种认证对比数据进行对比。

然后,认证服务器可将包括通道密钥和块密钥的认证准备完成信息传输给终端,从而完成认证准备步骤(s305)。

然后,认证服务器可从终端接收包括通道密钥、块密钥和请求认证的终端的认证对象数据的认证请求信息(s306)。

然后,认证服务器可通过接收的通道密钥识别哪个通道是认证终端的通道,并将接收的认证对象数据向该通道分开传输(s307)。在这种情况下,认证服务器与在s304步骤中传输认证对比数据的方式一样,可按类别分开传输认证对象数据。特别是,认证服务器可向与在s304步骤中向各节点传输的类别相同的类别分开传输认证对象数据。认证服务器可将通道密钥和/或块密钥与认证对象数据一起传输,并且节点可通过所述通道密钥和/或块密钥来识别/识读自身需要对比的认证对比数据是哪些。

然后,认证服务器从通道的节点接收分开传输的认证对比数据与分开传输的认证对象数据的对比结果(s308),基于接收的对比结果可判断终端的认证成功与否(s309)。例如,当接收到从包括于通道中的整个节点中超过预设比率的节点分开传输的认证对比数据和分开传输的认证对象数据相匹配的结果时,认证服务器可判断终端的认证成功。例如,预设比率可设定为50%,显而易见,如果需要强化认证安全级别时,则可以设定为更高的比率。

尽管未在本流程图中示出,但当认证完成时,认证服务器可将通道、通道密钥和块全部删除。根据本发明,每当终端的认证完成时,由于用于认证的信息/数据均被废弃,并且按照不同的认证生成新的通道,因此具有安全等级非常高的效果。

以下具体例示,应用于实际服务时的基于区块链的认证服务实施例。在以下实施例中,之前说明的“认证服务器”可分为认证服务器和区块链认证模块。

图4是例示根据本发明的一个实施例的在试图通过网络服务/网站认证时的基于区块链的认证方法的流程图。

在本流程图中,“区块链认证模块”可相当于之前在图1至图3中所述的“认证服务器”,并且本流程图的认证服务器可相当于最终判断认证成功与否的服务器。因此,本流程图的认证服务器和区块链认证模块也可以统称为图1至图3的“认证服务器”。另外,在本流程图中,用虚线表示的步骤作为选择性应用的步骤,可根据实施例进行删除。另外,在本流程图中,假设用户通过网站/服务已请求本人/终端认证。

1.首先,网络客户端可向认证服务器请求特定用户/终端的认证准备。

2.认证服务器可向区块链认证模块请求基于区块链的认证准备。

3-9.区块链认证模块可生成并存储通道、通道密钥、块和块密钥,并传输给通道的节点。在这种情况下,如上所述,区块链认证模块向节点共同传输通道密钥和块密钥,而分开传输认证对比数据(按类别)。接收此的节点可存储所接收的信息,随后用于用户/终端认证。对于本步骤的更详细的说明如图1至图3所述,因此省略重复的说明。

10-12.完成认证准备的区块链认证模块可将包括通道密钥和块密钥的认证开始推送信息向请求认证的用户终端的应用客户端传输。另外,区块链认证模块可向认证服务器返还区块链认证准备请求结果,并且认证服务器可将其传输至网络客户端。

13-14.网络客户端可向认证服务器请求网络套接字连接,认证服务器根据该请求连接网络套接字,并存储通道密钥。

15-17.应用客户端(即,用户终端)可以对通道密钥、块密钥和uuid进行加密,并且可通过认证服务器将包括加密的信息和认证对象数据的区块链认证请求信息传输至区块链认证模块。

18-22.区块链认证模块将接收的通道密钥、块密钥和uuid进行解密,并在本地对其进行验证。即,判断是否存储/准备好对应于解密信息的通道、块和/或认证对比数据,从而能够本地判断当前基于区块链的认证是否可行,当判断不可以认证时,则可将验证结果重新返还至应用客户端,以拒绝认证请求。当判断可以认证时,区块链认证模块可将包括通道密钥、块密钥和/或认证对象数据的验证推送信息传输至对应于该通道密钥的通道的节点。在这种情况下,区块链认证模块将认证对象数据分开传输给节点,且向与认证对比数据相同的类别分开传输,这与上述的内容相同。

23.节点可将分开接收的认证对比数据和认证对象数据相互对比,从而执行认证操作。例如,节点可通过判断作为认证对比数据接收的第一指纹数据与作为认证对象数据接收的第二指纹数据相互匹配与否来执行认证操作。

24-27.通道节点可通过认证服务器将认证结果传输至区块链认证模块。当区块链认证模块从超过预设比率的节点接收认证对比数据与认证对象数据相互匹配的结果(即,成功结果)时,则可认为认证成功。其中,预设比率可被设定为所有通道节点数的50%。

28.区块链认证模块可将认证结果传输至应用客户端。

29-31.应用客户端可将认证完成应用编程接口(applicationprogramminginterface,api)调用到认证服务器,并且认证信息可将关于认证成功与否的信息传输到网络客户端。

31-35.如果网络客户端接收认证成功的信息,可将用于最终验证所述信息的验证api调用到认证服务器。为此,传输至认证服务器的api调用信息中可包括认证成功或者认证失败相关的属性信息。此后,认证服务器可基于接收的api调用信息来最终判断认证的成功与否,对通道密钥、会话id、验证有效时间和ip进行验证,删除用于认证的通道。进而,认证服务器可将认证结果返回至网络客户端。

图5是例示根据本发明的一个实施例的在试图通过认证服务器认证时的基于区块链的认证方法的流程图。

在本流程图中,“区块链认证模块”可相当于在图1至图3中所述的“认证服务器”,并且本流程图的认证服务器可相当于最终判断认证成功与否的服务器。因此,本流程图的认证服务器和区块链认证模块可统称为图1至图3的“认证服务器”。另外,在本流程图中,用虚线表示的步骤作为选择性应用的步骤,可根据实施例被删除。另外,在本流程图中,假设用户直接将本人/终端认证向认证服务器请求。

本实施例是在图4的实施例中仅排除了网络客户端的实施例,可认为是仅排除对网络客户端的相互作用步骤。因此,对图4的每个步骤的说明也可同样适用于本流程图,因此对每个步骤的说明用图4的说明代替,并且省略重复的说明。

图6是例示根据本发明的一个实施例的认证服务器(或者区块链认证模块)的构成的框图。

参照图6,认证服务器(或者区块链认证模块)可包括处理器610、通信单元620以及存储单元630。

通信单元620可使用至少一个有线/无线通信协议来执行通信。存储单元630可存储数据/信息。

处理器610可控制通信单元620和存储单元630,并且可利用此来自主执行在图1至图5中所述的操作/步骤。因此,之前所述的认证服务器(或者区块链认证模块)还可用处理器代替来进行说明。

为了便于说明,对每个附图进行分开说明,但也可以以合并每个附图中说明的实施例来实现新的实施例的方式设计。另外,本发明并不限于如上所述的实施例的构成和方法,每个实施例的全部或者一部分可选择性的组合,以实现所述实施例的多种变形。

并且,虽然在以上对优选实施例进行示出并说明,但本说明书并不限于所述特定的实施例,并且显而易见的是,在不脱离权利要求范围内请求的主旨的情况下,本说明书所属技术领域的普通技术人员可进行多种变形实施,并且这些变形实施不应从本说明书的技术思想或者前景单独的理解。

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