CN116318981A - 颁发可验证声明的方法和用户设备 - Google Patents

颁发可验证声明的方法和用户设备 Download PDF

Info

Publication number
CN116318981A
CN116318981A CN202310259272.2A CN202310259272A CN116318981A CN 116318981 A CN116318981 A CN 116318981A CN 202310259272 A CN202310259272 A CN 202310259272A CN 116318981 A CN116318981 A CN 116318981A
Authority
CN
China
Prior art keywords
key
tee
user
identity system
signature
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.)
Pending
Application number
CN202310259272.2A
Other languages
English (en)
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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai 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 Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202310259272.2A priority Critical patent/CN116318981A/zh
Publication of CN116318981A publication Critical patent/CN116318981A/zh
Pending legal-status Critical Current

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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

一种颁发可验证声明的方法和用户设备,所述方法包括:第一用户设备向身份系统发送VC颁发请求,第一用户设备中包括TEE,TEE中存储有第一账户及其第一私钥;身份系统向第一用户设备发送核身请求;第一用户设备对第一用户进行实名认证,在实名认证通过之后向身份系统发送VC颁发信息;身份系统响应于VC颁发信息获取实名认证的结果,在认证通过的情况中,生成VC内容,将VC内容发送给第一用户设备;第一用户设备将VC内容提供给TEE,TEE使用第一私钥对VC内容签名,得到第一签名,将第一签名提供到TEE外部;将第一签名发送给身份系统;身份系统将VC与第二账户关联地存储。

Description

