一种基于区块链的匿名身份认证的方法及装置制造方法及图纸

技术编号:19436953 阅读:21 留言:0更新日期:2018-11-14 13:17
本发明专利技术涉及互联网技术领域,特别涉及一种基于区块链的匿名身份认证的方法及装置,该方法包括:当第三方应用接收到用户通过客户端发起的登录请求时,从客户端获取匿名认证地址;第三方应用向认证服务系统发送包含匿名认证地址的鉴权请求,同时客户端生成消息值,并使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值,根据签名值和匿名认证地址生成鉴权数据,并将鉴权数据广播到网络中;当认证服务器监控到包含所述匿名认证地址的鉴权数据时,使用匿名认证地址对签名值进行验签;当验签通过时,将鉴权数据写到区块链上,向第三方应用发送身份认证成功响应,结束;采用本发明专利技术提供的技术方案,实现了验证方对用户信息的匿名验证。

【技术实现步骤摘要】
一种基于区块链的匿名身份认证的方法及装置
本专利技术涉及互联网
,特别涉及一种基于区块链的匿名身份认证的方法及装置。
技术介绍
身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,进而使计算机和网络系统的访问策略能够可靠、有效地执行,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全及授权访问者的合法利益。现有技术中,为了追求更高的速度和更低的成本,验证方通常通过将用户输入的个人信息与数据库预先采集的信息进行比较,个人信息可能会存储在成百上千不同的验证方的数据库中,如果验证方中的任何一个在收集、存储、传输或处理数据时由于技术或过程漏洞而发生数据泄露,那么数以百万计的个人身份将受到盗窃。
技术实现思路
本专利技术的目的是克服现有技术的缺陷,提供一种基于区块链的匿名身份认证的方法及装置。其中,一种基于区块链的匿名身份认证的方法,包括:步骤S1、当第三方应用接收到用户通过客户端发起的登录请求时,向客户端发送获取匿名认证地址请求;步骤S2、客户端询问用户是否允许第三方应用进行身份认证,是则向第三方应用发送匿名认证地址,第三方应用向认证服务系统发送包含匿名认证地址的鉴权请求,执行步骤S3;否则向第三方应用发送不允许身份认证响应,结束;步骤S3、客户端生成消息值,并使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值,根据签名值和匿名认证地址生成鉴权数据,并将鉴权数据广播到网络中;步骤S4、认证服务器根据鉴权请求中的匿名认证地址监控网络,当监控到包含匿名认证地址的鉴权数据时,从鉴权数据中获取签名值,使用匿名认证地址对签名值进行验签;当验签通过时,将鉴权数据写到区块链上,向第三方应用发送身份认证成功响应,结束,当验签未通过时,向第三方应用发送身份认证失败响应,结束。一种基于区块链的匿名身份认证的装置,包括:第三方应用、客户端和认证服务系统;第三方应用包括:第一接收模块,用于接收用户通过客户端发起的登录请求;还用于接收客户端发送的匿名认证地址;还用于接收认证服务系统发送的身份认证成功响应;还用于接收认证服务系统发送的认证失败响应;第一发送模块,用于当第一接收模块接收到所述登录请求之后,向客户端发送获取匿名认证地址请求;还用于当第一接收模块接收到客户端发送的匿名认证地址时,向认证服务系统发送包含匿名认证地址的鉴权请求;客户端包括:第二接收模块,用于接收第三方应用发送的获取匿名认证地址请求;第一判断模块,用于当第二接收模块接收到匿名认证地址请求时询问用户是否允许第三方应用进行身份认证;第二发送模块,用于当第一判断模块判定用户允许第三方应用进行身份认证时,向第三方应用发送匿名认证地址;还用于当第一判断模块判定用户不允许第三方应用进行身份认证时,向第三方应用发送身份认证失败响应;消息值生成模块,用于当第一判断模块判定用户允许第三方应用进行身份认证时,生成消息值;签名模块,用于使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值;生成模块,用于根据签名模块生成的签名值和匿名认证地址生成鉴权数据;广播模块,用于将生成模块生成的鉴权数据广播到网络中;认证服务系统包括:第三接收模块,用于接收第三方应用发送的包含匿名认证地址的鉴权请求;监控模块,用于根据第三接收模块接收到的所述鉴权请求中的匿名认证地址监控网络;验签模块,用于当监控模块监控到包含所述匿名认证地址的鉴权数据时,从鉴权数据中获取签名值,使用匿名认证地址对签名值进行验签;上链模块,用于当验签模块验签通过时,将鉴权数据写到区块链上;第三发送模块,用于当验签模块验签通过时,向第三方应用发送身份认证成功响应;还用于当验签模块验签未通过时,向第三方应用发送身份认证失败响应。本专利技术的有益效果在于:采用本专利技术提供的技术方案,实现了验证方对用户信息的匿名验证,避免了用户身份信息的泄露。附图说明为了更清楚的说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;图1为本实施例1提供的一种基于区块链的匿名身份认证的方法中用户身份注册方法的流程图;图2为本实施例1提供的一种基于区块链的匿名身份认证的方法中用户身份认证方法的流程图;图3为本实施例1提供的一种基于区块链的匿名身份认证的方法中用户身份吊销方法的流程图;图4为本实施例2提供的一种基于区块链的匿名身份认证的装置的方框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1本实施例提供一种基于区块链的匿名身份认证的方法,具体包括:用户身份注册方法,用户身份认证方法和用户身份吊销方法;用户身份注册方法,如图1所示,包括:步骤101、客户端获取预置的父公钥作为注册地址,接收用户输入的用户信息,根据用户信息和注册地址生成注册请求;具体的,客户端中预置有父密钥对,需要说明的是,每个父密钥对唯一对应于一个用户;获取父密钥对中的父公钥作为注册地址;用户信息中包括:用户姓名、用户的出生日期和用户的住宅地址/商务地址等用户信息;步骤102、客户端向认证服务系统发送注册请求;步骤103、认证服务系统根据注册地址判断是否可以在区块链上获取到身份记录,是则根据注册地址获取最新一条身份记录,执行步骤104,否则执行步骤108;需要说明的是,注册地址唯一对应于用户;注册地址为区块链上记录的与其对应的用户的所有身份记录的索引,即当认证服务系统根据注册地址查询区块链时,可以查询到与注册地址对应的用户的所有身份记录;身份记录具体为用户身份注册时写到区块链上的身份记录或者用户身份吊销时写到区块链上的身份记录;步骤104、认证服务系统对用户信息进行哈希运算得到身份哈希;步骤105、认证服务系统判断获取到的身份记录中的身份认证信息与身份哈希是否一致,是则执行步骤106;否则向客户端发送注册失败响应,结束;步骤106、认证服务系统判断获取到的身份记录是否已过期,是则执行步骤108;否则执行步骤107;具体的,认证服务系统根据身份记录中的时间戳和当前服务器时间判断两者的时间差是否超过预设时长,是则判定身份记录已过期,否则判定身份记录没有过期。步骤107、认证服务系统判断获取到的身份记录是否已被吊销,是则执行步骤108;否则向客户端发送重复注册响应,结束;具体的,认证服务系统判断身份记录中是否存在吊销码,是则判定身份记录已吊销,否则判定身份记录没有被吊销;步骤108、认证服务系统判断用户信息是否合法,是则执行步骤109,否则向客户端发送注册失败响应,结束;步骤109、认证服务系统根据用户信息进行哈希运算得到身份哈希,将身份哈希作为身份认证信息,根据合规码、时间戳、身份认证信息和注册地址组织身份记录,并将身份记录写到区块链上;步骤109具体包括:需要说明的本文档来自技高网...

