CN116232741A - 账户密钥设置方法、用户设备和系统 - Google Patents

账户密钥设置方法、用户设备和系统 Download PDF

Info

Publication number
CN116232741A
CN116232741A CN202310252186.9A CN202310252186A CN116232741A CN 116232741 A CN116232741 A CN 116232741A CN 202310252186 A CN202310252186 A CN 202310252186A CN 116232741 A CN116232741 A CN 116232741A
Authority
CN
China
Prior art keywords
user
tee
key
information
public key
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
CN202310252186.9A
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 CN202310252186.9A priority Critical patent/CN116232741A/zh
Publication of CN116232741A publication Critical patent/CN116232741A/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/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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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

Abstract

一种账户密钥设置方法、用户设备和系统,所述方法由用户设备执行,所述用户设备中包括可信执行环境TEE,所述方法包括:从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;所述TEE生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。

Description

账户密钥设置方法、用户设备和系统
技术领域
本说明书实施例属于分布式数字身份技术领域,尤其涉及一种账户密钥设置方法、用户设备和系统。
背景技术
相较于传统的数字身份而言,分布式数字身份可通过私钥控制信息的隐私和安全性,不依赖于中心化的系统进行验证,因此可实现“零信任”的互信和登录验证,为整体网络提升安全性的同时,方便服务提供方对用户的认证和用户信息的获取。
分布式数字身份例如包括分布式身份标识((Dencentralized ID,DID))和DID文档。所述DID的DID文档可存储于区块链中。DID文档中例如包括:DID、DID的公钥、可验证声明(Verifiable Credential,VC)的存储地址等。用户持有DID的私钥,从而可通过该私钥享有该DID、及该DID关联的资源。
发明内容
本发明的目的在于提供一种账户密钥设置方法,以提高账户密钥管理的安全性。
本说明书第一方面提供一种账户密钥设置方法,由用户设备执行,所述用户设备中包括可信执行环境TEE,所述方法包括:
从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;
所述TEE生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;
将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。
在一种实施方式中,所述账户包括分布式数字身份DID,所述存储系统包括区块链系统。
在一种实施方式中,所述将所述第一公钥的信息发送给所述身份系统包括:将所述第一公钥的信息和所述用户设备的设备信息发送给所述身份系统,以用于由所述身份系统存储所述用户设备与所述第一公钥的信息的关联关系。
在一种实施方式中,所述从身份系统获取与用户对应的账户,包括:
向所述身份系统发送账户获取请求;
响应于所述身份系统的核身请求指示所述用户进行实名认证,得到实名认证信息;
通过所述身份系统将所述实名认证信息发送给核身服务器,以由所述核身服务器对所述用户进行实名认证;
在所述实名认证通过的情况中,从所述身份系统接收与所述用户对应的所述账户。
在一种实施方式中,所述用户设备中存储有预先从认证机构CA接收的设备证书,所述TEE中存储有设备私钥,所述设备证书中包括与所述设备私钥对应的设备公钥、以及所述CA对所述设备公钥的签名,所述将所述第一公钥的信息发送给身份系统包括,将第一报文发送给所述身份系统,所述第一报文中包括所述第一公钥,
所述方法还包括:
所述TEE使用所述设备私钥对所述第一报文签名,生成第一签名,将所述第一签名提供到所述TEE的外部;
将所述设备证书和所述第一签名发送给所述身份系统。
在一种实施方式中,所述TEE中存储有预先从所述CA获取的第一对称密钥,所述将所述第一公钥的信息发送给身份系统,包括:
所述TEE基于所述第一对称密钥对所述第一报文加密,得到第一密文报文,将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部以发送给所述DIS。
在一种实施方式中,所述TEE基于所述第一对称密钥对所述第一报文加密包括:
所述TEE生成第二对称密钥,使用所述第二对称密钥对所述第一报文加密,得到所述第一密文报文,使用所述第一对称密钥对所述第二对称密钥加密,得到密文密钥;
将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部,包括:将所述第一密文报文、所述密文密钥和所述第一对称密钥的密钥标识提供到TEE外部。
在一种实施方式中,所述方法还包括:
从所述身份系统接收第二报文,所述第二报文用于指示所述身份系统接收到所述第一报文,将所述第二报文提供给所述TEE;
所述TEE根据所述第二报文将所述账户的状态设置为激活状态,生成第三报文,所述第三报文用于指示所述DID已激活,将所述第三报文提供到所述TEE外部;
将所述第三报文发送给所述身份系统,以触发所述身份系统将所述第一公钥的信息与所述账户关联地存储到区块链。
在一种实施方式中,所述方法还包括:
将生成的交易发送给所述TEE,所述交易的发送账户为所述DID;
所述TEE使用所述第一私钥对所述交易签名,并将对所述交易的签名提供到所述TEE的外部;
将所述交易及其签名发送到区块链中。
本说明书第二方面提供一种账户密钥设置系统,包括第一用户设备和身份系统,所述第一用户设备中包括TEE,
所述身份系统用于将用户的账户发送给所述第一用户设备,所述身份系统中关联地存储有所述账户和所述用户的身份信息;
所述第一用户设备用于:将所述账户提供给所述TEE;在所述TEE中生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;将所述第一公钥的信息发送给所述身份系统;
所述身份系统还用于将所述账户和所述第一公钥的信息关联地存储到存储系统中。
在一种实施方式中,所述存储系统包括区块链,
所述身份系统还用于从所述用户的第二用户设备接收对第一接口的调用;指示所述第二用户设备进行对所述用户的实名认证;在所述实名认证通过的情况下,获取所述用户的所述账户;在所述区块链中记录信息以用于指示所述第一用户设备对应的所述第一公钥的信息被禁用。
在一种实施方式中,所述区块链中还存储有所述账户的第二公钥的信息,所述第二公钥由所述身份系统生成,所述身份系统中还存储有与所述第二公钥对应的第二私钥,
在区块链中记录信息以用于指示所述第一用户设备对应的所述第一公钥的信息被禁用,包括:
所述身份系统用于生成交易和对所述交易的签名,所述交易的发送账户为所述账户,且所述交易中包括用于指示所述第一用户设备对应的所述第一公钥的信息被禁用的信息,所述签名通过使用所述第二私钥生成;将所述交易及其签名发送到区块链中,以将所述用于指示所述第一用户设备对应的所述第一公钥的信息被禁用的信息存储到区块链中。
在一种实施方式中,所述对第一接口的调用中包括所述第一用户设备的标识,所述所述身份系统还用于根据所述第一用户设备的标识确定将被禁用的所述第一公钥的信息。
本说明书第三方面提供一种用户设备,所述用户设备中包括可信执行环境TEE,所述用户设备包括:
获取单元,用于从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;
生成单元,用于在所述TEE中生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;
发送单元,用于将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。
本说明书第四方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
本说明书第五方面提供一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
在本说明书实施例提供的方案中,基于用户设备的TEE和分布式数字身份系统进行密钥管理,由TEE生成用户账户的公私钥对,并在TEE内保存私钥,从而保证私钥的安全性,避免了第三方使用私钥、或者私钥丢失的情况。同时,通过DIS保证用户设备在使用私钥时,是用户本人在进行操作,从而保证了用户账户的安全性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中的系统架构图;
图2为本说明书实施例中对用户设备中的TEE进行初始化的方法流程图;
图3为本说明书实施例中的在TEE内设置用户DID的私钥的方法流程图;
图4为本说明书实施例中的用户设备从DIS获取用户DID的方法流程图;
图5为本说明书实施例中用户设备向区块链发送交易的方法流程图;
图6为本说明书实施例中的对控制公钥进行禁用的方法流程图;
图7为本说明书实施例中的一种用户设备的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例中的方案所应用的账户例如可以为经实名认证过的区块链账户,或者可以为DID等。DID是符合W3C规范的分布式数字身份ID,一个DID唯一对应一个实体,一个实体可以有多个DID。上述实体是指所描述的信息主体,包括个人、机构或者任何客观事物。DID对应的DID文档可存储于区块链中。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作为分布式数字身份体系的应用层,提供了一种加密安全、尊重隐私和机器可验证的方式在网络上标识个体、组织甚至物品的某种特性。物理世界中的电子驾照等凭证可通过可验证声明的形式在网络中流转使用。
本说明书实施例中的账户密钥设置方案可用于区块链技术领域中,区块链中通常包括多个节点,节点之间可进行P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。
区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。
区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链中每个节点分布式地运行智能合约代码。
在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93…”,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并存储合约代码,将合约代码的哈希值保存在该合约的状态存储中,从而合约创建成功。
在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段为上述“0x6f8ae93…”,即被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从而分别执行该合约,基于该合约的执行更新状态数据库。
相关技术中,用户对账户私钥的密钥管理方式主要包括托管在中心化服务以及自己管理两种方式。其中,托管在中心化服务的方式存在第三方泄露以及服务随意使用私钥的风险,而用户自己管理私钥的方式存在私钥丢失的风险。
本说明书实施例中,基于用户设备的TEE和分布式数字身份系统(DecentralizedIdentity System,DIS)进行密钥管理,由TEE生成用户账户的公私钥对,并在TEE内保存私钥,从而保证私钥的安全性,避免了第三方使用私钥、或者私钥丢失的情况。同时,通过DIS保证用户设备在使用私钥时,是用户本人在进行操作,从而保证了用户账户的安全性。
所述DIS例如包括主站服务器、身份信息存储服务器、DIS存储服务器等。其中,主站服务器用于基于区块链提供分布式身份服务(下文称为DIS服务),身份信息存储服务器用于存储用户ID对应的用户的身份信息,DIS存储服务器用于存储用于的DID相关的数据,如DID、DID公钥等,并提供上链服务。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的公钥,该公私钥对可称为控制私钥和控制公钥,用于处理用户在业务上的交易。
在用户设备100和用户设备200属于同一个用户的情况中,在例如用户设备100丢失的情况中,用户可通过用户设备200向DIS 300请求禁用用户设备100对应的DID公钥,从而保障用户DID的安全性。
下文将参考图2-图6详细描述本说明书实施例中的设置账户密钥的方案。
图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对设备公钥的签名。该设备公钥与设备私钥对应。
在S215,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获取请求由用户本人发出,因此保障了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发送给用户设备中的应用。
返回到图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进行对交易的签名,并量交易发送到区块链中。图5为本说明书实施例中用户设备向区块链发送交易的方法流程图。
如图5所示,在S501,应用向TEE发送交易,该交易的发送账户为DID。
用户当需要向区块链发送交易时,可指示用户设备100生成交易,该交易的账户例如为DID。
在S503,TEE使用私钥sk1对交易签名,得到交易签名。
在S505,TEE向应用返回交易签名。
在S507,应用将交易及其签名发送至区块链。
在S509,区块链中获取DID的公钥pk1,使用公钥pk1对交易签名进行验签。
区块链中的任一节点在接收到该交易及其签名之后,在确定该交易的发送账户为DID1的情况下,可在区块链中读取DID1的控制公钥pk1,并使用公钥pk1对交易签名进行验签。
在DID1包括与多个用户设备分别对应的多个控制公钥、DID DOC中包括各个控制公钥及对应的keyID的情况中,用户设备100的应用可将交易、签名及用户设备100的设备标识发送给DIS,如上文所述,DIS中记录了用户设备标识与各个控制公钥的keyID的对应关系,DIS根据该对应关系确定用户设备100对应的keyID,将交易、签名即keyID发送给区块链,从而区块链节点可根据keyID在DID DOC中获取与用户设备100对应的控制公钥pk1,并使用该控制公钥pk1对交易的签名进行验签。
在另一种实施方式中,在DID DOC中可记录各个控制公钥及对应的用户设备的标识,从而用户设备100的应用可直接将交易、签名、用户设备100的设备标识发送至区块链,区块链节点根据设备标识可从DID DOC中获取与用户设备100对应的控制公钥。
在上述发送交易的过程中,用户不需要自己保管账户私钥、也不需要将私钥托管在第三方,只需要将交易发送给TEE就可以得到交易签名,保证了私钥的安全性。
在该方案中,如果用户的用户设备丢失,或者用户将要把用户设备转给其他人,用户需要在DID DOC中将该用户设备对应控制公钥进行禁用,以防止他人使用该用户设备进行了对该用户的DID的操作。下文中以用户丢失用户设备100为例描述本说明书实施例中的公钥禁用方法。
图6为本说明书实施例中的对控制公钥进行禁用的方法流程图。
如图6所示,在S601,用户设备200向DIS发送公钥禁用请求。
假设用户设备100和用户设备200都是用户U1的用户设备,用户U1在丢失了用户设备100之后,可通过用户设备200进行禁用用户设备100对应的公钥pk1(即控制公钥pk1)的操作。具体是,用户设备200可通过应用调用公钥禁用接口以向DIS发送公钥禁用请求,其中,对该接口可传入用户设备100的设备标识,以用于禁用用户设备100对应的控制公钥。
可以理解,这里虽然以用户设备200为例进行描述,本说明书实施例中,用户不限于通过包括TEE的设备执行该方法流程,例如,用户也可以通过不包括TEE、且未激活用户DID的设备来执行该方法。
在S603,DIS向核身服务器发送核身请求。
DIS在接收到用户的公钥禁用请求之后,在确定用户设备200的登录DIS的UID为U1之后,需要验证发起请求的用户是否为用户U1本人,因此向核身服务器发送对用户U1的核身请求,该核身请求中包括用户U1的身份信息。该身份信息例如包括用户的二要素信息。DIS可从身份数据服务器获取到用户U1的UID对应的身份信息。
在S605,核身服务器响应于核身请求生成核身ID,将核身ID发送给DIS。
在S607,DIS将核身ID发送给用户设备200。
在S609,用户设备200对用户进行实名认证,获得用户的实名认证数据。
该步骤可参考上文对图4中的步骤S409的描述,在此不再赘述。
在S611,用户设备200将实名认证数据和核身ID发送给核身服务器。
在S613,核身服务器基于实名认证数据和核身ID对用户进行实名认证。
该步骤可参考上文对S413的描述,在此不再赘述。
在S615,核身服务器将核身ID对应的核身结果发送给DIS。
该步骤可参考上文对图4中的步骤S415的描述,在此不再赘述。
在S617,DIS基于用户身份信息获取用户DID。
可以理解,在本说明书实施例中,DIS可基于用户身份信息获取到用户DID。例如,如上文所述,DID基于用户身份信息的哈希值计算得到。因此,DIS可基于用户U1的身份信息进行哈希计算,从而得到用户U1对应的DID。可以理解,本说明书实施例中不限于如上所述基于用户身份信息获得DID,例如,在DIS中可记录用户身份信息与DID的对应关系,从而可基于该对应关系获取到用户U1的DID。
在一种实施方式中,DIS可在存储服务器中存储用户身份信息与DID的对应关系,DIS可将用于禁用公钥的指令发送给存储服务器,以使得存储服务器执行S617-S623,其中,在该指令中包括用户U1的身份信息和用户设备100的设备信息。
在S619,DIS从区块链获取用户U1的DID的DID DOC。
DIS可通过向区块链发送交易以查询用户U1的DID的DID DOC。该交易例如可调用上述合约C1。
在S621,DIS更新DID DOC,以用于在DID DOC中包括公钥禁用信息。
在一种实施方式中,DID DOC中只记录了用户设备100对应的公钥信息,则DIS可直接在该DID DOC中记录对该公钥的禁用信息。
在另一种实施方式中,DID DOC中记录了用户U1的多个用户设备各自的公钥信息,其中各个公钥信息中包括公钥及该公钥对应的keyID。DIS中记录了各个用户设备与公钥keyID的对应关系。从而,DIS可根据用户设备100的设备信息,在用户设备与公钥keyID的对应关系中读取用户设备100对应的keyID,根据用户设备100对应的keyID找到DID DOC中用户设备100的公钥信息,并记录公钥禁用信息,该公钥禁用信息用于指示禁用用户设备100的公钥信息。在记录该公钥禁用信息之后,如果用户设备100向区块链中发送交易(该交易的交易签名基于用户设备100中的TEE10中的私钥生成),区块链节点根据DID DOC中的公钥禁用信息,将不能对该交易验证成功,因此该交易不能成功执行。而对于用户设备100在其公钥禁用之前发送的交易,仍是有效的,并且仍可使用DID DOC中的被禁用的用户设备100的公钥进行验证。
在S623,DIS向区块链发送交易,以用于存储更新的DID DOC。
DIS可生成交易,该交易的发送账户为DID,该交易调用合约C1中用于更新DID DOC的函数,对合约C1的传入参数中包括该更新的DID DOC,同时,该交易的签名通过使用上述私钥sk2(参考上文对图3中S321的描述)进行签名而生成。DIS将该交易发送到区块链中,区块链节点在接收到该交易之后,根据该交易中对合约C1的函数的调用,在DID DOC中获取公钥pk2,使用公钥pk2对交易签名进行验证,在验证通过的情况下,执行该交易,将更新的DIDDOC代替区块链中原有的DID DOC存储到区块链中。
通过图6所示方法,用户在丢失其用户设备100或者确定不再使用其用户设备100时,可方便地通过另一个用户设备对用户设备100对应的用户DID的密钥进行禁用,进一步保障了用户DID的安全性。
图7为本说明书实施例中的一种用户设备的架构图,所述用户设备中包括可信执行环境TEE,所述用户设备包括:
获取单元71,用于从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;
生成单元72,用于在所述TEE中生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;
发送单元73,用于将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图2-图5所示的方法。
本说明书实施例还提供一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图2-图5所示的方法。
在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.一种账户密钥设置方法,由用户设备执行,所述用户设备中包括可信执行环境TEE,所述方法包括:
从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;
所述TEE生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;
将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。
2.根据权利要求1所述的方法,所述账户包括分布式数字身份DID,所述存储系统包括区块链系统。
3.根据权利要求1或2所述的方法,所述将所述第一公钥的信息发送给所述身份系统包括:将所述第一公钥的信息和所述用户设备的设备信息发送给所述身份系统,以用于由所述身份系统在所述存储系统中存储所述用户设备与所述第一公钥的信息的关联关系。
4.根据权利要求1或2所述的方法,所述从身份系统获取与用户对应的账户,包括:
向所述身份系统发送账户获取请求;
响应于所述身份系统的核身请求指示所述用户进行实名认证,得到实名认证信息;
将所述实名认证信息发送给核身服务器,以由所述核身服务器对所述用户进行实名认证;
在所述实名认证通过的情况中,从所述身份系统接收与所述用户对应的所述账户。
5.根据权利要求2所述的方法,所述用户设备中存储有预先从认证机构CA接收的设备证书,所述TEE中存储有设备私钥,所述设备证书中包括与所述设备私钥对应的设备公钥、以及所述CA对所述设备公钥的签名,所述将所述第一公钥的信息发送给身份系统包括,将第一报文发送给所述身份系统,所述第一报文中包括所述第一公钥,
所述方法还包括:
所述TEE使用所述设备私钥对所述第一报文签名,生成第一签名,将所述第一签名提供到所述TEE的外部;
将所述设备证书和所述第一签名发送给所述身份系统。
6.根据权利要求5所述的方法,所述TEE中存储有预先从所述CA获取的第一对称密钥,所述将所述第一公钥的信息发送给身份系统,包括:
所述TEE基于所述第一对称密钥对所述第一报文加密,得到第一密文报文,将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部以发送给所述DIS。
7.根据权利要求6所述的方法,所述TEE基于所述第一对称密钥对所述第一报文加密包括:
所述TEE生成第二对称密钥,使用所述第二对称密钥对所述第一报文加密,得到所述第一密文报文,使用所述第一对称密钥对所述第二对称密钥加密,得到密文密钥;
将所述第一密文报文和所述第一对称密钥的密钥标识提供到TEE外部,包括:将所述第一密文报文、所述密文密钥和所述第一对称密钥的密钥标识提供到TEE外部。
8.根据权利要求6所述的方法,还包括:
从所述身份系统接收第二报文,所述第二报文用于指示所述身份系统接收到所述第一报文,将所述第二报文提供给所述TEE;
所述TEE根据所述第二报文将所述账户的状态设置为激活状态,生成第三报文,所述第三报文用于指示所述DID已激活,将所述第三报文提供到所述TEE外部;
将所述第三报文发送给所述身份系统,以触发所述身份系统将所述第一公钥的信息与所述账户关联地存储到区块链。
9.根据权利要求8所述的方法,还包括:
将生成的交易发送给所述TEE,所述交易的发送账户为所述DID;
所述TEE使用所述第一私钥对所述交易签名,并将对所述交易的签名提供到所述TEE的外部;
将所述交易及其签名发送到区块链中。
10.一种账户密钥设置系统,包括第一用户设备和身份系统,所述第一用户设备中包括TEE,
所述身份系统用于将用户的账户发送给所述第一用户设备,所述身份系统中关联地存储有所述账户和所述用户的身份信息;
所述第一用户设备用于:将所述账户提供给所述TEE;在所述TEE中生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;将所述第一公钥的信息发送给所述身份系统;
所述身份系统还用于将所述账户和所述第一公钥的信息关联地存储到存储系统中。
11.根据权利要求10所述的系统,所述存储系统包括区块链,
所述身份系统还用于从所述用户的第二用户设备接收对第一接口的调用;指示所述第二用户设备进行对所述用户的实名认证;在所述实名认证通过的情况下,获取所述用户的所述账户;在所述区块链中记录信息以用于指示所述第一用户设备对应的所述第一公钥的信息被禁用。
12.根据权利要求11所述的系统,所述区块链中还存储有所述账户的第二公钥的信息,所述第二公钥由所述身份系统生成,所述身份系统中还存储有与所述第二公钥对应的第二私钥,
在区块链中记录信息以用于指示所述第一用户设备对应的所述第一公钥的信息被禁用,包括:
所述身份系统用于生成交易和对所述交易的签名,所述交易的发送账户为所述账户,且所述交易中包括用于指示所述第一用户设备对应的所述第一公钥的信息被禁用的信息,所述签名通过使用所述第二私钥生成;将所述交易及其签名发送到区块链中,以将所述用于指示所述第一用户设备对应的所述第一公钥的信息被禁用的信息存储到区块链中。
13.根据权利要求12所述的系统,其中,所述对第一接口的调用中包括所述第一用户设备的标识,所述所述身份系统还用于根据所述第一用户设备的标识确定将被禁用的所述第一公钥的信息。
14.一种用户设备,所述用户设备中包括可信执行环境TEE,所述用户设备包括:
获取单元,用于从身份系统获取与用户对应的账户,将所述账户提供给所述TEE,所述身份系统中存储有所述用户的身份信息,所述账户与所述身份信息相对应;
生成单元,用于在所述TEE中生成与所述账户对应的第一公钥和第一私钥,存储所述第一私钥,将所述第一公钥提供到所述TEE外部;
发送单元,用于将所述第一公钥的信息发送给所述身份系统,以用于由所述身份系统在存储系统中关联地存储所述账户和所述第一公钥的信息。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-9中任一项的所述的方法。
16.一种用户设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
CN202310252186.9A 2023-03-15 2023-03-15 账户密钥设置方法、用户设备和系统 Pending CN116232741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310252186.9A CN116232741A (zh) 2023-03-15 2023-03-15 账户密钥设置方法、用户设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310252186.9A CN116232741A (zh) 2023-03-15 2023-03-15 账户密钥设置方法、用户设备和系统