颁发可验证声明的方法和用户设备
技术领域
本说明书实施例属于分布式数字身份技术领域,尤其涉及一种颁发可验证声明的方法和用户设备。
背景技术
相较于传统的数字身份而言,分布式数字身份可通过私钥控制信息的隐私和安全性,不依赖于中心化的系统进行验证,因此可实现“零信任”的互信和登录验证,为整体网络提升安全性的同时,方便服务提供方对用户的认证和用户信息的获取。
分布式数字身份包括分布式身份标识((Dencentralized ID,DID))和DID文档(DID DOC)。所述DID的DID文档可存储于区块链中。DID文档中例如包括:DID、DID的公钥、可验证声明(Verifiable Credential,VC)的存储地址等。用户持有DID的私钥,从而可通过该私钥享有该DID、及该DID关联的资源。
发明内容
本发明的目的在于提供一种颁发VC的方法,以提高用户设备颁发VC的安全可靠性。
本说明书第一方面提供一种颁发可验证声明的方法,包括:第一用户设备向身份系统发送可验证声明VC颁发请求,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥;所述身份系统响应于所述VC颁发请求向所述第一用户设备发送核身请求;所述第一用户设备响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息,所述VC颁发信息中包括待被颁发VC的第二用户的第二账户;所述身份系统响应于所述VC颁发信息获取所述实名认证的结果,在认证通过的情况中,基于所述VC颁发信息生成VC内容,将所述VC内容发送给所述第一用户设备;所述第一用户设备将VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;将所述第一签名发送给所述身份系统;所述身份系统组合所述VC内容和所述第一签名得到VC,将所述VC与所述第二账户关联地存储。
在一种实施方式中,所述第一用户设备向所述身份系统发送VC颁发信息包括:
所述第一用户设备将所述VC颁发信息提供给所述TEE,所述TEE生成包括所述VC颁发信息的第一报文,使用所述第一私钥对所述第一报文签名,得到第二签名,将所述第二签名和所述第一报文提供到TEE外部;
所述第一用户设备将所述第二签名和所述第一报文发送给身份系统;
所述身份系统基于所述VC颁发信息生成VC内容包括:
所述身份系统获取所述第一账户的第一公钥,使用所述第一公钥对所述第二签名进行验证,在验证通过的情况中,基于所述VC颁发信息生成VC内容。
在一种实施方式中,所述TEE中存储有预先从认证机构CA获取的第一对称密钥,所述将所述第一报文提供到TEE外部包括:
所述TEE基于所述第一对称密钥对所述第一报文加密,得到第一密文报文,将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部。
在一种实施方式中,所述TEE基于所述第一对称密钥对所述第一报文加密包括:
所述TEE生成第二对称密钥,使用所述第二对称密钥对所述第一报文加密,得到所述第一密文报文,使用所述第一对称密钥对所述第二对称密钥加密,得到第一密文密钥;
将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部,包括:将所述第一密文报文、所述第一密文密钥和所述第一对称密钥的密钥标识提供到TEE外部。
在一种实施方式中,所述第一用户设备向所述身份系统发送VC颁发信息还包括:
所述第一用户设备将所述第一密文报文、所述第一密文密钥和所述第一对称密钥的密钥标识发送给所述身份系统;
所述方法还包括:
所述身份系统将所述第一密文密钥和所述第一对称密钥的密钥标识发送给所述CA;从所述CA接收所述第二对称密钥,使用所述第二对称密钥对所述第一密文报文解密,得到所述第一报文。
在一种实施方式中,所述身份系统将所述VC内容发送给所述第一用户设备还包括:
所述身份系统生成包括所述VC内容的第二报文,对所述第二报文签名,得到第三签名;将所述VC内容和所述第三签名发送给所述第一用户设备。
在一种实施方式中,所述身份系统将所述VC内容发送给所述第一用户设备,包括:
所述身份系统生成第三对称密钥,使用所述第三对称密钥对所述第二报文加密,得到第二密文报文,将所述第一对称密钥的密钥标识和所述第三对称密钥发送给CA,从CA接收第二密文密钥,所述第二密文密钥通过使用所述第一对称密钥加密而生成,将所述第二密文报文和所述第二密文密钥发送给所述第一用户设备。
在一种实施方式中,所述身份系统基于所述VC颁发信息生成VC内容还包括:
所述身份系统校验所述VC颁发信息是否合规,在合规的情况下基于所述VC颁发信息生成VC内容。
在一种实施方式中,所述方法还包括:
所述第一用户设备接收由所述第一用户输入的VC颁发信息;将随机字符串发送给所述第二用户的第二用户设备;
所述第二用户设备使用所述第二账户的第二私钥对所述随机字符串签名,得到第四签名,将所述第四签名发送给所述第一用户设备;
所述第一用户设备将所述第二账户、所述随机字符串和所述第四签名发送给所述身份系统;
所述身份系统获取所述第二账户的第二公钥,使用所述第二账户的第二公钥对所述第四签名进行验签,将所述验签的结果发送给所述第一用户设备。
在一种实施方式中,所述方法还包括:
所述身份系统使用所述第二公钥对所述VC进行加密,得到密文VC;将所述密文VC发送给所述第二用户设备;
所述第二用户设备使用所述第二私钥对所述密文VC解密,得到所述VC。
在一种实施方式中,所述方法还包括:
所述第一用户设备从所述身份系统获取与所述第一用户对应的第一账户,将所述第一账户提供给所述TEE,所述身份系统中存储有所述第一用户的身份信息,所述第一账户与所述身份信息相对应;所述TEE生成与所述第一账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述第一账户和所述第一公钥的信息。
在一种实施方式中,所述VC颁发信息中还包括以下至少一项信息:所述第一账户、所述VC的有效期、所述VC的描述信息。
本说明书第二方面提供一种颁发可验证声明的方法,由第一用户设备执行,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥,所述方法包括:
向身份系统发送可验证声明VC颁发请求;
从所述身份系统接收核身请求;
响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息;
从所述身份系统接收VC内容,所述VC内容基于所述VC颁发信息生成;
将所述VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;
将所述第一签名发送给所述身份系统,以用于颁发所述VC,所述VC包括所述VC内容和所述第一签名。
在一种实施方式中,所述第一账户包括分布式身份标识,所述身份系统包括分布式身份系统。
本说明书第三方面提供一种第一用户设备,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥,所述第一用户设备包括:
发送单元,用于向身份系统发送可验证声明VC颁发请求;
接收单元,用于从所述身份系统接收核身请求;
认证单元,用于响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息;
所述接收单元还用于从所述身份系统接收VC内容,所述VC内容基于所述VC颁发信息生成;
提供单元,用于将所述VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;
所述发送单元还用于将所述第一签名发送给所述身份系统,以用于颁发所述VC,所述VC包括所述VC内容和所述第一签名。
本说明书第四方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第三方面所述的方法。
本说明书第五方面提供一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第三方面所述的方法。
在本说明书实施例提供的方案中,基于用户设备的TEE和分布式数字身份系统进行密钥管理,由TEE生成用户账户的公私钥对,并在TEE内保存私钥,通过由DIS 300在确保用户实名认证通过之后生成VC内容发送给TEE,并由TEE生成VC签名,确保了所生成的VC的安全性和权威性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中的系统架构图;
图2为本说明书实施例中对用户设备中的TEE进行初始化的方法流程图;
图3为本说明书实施例中的在TEE内设置用户DID的私钥的方法流程图;
图4为本说明书实施例中的用户设备从DIS获取用户DID的方法流程图;
图5为本说明书实施例中用户设备对待颁发VC的DID2进行确认的方法流程图;
图6为本说明书实施例中的VC颁发方法流程图;
图7为本说明书实施例中的一种第一用户设备的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例中的方案所应用的账户例如可以为经实名认证过的区块链账户,或者可以为DID等。DID是符合W3C规范的分布式数字身份ID,一个DID唯一对应一个实体,一个实体可以有多个DID。上述实体是指所描述的信息主体,包括个人、机构或者任何客观事物。DID对应的DID文档可存储于区块链中,DID可作为用于寻址DID DOC的索引或URI。DID文档中例如包括:DID、DID的公钥、可验证声明(Verifiable Credential,VC)的存储地址等。用户持有DID的私钥,从而可通过该私钥享有该DID、及该DID关联的资源。
VC简称“凭证”,是符合W3C规范的一种数字凭证。该规范提供了一种标准方式,能以密码安全,尊重隐私和可自动验证的方式在网络(web)上表达各种类型的声明。上述声明指对客观实体的一个说明或者主张。具体是,VC为VC的颁发方使用自己的DID向被颁发方的DID颁发的对某些属性进行背书的描述性声明,并附加数字签名。VC主要分为内容(content)和证明(proof)两部分,content中包含VC的颁发方DID、被颁发方DID、声明描述等信息,proof主要包括颁发方的签名信息和签名时使用的公钥信息等。
可验证声明VC作为分布式数字身份体系的应用层,提供了一种加密安全、尊重隐私和机器可验证的方式在网络上标识个体、组织甚至物品的某种特性。物理世界中的电子驾照等凭证可通过可验证声明的形式在网络中流转使用。目前大部分的可验证声明颁发都是由B端、G端的主体进行颁发,通过主体的权威性对被颁发者的某个属性进行背书,而这部分主体有能力自主安全的管理好自己的密钥。相对的,C端用户也有颁发可验证声明的需求,如对被颁发者进行授权或者通过C端用户的某领域权威性对被颁发者进行背书等。但是,C端用户对于密钥的管控目前还没有能力自主安全的进行管控。
相关技术中,C端用户对账户私钥的密钥管理方式主要包括托管在中心化服务以及自己管理两种方式。其中,托管在中心化服务的方式存在第三方泄露以及服务随意使用私钥的风险,而用户自己管理私钥的方式存在私钥丢失的风险。
本说明书实施例中,基于用户设备的TEE和分布式身份系统(DecentralizedIdentity System,DIS)进行密钥管理,由TEE生成用户账户的公私钥对,并在TEE内保存私钥,以保证私钥的安全性,从而用户设备可使用TEE向其他DID颁发VC。同时,通过DIS保证用户设备在使用TEE内私钥时,是用户本人在进行操作,从而保证了用户账户的安全性。
所述DIS用于基于区块链提供分布式身份服务(下文称为DIS服务),DIS服务是一种高效、合规、安全、可信的数字身份管理方案。其中,区块链技术在分布式和安全性方面的能力,便于实现跨机构和组织的协同工作,使得身份标识等数据能在多个节点之间共享复制,抵御故障和篡改。区块链技术的密码学方法能够让用户有效参与,打通用户实体和数字身份的关联,并通过用户授权保护个人信息的合理使用,让数据的流转行为更加可信、合规。
在DIS中,包括如下参与方:
持有者(Holder):DID身份标识的拥有者和使用者。用户通过DID客户端代理(比如小程序)创建、管理自己的DID。
颁发方(Issuer):也称为发证方,是对数据进行认证的参与方。该参与方指为用户出具或签发VC的机构或个人。
验证方(Verifier):也称为应用方,是使用数据的参与方。该参与方是对使用DID用户提供服务的服务提供方,一般是经过用户授权,对用户的身份、颁发方的身份及可验证声明内容进行验证的机构或个人。
图1为本说明书实施例中的系统架构图,该系统中包括用户设备100、用户设备200、DIS 300和区块链400。其中,用户设备100中包括可信执行环境(Trusted ExecutionEnvironment,TEE)TEE10,用户设备200中包括TEE20。
TEE是基于CPU硬件的安全扩展、且与外部完全隔离的可信执行环境。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,比如软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的SGX(SoftwareGuard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(PlatformSecurity Processor,平台安全处理器)等。TEE可以起到黑箱作用,在TEE中执行的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中复杂的密码学运算,计算过程效率几乎没有损失。因此,采用TEE技术可以在性能损失相对较小的前提下很大程度上满足区块链场景下的可信计算需求。
TEE技术中,以SGX(Software Guard Extension,以下简称SGX)技术为例加以说明。区块链节点可以基于SGX技术创建enclave(围圈或飞地),以作为用于执行区块链交易的TEE。其中,区块链节点利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的Enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(Memory Encryption Engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,Enclave的安全边界只包含其自身和CPU,无论是特权软件或非特权软件都无法访问Enclave,即便是操作系统管理员和VMM(Virtual Machine Monitor,虚拟机监测器;或称为Hypervisor)也无法影响Enclave中的代码和数据,因而具有极高的安全性。在上述安全性保障的前提下,CPU能够在Enclave中对数据进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。此外,对于进、出TEE的数据,可以是加密的,从而保障数据的隐私。
图1中的用户设备100和用户设备200例如可以为不同用户的用户设备。用户设备中可安装有用于开展业务的应用或小程序,该应用中可包括TEE交互接口,用户设备可通过调用该接口进行对TEE的初始化,以在TEE中安装可信程序(Trusted Application,TA),设置设备密钥、会话密钥等。在TEE初始化完成之后,用户可通过用户设备中的TEE生成用户DID的公私钥对,并在TEE中保存私钥,从而可保障私钥的安全性。TEE在生成公私钥对之后,将公钥提供给DIS 300,从而使得DIS 300在用户实名认证通过之后在区块链400中存储用户DID的公钥,该公私钥对可称为控制私钥和控制公钥,用于处理用户在业务上的交易。
下文将参考图2-图6详细描述本说明书实施例中的颁发VC的方案。
图2为本说明书实施例中对用户设备中的TEE进行初始化的方法流程图。下文中以用户设备100为例进行描述。
如图2所示,在S201,用户设备100中的应用向TEE10发送TEE状态检查请求。
在S203,TEE向应用返回状态检查结果。
TEE10在接收到状态检查请求之后,例如,可检查TEE10中是否安装了TA,在已安装TA的情况下,获取TA的版本,确定TA的版本是否适用于该用户设备,TEE中是否设置了设备密钥、会话密钥,等等。TEE10在完成上述检查之后,将检查结果返回给应用。
在S205,应用向DIS发送TEE初始化请求。
在检查结果指示TEE中未安装TA、或者TA版本不适用于用户设备的情况中,应用向DIS 300发送TEE初始化请求,以用于获取最新版本的TA。
在S207,DIS向TA管理服务器发送TA下载请求。
该TA下载请求中例如包括用户设备100的连接地址、端口号等连接信息。
在S209,TA管理服务器向应用发送TA。
TA管理服务器可基于上述TA下载请求连接用户设备100,将最新版本的TA发送给应用。具体是,TA管理服务器可将TA下载命令推送给应用,应用中的TEE交互接口可根据该下载命令下载最新版本的TA。
在S211,应用向TEE提供最新版本的TA。
应用中的TEE交互接口在下载得到最新版本的TA之后,基于用户设备100中的TEE外部与TEE通信的机制,将该最新版本的TA提供到TEE10内部,从而TEE10可安装该最新版本的TA。TEE10中在安装该TA之后,也即生成了用户DID的钱包,TEE10可通过运行该TA进行一系列的操作,从而进行后续的存储用户DID的信息,并进行签名、加密等操作。
在S213,应用向数字证书认证系统(Certificate Authority,CA)请求信封密钥、设备私钥和设备证书。
所述信封密钥用于后续对与DIS 300的信道进行加密,该信封密钥可以为对称密钥或非对称密钥。本说明书实施例中以对称密钥为例进行描述。所述设备证书包括用户设备100的设备公钥、及CA对设备公钥的签名。该设备公钥与设备私钥对应。
在S15,CA向应用发送信封密钥、设备私钥和设备证书。
CA响应于应用的请求,可为用户设备100生成设备私钥和设备公钥,基于设备公钥生成设备证书。同时生成对称密钥作为用户设备100的信封密钥。CA在生成对称密钥之后,对该对称密钥设置唯一标识keyID,在本地记录keyID与该对称密钥的对应关系。
之后,CA将设备私钥、设备证书、信封密钥及其keyID一起发送给应用。
在S217,应用中的用于初始化的接口将信封密钥、设备私钥和设备证书提供到TEE内。
具体是,应用中的用于初始化的接口可将信封密钥及其keyID、设备私钥和设备证书提供到TEE10内。
在S219,TEE向应用提供TA版本号和初始化成功信息。
TEE10内在如上所述安装TA,并获取到设备私钥、设备证书和信封密钥之后,可向应用返回初始化成功信息,并向返回其所安装的TA版本号。
在S221,应用将从TEE接收到的TA版本号和初始化成功信息发送给DIS 300。
DIS 300在接收到TA版本号和初始化成功信息之后,首先判断TEE10内的TA版本是否为最新版本,如果不是最新版本,则可再次触发TEE10下载最新TA。如果TEE10内的TA版本号为最新版本,则可与用户设备100进行对DID密钥的设置。
用户设备100在通过图2所示方法完成对TEE 10的初始化之后,可通过图3所示的方法流程在TEE10内设置用户DID的私钥。
如图3所示,在S301,用户设备100从DIS接收用户DID。
用户设备100所属的用户U1有可能已经通过他的其他用户设备创建了DID,在该情况下,在DIS 300中记录了用户的身份信息与已创建的DID的对应关系,因此,用户设备100可从DIS 300接收用户U1的DID。
或者用户U1还未创建过DID,在该情况下,用户设备100可请求DIS创建用户U1的DID,并从DIS接收该DID。
图4为本说明书实施例中的用户设备从DIS获取用户DID的方法流程图。
参考图4,在S401,用户设备100中的应用向DIS发送用户DID获取请求。
用户U1在开始使用用户设备100之后,可在应用中进行操作,以指示用户设备100激活对用户DID的使用,从而用户设备100根据该指示向DIS发送用户DID获取请求。
该获取请求例如包括用户在DIS中注册的用户标识U1。DIS中记录了用户标识U1与用户的身份信息的对应关系,例如DIS中包括身份信息存储设备,用于存储和管理用户标识与用户身份信息的对应关系。用户的身份信息例如包括用户的二要素信息,即姓名和证件号码。
在S403,DIS向核身服务器发送核身请求。
DIS300响应于用户DID获取请求可生成用于发送给核身服务器的核身请求。DIS300可基于用户标识U1获取与U1对应的用户的身份信息,并在该核身请求中包括用户的身份信息,以用于通过该用户的身份信息对用户U1进行实名认证。
核身服务器例如为权威机构的服务器,其中存储了各个实体的身份信息和详细特征,如用户的面部特征、指纹特征等,这些特征可用于对实体进行核身,即实名认证。
在S405,核身服务器向DIS发送核身ID。
核身服务器在接收到核身请求之后,生成与该核身请求对应的核身ID,与该核身ID对应的存储该核身请求。将该核身ID发送给DIS 300。
在S407,DIS将核身ID发送给用户设备100中的应用。
在S409,应用指示用户进行实名认证,获取用户的实名认证数据。
应用可通过调用由核身服务器提供的实名认证接口对用户进行实名认证。该实名认证例如对用户进行面部识别,拍摄用户的面部特征,从而得到实名认证数据,例如包括用户的面部特征的视频数据。
在S411,应用将实名认证数据和核身ID发送给核身服务器。
在S413,核身服务器基于实名认证数据和核身ID对用户进行实名认证。
具体是,核身服务器根据核身ID获取到对应的核身请求,从该核身请求中获取用户的身份信息,根据用户身份信息从本地找到用户的详细特征(例如面部特征),将实名认证数据中的面部特征与本地读取的面部特征进行比较,如果比较结果为二者一致,则可以确定当前进行操作的用户为预先记录的与UID对应的用户,则实名认证通过,反之则实名认证不通过。
S415,核身服务器将核身ID对应的核身结果发送给DIS。
例如,核身服务器在确定对用户的实名认证通过的情况下,可将核身ID与核身成功的信息关联地发送给DIS。在一种实施方式中,用户设备100在实名认证成功之后将认证成功的信息发送给DIS,DIS响应于该信息向核身服务器请求获取核身ID对应的核身结果,核身服务器响应于DIS的请求将核身ID对应的核身结果发送给DIS。
在S417,DIS获取用户DID。
DIS在确认用户的实名认证通过之后,确认了本次DID获取请求由用户U1本人发出,因此保障了DID相关操作的安全性。之后,DIS可首先查询DIS中是否记录了用户标识U1对应的用户DID,例如,DIS可通过DIS云上服务在存储服务器中存储用户标识与用户DID的对应关系。如果存储服务器中记录了用户标识U1例如与DID1对应,则表示用户U1已在先通过其他用户设备注册过DID,DIS可获取该DID1以用于返回给用户设备100。
在DIS中未记录用户标识U1对应的用户DID的情况下,DIS可生成与用户唯一对应的DID(例如DID1)。具体是,DIS中可获取用户标识U1对应的用户二要素信息,对用户的二要素信息取哈希,将得到的哈希值作为用户的DID1。DIS在生成DID1之后,可在存储服务器中存储用户标识U1与DID1的对应关系。
在S419,DIS将用户DID发送给用户设备100中的应用。
返回到图3,在S303,应用将用户DID提供到TEE中。
具体是,应用可将DID发送给上述TEE交互接口,通过该接口将DID提供到TEE内。另外,应用还可以将用户在DIS的用户标识U1、以及上述核身ID与DID一起提供到TEE内。
在S305,TEE生成与DID对应的公私钥对(公钥pk1和私钥sk1),并存储私钥sk1。
TEE中的可信程序TA例如包括密钥生成器,可生成一对公私钥对作为DID1的公私钥对。在新生成一对公私钥对之后,TEE中可将私钥sk1与DID1关联地存储。在另一种实施方式中,TEE可将私钥sk1、公钥pk1与DID1关联地存储。
在S307,TEE将公钥pk1提供给应用。
具体是,TEE可生成用于激活公钥pk1的业务报文,该业务报文中可包括公钥pk1。另外,该业务报文中还可以包括用户标识U1、DID1等其他信息。
在生成业务报文之后,TEE可使用设备私钥对业务报文签名,得到报文签名,该报文签名用于保证该业务报文不被篡改。进一步的,TEE内可以基于信封密钥对该业务报文进行加密,得到密文报文。具体是,TEE内可生成一个对称密钥,使用对称密钥对业务报文加密,得到密文报文,然后使用信封密钥对该对称密钥加密,得到密文密钥。之后,TEE可将密文报文、密文密钥、信封密钥的keyID以及报文签名提供到TEE外部,以提供给应用。例如,TEE可通过调用上述TEE交互接口,将上述数据提供给应用。可以理解,上述对业务报文的签名和加密可以进一步加强TEE发出信息的安全性,本说明书实施例中还可以使用其他增加安全性的方式来提高TEE发出信息的安全性,对此不作限定。
在S309,应用将公钥pk1发送给DIS。
具体是,应用可将密文报文、密文密钥、信封密钥的keyID、报文签名、上述核身ID及设备证书发送给DIS。
在S311,DIS将对密文报文的核验结果信息发送给用户设备100中的应用。
DIS在接收到密文报文、密文密钥、信封密钥的keyID、核身ID及设备证书之后,对密文报文进行核验,以确定是否允许用户设备100激活对DID的使用。
具体是,DIS首先将密文密钥和信封密钥keyID发送给CA。CA可根据keyID获取该keyID对应的信封密钥,使用信封密钥对密文密钥解密,得到用作为会话密钥的对称密钥,将会话密钥发送给DIS。
DIS从CA接收到会话密钥之后,使用会话密钥对密文报文解密,得到明文的业务报文。然后,DIS可获取CA的公钥,使用该公钥对设备证书中的CA对设备公钥的签名进行验证,在验签通过的情况下,DIS可使用设备公钥对报文签名进行验签。
在对报文签名验签通过之后,DIS可将核身ID发送给核身服务器,以确定该核身ID对应的实名认证是否认证通过。
DIS还可以验证当前激活是否满足预设激活规则,例如DID1是否开通过对其他设备的激活授权等。
DIS在上述核验都通过的情况下,从业务报文中获取公钥pk1,将该公钥pk1与DID1关联存储,并生成核验结果报文。该核验结果报文中可包括用于指示对公钥pk1的核验通过且DID1可激活的信息。该核验结果报文中还可以包括DID1、公钥pk1等信息。同时,DIS可生成对称密钥作为当前的会话密钥,使用会话密钥对核验结果报文加密,得到密文核验结果报文。DIS还可以使用自身的私钥生成对核验结果报文的签名
之后,DIS可将会话密钥和信封密钥的keyID发送给CA,CA根据keyID获取信封密钥,使用信封密钥对会话密钥加密,得到密文密钥,将密文密钥返回给DIS。
然后,DIS可将密文核验结果报文、报文签名和密文密钥发送给用户设备100中的应用。
在S313,应用在接收到上述数据之后,将这些数据提供给TEE,以将核验结果信息提供给TEE。
在S315,TEE激活DID。
TEE在接收到密文核验结果报文、签名和密文密钥之后,使用预先获取的DIS的公钥对签名进行验签,在验签通过的情况下,使用信封密钥对密文密钥解密,得到会话密钥,使用会话密钥对密文核验结果报文解密,得到核验结果报文。在核验结果报文指示允许激活的情况中DID1,TEE将DID1的状态设置为激活状态。在DID1为激活状态的情况下,TEE可通过DID1、私钥sk1进行发送交易等操作。
在S317,TEE向应用返回激活确认信息。
具体是,TEE在将DID1设置为激活状态之后,生成激活确认报文,以确认对DID1的激活,该激活确认报文中例如包括DID1和公钥pk1。类似地,TEE中可生成新的对称密钥作为当前的会话密钥,使用该会话密钥对激活确认报文加密,得到密文报文,并使用信封密钥对该会话密钥加密,得到密文密钥,然后,TEE可将密文报文、密文密钥和信封密钥的keyID返回给应用,以用于向应用返回激活确认信息。另外,TEE还可以使用设备私钥生成对激活确认报文的签名。
在S319,应用将激活确认信息发送给DIS。
具体是,应用将密文报文、密文密钥、信封密钥的keyID、签名和设备证书发送给DIS。
在S321,DIS确定DID的恢复公钥pk2,生成DID DOC,DID DOC中包括公钥pk1的信息和公钥pk2的信息。
DIS在接收到上述数据之后,与上文类似地进行验签和解密,然后得到激活确认报文。DIS根据激活确认报文确认DID1及公钥pk1已激活之后,确定DID1的恢复公钥pk2,该恢复公钥pk2可用于在需要弃用公钥pk1时进行对公钥pk1的弃用设置。
具体是,在当前DID1为新创建的DID的情况中,DIS可生成一对公私钥对(sk2和pk2),存储私钥sk2以用作为恢复私钥,并将pk2用作为恢复公钥pk2。恢复私钥仅可以用于向区块链发送用于弃用DID的控制公钥(例如公钥pk1)的交易,而不能发送其他类型的交易。
在当前DID1为已创建的DID的情况中,DIS可从区块链中获取DID当前的DID DOC,确定该DID DOC中是否设置了恢复公钥,如果已设置了恢复公钥,说明DIS中已经存储了与该恢复公钥对应的恢复私钥,DIS可继续使用该恢复公钥和恢复私钥。如果DID DOC中未设置恢复公钥,且DIS中存储有该DID对应的托管私钥和托管公钥,即DIS可使用该托管私钥进行对DID1的操作。DIS可将该托管私钥和托管公钥用作为恢复私钥和恢复公钥。
DIS在确定了恢复公钥pk2和恢复私钥sk2之后,可生成DID DOC,该DID DOC中包括DID1、控制公钥pk1和恢复公钥pk2。
在用户通过多个用户设备生成DID1的多个控制公钥的情况下,DIS可以以用户设备的标识区分该多个控制公钥。具体是,DIS中可记录用户设备标识与各个控制公钥的keyID的对应关系,并在DID DOC中记录各个控制公钥pk1的keyID。
在S323,DIS向区块链发送交易,以用于在区块链中存储DID DOC。
DIS可生成交易,该交易的数据字段中包括DID DOC,以用于将DID DOC存储到区块链中。具体是,区块链中例如部署了用于管理DID的合约C1,该交易中可调用该合约C1,并将DID DOC作为合约C1的传入参数。区块链中的各个节点在执行该交易时,在合约C1的合约状态中与DID1关联地存储该DID DOC。在合约状态中已经存储了DID文档的情况下,使用该DIDDOC替换原有的DID文档。
在进行如上设置之后,用户设备100可通过TEE中是私钥sk1进行对声明内容的签名,以用于颁发VC。
图5为本说明书实施例中用户设备对待被颁发VC的DID2进行确认的方法流程图。
如图5所示,在S501,用户设备100将随机字符串发送给用户设备200。
用户U1在确定待被颁发VC的账户为DID2之后,需要确认一下DID2为目标用户(例如用户U2)的账户,为此,用户U1可通过其用户设备100向用户U2的用户设备200发送随机字符串,以用于验证用户U2拥有DID2。
在S503,用户设备200在接收到随机字符串之后,使用DID2的私钥对该随机字符串进行签名,得到字符串签名。
具体是,用户设备200可将该随机字符串提供到TEE20中,TEE20中存储有DID2的私钥,TEE20使用该私钥对随机字符串签名,得到字符串签名,并将字符串签名提供到TEE外部。
在S505,用户设备200将字符串签名返回给用户设备100。
在S507,用户设备100将DID2、随机字符串和字符串签名发送给DIS 300。
在S509,DIS 300使用DID2的公钥对字符串签名进行验签。
DIS 300本地可存储有各个DID的公钥信息,从而DIS 300可从本地获取DID2的公钥。或者DIS 300可从区块链中读取DID2的DID DOC,从该DID DOC中读取DID2的公钥。DIS300可使用DID2的公钥对字符串的签名进行验签,如果验证通过,则说明该签名确实由DID2的私钥生成,也即验证了用户U2拥有DID2,反之则可验证用户U2不拥有DID2。
在S511,DIS 300将验签结果发送给用户设备100。
在上述验签通过的情况中,用户设备100可确定用户U2拥有DID2,从而可进行后续的向DID2颁发VC的过程。
可以理解,本说明书实施例中不限于通过如图5所示的方法验证用户U2是否拥有DID2。例如,用户设备100可直接从区块链中获取DID2对应的公钥,并使用该公钥对字符串签名进行验签等。
图6为本说明书实施例中的VC颁发方法流程图。
如图6所示,在S601,用户设备100中的应用向DIS发送VC颁发请求。
该VC颁发请求中可包括用户U1的用户标识(如“U1”),以请求DIS允许用户U1通过用户设备100向其他DID颁发VC。
在S603,DIS 300向用户设备100中的应用发送核身请求。
具体是,DIS 300在接收到VC颁发请求之后,可获取用户U1对应的身份信息,生成包括该身份信息的核身信息,将该核身信息发送给核身服务器,以请求核身服务器验证当前操作的用户是否为该身份信息对应的用户。核身服务器接收到该核身信息之后,生成核身ID,将该核身ID返回给DIS 300。DIS 300生成核身请求,将该核身请求发送给应用,以请求该应用对用户进行实名认证,其中,该核身请求中包括上述核身ID。
在S605,用户设备100中的应用获取用户的实名认证数据。
具体是,应用可调用核身服务器提供的接口,对用户进行实名认证。上述实名认证例如为拍摄用户面部视频作为用户的实名认证数据。
在S607,用户设备100中的应用在获取到用户的实名认证数据之后,将用户的实名认证数据发送给核身服务器。
具体是,应用可将实名认证数据和核身ID一起发送给核身服务器,参考上文对步骤S413的描述,核身服务器可基于实名认证数据和核身ID验证当前操作的用户是否为用户U1本人,核身服务器在进行该实名认证之后,可将该实名认证结果与核身ID关联地存储。
在S609,用户设备100的应用在实名认证通过之后将VC颁发信息发送给DIS 300。
该应用还可以将实名认证通过的信息和VC颁发信息一起发送给DIS 300。所述VC颁发信息中例如包括用户U1的DID1、待被颁发VC的用户U2的DID2、VC描述信息、VC有效期、核身ID等信息。这些信息中的至少部分信息可用于生成VC的内容(即content)。
具体是,应用可将该VC颁发信息提供给TEE(图6中未示出),TEE可基于该VC颁发信息生成报文,使用DID1的私钥sk1对该报文签名,得到报文签名,将报文签名和报文提供给应用。从而,应用可将报文和报文签名一起发送给DIS 300。
进一步,TEE10内可生成一个对称密钥,使用对称密钥对上述报文加密,得到密文报文,然后使用信封密钥对该对称密钥加密,得到密文密钥。之后,TEE可将密文报文、密文密钥、信封密钥的keyID以及报文签名提供到TEE外部,以提供给应用。从而,应用可将密文报文、密文密钥、信封密钥的keyID以及报文签名发送给DIS 300。
在S611,DIS 300从核身服务器获取核身结果。
DIS 300可基于VC颁发信息或者实名认证通过信息的触发,向核身服务器发送结果获取请求,该结果获取请求中例如包括上述核身ID。核身服务器在接收到该结果获取请求之后,基于核身ID查找到对应的实名认证的结果(即核身结果),并将该核身结果发送给DIS 300。
在DIS 300接收到密文报文、密文密钥、信封密钥的keyID以及报文签名的情况中,DIS300,DIS 300可将密文密钥和信封密钥的keyID发送给CA,CA可基于信封密钥的keyID找到信封密钥,使用信封密钥对密文密钥解密,得到对称密钥,并将对称密钥返回给DIS 300。DIS 300可使用对称密钥对密文报文解密,得到明文的报文,从明文的报文中读取到核身ID,并基于该核身ID从核身服务器获取核身结果。
在S613,DIS 300基于VC颁发信息生成VC内容。
DIS 300在基于核身结果确定对用户的实名认证通过的情况中,DIS 300可基于VC颁发信息生成VC内容。
具体是,在确定实名认证通过之后,DIS 300可获取DID1的公钥,使用该DID1的公钥对上述报文签名进行验证,在验签通过的情况中基于VC颁发信息生成VC内容。
进一步地,DIS 300在确定实名认证通过、且验签通过的情况中,还根据预设的业务逻辑对VC颁发信息进行校验,以例如校验VC颁发信息中是否合规。DIS 300在确认VC颁发信息合规的情况中基于VC颁发信息生成VC内容。
DIS 300可按照预设格式对VC颁发信息中的用户U1的DID1、待颁发VC的用户U2的DID2、VC描述信息、VC有效期等信息进行组装,从而生成VC内容。
在S615,DIS 300向用户设备100中的应用发送VC内容。
具体是,DIS 300可生成包括VC内容的报文,与S609类似地,使用DIS 300的私钥对该报文进行签名,生成报文签名。DIS 300还可以生成对称密钥,使用该对称密钥对报文加密,得到密文报文,将上述信封密钥的密钥标识和对称密钥发送给CA,CA基于密钥标识获取信封密钥,使用信封密钥对对称密钥加密,得到密文密钥,并密文密钥发送给DIS 300。之后,DIS 300可将密文报文、密文密钥和报文签名一起发送给用户设备100。
在S617,用户设备100的应用将VC内容提供给TEE10。
具体是,应用可将密文报文、报文签名、密文密钥提供给TEE10。
在S619,TEE10使用DID1私钥对VC内容签名,得到VC签名。
具体是,在TEE10接收到密文报文、报文签名、密文密钥的情况中,参考上文对S611的描述,TEE 10可基于信封密钥对密文报文解密,得到明文的报文,从报文中获取VC内容,并可获取DIS 300的公钥对报文签名进行验签,以确认报文未被篡改。
TEE 10在验签通过之后,使用DID1的私钥对VC内容签名,得到VC签名。
通过由DIS 300在确保用户实名认证通过之后生成VC内容发送给TEE,以由TEE生成VC签名,确保了所生成的VC的安全性和权威性。在DIS 300还对VC颁发信息进行合规检查的情况中,该方案还可以确保VC的合规性。
在S621,TEE10将VC签名提供给应用。
在S623,用户设备100中的应用将VC签名发送给DIS 300。
在S625,DIS 300组合VC内容和VC签名得到VC,将VC与DID2关联存储。
DIS 300在将该VC与DID2关联存储之后,可向区块链中发送调用上述合约C1的交易,以用于更新区块链中存储的DID2的DID DOC,使得该DID DOC中包括该VC的存储地址。通过如此,用户(例如VC验证者)可在区块链中读取到该DID DOC,从该DID DOC中读取到VC的存储地址,从而获取该VC。验证者可从区块链中获取DID1的公钥pk1,使用DID1的公钥pk1对VC中的VC签名进行验证,在验证通过的情况中,可确定该VC中的VC内容真实可信。
在另一种实施方式中,DIS 300在将VC与DID2关联存储之后,可向用户设备100发送VC颁发完成的信息,用户设备100可将VC颁发完成的信息发送给用户设备200。从而,用户设备200可基于DID2向DIS 300查询与DID2对应的VC。DIS 300可读取与DID2关联存储的VC,使用DID2的公钥对VC加密,得到密文VC,将密文VC发送给用户设备200。用户设备200在接收到密文VC之后,可使用DID2的私钥对密文VC解密,得到VC。用户设备200得到VC之后,可将该VC提供给验证者,以证明自身拥有VC内容中包括的属性。
图7为本说明书实施例中的一种第一用户设备的架构图,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥,所述第一用户设备包括:
发送单元71,用于向身份系统发送可验证声明VC颁发请求;
接收单元72,用于从所述身份系统接收核身请求;
认证单元73,用于响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息;
所述接收单元72还用于从所述身份系统接收VC内容,所述VC内容基于所述VC颁发信息生成;
提供单元74,用于将所述VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;
所述发送单元71还用于将所述第一签名发送给所述身份系统,以用于颁发所述VC,所述VC包括所述VC内容和所述第一签名。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图2-图6所示的方法。
本说明书实施例还提供一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图2-图6所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (16)

1.一种颁发可验证声明的方法,包括:
第一用户设备向身份系统发送可验证声明VC颁发请求,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥;
所述身份系统响应于所述VC颁发请求向所述第一用户设备发送核身请求;
所述第一用户设备响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息,所述VC颁发信息中包括待被颁发VC的第二用户的第二账户;
所述身份系统响应于所述VC颁发信息获取所述实名认证的结果,在认证通过的情况中,基于所述VC颁发信息生成VC内容,将所述VC内容发送给所述第一用户设备;
所述第一用户设备将VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;将所述第一签名发送给所述身份系统;
所述身份系统组合所述VC内容和所述第一签名得到VC,将所述VC与第二账户关联地存储。
2.根据权利要求1所述的方法,所述第一用户设备向所述身份系统发送VC颁发信息包括:
所述第一用户设备将所述VC颁发信息提供给所述TEE,所述TEE生成包括所述VC颁发信息的第一报文,使用所述第一私钥对所述第一报文签名,得到第二签名,将所述第二签名和所述第一报文提供到TEE外部;
所述第一用户设备将所述第二签名和所述第一报文发送给身份系统;
所述身份系统基于所述VC颁发信息生成VC内容包括:
所述身份系统获取所述第一账户的第一公钥,使用所述第一公钥对所述第二签名进行验证,在验证通过的情况中,基于所述VC颁发信息生成VC内容。
3.根据权利要求2所述的方法,所述TEE中存储有预先从认证机构CA获取的第一对称密钥,所述将所述第一报文提供到TEE外部包括:
所述TEE基于所述第一对称密钥对所述第一报文加密,得到第一密文报文,将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部。
4.根据权利要求3所述的方法,所述TEE基于所述第一对称密钥对所述第一报文加密包括:
所述TEE生成第二对称密钥,使用所述第二对称密钥对所述第一报文加密,得到所述第一密文报文,使用所述第一对称密钥对所述第二对称密钥加密,得到第一密文密钥;
所述将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部,包括:将所述第一密文报文、所述第一密文密钥和所述第一对称密钥的密钥标识提供到TEE外部。
5.根据权利要求4所述的方法,所述第一用户设备向所述身份系统发送VC颁发信息还包括:
所述第一用户设备将所述第一密文报文、所述第一密文密钥和所述第一对称密钥的密钥标识发送给所述身份系统;
所述方法还包括:
所述身份系统将所述第一密文密钥和所述第一对称密钥的密钥标识发送给所述CA;从所述CA接收所述第二对称密钥,使用所述第二对称密钥对所述第一密文报文解密,得到所述第一报文。
6.根据权利要求2所述的方法,所述身份系统将所述VC内容发送给所述第一用户设备还包括:
所述身份系统生成包括所述VC内容的第二报文,对所述第二报文签名,得到第三签名;将所述VC内容和所述第三签名发送给所述第一用户设备。
7.根据权利要求6所述的方法,所述身份系统将所述VC内容发送给所述第一用户设备,还包括:
所述身份系统生成第三对称密钥,使用所述第三对称密钥对所述第二报文加密,得到第二密文报文,将所述第一对称密钥的密钥标识和所述第三对称密钥发送给CA,从CA接收第二密文密钥,所述第二密文密钥通过使用所述第一对称密钥加密而生成,将所述第二密文报文和所述第二密文密钥发送给所述第一用户设备。
8.根据权利要求1或2所述的方法,所述身份系统基于所述VC颁发信息生成VC内容还包括:
所述身份系统校验所述VC颁发信息是否合规,在合规的情况下基于所述VC颁发信息生成VC内容。
9.根据权利要求1或2所述的方法,还包括:
所述第一用户设备接收由所述第一用户输入的VC颁发信息;将随机字符串发送给所述第二用户的第二用户设备;
所述第二用户设备使用所述第二账户的第二私钥对所述随机字符串签名,得到第四签名,将所述第四签名发送给所述第一用户设备;
所述第一用户设备将所述第二账户、所述随机字符串和所述第四签名发送给所述身份系统;
所述身份系统获取所述第二账户的第二公钥,使用所述第二账户的第二公钥对所述第四签名进行验签,将所述验签的结果发送给所述第一用户设备。
10.根据权利要求9所述的方法,还包括:
所述身份系统使用所述第二公钥对所述VC进行加密,得到密文VC;将所述密文VC发送给所述第二用户设备;
所述第二用户设备使用所述第二私钥对所述密文VC解密,得到所述VC。
11.根据权利要求1或2所述的方法,还包括:
所述第一用户设备从所述身份系统获取与所述第一用户对应的第一账户,将所述第一账户提供给所述TEE,所述身份系统中存储有所述第一用户的身份信息,所述第一账户与所述身份信息相对应;所述TEE生成与所述第一账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述第一账户和所述第一公钥的信息。
12.根据权利要求1或2所述的方法,所述VC颁发信息中还包括以下至少一项信息:所述第一账户、所述VC的有效期、所述VC的描述信息。
13.一种颁发可验证声明的方法,由第一用户设备执行,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥,所述方法包括:
向身份系统发送可验证声明VC颁发请求;
从所述身份系统接收核身请求;
响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息;
从所述身份系统接收VC内容,所述VC内容基于所述VC颁发信息生成;
将所述VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;
将所述第一签名发送给所述身份系统,以用于颁发所述VC,所述VC包括所述VC内容和所述第一签名。
14.根据权利要求13所述的方法,其中,所述第一账户包括分布式身份标识,所述身份系统包括分布式身份系统。
15.一种第一用户设备,所述第一用户设备中包括可信执行环境TEE,所述TEE中存储有所述第一用户的第一账户、及与所述第一账户对应的第一私钥,所述第一用户设备包括:
发送单元,用于向身份系统发送可验证声明VC颁发请求;
接收单元,用于从所述身份系统接收核身请求;
认证单元,用于响应于所述核身请求对第一用户进行实名认证,在实名认证通过之后向所述身份系统发送VC颁发信息;
所述接收单元还用于从所述身份系统接收VC内容,所述VC内容基于所述VC颁发信息生成;
提供单元,用于将所述VC内容提供给所述TEE,所述TEE使用所述第一私钥对所述VC内容签名,得到第一签名,将所述第一签名提供到TEE外部;
所述发送单元还用于将所述第一签名发送给所述身份系统,以用于颁发所述VC,所述VC包括所述VC内容和所述第一签名。
16.一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求13或14所述的方法。
CN202310259272.2A 2023-03-15 2023-03-15 颁发可验证声明的方法和用户设备 Pending CN116318981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310259272.2A CN116318981A (zh) 2023-03-15 2023-03-15 颁发可验证声明的方法和用户设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310259272.2A CN116318981A (zh) 2023-03-15 2023-03-15 颁发可验证声明的方法和用户设备

Publications (1)

Publication Number Publication Date
CN116318981A true CN116318981A (zh) 2023-06-23

Family

ID=86797455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310259272.2A Pending CN116318981A (zh) 2023-03-15 2023-03-15 颁发可验证声明的方法和用户设备

Country Status (1)

Country Link
CN (1) CN116318981A (zh)

Similar Documents

Publication Publication Date Title
WO2021209041A1 (zh) 基于可验证声明的授权处理
CN112818380B (zh) 业务行为的回溯处理方法、装置、设备及系统
CN111741036B (zh) 一种可信数据传输方法、装置及设备
KR101608510B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101641809B1 (ko) 일회용 비밀번호를 이용한 분산된 오프-라인 로그온을 위한 방법 및 시스템
CN110222531B (zh) 一种访问数据库的方法、系统及设备
CA3058240C (en) Cryptographic key management based on identity information
CN110032885B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110020549B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN111901402A (zh) 区块链中实现隐私保护的方法、节点和存储介质
KR20210040078A (ko) 안전한 보관 서비스를 위한 시스템 및 방법
WO2013107362A1 (zh) 一种保护数据的方法和系统
CN108335105B (zh) 数据处理方法及相关设备
KR20230031278A (ko) 하이퍼바이저 보호 키
CN109815747A (zh) 基于区块链的离线审计方法、电子装置及可读存储介质
KR20200116008A (ko) 암호 동작들의 안전한 수행
GB2546612A (en) Password-authenticated public key encryption and decryption
CA3058242C (en) Managing cryptographic keys based on identity information
CN111783071A (zh) 基于密码、基于隐私数据的验证方法、装置、设备及系统
Thilakanathan et al. Secure multiparty data sharing in the cloud using hardware-based TPM devices
Tamrakar Applications of Trusted Execution Environments (TEEs)
CN116318981A (zh) 颁发可验证声明的方法和用户设备
US11153299B2 (en) Secure data transport using trusted identities
CN116232741A (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