【技术保护点】
1.一种基于区块链的匿名身份认证的方法,其特征在于,包括:步骤S1、当第三方应用接收到用户通过客户端发起的登录请求时,向客户端发送获取匿名认证地址请求;步骤S2、所述客户端询问用户是否允许所述第三方应用进行身份认证,是则向所述第三方应用发送匿名认证地址,所述第三方应用向认证服务系统发送包含匿名认证地址的鉴权请求,执行步骤S3;否则向第三方应用发送不允许身份认证响应,结束;步骤S3、客户端生成消息值,并使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值,根据签名值和匿名认证地址生成鉴权数据,并将鉴权数据广播到网络中;步骤S4、认证服务器根据鉴权请求中的匿名认证地址监控网络,当监控到包含所述匿名认证地址的鉴权数据时,从鉴权数据中获取签名值,使用匿名认证地址对签名值进行验签;当验签通过时,将鉴权数据写到区块链上,向第三方应用发送身份认证成功响应,结束,当验签未通过时,向第三方应用发送身份认证失败响应,结束。

【技术特征摘要】
1.一种基于区块链的匿名身份认证的方法,其特征在于,包括:步骤S1、当第三方应用接收到用户通过客户端发起的登录请求时,向客户端发送获取匿名认证地址请求;步骤S2、所述客户端询问用户是否允许所述第三方应用进行身份认证,是则向所述第三方应用发送匿名认证地址,所述第三方应用向认证服务系统发送包含匿名认证地址的鉴权请求,执行步骤S3;否则向第三方应用发送不允许身份认证响应,结束;步骤S3、客户端生成消息值,并使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值,根据签名值和匿名认证地址生成鉴权数据,并将鉴权数据广播到网络中;步骤S4、认证服务器根据鉴权请求中的匿名认证地址监控网络,当监控到包含所述匿名认证地址的鉴权数据时,从鉴权数据中获取签名值,使用匿名认证地址对签名值进行验签;当验签通过时,将鉴权数据写到区块链上,向第三方应用发送身份认证成功响应,结束,当验签未通过时,向第三方应用发送身份认证失败响应,结束。2.如权利要求1所述的方法,其特征在于,所述第三方应用向认证服务系统发送包含匿名认证地址的鉴权请求具体为:所述第三方应用向认证服务系统的认证节点发送包含匿名认证地址的鉴权请求;所述步骤S4具体包括:认证服务系统中的共识节点根据鉴权请求中的匿名认证地址监控网络,当监控到包含所述匿名认证地址的鉴权数据时,从鉴权数据中获取匿名认证地址和签名值,使用匿名认证地址对签名值进行验签;当验签通过时,将鉴权数据写到区块链上;认证服务系统系统中的认证节点判断预设时间内区块链上是否出现包含所述鉴权请求中的匿名认证地址的新记录,是则向第三方应用发送注册成功响应,否则向第三方应用发送注册失败响应,结束。3.如权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:步骤101、客户端接收用户输入的用户信息,并获取预置的父公钥作为注册地址,并向认证服务系统发送包含用户信息和注册地址的注册请求;步骤102、认证服务系统判断用户信息是否合法,是则执行步骤103,否则向客户端返回注册失败响应,结束;步骤103、认证服务系统对用户信息进行预设运算得到身份认证信息;根据合规码、身份认证信息和注册地址组织身份记录,并将身份记录写到区块链上;生成秘密值,根据所述秘密值和注册地址生成注册地址的子公钥,并将所述注册地址的子公钥作为匿名认证地址,根据匿名认证地址和注册地址生成关联记录写到区块链上;并将匿名认证地址和秘密值发送给客户端;步骤104、客户端获取预置的父私钥,根据父私钥和秘密值生成子密钥对,判断子密钥对中的子公钥是否与匿名认证地址一致,是则执行步骤105;否则注册失败,结束;步骤105、客户端将子密钥对中的子私钥和匿名认证地址对应保存。4.如权利于要求3所述的方法,其特征在于,当认证服务系统接收到包含匿名认证地址的鉴权请求时还包括:所述认证服务系统根据所述匿名认证地址从区块链上获取注册地址,根据所述注册地址从区块链上获取最新一条身份记录,判断获取到的身份记录是否已被吊销,是则向第三方应用发送身份认证失败响应,结束;否则继续。5.如权利于要求3所述的方法,其特征在于,当认证服务系统接收到包含匿名认证地址的鉴权请求时还包括:所述认证服务系统根据所述匿名认证地址从区块链上获取注册地址,根据所述注册地址从区块链上获取最新一条身份记录,判断获取到的身份记录是否已过期,是则向第三方应用发送身份认证失败响应,结束;否则继续。6.如权利要求4或5所述的方法,其特征在于,所述认证服务系统根据所述匿名认证地址从区块链上获取注册地址具体包括:所述认证服务系统判断在区块链上是否可以获取到包含匿名认证地址的记录,是则从区块链上获取包含匿名认证地址的第一条记录,从获取到的记录中获取注册地址。7.如权利要求3所述的方法,其特征在于,所述认证服务系统对用户信息进行预设运算得到身份认证信息具体为,所述认证服务系统对用户信息进行哈希运算得到身份哈希,将身份哈希作为身份认证信息。8.如权利要求3所述的方法,其特征在于,当认证服务系统接收到注册请求之后,执行步骤102之前还包括:步骤201、认证服务系统根据注册地址判断是否可以在区块链上获取到身份记录,是则根据注册地址获取最新一条身份记录,执行步骤202,否则执行步骤102;步骤202、认证服务系统对用户信息进行预设运算得到身份认证信息,判断所述身份记录中的身份认证信息与运算得到的身份认证信息是否一致,是则执行步骤203,否则向客户端发送注册失败响应,结束;步骤203、认证服务系统判断所述身份记录是否已被吊销,是则执行步骤102,否则向客户端发送重复注册响应,结束。9.如权利要求8所述的方法,其特征在于,所述步骤203具体为:认证服务系统判断所述身份记录中是否存在吊销码,是则执行步骤102,否则向客户端发送重复注册响应,结束。10.如权利要求8所述的方法,其特征在于,当步骤203中判定所述身份记录没有被吊销之后,还包括:认证服务系统判断所述身份记录是否已过期,是则执行步骤102,否则向客户端发送重复注册响应,结束。11.如权利要求10所述的方法,其特征在于,所述认证服务系统判断所述身份记录是否已过期具体为:所述认证服务系统从身份记录中获取时间戳,根据时间戳判断所述身份记录是否过期,是则执行步骤102,否则向客户端发送重复注册响应,结束;所述步骤103具体为,认证服务系统对用户信息进行预设运算得到身份认证信息;根据合规码、身份认证信息、注册地址和时间戳组织身份记录,并将身份记录写到区块链上,生成秘密值,根据所述秘密值和注册地址生成注册地址的子公钥,并将所述注册地址的子公钥作为匿名认证地址,根据匿名认证地址和注册地址生成关联记录写到区块链上;并将匿名认证地址和秘密值发送给客户端。12.如权利要求3所述的方法,其特征在于,所述步骤101具体为:客户端接收用户输入的用户信息和用户选择的认证类型,并获取预置的父公钥作为注册地址,并向认证服务系统发送包含认证类型、用户信息和注册地址的注册请求;所述步骤103具体为:认证服务系统根据认证类型选择预设运算,对用户信息进行预设运算得到身份认证信息,根据认证类型、合规码、身份认证信息和注册地址组织身份记录,并将身份记录写到区块链上,并生成秘密值,根据所述秘密值和注册地址生成注册地址的子公钥,并将所述注册地址的子公钥作为匿名认证地址,根据匿名认证地址和注册地址生成关联记录写到区块链上;并将匿名认证地址和秘密值发送给客户端。13.如权利要求12所述的方法,其特征在于,所述认证类型具体为全验证或非全验证。14.如权利要求12所述的方法,其特征在于,所述认证服务系统根据认证类型选择预设运算,对用户信息进行预设运算得到身份认证信息具体为:当认证类型为全验证时,认证服务系统选定哈希运算,对用户信息进行哈希运算得到身份哈希,将身份哈希作为身份认证信息;当认证类型为非全验证时,认证服务系统选定加密运算,对用户信息进行加密得到身份密文,将身份密文作为身份认证信息。15.如权利要求14所述的方法,其特征在于,当认证服务系统接收到注册请求之后,执行步骤102之前还包括:步骤301、认证服务系统根据注册地址判断是否可以在区块链上获取到身份记录,是则根据注册地址获取最新一条身份记录,执行步骤302,否则执行步骤102;步骤302、认证服务系统根据认证类型判断用户信息是否与所述身份记录中的身份认证记录相匹配,是则执行步骤303,否则向客户端发送注册失败响应,结束;步骤303、认证服务系统判断所述身份记录是否已被吊销,是则执行步骤102,否则向客户端发送重复注册响应,结束。16.如权利要求15所述的方法,其特征在于,所述步骤302包括:步骤302-1、认证服务系统判断所述身份记录中的认证类型,当认证类型为全验证时执行步骤302-2,当认证类型为非全验证时,执行步骤302-3;步骤302-2、认证服务系统对用户信息进行哈希运算得到身份哈希,判断所述身份记录中的身份认证信息与所述身份哈希是否一致,是则执行步骤303,否则向客户端发送注册失败响应,结束;步骤302-3、认证服务系统从身份记录中获取身份认证信息,对所述身份记录中的身份认证信息进行解密,判断解密得到的信息中是否存在与所述用户信息相匹配的信息,是则执行步骤303,否则向客户端发送注册失败响应,结束。17.如权利要求15所述的方法,其特征在于,所述步骤301之后,所述步骤302之前,还包括:认证服务系统判断身份记录中的认证类型是否与注册请求中的认证类型是否一致,是则执行步骤302,否则向客户端发送注册失败响应,结束。18.如权利要求3所述的方法,其特征在于,还包括用户身份吊销方法;所述用户身份吊销方法包括:步骤401、客户端接收用户输入的用户信息,并获取预置的父公钥作为注册地址,并向认证服务系统发送包含用户信息和注册地址的吊销请求;步骤402、认证服务系统根据注册地址获取最新一条身份记录,判断身份记录中的身份认证信息是否与用户信息相匹配,是则执行步骤403,否则向客户端发送未获取到需吊销的身份记录响应,结束;步骤403、认证服务系统根据吊销码、注册地址和身份认证信息组织身份记录,并把身份记录写到区块链上,向客户端发送吊销成功响应。19.如权利要求18所述的方法,其特征在于,所述判断身份记录中的身份认证信息是否与用户信息相匹配具体为:认证服务系统将用户信息进行哈希运算得到身份哈希,判断身份哈希与身份记录中的身份认证信息是否一致,是则判定身份认证信息与用户信息匹配,否则判定身份认证信息与用户信息不匹配。20.如权利要求18所述的方法,其特征在于,所述步骤401具体为:客户端接收用户输入的用户信息并接收用户选择的认证类型,获取预置的父公钥作为注册地址,并向认证服务系统发送包含用户信息、认证类型和注册地址的吊销请求;所述步骤402具体包括:步骤402-1认证服务系统判断所述吊销请求中认证类型,当认证类型为全验证时执行步骤402-2,当认证类型为非全验证时,执行步骤402-3;步骤402-2、认证服务系统根据用户信息进行哈希运算得到身份哈希,并判断所述身份记录中的身份认证记录是否与身份哈希一致,是则执行步骤403,否则向客户端发送未获取到需吊销的身份记录响应,结束;步骤402-3、认证服务系统从身份记录中获取身份认证信息,对身份认证信息进行解密,判断解密得到的信息中是否存在与用户信息相匹配的信息,是则对用户信息进行加密得到身份密文,将身份密文作为身份认证信息,执行步骤403,否则向客户端发送未获取到需吊销的身份记录响应,结束。21.如权利要求18所述的方法,其特征在于,步骤402中当认证服务系统判定身份记录中的身份认证信息与用户信息相匹配之后,执行步骤403之前还包括:认证服务系统判断身份记录是否已被吊销,是则向客户端发送重复吊销响应,结束;否则执行步骤403。22.一种基于区块链的匿名身份认证的装置,其特征在于,包括:第三方应用、客户端和认证服务系统;所述第三方应用包括:第一接收模块,用于接收用户通过所述客户端发起的登录请求;还用于接收客户端发送的匿名认证地址;还用于接收认证服务系统发送的身份认证成功响应;还用于接收认证服务系统发送的认证失败响应;第一发送模块,用于当所述第一接收模块接收到所述登录请求之后,向客户端发送获取匿名认证地址请求;还用于当所述第一接收模块接收到客户端发送的匿名认证地址时,向认证服务系统发送包含匿名认证地址的鉴权请求;所述客户端包括:第二接收模块,用于接收第三方应用发送的获取匿名认证地址请求;第一判断模块,用于当第二接收模块接收到所述匿名认证地址请求时询问用户是否允许第三方应用进行身份认证;第二发送模块,用于当所述第一判断模块判定用户允许第三方应用进行身份认证时,向第三方应用发送匿名认证地址;还用于当所述第一判断模块判定用户不允许第三方应用进行身份认证时,向第三方应用发送身份认证失败响应;消息值生成模块,用于当所述第一判断模块判定用户允许第三方应用进行身份认证时,生成消息值;签名模块,用于使用与匿名认证地址对应保存的子私钥对消息值进行签名得到签名值;生成模块,用于根据签名模块生成的签名值和匿名认证地址生成鉴权数据;广播模块,用于将生成模块生成的鉴权数据广播到网络中;所述认证服务系统包括:第三接收模块,用于接收所述第三方应用发送的包含匿名认证地址的鉴权请求;监控模块,用于根据所述第三接收模块接收到的所述鉴权请求中的匿名认证地址监控网络;验签模块,用于当所述监控模块监控到包含所述匿名认证地址的鉴权数据时,从鉴权数据中获取签名值,使用匿名认证地址对签名值进行验签;上链模块,用于当所述验签模块验签通过时,将鉴权数据写到区块链上;第三发送模块,用于当所述验签模块验签通过时,向所述第三方应用发送身份认证成功响应;还用于当所述验签模块验签未通过时,向所述第三方应用发送身份认证失败响应。23.如权利要求22所述的装置,其特征在于,所述客户端还包括:第一获取模块;所述第二接收模块,还用于接收用户输入的用户信息;所述第一获取模块,用于当所述第二接收模块接收到用户信息时,获取预置的父公钥作为注册地址;所述第二发送模块,还用于向认证服务系统发送包含所述第二接收模块接收到的用户信息和所述第一获取模块获取到的注册地址的注册请求;认证服务系统还包括:第二判断模块、身份认证信息生成模块、身份记录生成模块、匿名认证地址生成模块和关联记录生成模块;所述第三接收模块,还用于接收客户端发送的注册请求;所述第二判断模块,用于判断所述第三接收模块接收到的所述注册请求中的用户信息是否合法;所述第三发送模块,还用于当所述第二判断模块判定用户信息不合法时向客户端发送注册失败响应;所述身份认证信息生成模块,用于当所述第二判断模块判定用户信息合法时,对用户信息进行预设运算得到身份认证信息;所述身份记录生成模块,用于根...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1