CN112291245B - 一种身份授权方法、装置、存储介质及设备 - Google Patents

一种身份授权方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN112291245B
CN112291245B CN202011189808.0A CN202011189808A CN112291245B CN 112291245 B CN112291245 B CN 112291245B CN 202011189808 A CN202011189808 A CN 202011189808A CN 112291245 B CN112291245 B CN 112291245B
Authority
CN
China
Prior art keywords
identity
party
data
authorized party
authorized
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.)
Active
Application number
CN202011189808.0A
Other languages
English (en)
Other versions
CN112291245A (zh
Inventor
尹子栋
孙春桂
何江
王丽红
于佳良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huahong Integrated Circuit Design Co ltd
Original Assignee
Beijing Huahong Integrated Circuit Design Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huahong Integrated Circuit Design Co ltd filed Critical Beijing Huahong Integrated Circuit Design Co ltd
Priority to CN202011189808.0A priority Critical patent/CN112291245B/zh
Publication of CN112291245A publication Critical patent/CN112291245A/zh
Application granted granted Critical
Publication of CN112291245B publication Critical patent/CN112291245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

本申请公开了一种身份授权方法、装置、存储介质及设备,该方法包括:被授权方从注册系统获取授权方的声明信息,并根据自身保存的被授权方的身份标识请求授权方对被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求,并向授权方发送身份授权请求;授权方根据该身份授权请求生成可验证凭证数据,并将其中的可验证凭证数据的标识发送至注册系统,以便注册系统根据该可验证凭证数据的标识进行更新;授权方还可以将可验证凭证数据发送至被授权方,以便被授权方进行保存。从而基于注册系统具有的区块链的去中心化和外界无法篡改的优势,可以有效提高授权方与被授权方间身份授权的安全性及可靠性。

Description

一种身份授权方法、装置、存储介质及设备
技术领域
本申请涉及数据处理领域,特别是涉及一种身份授权系方法、装置、存储介质及设备。
背景技术
目前,授权方与被授权方之间的身份授权方式通常是基于密钥对的方式,以希望提高身份授权的安全性和可靠性。例如:针对媒体平台(授权方)对用户(被授权方)的身份授权,在它们分别经证书机构(Certification Authority,CA)发布对应的数字证书后,可以基于该证书机构对它们之间的身份关系进行身份授权。其中,证书机构是认证机构的国际通称,它是对数字证书的申请者发放、管理、取消数字证书的机构。
然而,在实际场景中,证书机构可能被恶意攻击或操控,由此可能将并不存在任何关联关系的两方进行身份授权,导致身份授权关系不可信。传统平台账号认证以及第三方账号认证存在的注册账号过多、信息外泄或信息不能通用的问题,导致用户体验不佳。
发明内容
有鉴于此,本申请实施例提供一种身份授权方法、装置、存储介质及设备,以提高授权方与被授权方之间身份授权的安全性和可靠性,从而保证身份授权关系可信。
第一方面,本申请实施例提供了一种身份授权方法,应用于包括授权方和被授权方的身份授权区块链系统,所述身份授权区块链系统中部署有注册系统;所述方法包括:
所述被授权方从所述注册系统获取所述授权方的声明信息,根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求,并向所述授权方发送所述身份授权请求;
所述授权方根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统;
所述注册系统根据所述可验证凭证数据的标识进行更新,并向所述授权方返回更新结果;
所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
一种可能的实现方式中,所述被授权方根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,具体包括:
所述被授权方根据所述被授权方的身份标识生成身份验证请求,并将所述身份验证请求发给所述授权方;
所述授权方生成第一随机数,并将所述第一随机数返回给所述被授权方;
所述被授权方根据自身保存的被授权方的私钥对所述第一随机数签名得到第一签名结果,将所述第一签名结果、所述第一随机数、所述被授权方的身份标识发给所述授权方;
所述授权方根据所述被授权方的身份标识从所述注册系统获取所述被授权方的身份文件,从所述被授权方的身份文件中获取被授权方的公钥,使用获取的所述被授权方的公钥和所述第一随机数对所述第一签名结果进行验签。
一种可能的实现方式中,所述被授权方从所述注册系统获取所述授权方的声明信息,具体包括:
所述被授权方获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;
所述注册系统根据所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并将其发送给所述被授权方。
一种可能的实现方式中,所述被授权方根据所述授权方的声明信息生成身份授权请求,具体为:
所述被授权方从所述授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据,根据所述被授权方的声明数据生成所述身份授权请求。
一种可能的实现方式中,所述被授权方获取所述授权方的声明信息后,还包括:所述被授权方根据所述授权方的声明信息生成被授权方的声明数据;所述身份授权请求中包括所述被授权方的声明数据;
所述授权方生成可验证凭证数据,具体包括:
所述授权方根据预设规则生成所述可验证凭证数据的标识,并用自身保存的授权方的私钥对所述被授权方的声明数据进行签名,得到被授权方声明数据的签名;
所述授权方根据所述被授权方声明数据、所述被授权方声明数据的签名和所述可验证凭证数据的标识生成所述可验证凭证数据。
一种可能的实现方式中,所述授权方将所述可验证凭证数据的标识发送至所述注册系统之前还包括:
所述授权方使用所述授权方的私钥对所述可验证凭证数据的标识签名得到可验证凭证数据标识的签名;
所述注册系统根据所述可验证凭证数据的标识进行更新之前,还包括:所述授权方将所述可验证凭证数据标识的签名、授权方的身份标识发送至所述注册系统;
所述注册系统根据所述授权方的身份标识找到对应授权方的公钥,使用所述授权方的公钥和所述可验证凭证数据的标识对所述可验证凭证数据标识的签名进行验签。
一种可能的实现方式中,所述注册系统根据所述可验证凭证数据的标识进行更新,具体为:当验签结果为通过时,所述注册系统将所述可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
一种可能的实现方式中,所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,包括:
所述授权方将所述可验证凭证数据以及所述授权方的身份标识发送至所述被授权方;
所述被授权方根据所述可验证凭证数据的标识和所述授权方的身份标识向所述注册系统发送查询请求;
所述注册系统根据所述授权方的身份标识检索所述授权方的可验证凭证数据列表中是否存在所述可验证凭证数据的标识,若存在,则表明所述可验证凭证数据的标识有效,并将查询结果及所述授权方的身份标识对应的授权方的身份文件返回至所述被授权方;
所述被授权方根据所述授权方的身份文件对所述可验证凭证数据进行验证,若验证通过,则确认所述可验证凭证数据合法,并将其进行存储。
一种可能的实现方式中,所述被授权方根据所述授权方的身份文件对所述可验证凭证数据进行验证,具体包括:
所述被授权方从所述授权方的身份文件中获取授权方的公钥,使用所述授权方的公钥、所述可验证凭证数据中的被授权方声明数据对所述可验证凭证数据中的被授权方声明数据的签名进行验签。
一种可能的实现方式中,所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,包括:
所述授权方利用私钥对所述可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至所述被授权方;
所述被授权方向所述注册系统发送实体身份查询请求;
所述注册系统将预先存储的实体的身份文件返回至所述被授权方;
所述被授权方利用所述实体的身份文件,对所述签名后的可验证凭证数据进行验签,若验签成功,则确认所述可验证凭证数据合法;
所述被授权方将确认所述可验证凭证数据合法的结果发送至所述注册系统进行查询,若所述注册系统查询到所述可验证凭证数据是有效的,则将查询结果返回至所述被授权方,以便所述被授权方存储所述可验证凭证数据。
一种可能的实现方式中,所述被授权方根据所述授权方的声明信息向所述授权方发送身份授权请求之前,还包括:
所述被授权方生成第二随机数;所述身份授权请求中还包括所述第二随机数;
所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,具体包括:
所述授权方生成第三随机数,根据所述第二随机数、所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据;将所述身份验证数据、所述可验证凭证数据的加密数据、自身保存的授权方身份标识发送给所述被授权方;
所述被授权方根据所述授权方的身份标识从所述注册系统获取授权方的身份文件;根据所述授权方的身份文件对所述身份验证数据进行验证,验证通过则对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存。
一种可能的实现方式中,所述授权方根据所述第二随机数和所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据,具体包括:所述授权方使用所述授权方对所述被授权方进行身份验证时获取的所述被授权方的公钥对所述第三随机数加密,得到第三随机数的加密数据;
所述授权方使用自身保存的授权方私钥对所述第三随机数签名,得到第三随机数的签名;
所述授权方根据所述第二随机数和所述第三随机数生成第一会话密钥,使用所述第一会话密钥对所述可验证凭证数据进行加密得到所述可验证凭证数据的加密数据。
一种可能的实现方式中,所述被授权方根据所述授权方的身份文件对所述身份验证数据进行验证,具体包括:
所述被授权方从所述授权方的身份文件中获取授权方的公钥,使用自身保存的被授权方的私钥对所述第三随机数的加密数据进行解密得到第一解密数据;
所述被授权方使用所述授权方的公钥和所述第一解密数据对所述第三随机数的签名进行验签。
一种可能的实现方式中,所述被授权方对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存,具体包括:
若验签成功,所述被授权方根据所述第二随机数和所述第一解密数据生成第二会话密钥;
所述被授权方使用所述第二会话密钥对所述可验证凭证数据的加密数据解密,得到所述可验证凭证数据,从所述可验证凭证数据中提取被授权方的声明数据及所述被授权方的声明数据签名,使用所述授权方的公钥和提取的被授权方的声明数据对所述被授权方声明数据的签名进行验签,若验签通过,则对所述可验证凭证数据进行保存。
一种可能的实现方式中,所述被授权方对所述可验证凭证数据进行保存之前,还包括:
所述被授权方将所述可验证凭证数据中的可验证凭证数据的标识发送给所述注册系统,所述注册系统检查所述可验证凭证数据的标识是否有效;
当验证结果为所述可验证凭证数据的标识有效,且所述被授权方对所述身份验证数据验证结果为通过时,所述被授权方对所述可验证凭证数据进行保存。
一种可能的实现方式中,所述授权方根据所述身份授权请求生成可验证凭证数据之前,还包括:
所述授权方根据所述被授权方发送的身份授权请求进行审核。
一种可能的实现方式中,目标方为所述授权方或所述被授权方;所述方法还包括:
所述目标方生成对应的身份标识和身份文件,并根据所述身份标识和所述身份文件向所述注册系统进行身份注册;所述身份文件中包括对应的验签公钥;
所述注册系统对所述身份标识和所述身份文件进行审核,若通过审核,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
一种可能的实现方式中,所述目标方生成对应的身份标识和身份文件,包括:
所述目标方获取当前时间并设定密钥对类型,并根据所述当前时间和所述密钥对类型,生成公钥和私钥;
对所述公钥进行哈希运算,得到其对应的哈希值,并将所述哈希值作为所述目标方的身份标识;
根据所述身份标识和所述公钥生成所述目标方的身份文件。
一种可能的实现方式中,所述根据所述身份标识和所述身份文件向所述注册系统进行身份注册,包括:所述目标方将所述身份标识和所述身份文件发送至注册系统;
所述注册系统对所述身份标识和所述身份文件进行审核,包括:
所述注册系统确定所述身份标识是否存在于已保存的身份标识集合中,若否,向所述目标方发送随机标识。
一种可能的实现方式中,在所述向所述目标方发送随机标识之后,所述方法还包括:
所述目标方接收所述随机标识,并利用所述私钥对所述随机标识进行签名,得到第一签名数据;
所述目标方将所述身份文件和所述随机标识以及所述第一签名数据发送至所述注册系统;
所述注册系统根据所述身份文件对所述第一签名数据进行验签,若验签通过,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
一种可能的实现方式中,所述目标方生成所述身份文件后,还包括:所述目标方对所述身份文件进行保存;
所述确定所述目标方完成身份注册之后,还包括:
所述注册系统将身份标识的查询地址发送给所述目标方;
所述目标方根据所述身份标识的查询地址对所述身份文件进行更新。
一种可能的实现方式中,当目标方为所述授权方时,所述方法还包括:
所述授权方生成授权方身份数据,并利用所述私钥对所述身份数据进行签名,得到第二签名数据;所述授权方身份数据为体现所述授权方具有身份授权权限的数据;
所述授权方将所述身份文件和所述身份数据以及所述第二签名数据发送至所述注册系统;
所述注册系统根据所述身份文件对所述第二签名数据进行验证,若通过验证,授予所述授权方的身份授权权限资格,并将所述身份授权权限资格保存至自身存储的身份文件中,以及将所述授权方的注册状态和身份查询地址发送至所述授权方;
所述授权方将所述身份查询地址更新至自身存储的身份文件中。
一种可能的实现方式中,所述方法还包括:
所述授权方生成声明信息,并利用所述私钥对所述声明信息中的声明模板查询地址进行签名,得到第三签名数据;所述声明信息包括声明模板和声明模板查询地址;
所述授权方将所述身份文件和所述声明信息中的声明模板查询地址以及所述第三签名数据发送至所述注册系统;
所述注册系统根据自身保存的所述身份文件对所述第三签名数据进行验证,若通过验证,则将所述声明信息保存在自身存储的身份文件中,并向所述目标方返回所述声明信息的新增结果;
所述目标方将所述声明模板查询地址更新至自身存储的身份文件中。
一种可能的实现方式中,所述被授权方向所述授权方发送所述身份授权请求之前,还包括:所述被授权方设置安全标识,将所述安全标识的类型设置为明文回传或密文回传;所述身份授权请求中还包括所述安全标识;
所述授权方将所述可验证凭证数据发送至所述被授权方之前,还包括:所述被授权方判断所述安全标识的类型,当所述安全标识的类型为明文回传时,则将所述可验证凭证数据的明文数据发送给所述被授权方;当所述安全标识的类型为密文回传时,则将所述可验证凭证数据的密文数据发送给所述被授权方。
第二方面,本申请实施例提供了一种身份授权方法,所述方法由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,所述方法包括:
从所述注册系统获取所述授权方的声明信息,并根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求;
向所述授权方发送所述身份授权请求,以请求身份授权;
接收所述授权方发送的可验证凭证数据并保存,所述可验证凭证数据是所述授权方根据所述身份授权请求生成的。
第三方面,本申请实施例提供了一种身份授权方法,所述方法由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,所述方法包括:
接收所述被授权方发送的身份授权请求,并根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统,以使所述注册系统根据所述可验证凭证数据的标识进行更新;
接收所述注册系统发送的更新结果;
将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
第四方面,本申请实施例提供了一种身份授权装置,应用于包括授权方和被授权方的身份授权区块链系统,所述身份授权区块链系统中部署有注册系统;所述装置包括:
被授权方,用于从所述注册系统获取所述授权方的声明信息,根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求,并向所述授权方发送所述身份授权请求;
授权方,用于根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统;
注册系统,用于根据所述可验证凭证数据的标识进行更新,并向所述授权方返回更新结果;
所述授权方,还用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存;
所述被授权方,还用于接收来自所述授权方的所述可验证凭证数据,并对所述可验证凭证数据进行保存。
一种可能的实现方式中,所述被授权方具体用于:
根据所述被授权方的身份标识生成身份验证请求,并将所述身份验证请求发给所述授权方;
所述授权方具体用于:
生成第一随机数,并将所述第一随机数返回给所述被授权方;
所述被授权方还具体用于:
根据自身保存的被授权方的私钥对所述第一随机数签名得到第一签名结果,将所述第一签名结果、所述第一随机数、所述被授权方的身份标识发给所述授权方;
所述授权方还具体用于:
根据所述被授权方的身份标识从所述注册系统获取所述被授权方的身份文件,从所述被授权方的身份文件中获取被授权方的公钥,使用获取的所述被授权方的公钥和所述第一随机数对所述第一签名结果进行验签。
一种可能的实现方式中,所述被授权方具体用于:
获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;
所述注册系统具体用于:
根据所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并将其发送给所述被授权方。
一种可能的实现方式中,所述被授权方具体用于:
从所述授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据,根据所述被授权方的声明数据生成所述身份授权请求。
一种可能的实现方式中,所述被授权方还用于根据所述授权方的声明信息生成被授权方的声明数据;所述身份授权请求中包括所述被授权方的声明数据;
所述授权方具体用于:
根据预设规则生成所述可验证凭证数据的标识,并用自身保存的授权方的私钥对所述被授权方的声明数据进行签名,得到被授权方声明数据的签名;
根据所述被授权方声明数据、所述被授权方声明数据的签名和所述可验证凭证数据的标识生成所述可验证凭证数据。
一种可能的实现方式中,所述授权方还用于:
使用所述授权方的私钥对所述可验证凭证数据的标识签名得到可验证凭证数据标识的签名;
将所述可验证凭证数据标识的签名、授权方的身份标识发送至所述注册系统;
所述注册系统具体用于:
根据所述授权方的身份标识找到对应授权方的公钥,使用所述授权方的公钥和所述可验证凭证数据的标识对所述可验证凭证数据标识的签名进行验签。
一种可能的实现方式中,当验签结果为通过时,所述注册系统具体用于将所述可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
一种可能的实现方式中,所述授权方具体用于:
将所述可验证凭证数据以及所述授权方的身份标识发送至所述被授权方;
根据所述可验证凭证数据的标识和所述授权方的身份标识向所述注册系统发送查询请求;
所述注册系统具体用于:
根据所述授权方的身份标识检索所述授权方的可验证凭证数据列表中是否存在所述可验证凭证数据的标识,若存在,则表明所述可验证凭证数据的标识有效,并将查询结果及所述授权方的身份标识对应的授权方的身份文件返回至所述被授权方;
所述被授权方还具体用于:
根据所述授权方的身份文件对所述可验证凭证数据进行验证,若验证通过,则确认所述可验证凭证数据合法,并将其进行存储。
一种可能的实现方式中,所述被授权方具体用于:、
从所述授权方的身份文件中获取授权方的公钥,使用所述授权方的公钥、所述可验证凭证数据中的被授权方声明数据对所述可验证凭证数据中的被授权方声明数据的签名进行验签。
一种可能的实现方式中,所述授权方具体用于:
利用私钥对所述可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至所述被授权方;
向所述注册系统发送实体身份查询请求;
所述注册系统具体用于:
将预先存储的实体的身份文件返回至所述被授权方;
所述被授权方还具体用于:
利用所述实体的身份文件,对所述签名后的可验证凭证数据进行验签,若验签成功,则确认所述可验证凭证数据合法;
将确认所述可验证凭证数据合法的结果发送至所述注册系统进行查询,若所述注册系统查询到所述可验证凭证数据是有效的,则将查询结果返回至所述被授权方,以便所述被授权方存储所述可验证凭证数据。
一种可能的实现方式中,所述被授权方还用于:
生成第二随机数;所述身份授权请求中还包括所述第二随机数;
则所述授权方具体用于:
生成第三随机数,根据所述第二随机数、所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据;将所述身份验证数据、所述可验证凭证数据的加密数据、自身保存的授权方身份标识发送给所述被授权方;
所述被授权方还用于:根据所述授权方的身份标识从所述注册系统获取授权方的身份文件;根据所述授权方的身份文件对所述身份验证数据进行验证,验证通过则对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存。
一种可能的实现方式中,所述授权方具体用于:
使用所述授权方对所述被授权方进行身份验证时获取的所述被授权方的公钥对所述第三随机数加密,得到第三随机数的加密数据;
使用自身保存的授权方私钥对所述第三随机数签名,得到第三随机数的签名;
根据所述第二随机数和所述第三随机数生成第一会话密钥,使用所述第一会话密钥对所述可验证凭证数据进行加密得到所述可验证凭证数据的加密数据。
一种可能的实现方式中,所述被授权方具体用于:
从所述授权方的身份文件中获取授权方的公钥,使用自身保存的被授权方的私钥对所述第三随机数的加密数据进行解密得到第一解密数据;
使用所述授权方的公钥和所述第一解密数据对所述第三随机数的签名进行验签。
一种可能的实现方式中,所述被授权方具体用于:
若验签成功,则根据所述第二随机数和所述第一解密数据生成第二会话密钥;
使用所述第二会话密钥对所述可验证凭证数据的加密数据解密,得到所述可验证凭证数据,从所述可验证凭证数据中提取被授权方的声明数据及所述被授权方的声明数据签名,使用所述授权方的公钥和提取的被授权方的声明数据对所述被授权方声明数据的签名进行验签,若验签通过,则对所述可验证凭证数据进行保存。
一种可能的实现方式中,所述被授权方还用于:
将所述可验证凭证数据中的可验证凭证数据的标识发送给所述注册系统,所述注册系统检查所述可验证凭证数据的标识是否有效;
当验证结果为所述可验证凭证数据的标识有效,且所述被授权方对所述身份验证数据验证结果为通过时,对所述可验证凭证数据进行保存。
一种可能的实现方式中,所述授权方还用于:
根据所述被授权方发送的身份授权请求进行审核。
一种可能的实现方式中,目标方为所述授权方或所述被授权方;所述目标方具体用于:
生成对应的身份标识和身份文件,并根据所述身份标识和所述身份文件向所述注册系统进行身份注册;所述身份文件中包括对应的验签公钥;
所述注册系统具体用于:对所述身份标识和所述身份文件进行审核,若通过审核,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
一种可能的实现方式中,所述目标方具体用于:
获取当前时间并设定密钥对类型,并根据所述当前时间和所述密钥对类型,生成公钥和私钥;
对所述公钥进行哈希运算,得到其对应的哈希值,并将所述哈希值作为所述目标方的身份标识;
根据所述身份标识和所述公钥生成所述目标方的身份文件。
一种可能的实现方式中,所述目标方具体用于:
将所述身份标识和所述身份文件发送至注册系统;
所述注册系统具体用于:确定所述身份标识是否存在于已保存的身份标识集合中,若否,向所述目标方发送随机标识。
一种可能的实现方式中,所述目标方还用于:
接收所述随机标识,并利用所述私钥对所述随机标识进行签名,得到第一签名数据;
将所述身份文件和所述随机标识以及所述第一签名数据发送至所述注册系统;
所述注册系统还用于:根据所述身份文件对所述第一签名数据进行验签,若验签通过,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
一种可能的实现方式中,所述目标方还用于:
对所述身份文件进行保存;
所述注册系统还用于:将身份标识的查询地址发送给所述目标方;
所述目标方还用于:根据所述身份标识的查询地址对所述身份文件进行更新。
一种可能的实现方式中,当目标方为所述授权方时,所述授权方还用于:
生成授权方身份数据,并利用所述私钥对所述身份数据进行签名,得到第二签名数据;所述授权方身份数据为体现所述授权方具有身份授权权限的数据;
将所述身份文件和所述身份数据以及所述第二签名数据发送至所述注册系统;
所述注册系统还用于:根据所述身份文件对所述第二签名数据进行验证,若通过验证,授予所述授权方的身份授权权限资格,并将所述身份授权权限资格保存至自身存储的身份文件中,以及将所述授权方的注册状态和身份查询地址发送至所述授权方;
所述授权方还用于:将所述身份查询地址更新至自身存储的身份文件中。
一种可能的实现方式中,所述授权方还用于:
生成声明信息,并利用所述私钥对所述声明信息中的声明模板查询地址进行签名,得到第三签名数据;所述声明信息包括声明模板和声明模板查询地址;
将所述身份文件和所述声明信息中的声明模板查询地址以及所述第三签名数据发送至所述注册系统;
所述注册系统还用于:根据自身保存的所述身份文件对所述第三签名数据进行验证,若通过验证,则将所述声明信息保存在自身存储的身份文件中,并向所述目标方返回所述声明信息的新增结果;
所述目标方还用于:将所述声明模板查询地址更新至自身存储的身份文件中。
一种可能的实现方式中,所述被授权方还用于:
设置安全标识,将所述安全标识的类型设置为明文回传或密文回传;所述身份授权请求中还包括所述安全标识;
判断所述安全标识的类型,当所述安全标识的类型为明文回传时,则将所述可验证凭证数据的明文数据发送给所述被授权方;当所述安全标识的类型为密文回传时,则将所述可验证凭证数据的密文数据发送给所述被授权方。
第五方面,本申请实施例提供了一种身份授权装置,所述装置由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,所述装置包括:
生成单元,用于从所述注册系统获取所述授权方的声明信息,并根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求;
发送单元,用于向所述授权方发送所述身份授权请求,以请求身份授权;
接收单元,用于接收所述授权方发送的可验证凭证数据并保存,所述可验证凭证数据是所述授权方根据所述身份授权请求生成的。
第六方面,本申请实施例提供了一种身份授权装置,所述装置由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,所述装置包括:
第一发送单元,用于接收所述被授权方发送的身份授权请求,并根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统,以使所述注册系统根据所述可验证凭证数据的标识进行更新;
接收单元,用于接收所述注册系统发送的更新结果;
第二发送单元,用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
第七方面,本申请实施例提供了一种身份授权设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述身份授权方法的中的任一方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述身份授权方法中的任一方法。
本申请实施例具有如下有益效果:
由上述技术方案可以看出,用于身份授权的身份授权区块链系统包括已注册的授权方和被授权方,该身份授权区块链系统中部署有注册系统;被授权方从注册系统获取授权方的声明信息,并根据自身保存的被授权方的身份标识请求授权方对被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求,并向授权方发送身份授权请求;授权方根据该身份授权请求生成可验证凭证数据,并将其中的可验证凭证数据的标识发送至注册系统,以便注册系统根据该可验证凭证数据的标识进行更新,并向授权方返回更新结果;授权方还可以将可验证凭证数据发送至被授权方,以便被授权方进行保存。从而基于该注册系统具有的区块链的去中心化优势以及外界无法篡改的优势,可以有效提高授权方与被授权方间身份授权的安全性及可靠性,进而能够保证身份授权关系可信。并解决了传统平台账号认证以及第三方账号认证存在的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种身份授权方法的流程图;
图2为本申请实施例提供的身份注册阶段的信令交互示例图;
图3为本申请实施例提供的授权方身份注册的信令交互示例图;
图4为本申请实施例提供的增加声明模板的信令交互示例图;
图5为本申请实施例提供的另一种身份授权方法的流程图;
图6为本申请实施例提供的又一种身份授权方法的流程图;
图7为本申请实施例提供的一种身份授权装置的结构框图;
图8为本申请实施例提供的另一种身份授权装置的结构框图;
图9为本申请实施例提供的又一种身份授权装置的结构框图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
目前,用于进行身份授权的证书机构可能被恶意攻击或操控,由此可能将并不存在任何关联关系的两方进行身份授权,导致身份授权关系不可信。
为此,本申请实施例提供了一种身份授权系统,该系统基于区块链的去中心化优势以及外界无法篡改的优势,有效提高了授权方与被授权方间身份授权的安全性及可靠性。接下来对本申请实施例提供的身份授权系统进行介绍。
参见图1,该图示出了本申请实施例提供的一种身份授权方法的流程图,如图1所示,该身份授权区块链系统包括已注册的授权方(Issuer)、被授权方(Holder)和注册系统。其中,授权方可以向被授权方进行授权,该授权方和被授权方可以是任意类型的实体设备(Entity),可以是人、是设备,亦或是虚拟的网站等。例如,授权方可以是服务提供商或设备生产商,被授权方可以是用户、手机、物联网设备等。
该注册系统可以是身份授权区块链系统中部署的智能合约或者其他控制系统,需要说明的是,本申请后续实施例将以注册系统为智能合约为例进行介绍,其他控制系统的实现方式可参见该智能合约的实现过程,其他实现过程不再一一赘述。其中,智能合约是指一种计算机协议,这类协议一旦制定和部署就能实现自我执行(self-executing)和自我验证(self-verifying),而且不再需要人为的干预。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。通过该系统中的智能合约的自动化及外界无法篡改的优势,以提高授权方与被授权方间身份授权的安全性及可靠性。
在本申请实施例中,进行身份授权的方法包括:
S101:被授权方从注册系统获取授权方的声明信息,根据自身保存的被授权方的身份标识请求授权方对被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求,并向授权方发送身份授权请求。
其中,授权方的声明信息可以用于标识授权方的身份。
例如,对于授权方为被授权方的生产方,该授权方的身份声明(Claim)可以包括授权方生成该被授权方设备的生产说明信息,即该身份声明标识了授权方的身份。
在本申请实施例一些可能的实现方式中,本步骤S101中的“被授权方从注册系统获取授权方的声明信息”实现过程包括下述步骤A1-A2:
步骤A1:被授权方获取授权方的身份标识,向注册系统发送授权方的身份标识。
需要说明的是,授权方通常会通过公开渠道(如官方网站)公示自身对应的身份标识(Decentralized Identifier,简称DID)信息,此处将其定义为DID_I。而被授权方为了获取授权方的声明信息,首先需要通过上述公开渠道获取授权方的身份标识(DID_I),然后可以向注册系统(即智能合约)发送授权方的身份标识(DID_I)。
步骤A2:注册系统根据授权方的身份标识,检索与授权方绑定的声明模板列表,并将其发送给被授权方。
被授权方通过步骤A1向注册系统(即智能合约)发送授权方的身份标识(DID_I)后,注册系统(即智能合约)根据授权方对应的身份标识(DID_I),检索与该授权方绑定的声明模板列表,并将其发送给被授权方。
进而,被授权方在接收到与授权方绑定的声明模板列表后,可以根据自身保存的被授权方的身份标识(此处可将其定义为DID_H)请求授权方对被授权方进行身份验证,具体验证过程如下步骤B1-B4:
步骤B1:被授权方根据被授权方的身份标识生成身份验证请求,并将身份验证请求发给授权方。
步骤B2:授权方生成第一随机数,并将该第一随机数返回给被授权方。
授权方在接收到被授权方发送的身份验证请求后,首先生成第一随机数(此处可将其定义为r1),然后将该第一随机数(r1)返回给被授权方
步骤B3:被授权方根据自身保存的被授权方的私钥对第一随机数(r1)签名得到第一签名结果,并将第一签名结果、第一随机数、被授权方的身份标识(DID_H)发给授权方。
步骤B4:授权方根据被授权方的身份标识(DID_H)从注册系统(即智能合约)获取被授权方的身份文件(DID Document),并从被授权方的身份文件(DID Document)中获取被授权方的公钥,进而可以使用获取到的被授权方的公钥和第一随机数(r1)对接收到的第一签名结果进行验签。
这样,当授权方对接收到的第一签名结果进行验签,得到的验签结果表明被授权方的身份验证结果为通过时,可以根据授权方的声明信息生成身份授权请求,并向授权方发送该身份授权请求。其中,具体的生成身份授权请求的过程为:被授权从授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据(此处可将其定义为Claim_H),根据被授权方的声明数据生成身份授权请求。并将其发送给授权方,以请求对其进行身份授权。
S102:授权方根据身份授权请求生成可验证凭证数据,并将可验证凭证数据中的可验证凭证数据的标识发送至注册系统。
在本实施例中,授权方在接收到被授权方发送的身份授权请求后,进一步可以根据该身份授权请求生成可验证凭证数据。其中,该可验证凭证数据可以是授权方为被授权方进行授权时生成的数据,可以用于体现授权方对被授权方的身份授权。在一种可能的实现方式中,该可验证凭证数据包括可验证凭证(Verifiable Credential,VC)或可验证凭证标识。该可验证凭证可以是授权方根据被授权方的声明信息得到的,该可验证凭证标识可以是授权方通过预设的标识生成方式(用于为不同的被授权方生成对应的可验证凭证标识的方式)如一种随机数生成方式生成的。
下面对可验证凭证的生成方式进行介绍。
具体来讲,在一种可能的实现方式中,在被授权方获取到授权方的声明信息后,被授权方可以根据授权方的声明信息生成被授权方的声明数据;并且,身份授权请求中可以包括该被授权方的声明数据。这样,授权方生成可验证凭证数据的具体实现过程可以包括下述步骤C1-C2:
步骤C1:授权方根据预设规则生成可验证凭证数据的标识,并用自身保存的授权方的私钥对被授权方的声明数据进行签名,得到被授权方声明数据的签名。
步骤C2:授权方根据被授权方声明数据、被授权方声明数据的签名和可验证凭证数据的标识生成所述可验证凭证数据。
具体来讲,授权方可以通过预设规则生成可验证凭证标识即VC_ID,并利用授权方自身保存的私钥对被授权方发送的身份授权请求中包含的自身的声明信息进行签名,得到被授权方声明数据的签名(此处将其定义为sign_claim)。进而可以根据被授权方声明数据、被授权方声明数据的签名(sign_claim)和可验证凭证数据的标识(VC_ID)生成可验证凭证数据。如可以通过将该声明数据的签名和可验证凭证标识组合排列,得到可验证凭证(后续简称VC)。
需要说明的是,在实际应用中,通常只会将可验证凭证数据中的可验证凭证标识(即VC_ID)经过授权方的签名后,上传到区块链智能合约,用以执行后续步骤S103。其中,VC_ID是包含在VC数据中的,整个VC数据都会由授权方进行签名再发给被授权方,因此,VC_ID也是具备防篡改特性的,由其可以代替完整VC数据。
还需要说明的是,授权方在接收到被授权方发送的身份授权请求后,在根据身份授权请求生成可验证凭证数据之前,还需要先根据被授权方发送的身份授权请求进行审核。比如,需要对被授权方的一些个人实名信息或者其社会属性信息,如姓名、身份证号、营业执照等进行审核,以保证被授权方是合法的,进而才能继续进行后续的身份授权操作步骤,进一步提高了授权方与被授权方间身份授权的安全性及可靠性。
在具体实现中,该VC是由授权方如机构或组织颁发给授权方的,是对被授权方提供的声明的认证,授权方可在相关的应用使用该VC,以使除授权方外的服务提供商可通过API对被授权方出示的VC进行验证。
VC的基本组成可以包括:凭证元数据(Credential Metadata),Claims,证据(Proofs)。Credential Metadata是VC的一些属性,例如Issuer,时间戳等,并由Issuer签名。Claims:由Issuer定义,不同的claim type可能会有不同的字段,一个VC可能包含一个或一组claim。Proos通常是Issuers的数字签名。此外,每个VC也可以有对应的识别码(Identifier)。
例如,下面为一个VC示例:
    
Figure BDA0002752448370000211
Figure BDA0002752448370000221
S103:注册系统根据可验证凭证数据的标识进行更新,并向授权方返回更新结果。
其中,授权方将可验证凭证数据的标识包含在可验证凭证数据发送至智能合约(即注册系统),以在智能合约进行保存,并更新授权方的有效可验证凭证数据列表,并向授权方返回更新结果。由于该可验证凭证数据的标识不携带有被授权方的身份信息,由此可以防止被授权方的身份数据产生泄露,保证了数据安全性。
此外,也可以将可验证凭证作为可验证凭证数据发送至智能合约(即注册系统),以在智能合约进行保存,并更新授权方的有效可验证凭证数据列表,并向授权方返回更新结果。
需要说明的是,在一种可能的实现方式中,授权方将可验证凭证数据的标识发送至注册系统之前,授权方还可以使用授权方的私钥对可验证凭证数据的标识签名得到可验证凭证数据标识的签名,由此,在执行本步骤S103中的“注册系统根据可验证凭证数据的标识进行更新”之前,还可以执行下述步骤D1-D2:
步骤D1:授权方将可验证凭证数据标识的签名、授权方的身份标识发送至注册系统。
步骤D2:注册系统根据授权方的身份标识找到对应授权方的公钥,使用授权方的公钥和可验证凭证数据的标识对可验证凭证数据标识的签名进行验签。
进而使得本步骤S103中的“注册系统根据可验证凭证数据的标识进行更新”的具体实现过程为:当验签结果为通过时,注册系统将可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
S104:授权方将可验证凭证数据发送至被授权方,以便被授权方进行保存。
在本实施例中,授权方在根据身份授权请求生成可验证凭证数据后,可将其发送至被授权方,以便被授权方进行保存,从而能够实现被授权方的身份授权。
需要说明的是,被授权方在向授权方发送身份授权请求之前,还可以设置安全标识,并将安全标识的类型设置为明文回传或密文回传。同时,将该安全标识设置在身份授权请求中,即使得身份授权请求中也包括该安全标识。这样,授权方在将可验证凭证数据发送至被授权方之前,可以先判断安全标识的类型,当安全标识的类型为明文回传时,则将可验证凭证数据的明文数据发送给被授权方;当安全标识的类型为密文回传时,则将可验证凭证数据的密文数据发送给被授权方。以根据实际情况,分别通过这两种实现方式将可验证凭证数据发送至被授权方,以实现对被授权方的身份授权。
并且,为了便于理解技术方案,下面以一个具体场景为例进行举例说明,一般而言,DIDs技术的使用流程为:
在场景中包括:被授权方(Subject/Holder),授权方(Issuer),验证方(Verifier)和可验证数据凭证注册表(Verifiable Data Registry)。Subject是指产生Claims的Entity,也是VC对应的Entity。Holder即为被授权方,通常和Subject是同一个Entity。Issuer为颁发VC给Holder的Entity(即授权方),需要对Holder提交的针对Subject的Claim进行认证。Verifier是验证VC的Entity,一般是服务提供商。Verifiable Data Registry是所有Entity都能访问到的某种数据库,比如区块链,辅助DID的生成、注册、VC的注册、查询、撤销,Issuer公钥的注册等。
在该示例中,Subject、Issuer和Verifier可以分别在身份授权区块链系统中的智能合约(即DIDs智能合约)上注册DID。且Issuer可以注册成为权威(Authority),即授权方。Verifier可以定义自身接受的Claim数据结构。Subject生成Claim,并提交给Issuer认证。Issuer首先通过Subject的DID Document上记录的认证方式对Subject进行身份认证。Issuer再对Claim进行认证,并签名。然后生成VC,将VC的哈希摘要添加到区块链智能合约上的VC列表中。Verifier首先通过DID Document认证Subject身份,再通过区块链上的VC或VC标识确认VC的合法性和有效性。
综上,本实施例提供的一种身份授权方法,用于身份授权的身份授权区块链系统包括已注册的授权方和被授权方,该身份授权区块链系统中部署有注册系统;被授权方从注册系统获取授权方的声明信息,并根据自身保存的被授权方的身份标识请求授权方对被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求,并向授权方发送身份授权请求;授权方根据该身份授权请求生成可验证凭证数据,并将其中的可验证凭证数据的标识发送至注册系统,以便注册系统根据该可验证凭证数据的标识进行更新,并向授权方返回更新结果;授权方还可以将可验证凭证数据发送至被授权方,以便被授权方进行保存。从而基于该注册系统具有的区块链的去中心化优势以及外界无法篡改的优势,可以有效提高授权方与被授权方间身份授权的安全性及可靠性,进而能够保证身份授权关系可信。并解决了传统平台账号认证以及第三方账号认证存在的问题。
接下来,本申请实施例将对上述步骤S104中“授权方将可验证凭证数据发送至被授权方,以便被授权方进行保存”的两种实现方式进行介绍:
(1)授权方将可验证凭证数据以明文数据的形式发送至被授权方,以便被授权方进行保存。具体可以包括下属步骤E1-E4:
步骤E1:授权方将可验证凭证数据以及授权方的身份标识发送至被授权方。
在本实施例中,若授权方在将可验证凭证数据发送至被授权方之前,先判断出安全标识的类型为明文回传,则可以将可验证凭证数据以及授权方的身份标识(DID_I)的明文数据发送给被授权方。
步骤E2:被授权方根据所述可验证凭证数据的标识和授权方的身份标识向注册系统发送查询请求。
在本实施例中,被授权方接收到授权方发送的可验证凭证数据以及授权方的身份标识(DID_I)后,进一步,可以根据可验证凭证数据的标识(VC_ID)和授权方的身份标识(DID_I)向注册系统发送查询请求,用以查询可验证凭证数据的标识(VC_ID)和授权方的身份标识(DID_I)的有效性。
步骤E3:注册系统根据授权方的身份标识检索授权方的可验证凭证数据列表中是否存在可验证凭证数据的标识,若存在,则表明可验证凭证数据的标识有效,并将查询结果及授权方的身份标识对应的授权方的身份文件返回至被授权方。
步骤E4:被授权方根据授权方的身份文件对可验证凭证数据进行验证,若验证通过,则确认可验证凭证数据合法,并将其进行存储。
具体来讲,被授权方可以从授权方的身份文件中获取授权方的公钥,保密柜使用该授权方的公钥、可验证凭证数据中的被授权方声明数据对可验证凭证数据中的被授权方声明数据的签名进行验签,并在验签结果表明验证凭证数据验证通过后,确认可验证凭证数据合法,并将其进行存储。
举例说明:被授权方的实体程序从授权方的身份文件中获取公钥(pubKey_I),再通过安全模块(如被授权方的芯片或SIM卡)对可验证凭证数据中的被授权方声明数据(claim_H)的签名(sign_claim_H)进行验签,并将验签结果返回至实体程序,若验签成功,则实体程序可以确定可验证凭证数据的合法性,进一步可以将包含可验证凭证数据的标识(VC_ID)的可验证凭证数据发送至安全模块进行存储,之后安全模块再将存储结果返回至实体程序。
(2)授权方将可验证凭证数据以密文数据的形式发送至被授权方,以便被授权方进行保存。
在第一种实现方式中,授权方将可验证凭证数据以密文数据的形式发送至被授权方,以便被授权方进行保存的具体实现过程可以包括下述步骤F1-F5:
步骤F1:授权方利用私钥对可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至被授权方。
在本实施例中,若授权方在将可验证凭证数据发送至被授权方之前,先判断出安全标识的类型为密文回传,则可以将可验证凭证数据的密文数据发送给被授权方,具体来讲,授权方首先可以利用私钥对可验证凭证数据进行签名(如数字签名),然后再将签名后的可验证凭证数据发送至被授权方。
步骤F2:被授权方向注册系统发送实体身份查询请求。
在本实施例中,被授权方接收到授权方发送的签名后的可验证凭证数据后,进一步,可以向注册系统发送实体身份查询请求。
步骤F3:注册系统将预先存储的实体的身份文件返回至被授权方。
步骤F4:被授权方利用实体的身份文件,对签名后的可验证凭证数据进行验签,若验签成功,则确认可验证凭证数据合法。
步骤F5:被授权方将确认可验证凭证数据合法的结果发送至注册系统进行查询,若注册系统查询到可验证凭证数据是有效的,则将查询结果返回至被授权方,以便被授权方存储可验证凭证数据。
在第二种实现方式中,被授权方预先生成了第二随机数,并将该第二随机数设置在身份授权请求中,即使得身份授权请求中包括了第二随机数。则授权方将可验证凭证数据以密文数据的形式发送至被授权方,以便被授权方进行保存的具体实现过程可以包括下述步骤G1-G2:
步骤G1:授权方生成第三随机数,并根据第二随机数、第三随机数、可验证凭证数据生成身份验证数据和可验证凭证数据的加密数据;进而将身份验证数据、可验证凭证数据的加密数据、自身保存的授权方身份标识密文返回给被授权方。
步骤G2:被授权方根据授权方的身份标识从注册系统获取授权方的身份文件;根据授权方的身份文件对身份验证数据进行验证,验证通过则对可验证凭证数据的加密数据进行解密得到可验证凭证数据,并对解密得到的可验证凭证数据进行保存。
在本申请实施例一些可能的实现方式中,上述步骤G1中的“授权方根据第二随机数和第三随机数、可验证凭证数据生成身份验证数据和可验证凭证数据的加密数据”的具体实现过程包括下述步骤H1-H3:
步骤H1:授权方使用授权方对被授权方进行身份验证时获取的被授权方的公钥对第三随机数加密,得到第三随机数的加密数据。
步骤H2:授权方使用自身保存的授权方私钥对第三随机数签名,得到第三随机数的签名。
步骤H3:授权方根据第二随机数和第三随机数生成第一会话密钥,并使用第一会话密钥对可验证凭证数据进行加密得到可验证凭证数据的加密数据。
在此基础上,上述步骤G2中的“根据授权方的身份文件对身份验证数据进行验证”的具体实现过程包括下述步骤I1-I2:
步骤I1:被授权方从授权方的身份文件中获取授权方的公钥,并使用自身保存的被授权方的私钥对第三随机数的加密数据进行解密得到第一解密数据。
其中,需要说明的是,身份文件中通常会包括多个公钥以及对应的密钥标识,由此,当授权方所属的身份文件中包含多个密钥时,被授权方首先需要通过密钥标识来查找出授权方对应的公钥,然后才能再使用自身保存的被授权方的私钥对第三随机数的加密数据进行解密,以得到第一解密数据。
步骤I2:被授权方使用授权方的公钥和第一解密数据对第三随机数的签名进行验签。
在此基础上,上述步骤G2中的被授权方对可验证凭证数据的加密数据进行解密得到可验证凭证数据,并对解密得到的可验证凭证数据进行保存的具体实现过程包括下述步骤J1-J2:
步骤J1:若验签成功,则被授权方可以根据第二随机数和第一解密数据生成第二会话密钥。
步骤J2:被授权方使用第二会话密钥对可验证凭证数据的加密数据解密,得到可验证凭证数据,从可验证凭证数据中提取被授权方的声明数据及被授权方的声明数据签名,使用授权方的公钥和提取的被授权方的声明数据对被授权方声明数据的签名进行验签,若验签通过,则对可验证凭证数据进行保存。
此外,一种可选的实现方式是,为了提高授权方与被授权方间身份授权的安全性及可靠性。被授权方对可验证凭证数据进行保存之前,还可以将可验证凭证数据中的可验证凭证数据的标识(VC_ID)发送给注册系统,以便注册系统检查可验证凭证数据的标识是否有效,如,可以采用检查VC列表是否存在的方式,验证授权方的身份标识(DID_I)的有效性。并且,当验证结果为可验证凭证数据的标识(DID_I)有效,且被授权方对身份验证数据验证结果为通过时,被授权方可以对可验证凭证数据进行保存。
接下来,对授权方与被授权方在身份授权区块链系统进行注册的方法进行介绍。在一种可能的实现方式中,以授权方或被授权方作为目标方为例进行说明。
在本实现方式中,目标方(具体为授权方或被授权方)可以生成对应的身份标识和身份文件。其中,身份标识可以用于标识该身份授权区块链系统中的该目标方的身份。该目标方还可以生成对应的公私钥对,以用于通过签名和验签的方式来验证目标方的身份。其中,目标方生成的公钥可以作为该目标方对应的验签公钥,目标方生成的身份文件包括对应的验签公钥和验签方式。当目标方通过其私钥进行签名得到对应的签名数据时,可以通过该验签公钥和验签方式对签名数据进行解签。
在具体实现中,目标方生成的身份标识可以是去中心化身份(DecentralizedIdentifiers,DID),即由实体(Entity)自主生成和控制的身份标识信息。
该DID包含一些固定字段和一个唯一的随机字符串,用以指向确定的Entity。其语法格式为:"did:"method-name":"method-specific-id”,其中method-name为方案名称,method-specific-id是基于场景规则生成的ID号。
例如,一个Entity的DID为:
“DID:bhdc:0d7ef5e3c48123……d10edd982e5b65642af8d2a792964”。
另外,为了保证唯一性,DID可以是通过实体持有的公钥的哈希值,并在生成后到区块链上注册并存证,以确保每个DID的唯一性。
去中心化身份文档(Decentralized Identifiers Document,DID Document):
每一个DID都有对应的DID文档,即身份文档,该DID文档中包含更多的关于目标方身份的信息,例如公钥(Public Key)、验签方式、服务(Service)等。DID Document可以存储在目标方的用户软件中或者设备安全硬件中,也可以在本地加密后存储在用户指定的云平台中,本申请对此不作限定。
下面给出一个DID Document的示例:
Figure BDA0002752448370000291
Figure BDA0002752448370000301
其中,"Public Key"域表明DID实体持有的公钥数据,"authentication"域用来表明可用于DID实体身份认证的公钥(可从“Public Key”域中引用,也可以补充添加新的公钥),"Service"域标识当前DID实体可以对外提供的服务内容,例如作为设备生产商,可以为自己生产的设备签发可验证凭据(Verifiable Credential)。
为了便于理解本申请的技术方案,下面对DID、DID Document和VC的关系进行介绍。
DID Document和DID是一对一关系,每个DID都有对应的DID Document记录其公钥和认证方式。
DID Document和VC没有直接关系,但是Issuer在颁发VC时可能需要借助Document验证Entity身份。
DID和VC不是简单的对应关系,DID用来描述Entity,VC则是Entity某些属性的证明,通常来讲,一个DID会拥有多个VC,一个VC至少会对应一个DID,特殊情况下会有对应多个DID的VC,例如结婚证。
从而,目标方可以根据身份标识和身份文件向注册系统(即智能合约)进行身份注册。需要说明的是,身份文件中包括对应的验签公钥。
然后,注册系统(即智能合约)可以对身份标识和身份文件进行审核,若通过审核,确定目标方完成身份注册,并保存该目标方对应的身份文件。
具体来讲,目标方生成对应的身份标识和身份文件的过程可以为:目标方首先可以设定密钥类型(safeType)并获取当前时间(即时间戳(timeStamp)),然后,根据密钥类型(safeType)和当前时间(timeStamp),随机生成一对公钥和私钥(pubKey和privKey)。其中,可以将私钥加密后存储在芯片内部,接着,对公钥进行哈希运算,得到其对应的哈希值,并将该哈希值作为目标方的身份标识(即DID),进而可以根据该身份标识和公钥(pubKey)生成目标方的身份文件(DID Document)。一种可选的实现方式是,目标方生成对应的身份标识和身份文件后,还可以对身份标识和身份文件进行保存。
在此基础上,目标方可以将得到的身份标识和身份文件发送至注册系统,以便注册系统对身份标识和身份文件进行审核,即,以便注册系统确定身份标识是否存在于之前已保存的身份标识集合中,若不存在,则可以向目标方发送随机标识。
进一步的,目标方在接收到随机标识后,可以利用私钥对随机标识进行签名,得到第一签名数据,并将身份文件和随机标识以及第一签名数据发送至注册系统,以便注册系统根据身份文件对第一签名数据进行验签,若验签通过,则可以确定目标方完成身份注册,并保存目标方对应的身份文件。
再进一步的,一种可选的实现方式是,在确定目标方完成身份注册之后后,注册系统可以将身份标识的查询地址发送给目标方,以便目标方根据身份标识的查询地址对身份文件进行更新。
举例说明:参见图2,该图示出了本申请实施例提供的一种身份注册阶段的信令交互示例图,如图2所示,包括一个DID实体即上文提及的目标方,可以是授权方或被授权方。该DID实体可以是一个数据处理设备,该数据处理设备可以包括安全模块和设备程序,安全模块和设备程序间通过硬件接口通信。则该被授权方(holder)或授权方(issuer)的注册过程包括:
S501:实体的设备程序可以获取时间戳(timeStamp)和设定密钥对类型(safeType)。
该时间戳即为获取的当前时间。
S502:设备程序将密钥对类型和时间戳发送至实体的安全模块,向安全模块请求生成身份标识(DID)。
S503:安全模块根据当前时间(timeStamp)和密钥对类型(safeType)随机生成一对公钥和私钥。
S504:安全模块将私钥保存,对公钥进行哈希运算,得到其对应的哈希值,并将该哈希值作为目标方(即授权方(holder)或授权方(issuer))的身份标识(DID)。
其中,安全模块可以将私钥加密后存储在芯片内部。
S505:安全模块结合预设模板和传入的当前时间timeStamp生成身份文件(DIDDocument)。
S506:安全模块将身份文件(DID Document)返回设备程序。
S507:设备程序将身份标识(DID)和身份文件(DID Document)发送至注册系统,请求对身份标识和身份文件验证(即审核)。
其中,该注册系统是基于区块链智能合约搭建的。
S508:注册系统检索身份标识(DID)是否已被注册(即注册系统需要确定该身份标识是否存在于保存的身份标识集合中),若否,则说明该身份标识(DID)是可用的,执行S509。
S509:注册系统向设备程序发送随机标识(Nonce),如随机字符串。
S510:设备程序向安全模块请求对随机标识(如随机字符串)进行签名。
S511:安全模块按照利用私钥,预设算法(如ECDSA、RSA、SM2等签名算法)对随机标识(如随机字符串)进行签名,生成签名数据(sign_Nonce),此处将其定义为第一签名数据。
S512:安全模块将第一签名数据(sign_Nonce)和身份文件(DID Document)发送至设备程序。
S513:设备程序向注册系统发送身份文件(DID Document)、随机标识(Nonce)和第一签名数据(sign_Nonce),请求身份标识(DID)注册。
S514:注册系统从身份文件(DID Document)中获取公钥,并对第一签名数据(sgin_Nonce)进行验签。验证通过后,则在注册系统中注册身份标识(DID),即将该身份标识(DID)保存在注册系统中存储的身份标识集合中,也就是保存了该目标方对应的身份文件(DID Document)。
S515:注册系统向设备程序返回注册结果和身份查询地址(uri_did)。
S516:设备程序向安全模块返回身份查询地址。
S517:安全模块将身份查询地址更新至身份文件(DID Document)。
接下来,在另一种可能的实现方式中,以授权方作为目标方为例,对授权方的身份注册过程进行说明。具体还可以包括下述步骤K1-K4:
步骤K1:授权方生成授权方身份数据,并利用私钥对身份数据进行签名,得到第二签名数据;其中,授权方身份数据指的是体现授权方具有身份授权权限的数据。
步骤K2:授权方将身份文件和身份数据以及第二签名数据发送至注册系统。
步骤K3:注册系统根据身份文件对第二签名数据进行验证,若通过验证,则授予授权方的身份授权权限资格,并将身份授权权限资格保存至自身存储的身份文件中,以及将授权方的注册状态和身份查询地址发送至授权方。
步骤K4:授权方将身份查询地址更新至自身存储的身份文件中。
举例说明:参见图3,该图示出了本申请实施例提供的一种授权方身份注册的信令交互示例图,如图3所示,该方法包括:
S601:设备程序设置发行人身份和生成授权方身份数据(IssuerData)。
其中,授权方身份数据为体现授权方具有身份授权权限的数据;
具体来讲,可以通过用户在实体对象的设备程序中人工填写发行人身份(即确定该实体对象为授权方)和生成授权方身份数据,或者也可以由设备程序自动设置发行人身份和验证信息,对于一些对外提供服务的DID实体对象,在注册DID身份之后可以注册Issuer身份。
S602:实体的设备程序向安全模块请求对身份数据签名。
S603:实体的安全模块利用私钥对身份数据(IssuerData)进行签名,得到签名(sign_IssuerData),此处将其定义为第二签名数据。
其中,安全模块可以先解密内部存储的私钥,在利用其对身份数据(IssuerData)按照预设算法生成第二签名数据(sign_IssuerData)。
S604:安全模块将第二签名数据(sign_IssuerData)返回给设备程序。
S605:设备程序向注册系统发送身份文件(DID Document)、身份数据IssuerData、第二签名数据(sign_IssuerData),以请求授权方(Issuer)的身份权限注册。
S606:注册系统根据身份文件(DID Document)中的公钥对第二签名数据(sign_IssuerData)进行验签,若验签成功,注册Issuer身份,即,授予其身份授权权限资格,并将该身份授权权限资格保存至自身存储的身份文件(DID Document)。
S607:注册系统向设备程序返回注册状态和身份查询地址(uri_issuer)。
S608:设备程序将身份查询地址(uri_issuer)发送至安全模块。
S609:安全模块将身份查询地址(uri_issuer)更新到自身存储的身份文件(DIDDocument)中。
接下来,本申请实施例将对授权方和被授权方增加声明模板的过程进行说明。具体可以包括下述步骤L1-L4:
步骤L1:授权方生成声明信息,并利用私钥对声明信息中的声明模板查询地址进行签名,得到第三签名数据;其中,声明信息包括声明模板和声明模板查询地址。
步骤L2:授权方将身份文件和声明信息中的声明模板查询地址以及第三签名数据发送至注册系统。
步骤L3:注册系统根据自身保存的身份文件对第三签名数据进行验证,若通过验证,则将声明信息保存在自身存储的身份文件中,并向目标方返回声明信息的新增结果。
步骤L4:目标方将声明模板地址更新至自身存储的身份文件中。
举例说明:参见图4,该图示出了本申请实施例提供的增加声明(claim)模板的信令交互示例图,如图4所示,该方法包括:
S701:实体的设备程序生成声明信息,其中,声明信息包括声明模板和声明模板查询地址(uri_claim)。
S702:设备程序向实体的安全模块请求对声明信息中的声明模板查询地址(uri_claim)进行签名。
S703:安全模块利用内置私钥对声明模板查询地址(uri_claim)签名得到签名数据(sign_uri_claim),此处将其定义为第三签名数据。
S704:安全模块向设备程序发送第三签名数据(sign_uri_claim)。
S705:设备程序向注册系统发送身份文件(DID Document)、声明模板查询地址(uri_claim)、第三签名数据(sign_uri_claim),以请求新增该声明(claim)模板。
S706:注册系统利用身份文件(DID Document)中的公钥对第三签名数据(sign_uri_claim)进行验签,并在验签成功后,将声明模板查询地址所属的声明信息增加至自身存储的身份文件(DID Document)中,若验签失败,则不会添加声明模板查询/获取地址。
S707:注册系统将声明模板的添加结果发送至设备程序中。
S708:设备程序将声明模板查询地址(uri_claim)发送至安全模块。
S709:安全模块将声明模板查询地址(uri_claim)更新到自身存储的身份文件(DID Document)的Service域中,并向设备程序返回新增状态。
需要说明的是,在本申请实施例一些可能的实现方式中,所述身份授权区块链系统中还部署有验证方(Verifier)。该验证方指的是用于验证可验证凭证数据(VC)的实体,可以是任意类型的实体设备(Entity),可以是人、是设备,亦或是虚拟的网站等。例如,验证方可以是服务提供商等。利用该验证方和注册系统(即智能合约)可以对被授权方的身份进行验证。
具体来讲,被授权方在获取到可验证凭证数据(VC)后,还可以利用自身的私钥对其进行加密,生成可验证报告(Verifiable Presentation,简称VP),进一步的,验证方(Verifier)可以通过从注册系统(即智能合约)获取的被授权方的身份文件(DIDDocument)对VP进行验证,以验证被授权方的身份。接下来,本申请将对VP的验证过程进行详细介绍,具体可以包括下述步骤M1-M4:
步骤M1:被授权方向验证方发送验证请求,其中,该验证请求中包括被授权方的身份标识(DID_H)。
步骤M2:验证方根据验证请求生成随机数(nonce),并将该随机数(nonce)返回至被授权方。
步骤M3:被授权方根据随机数(nonce)和自身保存的可验证凭证数据(VC)生成可验证报告(VP),并将该可验证报告(VP)、自身保存的被授权方的身份标识(DID_H)发送至验证方(Verifier)。
步骤M4:验证方利用被授权方的身份标识(DID_H)从注册系统(即智能合约)获取被授权方的身份文件(DID Document),并根据该被授权方的身份文件(DID Document)对可验证报告(VP)进行验证,并向被授权方返回验证结果。
具体来讲,在一种可能的实现方式中,上述步骤M3中的“被授权方根据随机数(nonce)和自身保存的可验证凭证数据(VC)生成可验证报告(VP)”实现过程包括下述步骤M31-M32:
步骤M31:被授权方使用自身保存的被授权方的私钥对随机数(nonce)进行签名,得到签名数据(此处将其定义为第四签名数据)。并使用被授权方的私钥对可验证凭证数据(VC)进行签名,得到签名数据(此处将其定义为第五签名数据)。
步骤M32:被授权方利用随机数(nonce)、第四签名数据、可验证凭证数据(VC)、第五签名数据,生成可验证报告。
在此基础上,上述步骤M4中的“验证方根据被授权方的身份文件(DID Document)对可验证报告(VP)进行验证”的具体实现过程为:验证方从被授权方的身份文件(DIDDocument)中获取被授权方的公钥,并使用该被授权方的公钥分别对得到的第四签名数据和第五签名数据进行验签。具体的验签过程包含以下两种方式:
一种方式是验证方可以先从可验证报告(VP)中获取随机数(nonce),然后使用被授权方的公钥和随机数(nonce)对第四签名数据验签,并在验签通过时,使用被授权方公钥和可验证凭证数据(VC)对第五签名数据验签。
另一种方式验证方可以先使用被授权方的公钥和可验证凭证数据(VC)对第五签名数据验签,然后在验签通过时,可以从可验证报告(VP)中获取随机数(nonce),并使用被授权方的公钥和该随机数(nonce)对第四签名数据验签。
其中,一种可选的实现方式是,为了提高验证结果的准确性,在上述步骤M32中,当验证方根据被授权方的身份文件(DID Document)对可验证报告(VP)进行验证通过之后,还可以先执行下述步骤N1-N3,然后向被授权方返回更加准确的验证结果。
步骤N1:验证方先从可验证报告(VP)中获取可验证凭证数据(VC),然后从获取的可验证凭证数据(VC)中提取授权方的身份标识(DID_H)和可验证凭证数据的标识(VC_ID),接着,可以向注册系统(即智能合约)发送授权方的身份标识(DID_H)和可验证凭证数据的标识(VC_ID),用以执行后续步骤N2。
步骤N2:注册系统(即智能合约)检查被授权方的身份标识(DID_H)和可验证凭证数据的标识(VC_ID)是否在有效可验证凭证数据列表中,并向验证方返回被授权方有效或失效的查询结果,即,向验证方返回表明被授权方的可验证凭证数据的标识(VC_ID)是有效或失效的查询结果。
步骤N3:验证方在接收到注册系统(即智能合约)返回的表明被授权方的可验证凭证数据的标识(VC_ID)是有效或失效的查询结果后,若判断出被授权方的可验证凭证数据的标识(VC_ID)是有效的,则可以向被授权方返回对可验证报告(VP)进行验证的验证结果,即,对被授权身份验证通过,完成VP的验证。但若判断出被授权方的可验证凭证数据的标识(VC_ID)是失效的,则不向被授权方返回对可验证报告(VP)进行验证的验证结果,即被授权身份验证不通过。
由上可知,用于身份验证的身份授权区块链系统包括已注册的被授权方和验证方,该身份授权区块链系统中部署有注册系统;被授权方向验证方发送包括被授权方的身份标识的验证请求后,验证方可以根据该验证请求生成随机数,并将该随机数返回至被授权方。以便被授权方根据随机数和自身保存的可验证凭证数据生成可验证报告,并将该可验证报告、自身保存的被授权方的身份标识发送至验证方,从而验证方可以利用被授权方的身份标识从注册系统获取被授权方的身份文件,并根据被授权方的身份文件对可验证报告进行验证,并向被授权方返回验证结果。进而基于该注册系统具有的区块链的去中心化优势以及外界无法篡改的优势,可以有效提高被授权方身份验证结果的准确性和可靠性
参见图5,该图为本申请实施例提供的另一种身份授权方法的流程图。该方法由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,下面对该方法进行介绍。
S801:从注册系统获取授权方的声明信息,并根据自身保存的被授权方的身份标识请求授权方对所述被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求。
S802:向授权方发送身份授权请求,以请求身份授权。
S803:接收授权方发送的可验证凭证数据并保存,其中,可验证凭证数据是授权方根据身份授权请求生成的。
参见图6,该图为本申请实施例提供的又一种身份授权方法的流程图。该方法由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,下面对该方法进行介绍。
S901:接收被授权方发送的身份授权请求,并根据身份授权请求生成可验证凭证数据,并将可验证凭证数据中的可验证凭证数据的标识发送至注册系统,以使注册系统根据可验证凭证数据的标识进行更新。
S902:接收注册系统发送的更新结果。
S903:将可验证凭证数据发送至被授权方,以便被授权方进行保存。
参见图7所示,本申请还提供了一种身份授权装置,应用于包括授权方和被授权方的身份授权区块链系统,所述身份授权区块链系统中部署有注册系统,该装置包括:
被授权方1001,用于从所述注册系统获取所述授权方的声明信息,根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求,并向所述授权方发送所述身份授权请求;
授权方1002,用于根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统;
注册系统1003,用于根据所述可验证凭证数据的标识进行更新,并向所述授权方返回更新结果;
所述授权方1002,还用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存;
所述被授权方1001,还用于接收来自所述授权方1102的所述可验证凭证数据,并对所述可验证凭证数据进行保存。
在一种可能的实现方式中,所述被授权方1001具体用于:
根据所述被授权方的身份标识生成身份验证请求,并将所述身份验证请求发给所述授权方;
所述授权方1002具体用于:
生成第一随机数,并将所述第一随机数返回给所述被授权方;
所述被授权方1001还具体用于:
根据自身保存的被授权方的私钥对所述第一随机数签名得到第一签名结果,将所述第一签名结果、所述第一随机数、所述被授权方的身份标识发给所述授权方;
所述授权方1002还具体用于:
根据所述被授权方的身份标识从所述注册系统获取所述被授权方的身份文件,从所述被授权方的身份文件中获取被授权方的公钥,使用获取的所述被授权方的公钥和所述第一随机数对所述第一签名结果进行验签。
在一种可能的实现方式中,所述被授权方1001具体用于:
获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;
所述注册系统1003具体用于:
根据所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并将其发送给所述被授权方。
在一种可能的实现方式中,所述被授权方1001具体用于:
从所述授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据,根据所述被授权方的声明数据生成所述身份授权请求。
在一种可能的实现方式中,所述被授权方1001还用于根据所述授权方的声明信息生成被授权方的声明数据;所述身份授权请求中包括所述被授权方的声明数据;
所述授权方1002具体用于:
根据预设规则生成所述可验证凭证数据的标识,并用自身保存的授权方的私钥对所述被授权方的声明数据进行签名,得到被授权方声明数据的签名;
根据所述被授权方声明数据、所述被授权方声明数据的签名和所述可验证凭证数据的标识生成所述可验证凭证数据。
在一种可能的实现方式中,所述授权方1002还用于:
使用所述授权方的私钥对所述可验证凭证数据的标识签名得到可验证凭证数据标识的签名;
将所述可验证凭证数据标识的签名、授权方的身份标识发送至所述注册系统;
所述注册系统1003具体用于:
根据所述授权方的身份标识找到对应授权方的公钥,使用所述授权方的公钥和所述可验证凭证数据的标识对所述可验证凭证数据标识的签名进行验签。
在一种可能的实现方式中,当验签结果为通过时,所述注册系统1003具体用于将所述可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
在一种可能的实现方式中,所述授权方1002具体用于:
将所述可验证凭证数据以及所述授权方的身份标识发送至所述被授权方;
根据所述可验证凭证数据的标识和所述授权方的身份标识向所述注册系统发送查询请求;
所述注册系统1003具体用于:
根据所述授权方的身份标识检索所述授权方的可验证凭证数据列表中是否存在所述可验证凭证数据的标识,若存在,则表明所述可验证凭证数据的标识有效,并将查询结果及所述授权方的身份标识对应的授权方的身份文件返回至所述被授权方;
所述被授权方1001还具体用于:
根据所述授权方的身份文件对所述可验证凭证数据进行验证,若验证通过,则确认所述可验证凭证数据合法,并将其进行存储。
在一种可能的实现方式中,所述被授权方1001具体用于:、
从所述授权方的身份文件中获取授权方的公钥,使用所述授权方的公钥、所述可验证凭证数据中的被授权方声明数据对所述可验证凭证数据中的被授权方声明数据的签名进行验签。
在一种可能的实现方式中,所述授权方1002具体用于:
利用私钥对所述可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至所述被授权方;
向所述注册系统发送实体身份查询请求;
所述注册系统1003具体用于:
将预先存储的实体的身份文件返回至所述被授权方;
所述被授权方1001还具体用于:
利用所述实体的身份文件,对所述签名后的可验证凭证数据进行验签,若验签成功,则确认所述可验证凭证数据合法;
将确认所述可验证凭证数据合法的结果发送至所述注册系统进行查询,若所述注册系统查询到所述可验证凭证数据是有效的,则将查询结果返回至所述被授权方,以便所述被授权方存储所述可验证凭证数据。
在一种可能的实现方式中,所述被授权方1001还用于:
生成第二随机数;所述身份授权请求中还包括所述第二随机数;
则所述授权方1002具体用于:
生成第三随机数,根据所述第二随机数、所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据;将所述身份验证数据、所述可验证凭证数据的加密数据、自身保存的授权方身份标识发送给所述被授权方;
所述被授权方1001还用于:根据所述授权方的身份标识从所述注册系统获取授权方的身份文件;根据所述授权方的身份文件对所述身份验证数据进行验证,验证通过则对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存。
在一种可能的实现方式中,所述授权方1002具体用于:
使用所述授权方对所述被授权方进行身份验证时获取的所述被授权方的公钥对所述第三随机数加密,得到第三随机数的加密数据;
使用自身保存的授权方私钥对所述第三随机数签名,得到第三随机数的签名;
根据所述第二随机数和所述第三随机数生成第一会话密钥,使用所述第一会话密钥对所述可验证凭证数据进行加密得到所述可验证凭证数据的加密数据。
在一种可能的实现方式中,所述被授权方1001具体用于:
从所述授权方的身份文件中获取授权方的公钥,使用自身保存的被授权方的私钥对所述第三随机数的加密数据进行解密得到第一解密数据;
使用所述授权方的公钥和所述第一解密数据对所述第三随机数的签名进行验签。
在一种可能的实现方式中,所述被授权方1001具体用于:
若验签成功,则根据所述第二随机数和所述第一解密数据生成第二会话密钥;
使用所述第二会话密钥对所述可验证凭证数据的加密数据解密,得到所述可验证凭证数据,从所述可验证凭证数据中提取被授权方的声明数据及所述被授权方的声明数据签名,使用所述授权方的公钥和提取的被授权方的声明数据对所述被授权方声明数据的签名进行验签,若验签通过,则对所述可验证凭证数据进行保存。
在一种可能的实现方式中,所述被授权方1001还用于:
将所述可验证凭证数据中的可验证凭证数据的标识发送给所述注册系统,所述注册系统检查所述可验证凭证数据的标识是否有效;
当验证结果为所述可验证凭证数据的标识有效,且所述被授权方对所述身份验证数据验证结果为通过时,对所述可验证凭证数据进行保存。
在一种可能的实现方式中,所述授权方1002还用于:
根据所述被授权方发送的身份授权请求进行审核。
在一种可能的实现方式中,目标方为所述授权方1002或所述被授权方1001;所述目标方具体用于:
生成对应的身份标识和身份文件,并根据所述身份标识和所述身份文件向所述注册系统进行身份注册;所述身份文件中包括对应的验签公钥;
所述注册系统1003具体用于:对所述身份标识和所述身份文件进行审核,若通过审核,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
在一种可能的实现方式中,所述目标方具体用于:
获取当前时间并设定密钥对类型,并根据所述当前时间和所述密钥对类型,生成公钥和私钥;
对所述公钥进行哈希运算,得到其对应的哈希值,并将所述哈希值作为所述目标方的身份标识;
根据所述身份标识和所述公钥生成所述目标方的身份文件。
在一种可能的实现方式中,所述目标方具体用于:
将所述身份标识和所述身份文件发送至注册系统;
所述注册系统1003具体用于:确定所述身份标识是否存在于已保存的身份标识集合中,若否,向所述目标方发送随机标识。
在一种可能的实现方式中,所述目标方还用于:
接收所述随机标识,并利用所述私钥对所述随机标识进行签名,得到第一签名数据;
将所述身份文件和所述随机标识以及所述第一签名数据发送至所述注册系统;
所述注册系统1003还用于:根据所述身份文件对所述第一签名数据进行验签,若验签通过,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
在一种可能的实现方式中,所述目标方还用于:
对所述身份文件进行保存;
所述注册系统1003还用于:将身份标识的查询地址发送给所述目标方;
所述目标方还用于:根据所述身份标识的查询地址对所述身份文件进行更新。
在一种可能的实现方式中,当目标方为所述授权方时,所述授权方702还用于:
生成授权方身份数据,并利用所述私钥对所述身份数据进行签名,得到第二签名数据;所述授权方身份数据为体现所述授权方具有身份授权权限的数据;
将所述身份文件和所述身份数据以及所述第二签名数据发送至所述注册系统;
所述注册系统1003还用于:根据所述身份文件对所述第二签名数据进行验证,若通过验证,授予所述授权方的身份授权权限资格,并将所述身份授权权限资格保存至自身存储的身份文件中,以及将所述授权方的注册状态和身份查询地址发送至所述授权方;
所述授权方1002还用于:将所述身份查询地址更新至自身存储的身份文件中。
在一种可能的实现方式中,所述授权方1002还用于:
生成声明信息,并利用所述私钥对所述声明信息中的声明模板查询地址进行签名,得到第三签名数据;所述声明信息包括声明模板和声明模板查询地址;
将所述身份文件和所述声明信息中的声明模板查询地址以及所述第三签名数据发送至所述注册系统;
所述注册系统1003还用于:根据自身保存的所述身份文件对所述第三签名数据进行验证,若通过验证,则将所述声明信息保存在自身存储的身份文件中,并向所述目标方返回所述声明信息的新增结果;
所述目标方还用于:将所述声明模板查询地址更新至自身存储的身份文件中。
在一种可能的实现方式中,所述被授权方1001还用于:
设置安全标识,将所述安全标识的类型设置为明文回传或密文回传;所述身份授权请求中还包括所述安全标识;
判断所述安全标识的类型,当所述安全标识的类型为明文回传时,则将所述可验证凭证数据的明文数据发送给所述被授权方;当所述安全标识的类型为密文回传时,则将所述可验证凭证数据的密文数据发送给所述被授权方。
综上,在本实施例提供的一种身份授权装置中,用于身份授权的身份授权区块链系统包括已注册的授权方和被授权方,该身份授权区块链系统中部署有注册系统;被授权方从注册系统获取授权方的声明信息,并根据自身保存的被授权方的身份标识请求授权方对被授权方进行身份验证,当授权方对被授权方的身份验证结果为通过时,根据授权方的声明信息生成身份授权请求,并向授权方发送身份授权请求;授权方根据该身份授权请求生成可验证凭证数据,并将其中的可验证凭证数据的标识发送至注册系统,以便注册系统根据该可验证凭证数据的标识进行更新,并向授权方返回更新结果;授权方还可以将可验证凭证数据发送至被授权方,以便被授权方进行保存。从而基于该注册系统具有的区块链的去中心化优势以及外界无法篡改的优势,可以有效提高授权方与被授权方间身份授权的安全性及可靠性,进而能够保证身份授权关系可信。并解决了传统平台账号认证以及第三方账号认证存在的问题。
参见图8所示,本申请还提供了另一种身份授权装置,该装置由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,该装置包括:
生成单元1101,用于从所述注册系统获取所述授权方的声明信息,并根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求;
发送单元1102,用于向所述授权方发送所述身份授权请求,以请求身份授权;
接收单元1103,用于接收所述授权方发送的可验证凭证数据并保存,所述可验证凭证数据是所述授权方根据所述身份授权请求生成的。
参见图9所示,本申请还提供了又一种身份授权装置,该装置由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,该装置包括:
第一发送单元1201,用于接收所述被授权方发送的身份授权请求,并根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统,以使所述注册系统根据所述可验证凭证数据的标识进行更新;
接收单元1202,用于接收所述注册系统发送的更新结果;
第二发送单元1203,用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
进一步地,本申请实施例还提供了一种身份授权设备,包括:处理器以及存储器;
所述处理器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述存储器用于根据所述程序代码中的指令执行上述身份授权方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在终端设备上运行时,使得所述终端设备执行上述身份授权方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (52)

1.一种身份授权方法,其特征在于,应用于包括授权方和被授权方的身份授权区块链系统,所述身份授权区块链系统中部署有注册系统;所述方法包括:
所述被授权方从所述注册系统获取所述授权方的声明信息,根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求,并向所述授权方发送所述身份授权请求;其中,所述被授权方从所述注册系统获取所述授权方的声明信息,具体包括:所述被授权方获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;所述注册系统根据所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并将其发送给所述被授权方;
所述授权方根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统;
所述注册系统根据所述可验证凭证数据的标识进行更新,并向所述授权方返回更新结果;
所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
2.根据权利要求1所述的方法,其特征在于,所述被授权方根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,具体包括:
所述被授权方根据所述被授权方的身份标识生成身份验证请求,并将所述身份验证请求发给所述授权方;
所述授权方生成第一随机数,并将所述第一随机数返回给所述被授权方;
所述被授权方根据自身保存的被授权方的私钥对所述第一随机数签名得到第一签名结果,将所述第一签名结果、所述第一随机数、所述被授权方的身份标识发给所述授权方;
所述授权方根据所述被授权方的身份标识从所述注册系统获取所述被授权方的身份文件,从所述被授权方的身份文件中获取被授权方的公钥,使用获取的所述被授权方的公钥和所述第一随机数对所述第一签名结果进行验签。
3.根据权利要求1所述的方法,其特征在于,所述被授权方根据所述授权方的声明信息生成身份授权请求,具体为:
所述被授权方从所述授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据,根据所述被授权方的声明数据生成所述身份授权请求。
4.根据权利要求1所述的方法,其特征在于,所述被授权方获取所述授权方的声明信息后,还包括:所述被授权方根据所述授权方的声明信息生成被授权方的声明数据;所述身份授权请求中包括所述被授权方的声明数据;
所述授权方生成可验证凭证数据,具体包括:
所述授权方根据预设规则生成所述可验证凭证数据的标识,并用自身保存的授权方的私钥对所述被授权方的声明数据进行签名,得到被授权方声明数据的签名;
所述授权方根据所述被授权方声明数据、所述被授权方声明数据的签名和所述可验证凭证数据的标识生成所述可验证凭证数据。
5.根据权利要求4所述的方法,其特征在于,所述授权方将所述可验证凭证数据的标识发送至所述注册系统之前还包括:
所述授权方使用所述授权方的私钥对所述可验证凭证数据的标识签名得到可验证凭证数据标识的签名;
所述注册系统根据所述可验证凭证数据的标识进行更新之前,还包括:所述授权方将所述可验证凭证数据标识的签名、授权方的身份标识发送至所述注册系统;
所述注册系统根据所述授权方的身份标识找到对应授权方的公钥,使用所述授权方的公钥和所述可验证凭证数据的标识对所述可验证凭证数据标识的签名进行验签。
6.根据权利要求5所述的方法,其特征在于,所述注册系统根据所述可验证凭证数据的标识进行更新,具体为:当验签结果为通过时,所述注册系统将所述可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
7.根据权利要求1所述的方法,其特征在于,所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,包括:
所述授权方将所述可验证凭证数据以及所述授权方的身份标识发送至所述被授权方;
所述被授权方根据所述可验证凭证数据的标识和所述授权方的身份标识向所述注册系统发送查询请求;
所述注册系统根据所述授权方的身份标识检索所述授权方的可验证凭证数据列表中是否存在所述可验证凭证数据的标识,若存在,则表明所述可验证凭证数据的标识有效,并将查询结果及所述授权方的身份标识对应的授权方的身份文件返回至所述被授权方;
所述被授权方根据所述授权方的身份文件对所述可验证凭证数据进行验证,若验证通过,则确认所述可验证凭证数据合法,并将其进行存储。
8.根据权利要求7所述的方法,其特征在于,所述被授权方根据所述授权方的身份文件对所述可验证凭证数据进行验证,具体包括:
所述被授权方从所述授权方的身份文件中获取授权方的公钥,使用所述授权方的公钥、所述可验证凭证数据中的被授权方声明数据对所述可验证凭证数据中的被授权方声明数据的签名进行验签。
9.根据权利要求1或7所述的方法,其特征在于,所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,包括:
所述授权方利用私钥对所述可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至所述被授权方;
所述被授权方向所述注册系统发送实体身份查询请求;
所述注册系统将预先存储的实体的身份文件返回至所述被授权方;
所述被授权方利用所述实体的身份文件,对所述签名后的可验证凭证数据进行验签,若验签成功,则确认所述可验证凭证数据合法;
所述被授权方将确认所述可验证凭证数据合法的结果发送至所述注册系统进行查询,若所述注册系统查询到所述可验证凭证数据是有效的,则将查询结果返回至所述被授权方,以便所述被授权方存储所述可验证凭证数据。
10.根据权利要求1所述的方法,其特征在于,所述被授权方根据所述授权方的声明信息向所述授权方发送身份授权请求之前,还包括:
所述被授权方生成第二随机数;所述身份授权请求中还包括所述第二随机数;
所述授权方将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存,具体包括:
所述授权方生成第三随机数,根据所述第二随机数、所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据;将所述身份验证数据、所述可验证凭证数据的加密数据、自身保存的授权方身份标识发送给所述被授权方;
所述被授权方根据所述授权方的身份标识从所述注册系统获取授权方的身份文件;根据所述授权方的身份文件对所述身份验证数据进行验证,验证通过则对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存。
11.根据权利要求10所述的方法,其特征在于,所述授权方根据所述第二随机数和所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据,具体包括:所述授权方使用所述授权方对所述被授权方进行身份验证时获取的所述被授权方的公钥对所述第三随机数加密,得到第三随机数的加密数据;
所述授权方使用自身保存的授权方私钥对所述第三随机数签名,得到第三随机数的签名;
所述授权方根据所述第二随机数和所述第三随机数生成第一会话密钥,使用所述第一会话密钥对所述可验证凭证数据进行加密得到所述可验证凭证数据的加密数据。
12.根据权利要求11所述的方法,其特征在于,所述被授权方根据所述授权方的身份文件对所述身份验证数据进行验证,具体包括:
所述被授权方从所述授权方的身份文件中获取授权方的公钥,使用自身保存的被授权方的私钥对所述第三随机数的加密数据进行解密得到第一解密数据;
所述被授权方使用所述授权方的公钥和所述第一解密数据对所述第三随机数的签名进行验签。
13.根据权利要求12所述的方法,其特征在于,所述被授权方对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存,具体包括:
若验签成功,所述被授权方根据所述第二随机数和所述第一解密数据生成第二会话密钥;
所述被授权方使用所述第二会话密钥对所述可验证凭证数据的加密数据解密,得到所述可验证凭证数据,从所述可验证凭证数据中提取被授权方的声明数据及所述被授权方的声明数据签名,使用所述授权方的公钥和提取的被授权方的声明数据对所述被授权方声明数据的签名进行验签,若验签通过,则对所述可验证凭证数据进行保存。
14.根据权利要求10所述的方法,其特征在于,所述被授权方对所述可验证凭证数据进行保存之前,还包括:
所述被授权方将所述可验证凭证数据中的可验证凭证数据的标识发送给所述注册系统,所述注册系统检查所述可验证凭证数据的标识是否有效;
当验证结果为所述可验证凭证数据的标识有效,且所述被授权方对所述身份验证数据验证结果为通过时,所述被授权方对所述可验证凭证数据进行保存。
15.根据权利要求1所述的方法,其特征在于,所述授权方根据所述身份授权请求生成可验证凭证数据之前,还包括:
所述授权方根据所述被授权方发送的身份授权请求进行审核。
16.根据权利要求2所述的方法,其特征在于,目标方为所述授权方或所述被授权方;所述方法还包括:
所述目标方生成对应的身份标识和身份文件,并根据所述身份标识和所述身份文件向所述注册系统进行身份注册;所述身份文件中包括对应的验签公钥;
所述注册系统对所述身份标识和所述身份文件进行审核,若通过审核,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
17.根据权利要求16所述的方法,其特征在于,所述目标方生成对应的身份标识和身份文件,包括:
所述目标方获取当前时间并设定密钥对类型,并根据所述当前时间和所述密钥对类型,生成公钥和私钥;
对所述公钥进行哈希运算,得到其对应的哈希值,并将所述哈希值作为所述目标方的身份标识;
根据所述身份标识和所述公钥生成所述目标方的身份文件。
18.根据权利要求17所述的方法,其特征在于,所述根据所述身份标识和所述身份文件向所述注册系统进行身份注册,包括:所述目标方将所述身份标识和所述身份文件发送至注册系统;
所述注册系统对所述身份标识和所述身份文件进行审核,包括:
所述注册系统确定所述身份标识是否存在于已保存的身份标识集合中,若否,向所述目标方发送随机标识。
19.根据权利要求18所述的方法,其特征在于,在所述向所述目标方发送随机标识之后,所述方法还包括:
所述目标方接收所述随机标识,并利用所述私钥对所述随机标识进行签名,得到第一签名数据;
所述目标方将所述身份文件和所述随机标识以及所述第一签名数据发送至所述注册系统;
所述注册系统根据所述身份文件对所述第一签名数据进行验签,若验签通过,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
20.根据权利要求16所述的方法,其特征在于,所述目标方生成所述身份文件后,还包括:所述目标方对所述身份文件进行保存;
所述确定所述目标方完成身份注册之后,还包括:
所述注册系统将身份标识的查询地址发送给所述目标方;
所述目标方根据所述身份标识的查询地址对所述身份文件进行更新。
21.根据权利要求16所述的方法,其特征在于,当目标方为所述授权方时,所述方法还包括:
所述授权方生成授权方身份数据,并利用所述私钥对所述身份数据进行签名,得到第二签名数据;所述授权方身份数据为体现所述授权方具有身份授权权限的数据;
所述授权方将所述身份文件和所述身份数据以及所述第二签名数据发送至所述注册系统;
所述注册系统根据所述身份文件对所述第二签名数据进行验证,若通过验证,授予所述授权方的身份授权权限资格,并将所述身份授权权限资格保存至自身存储的身份文件中,以及将所述授权方的注册状态和身份查询地址发送至所述授权方;
所述授权方将所述身份查询地址更新至自身存储的身份文件中。
22.根据权利要求21述的方法,其特征在于,所述方法还包括:
所述授权方生成声明信息,并利用所述私钥对所述声明信息中的声明模板查询地址进行签名,得到第三签名数据;所述声明信息包括声明模板和声明模板查询地址;
所述授权方将所述身份文件和所述声明信息中的声明模板查询地址以及所述第三签名数据发送至所述注册系统;
所述注册系统根据自身保存的所述身份文件对所述第三签名数据进行验证,若通过验证,则将所述声明信息保存在自身存储的身份文件中,并向所述目标方返回所述声明信息的新增结果;
所述目标方将所述声明模板查询地址更新至自身存储的身份文件中。
23.根据权利要求1所述的方法,其特征在于,所述被授权方向所述授权方发送所述身份授权请求之前,还包括:所述被授权方设置安全标识,将所述安全标识的类型设置为明文回传或密文回传;所述身份授权请求中还包括所述安全标识;
所述授权方将所述可验证凭证数据发送至所述被授权方之前,还包括:所述被授权方判断所述安全标识的类型,当所述安全标识的类型为明文回传时,则将所述可验证凭证数据的明文数据发送给所述被授权方;当所述安全标识的类型为密文回传时,则将所述可验证凭证数据的密文数据发送给所述被授权方。
24.一种身份授权方法,其特征在于,所述方法由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,所述方法包括:
从所述注册系统获取所述授权方的声明信息,并根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求;所述从所述注册系统获取所述授权方的声明信息,包括:获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;接收所述注册系统发送的与所述授权方绑定的声明模板列表;所述与所述授权方绑定的声明模板列表是所述注册系统根据所述授权方的身份标识检索得到;
向所述授权方发送所述身份授权请求,以请求身份授权;
接收所述授权方发送的可验证凭证数据并保存,所述可验证凭证数据是所述授权方根据所述身份授权请求生成的。
25.一种身份授权方法,其特征在于,所述方法由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,所述方法包括:
接收所述被授权方发送的身份授权请求,并根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统,以使所述注册系统根据所述可验证凭证数据的标识进行更新;所述被授权方发送的身份授权请求是在所述授权方对所述被授权方的身份验证结果为通过时,所述被授权方根据所述授权方的声明信息生成的;其中,所述授权方的声明信息为所述注册系统根据所述被授权方发送的所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并发送给所述被授权方的;
接收所述注册系统发送的更新结果;
将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
26.一种身份授权装置,其特征在于,应用于包括授权方和被授权方的身份授权区块链系统,所述身份授权区块链系统中部署有注册系统;所述装置包括:
被授权方,用于从所述注册系统获取所述授权方的声明信息,根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求,并向所述授权方发送所述身份授权请求;
授权方,用于根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统;
注册系统,用于根据所述可验证凭证数据的标识进行更新,并向所述授权方返回更新结果;
所述授权方,还用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存;
所述被授权方,还用于接收来自所述授权方的所述可验证凭证数据,并对所述可验证凭证数据进行保存;
所述被授权方具体用于:获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;
所述注册系统具体用于:根据所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并将其发送给所述被授权方。
27.根据权利要求26所述的装置,其特征在于,所述被授权方具体用于:
根据所述被授权方的身份标识生成身份验证请求,并将所述身份验证请求发给所述授权方;
所述授权方具体用于:
生成第一随机数,并将所述第一随机数返回给所述被授权方;
所述被授权方还具体用于:
根据自身保存的被授权方的私钥对所述第一随机数签名得到第一签名结果,将所述第一签名结果、所述第一随机数、所述被授权方的身份标识发给所述授权方;
所述授权方还具体用于:
根据所述被授权方的身份标识从所述注册系统获取所述被授权方的身份文件,从所述被授权方的身份文件中获取被授权方的公钥,使用获取的所述被授权方的公钥和所述第一随机数对所述第一签名结果进行验签。
28.根据权利要求26所述的装置,其特征在于,所述被授权方具体用于:
从所述授权方的声明模板列表中选择所需要的声明模板,根据选择的声明模板生成被授权方的声明数据,根据所述被授权方的声明数据生成所述身份授权请求。
29.根据权利要求26所述的装置,其特征在于,所述被授权方还用于根据所述授权方的声明信息生成被授权方的声明数据;所述身份授权请求中包括所述被授权方的声明数据;
所述授权方具体用于:
根据预设规则生成所述可验证凭证数据的标识,并用自身保存的授权方的私钥对所述被授权方的声明数据进行签名,得到被授权方声明数据的签名;
根据所述被授权方声明数据、所述被授权方声明数据的签名和所述可验证凭证数据的标识生成所述可验证凭证数据。
30.根据权利要求29所述的装置,其特征在于,所述授权方还用于:
使用所述授权方的私钥对所述可验证凭证数据的标识签名得到可验证凭证数据标识的签名;
将所述可验证凭证数据标识的签名、授权方的身份标识发送至所述注册系统;
所述注册系统具体用于:
根据所述授权方的身份标识找到对应授权方的公钥,使用所述授权方的公钥和所述可验证凭证数据的标识对所述可验证凭证数据标识的签名进行验签。
31.根据权利要求30所述的装置,其特征在于,当验签结果为通过时,所述注册系统具体用于将所述可验证凭证数据的标识添加到授权方的可验证凭证数据列表中。
32.根据权利要求26所述的装置,其特征在于,所述授权方具体用于:
将所述可验证凭证数据以及所述授权方的身份标识发送至所述被授权方;
根据所述可验证凭证数据的标识和所述授权方的身份标识向所述注册系统发送查询请求;
所述注册系统具体用于:
根据所述授权方的身份标识检索所述授权方的可验证凭证数据列表中是否存在所述可验证凭证数据的标识,若存在,则表明所述可验证凭证数据的标识有效,并将查询结果及所述授权方的身份标识对应的授权方的身份文件返回至所述被授权方;
所述被授权方还具体用于:
根据所述授权方的身份文件对所述可验证凭证数据进行验证,若验证通过,则确认所述可验证凭证数据合法,并将其进行存储。
33.根据权利要求32所述的装置,其特征在于,所述被授权方具体用于:
从所述授权方的身份文件中获取授权方的公钥,使用所述授权方的公钥、所述可验证凭证数据中的被授权方声明数据对所述可验证凭证数据中的被授权方声明数据的签名进行验签。
34.根据权利要求26或32所述的装置,其特征在于,所述授权方具体用于:
利用私钥对所述可验证凭证数据进行签名,并将签名后的可验证凭证数据发送至所述被授权方;
向所述注册系统发送实体身份查询请求;
所述注册系统具体用于:
将预先存储的实体的身份文件返回至所述被授权方;
所述被授权方还具体用于:
利用所述实体的身份文件,对所述签名后的可验证凭证数据进行验签,若验签成功,则确认所述可验证凭证数据合法;
将确认所述可验证凭证数据合法的结果发送至所述注册系统进行查询,若所述注册系统查询到所述可验证凭证数据是有效的,则将查询结果返回至所述被授权方,以便所述被授权方存储所述可验证凭证数据。
35.根据权利要求26所述的装置,其特征在于,所述被授权方还用于:
生成第二随机数;所述身份授权请求中还包括所述第二随机数;
则所述授权方具体用于:
生成第三随机数,根据所述第二随机数、所述第三随机数、所述可验证凭证数据生成身份验证数据和所述可验证凭证数据的加密数据;将所述身份验证数据、所述可验证凭证数据的加密数据、自身保存的授权方身份标识发送给所述被授权方;
所述被授权方还用于:根据所述授权方的身份标识从所述注册系统获取授权方的身份文件;根据所述授权方的身份文件对所述身份验证数据进行验证,验证通过则对所述可验证凭证数据的加密数据进行解密得到所述可验证凭证数据,并对解密得到的所述可验证凭证数据进行保存。
36.根据权利要求35所述的装置,其特征在于,所述授权方具体用于:
使用所述授权方对所述被授权方进行身份验证时获取的所述被授权方的公钥对所述第三随机数加密,得到第三随机数的加密数据;
使用自身保存的授权方私钥对所述第三随机数签名,得到第三随机数的签名;
根据所述第二随机数和所述第三随机数生成第一会话密钥,使用所述第一会话密钥对所述可验证凭证数据进行加密得到所述可验证凭证数据的加密数据。
37.根据权利要求36所述的装置,其特征在于,所述被授权方具体用于:
从所述授权方的身份文件中获取授权方的公钥,使用自身保存的被授权方的私钥对所述第三随机数的加密数据进行解密得到第一解密数据;
使用所述授权方的公钥和所述第一解密数据对所述第三随机数的签名进行验签。
38.根据权利要求37所述的装置,其特征在于,所述被授权方具体用于:
若验签成功,则根据所述第二随机数和所述第一解密数据生成第二会话密钥;
使用所述第二会话密钥对所述可验证凭证数据的加密数据解密,得到所述可验证凭证数据,从所述可验证凭证数据中提取被授权方的声明数据及所述被授权方的声明数据签名,使用所述授权方的公钥和提取的被授权方的声明数据对所述被授权方声明数据的签名进行验签,若验签通过,则对所述可验证凭证数据进行保存。
39.根据权利要求35所述的装置,其特征在于,所述被授权方还用于:
将所述可验证凭证数据中的可验证凭证数据的标识发送给所述注册系统,所述注册系统检查所述可验证凭证数据的标识是否有效;
当验证结果为所述可验证凭证数据的标识有效,且所述被授权方对所述身份验证数据验证结果为通过时,对所述可验证凭证数据进行保存。
40.根据权利要求26所述的装置,其特征在于,所述授权方还用于:
根据所述被授权方发送的身份授权请求进行审核。
41.根据权利要求27所述的装置,其特征在于,目标方为所述授权方或所述被授权方;所述目标方具体用于:
生成对应的身份标识和身份文件,并根据所述身份标识和所述身份文件向所述注册系统进行身份注册;所述身份文件中包括对应的验签公钥;
所述注册系统具体用于:对所述身份标识和所述身份文件进行审核,若通过审核,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
42.根据权利要求41所述的装置,其特征在于,所述目标方具体用于:
获取当前时间并设定密钥对类型,并根据所述当前时间和所述密钥对类型,生成公钥和私钥;
对所述公钥进行哈希运算,得到其对应的哈希值,并将所述哈希值作为所述目标方的身份标识;
根据所述身份标识和所述公钥生成所述目标方的身份文件。
43.根据权利要求42所述的装置,其特征在于,所述目标方具体用于:
将所述身份标识和所述身份文件发送至注册系统;
所述注册系统具体用于:确定所述身份标识是否存在于已保存的身份标识集合中,若否,向所述目标方发送随机标识。
44.根据权利要求43所述的装置,其特征在于,所述目标方还用于:
接收所述随机标识,并利用所述私钥对所述随机标识进行签名,得到第一签名数据;
将所述身份文件和所述随机标识以及所述第一签名数据发送至所述注册系统;
所述注册系统还用于:根据所述身份文件对所述第一签名数据进行验签,若验签通过,确定所述目标方完成身份注册,并保存所述目标方对应的身份文件。
45.根据权利要求41所述的装置,其特征在于,所述目标方还用于:
对所述身份文件进行保存;
所述注册系统还用于:将身份标识的查询地址发送给所述目标方;
所述目标方还用于:根据所述身份标识的查询地址对所述身份文件进行更新。
46.根据权利要求41所述的装置,其特征在于,当目标方为所述授权方时,所述授权方还用于:
生成授权方身份数据,并利用所述私钥对所述身份数据进行签名,得到第二签名数据;所述授权方身份数据为体现所述授权方具有身份授权权限的数据;
将所述身份文件和所述身份数据以及所述第二签名数据发送至所述注册系统;
所述注册系统还用于:根据所述身份文件对所述第二签名数据进行验证,若通过验证,授予所述授权方的身份授权权限资格,并将所述身份授权权限资格保存至自身存储的身份文件中,以及将所述授权方的注册状态和身份查询地址发送至所述授权方;
所述授权方还用于:将所述身份查询地址更新至自身存储的身份文件中。
47.根据权利要求46所述的装置,其特征在于,所述授权方还用于:
生成声明信息,并利用所述私钥对所述声明信息中的声明模板查询地址进行签名,得到第三签名数据;所述声明信息包括声明模板和声明模板查询地址;
将所述身份文件和所述声明信息中的声明模板查询地址以及所述第三签名数据发送至所述注册系统;
所述注册系统还用于:根据自身保存的所述身份文件对所述第三签名数据进行验证,若通过验证,则将所述声明信息保存在自身存储的身份文件中,并向所述目标方返回所述声明信息的新增结果;
所述目标方还用于:将所述声明模板查询地址更新至自身存储的身份文件中。
48.根据权利要求26所述的装置,其特征在于,所述被授权方还用于:
设置安全标识,将所述安全标识的类型设置为明文回传或密文回传;所述身份授权请求中还包括所述安全标识;
判断所述安全标识的类型,当所述安全标识的类型为明文回传时,则将所述可验证凭证数据的明文数据发送给所述被授权方;当所述安全标识的类型为密文回传时,则将所述可验证凭证数据的密文数据发送给所述被授权方。
49.一种身份授权装置,其特征在于,所述装置由身份授权区块链系统中的被授权方执行,所述身份授权区块链系统中部署有注册系统和授权方,所述装置包括:
生成单元,用于从所述注册系统获取所述授权方的声明信息,并根据自身保存的被授权方的身份标识请求所述授权方对所述被授权方进行身份验证,当所述授权方对所述被授权方的身份验证结果为通过时,根据所述授权方的声明信息生成身份授权请求;所述从所述注册系统获取所述授权方的声明信息,包括:获取所述授权方的身份标识,向所述注册系统发送所述授权方的身份标识;接收所述注册系统发送的与所述授权方绑定的声明模板列表;所述与所述授权方绑定的声明模板列表是所述注册系统根据所述授权方的身份标识检索得到;
发送单元,用于向所述授权方发送所述身份授权请求,以请求身份授权;
接收单元,用于接收所述授权方发送的可验证凭证数据并保存,所述可验证凭证数据是所述授权方根据所述身份授权请求生成的。
50.一种身份授权装置,其特征在于,所述装置由身份授权区块链系统中的授权方执行,所述身份授权区块链系统中部署有注册系统和被授权方,所述装置包括:
第一发送单元,用于接收所述被授权方发送的身份授权请求,并根据所述身份授权请求生成可验证凭证数据,并将所述可验证凭证数据中的可验证凭证数据的标识发送至所述注册系统,以使所述注册系统根据所述可验证凭证数据的标识进行更新;所述被授权方发送的身份授权请求是在所述授权方对所述被授权方的身份验证结果为通过时,所述被授权方根据所述授权方的声明信息生成的;其中,所述授权方的声明信息为所述注册系统根据所述被授权方发送的所述授权方的身份标识,检索与所述授权方绑定的声明模板列表,并发送给所述被授权方的;
接收单元,用于接收所述注册系统发送的更新结果;
第二发送单元,用于将所述可验证凭证数据发送至所述被授权方,以便所述被授权方进行保存。
51.一种身份授权设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-25任一项所述的方法。
52.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-25任一项所述的方法。
CN202011189808.0A 2020-10-30 2020-10-30 一种身份授权方法、装置、存储介质及设备 Active CN112291245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011189808.0A CN112291245B (zh) 2020-10-30 2020-10-30 一种身份授权方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011189808.0A CN112291245B (zh) 2020-10-30 2020-10-30 一种身份授权方法、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
CN112291245A CN112291245A (zh) 2021-01-29
CN112291245B true CN112291245B (zh) 2023-04-07

Family

ID=74352521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011189808.0A Active CN112291245B (zh) 2020-10-30 2020-10-30 一种身份授权方法、装置、存储介质及设备

Country Status (1)

Country Link
CN (1) CN112291245B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113271211B (zh) * 2021-05-18 2023-03-24 网易(杭州)网络有限公司 一种数字身份验证系统、方法、电子设备及存储介质
CN113343208A (zh) * 2021-05-20 2021-09-03 网易(杭州)网络有限公司 一种凭证授权方法、装置、终端及存储介质
CN113221148A (zh) * 2021-05-27 2021-08-06 中国人民银行数字货币研究所 一种信息验证方法和装置
CN113438088A (zh) * 2021-06-28 2021-09-24 湖南天河国云科技有限公司 基于区块链分布式身份的社交网络信用监测方法及装置
CN113407996A (zh) * 2021-06-28 2021-09-17 湖南大学 一种分布式账本自主可控的隐私保护系统及其集群架构
CN113781689A (zh) * 2021-08-25 2021-12-10 安徽高山科技有限公司 一种基于区块链的门禁系统
CN113704723B (zh) * 2021-10-27 2022-02-08 北京微芯感知科技有限公司 基于区块链的数字身份核验方法、装置及存储介质
CN114143198B (zh) * 2021-11-30 2023-06-13 四川启睿克科技有限公司 固件升级的方法
CN114866288A (zh) * 2022-04-12 2022-08-05 平安国际智慧城市科技股份有限公司 基于区块链的私密信息保护方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101785242A (zh) * 2007-06-04 2010-07-21 北方电讯网络有限公司 身份断言
CN104767740A (zh) * 2009-09-14 2015-07-08 交互数字专利控股公司 用于来自用户平台的可信认证和接入的方法
CN110795501A (zh) * 2019-10-11 2020-02-14 支付宝(杭州)信息技术有限公司 基于区块链的可验证声明的创建方法、装置、设备及系统
CN111431936A (zh) * 2020-04-17 2020-07-17 支付宝(杭州)信息技术有限公司 基于可验证声明的授权处理方法、装置、设备及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101785242A (zh) * 2007-06-04 2010-07-21 北方电讯网络有限公司 身份断言
CN104767740A (zh) * 2009-09-14 2015-07-08 交互数字专利控股公司 用于来自用户平台的可信认证和接入的方法
CN110795501A (zh) * 2019-10-11 2020-02-14 支付宝(杭州)信息技术有限公司 基于区块链的可验证声明的创建方法、装置、设备及系统
CN111431936A (zh) * 2020-04-17 2020-07-17 支付宝(杭州)信息技术有限公司 基于可验证声明的授权处理方法、装置、设备及系统

Also Published As

Publication number Publication date
CN112291245A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN112291245B (zh) 一种身份授权方法、装置、存储介质及设备
KR101974452B1 (ko) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자정보 관리 방법 및 시스템
CN110581860B (zh) 基于区块链的身份认证方法、装置、存储介质和设备
US10567370B2 (en) Certificate authority
CN110874464A (zh) 用户身份认证数据的管理方法和设备
CN113691560B (zh) 数据传送方法、控制数据使用的方法以及密码设备
CN107832632B (zh) 资产证明授权查询方法、系统、电子装置及计算机可读存储介质
KR101985179B1 (ko) 블록체인 기반의 ID as a Service
KR102177848B1 (ko) 액세스 요청을 검증하기 위한 방법 및 시스템
WO2019094611A1 (en) Identity-linked authentication through a user certificate system
US11741241B2 (en) Private data processing
JP6667371B2 (ja) 通信システム、通信装置、通信方法、及びプログラム
Mell et al. Smart contract federated identity management without third party authentication services
CN106209730B (zh) 一种管理应用标识的方法及装置
KR20210064076A (ko) 익명 크리덴셜 인증 시스템 및 그 방법
US20210306135A1 (en) Electronic device within blockchain based pki domain, electronic device within certification authority based pki domain, and cryptographic communication system including these electronic devices
Abraham et al. SSI Strong Authentication using a Mobile-phone based Identity Wallet Reaching a High Level of Assurance.
CN116506118A (zh) 一种pki证书透明化服务中身份隐私性保护方法
CN112311538B (zh) 一种身份验证的方法、装置、存储介质及设备
NL1043779B1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
CN112311538A (zh) 一种身份验证的方法、装置、存储介质及设备
WO2016020497A1 (en) Security management system for revoking a token from at least one service provider terminal of a service provider system
CN115150184B (zh) 一种元数据在fabric区块链证书中应用的方法及其系统
Omori et al. Extended inter-device digital rights sharing and transfer based on device-owner equality verification using homomorphic encryption
WO2023131537A1 (en) Methods and apparatuses for signing in or signing up a user

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