Publications (1)

Publication Number Publication Date
CN116232741A true CN116232741A (zh) 2023-06-06

Family

ID=86585599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310252186.9A Pending CN116232741A (zh) 2023-03-15 2023-03-15 账户密钥设置方法、用户设备和系统

Country Status (1)

Country Link
CN (1) CN116232741A (zh)

Similar Documents

Publication Publication Date Title
US10277591B2 (en) Protection and verification of user authentication credentials against server compromise
CN110580413B (zh) 基于链下授权的隐私数据查询方法及装置
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101608510B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
TWI601405B (zh) 用於雲端輔助式密碼術之方法及設備
US7890771B2 (en) Saving and retrieving data based on public key encryption
CN110032885B (zh) 区块链中实现隐私保护的方法、节点和存储介质
US7487365B2 (en) Saving and retrieving data based on symmetric key encryption
CN110222531B (zh) 一种访问数据库的方法、系统及设备
CN110020549B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110580262A (zh) 基于智能合约的隐私数据查询方法及装置
CN111741036A (zh) 一种可信数据传输方法、装置及设备
CN111901402A (zh) 区块链中实现隐私保护的方法、节点和存储介质
JP2017515413A (ja) 継続的な所有者アクセスを伴う、暗号化された仮想マシンの安全なトランスポート
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
US10931453B2 (en) Distributed encryption keys for tokens in a cloud environment
KR20230031278A (ko) 하이퍼바이저 보호 키
CA2778805C (en) Saving and retrieving data based on public key encryption
US11316663B2 (en) One-time password with unpredictable moving factor
CN111783071A (zh) 基于密码、基于隐私数据的验证方法、装置、设备及系统
US20230169204A1 (en) Secure sharing of personal data in distributed computing zones
CN115603943A (zh) 一种离线身份验证的方法、装置、存储介质及电子设备
US11153299B2 (en) Secure data transport using trusted identities
Catuogno et al. A Fine-grained General Purpose Secure Storage Facility for Trusted Execution Environment.
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