CN117997519A - 数据处理方法、装置、程序产品、计算机设备和介质 - Google Patents

数据处理方法、装置、程序产品、计算机设备和介质 Download PDF

Info

Publication number
CN117997519A
CN117997519A CN202211324998.1A CN202211324998A CN117997519A CN 117997519 A CN117997519 A CN 117997519A CN 202211324998 A CN202211324998 A CN 202211324998A CN 117997519 A CN117997519 A CN 117997519A
Authority
CN
China
Prior art keywords
client
encrypted data
account address
key
private 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
CN202211324998.1A
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.)
Tenpay Payment Technology Co Ltd
Original Assignee
Tenpay Payment Technology 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 Tenpay Payment Technology Co Ltd filed Critical Tenpay Payment Technology Co Ltd
Priority to CN202211324998.1A priority Critical patent/CN117997519A/zh
Priority to PCT/CN2023/125366 priority patent/WO2024088145A1/zh
Publication of CN117997519A publication Critical patent/CN117997519A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据处理方法、装置、程序产品、计算机设备和介质,该方法应用于第一客户端,第一客户端具有客户端公钥和客户端私钥,第一客户端存储有基于对象口令对客户端私钥加密后的加密数据,该方法包括:若获取到针对加密数据的云端托管请求,则接收对象口令;采用接收的对象口令对加密数据进行解密,得到客户端私钥;基于客户端私钥对加密数据进行签名得到加密数据的签名;将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。采用本申请,可提高保管客户端私钥的可靠性和安全性。

Description

数据处理方法、装置、程序产品、计算机设备和介质
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种数据处理方法、装置、程序产品、计算机设备和介质。
背景技术
对于需要通过密钥对(包含公钥和私钥)进行身份认证以发起业务处理的客户端而言,私钥对于客户端的业务处理尤为重要,因此,需要对客户端的私钥进行妥善保管。
现有应用中,为了保障用户在客户端的私钥的安全性,通常是由用户自行保管在客户端的私钥,一旦用户将该私钥弄丢,则会导致用户无法再对该私钥对应账户进行任何的业务处理,由此给用户带来极大损失。
发明内容
本申请提供了一种数据处理方法、装置、程序产品、计算机设备和介质,可提高对象保管客户端私钥的可靠性和安全性。
本申请一方面提供了一种数据处理方法,该方法应用于第一客户端,第一客户端具有密钥对,密钥对包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,加密数据是基于对象口令对客户端私钥进行加密得到的;该方法包括:
若获取到针对加密数据的云端托管请求,则接收对象口令;
采用接收的对象口令对加密数据进行解密,得到客户端私钥;
基于客户端私钥对加密数据进行签名,得到加密数据的签名;
将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。
本申请一方面提供了一种数据处理装置,该装置应用于第一客户端,第一客户端具有密钥对,密钥对包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,加密数据是基于对象口令对客户端私钥进行加密得到的;该装置包括:
接收模块,用于若获取到针对加密数据的云端托管请求,则接收对象口令;
解密模块,用于采用接收的对象口令对加密数据进行解密,得到客户端私钥;
签名模块,用于基于客户端私钥对加密数据进行签名,得到加密数据的签名;
发送模块,用于将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。
可选的,第一客户端包含于目标设备中,目标设备包含第一客户端可调用的安全环境,安全环境是与第一客户端相隔离的执行环境;
第一客户端调用安全环境执行的操作包括:接收对象口令的操作;采用接收的对象口令对加密数据进行解密,得到客户端私钥的操作;以及,基于客户端私钥对加密数据进行签名,得到加密数据的签名的操作;
其中,第一客户端获取的加密数据的签名是基于安全环境得到的。
可选的,上述装置还用于:
若获取到账户创建请求,则接收对象口令,并生成第一客户端的密钥对;
采用接收的对象口令对密钥对中的客户端私钥进行加密,得到加密数据;
采用密钥对中的客户端公钥生成第一客户端的目标账户地址,并对目标账户地址和加密数据进行关联存储;
其中,第一客户端用于根据存储的加密数据对目标账户地址进行业务处理。
可选的,上述装置还用于:
若获取到地址登记请求,则接收对象口令;
采用接收的对象口令对加密数据进行解密,得到客户端私钥;
获取身份信息,并基于客户端私钥对客户端公钥和身份信息进行签名,得到身份签名;
将身份签名、身份信息和客户端公钥发送给云端设备,使云端设备在基于客户端公钥和身份签名对身份信息验证成功后,对目标账户地址和身份信息进行关联存储;目标账户地址是由云端设备基于客户端公钥计算得到的;
接收云端设备返回的地址签名;地址签名是由云端设备采用所属的私钥对存储的目标账户地址进行签名得到,地址签名用于指示对目标账户地址登记成功。
可选的,云端设备在获取到客户端公钥、加密数据和加密数据的签名后,基于客户端公钥对加密数据的签名进行解密,得到加密数据的确定的哈希值,并对加密数据进行哈希计算,得到加密数据的待验证的哈希值;以及,云端设备若对比出确定的哈希值与待验证的哈希值相同,则确定对加密数据验证成功;
云端设备在对加密数据验证成功后,基于客户端公钥计算得到目标账户地址,以及,云端设备若检测到目标账户地址已被登记成功,则关联存储加密数据和目标账户地址。
可选的,上述装置还用于:
若第一客户端中存储的加密数据丢失,且获取到对象基于云端的加密数据恢复请求,则获取身份信息;
将身份信息发送给云端设备,使云端设备在对身份信息验证成功后,获取与身份信息关联存储的至少一个账户地址;
接收云端设备返回的与身份信息关联存储的至少一个账户地址,并从接收的至少一个账户地址中选择需要恢复的目标账户地址;
将目标账户地址发送给云端设备,使云端设备获取与目标账户地址进行关联存储的加密数据;
接收云端设备返回的加密数据,并基于接收的加密数据和目标账户地址对加密数据进行恢复。
可选的,上述装置基于接收的加密数据和目标账户地址对加密数据进行恢复的方式,包括:
接收对象口令;
基于接收的对象口令对接收的加密数据进行解密,得到客户端私钥;
基于客户端私钥计算客户端公钥,并基于客户端公钥计算第一客户端的账户地址;
若计算的账户地址与目标账户地址相同,则在第一客户端关联存储目标账户地址和接收的加密数据。
可选的,第一客户端包含于目标设备中;上述装置还用于:
若获取到针对客户端私钥的本地备份请求,则接收对象口令;
基于接收的对象口令对加密数据进行解密,得到客户端私钥;
基于客户端私钥对加密数据进行签名,得到加密数据的签名;
对加密数据和加密数据的签名进行编码处理,得到编码数据;
输出编码数据;输出的编码数据用于被导出并存储至目标设备的本地存储空间,本地存储空间不属于第一客户端。
可选的,上述装置还用于:
若第一客户端中存储的加密数据丢失,且获取到基于本地的加密数据恢复请求,则获取从本地存储空间导入的编码数据;
对编码数据进行解码处理,得到加密数据;
接收对象口令,并基于接收的对象口令对解码得到的加密数据进行解密,得到客户端私钥;
基于客户端私钥计算客户端公钥,并基于客户端公钥计算对象在第一客户端的目标账户地址;
在第一客户端关联存储目标账户地址和解码得到的加密数据。
可选的,签名模块基于客户端私钥对加密数据进行签名,得到加密数据的签名的方式,包括:
对加密数据进行哈希计算,得到加密数据的哈希值;
采用客户端私钥对加密数据的哈希值进行加密,得到加密数据的签名。
可选的,第一客户端的目标账户地址与加密数据是关联存储的,目标账户地址是基于客户端公钥计算得到的;上述装置还用于:
若接收到第二客户端提交的第一连接请求,则输出第一客户端的至少一个账户地址;第一连接请求携带第二客户端的客户端标识;
在输出的至少一个账户地址中选择需要连接的目标账户地址,并获取与目标账户地址关联存储的加密数据;
接收对象口令,基于接收的对象口令对获取的加密数据进行解密,得到客户端私钥;
生成与第二客户端之间的通信密钥,并采用客户端私钥对通信密钥进行签名,得到通信密钥的签名;
采用第二客户端的公钥对通信密钥进行加密,得到加密后的通信密钥;
将客户端公钥、通信密钥的签名和加密后的通信密钥返回给第二客户端,使第二客户端采用所属的私钥对加密后的通信密钥进行解密,得到通信密钥,并在基于通信密钥的签名和客户端公钥对通信密钥验证成功后,关联存储目标账户地址和通信密钥;
接收第二客户端返回的连接成功的提示信息,并关联存储第二客户端的客户端标识、目标账户地址和通信密钥。
可选的,上述装置还用于:
若在断开与第二客户端之间的连接后,接收到第二客户端提交的第二连接请求,则输出第一客户端的至少一个账户地址;第二连接请求的发起时间晚于第一连接请求的发起时间;第二连接请求携带第二客户端的客户端标识;
在输出的至少一个账户地址中选择需要连接的目标账户地址;
若检测到存在与目标账户地址和客户端标识关联存储的通信密钥,则采用第二客户端的公钥对通信密钥进行加密,得到加密后的通信密钥;
将加密后的通信密钥和目标账户地址返回给第二客户端,使第二客户端采用所属的私钥对加密后的通信密钥进行解密,得到通信密钥,以及,若检测到存在与目标账户地址关联存储的通信密钥,则生成与第一客户端连接成功的提示信息;
接收第二客户端返回的连接成功的提示信息。
可选的,上述装置还用于:
若接收到第二客户端发起的第一资源查询请求,则输出第一客户端的至少一个账户地址;第一资源查验请求携带第二客户端生成的随机数;
在输出的至少一个账户地址中选择需要查询的目标账户地址;
接收对象口令,并基于接收的对象口令对存储的加密数据进行解密,得到客户端私钥;
采用客户端私钥对随机数进行签名,得到随机数签名;
将随机数签名和客户端公钥返回给第二客户端,使第二客户端在基于客户端公钥对随机数签名验证成功后,基于客户端公钥向第一客户端发起第二资源查询请求;
接收第二客户端提交的第二资源查询请求,根据第二资源查询请求携带的客户端公钥查询对象在目标账户地址下的资源;
将对象在目标账户地址下的资源的查询结果返回给第二客户端。
可选的,第一客户端还存储有目标账户地址,目标账户地址是基于客户端公钥计算得到的;上述装置还用于:
若获取到针对目标账户地址的口令更换请求,则接收对象口令以及用于更换对象口令的目标对象口令;
采用接收的对象口令对加密数据进行解密,得到客户端私钥;
根据客户端私钥计算客户端公钥,并根据客户端公钥计算第一客户端的账户地址;
若计算的账户地址与目标账户地址相同,则采用目标对象口令对客户端私钥进行加密,得到更换后的加密数据,并存储更换后的加密数据。
可选的,若第一客户端是基于区块链网络进行搭建的,则云端设备是指区块链网络中区块链节点的节点设备。
可选的,上述装置还用于:
若获取到交易发起请求,则按照交易发起请求的指示组装待发起的目标交易;
接收对象口令,并基于接收的对象口令对加密数据进行解密,得到客户端私钥;
基于客户端私钥对目标交易进行签名,得到交易签名;
将目标交易和交易签名广播至区块链网络,使区块链网络在基于交易签名对目标交易共识成功后,执行目标交易,并将目标交易上链至区块链网络。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请中,第一客户端具有密钥对,该密钥对可以包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,该加密数据是基于对象口令对客户端私钥进行加密得到的。第一客户端若获取到针对加密数据的云端托管请求,则可以接收对象口令;并可以采用接收的对象口令对加密数据进行解密,得到客户端私钥;还可以基于客户端私钥对加密数据进行签名,得到加密数据的签名;进而,第一客户端可以将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。由此可见,本申请提出的方法可以对客户端私钥的加密数据进行云端托管,通过对加密数据的云端托管实现了对客户端私钥进行保管的可靠性,并且由于不是直接将客户端私钥托管在云端设备中,而是将客户端私钥的加密数据托管在云端设备中,因此,在实现了针对客户端私钥的云端托管的前提下,也保证了客户端私钥的安全性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种网络架构的结构示意图;
图2是本申请提供的一种数据处理的场景图;
图3是本申请提供的一种数据处理方法的流程示意图;
图4是本申请提供的一种设置口令的界面示意图;
图5是本申请提供的一种获取加密数据的签名的场景示意图;
图6是本申请提供的一种地址登记方法的流程示意图;
图7是本申请提供的一种客户端的界面示意图;
图8是本申请提供的一种数据恢复方法的流程示意图;
图9是本申请提供的一种数据备份方法的流程示意图;
图10是本申请提供的一种数据本地备份的场景示意图;
图11是本申请提供的一种客户端连接方法的流程示意图;
图12是本申请提供的一种客户端连接的流程示意图;
图13是本申请提供的一种交易方法的场景示意图;
图14是本申请提供的一种交易执行的流程示意图;
图15是本申请提供的一种口令更换方法的流程示意图;
图16是本申请提供的一种口令更换的界面示意图;
图17是本申请提供的一种数据处理装置的结构示意图;
图18是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。本申请中的第一客户端可以是指基于区块链进行搭建的客户端,第一客户端的后台可以是指区块链网络。
本申请还涉及到云技术。其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请中所涉及到的云技术可以指第一客户端与云端设备之间可以是通过“云”进行通信的。
首先,需要进行说明的是,本申请所采集的所有数据(如对象的身份信息、对象口令等相关数据)都是在该数据所属对象(如用户、企业或者机构等)同意并授权的情况下进行采集的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
请参见图1,图1是本申请提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括云端设备1a和对象的终端设备2a。其中,终端设备2a中可以包括第一客户端,云端设备1a可以是该第一客户端的后台设备。云端设备1a与终端设备2a之间可以具有网络连接,使得云端设备1a和终端设备2a之间可以进行数据交互。
如图1所示的云端设备1a可以是服务器,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备2a可以是智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、车载终端等智能终端,或者还可以是智能手表、智能手环、虚拟现实头盔、眼镜等可穿戴智能终端。
请一并参见图2,图2是本申请提供的一种数据处理的场景图。如图2所示,对象的终端设备2a可以包含第一客户端以及该第一客户端可调用的安全环境,该安全环境可以是对象的终端设备2a中与第一客户端相隔离的执行环境,该安全环境可以是终端设备2a自带的。
对象具有在该第一客户端的密钥对,该密钥对也可以称之为是第一客户端的密钥对,该密钥对可以包含第一客户端的公钥(可以称为客户端公钥)和私钥(可以称为客户端私钥),该客户端公钥和客户端私钥即为对象在第一客户端中的公钥和私钥,该第一客户端不会直接存储该客户端私钥,而是可以存储有该客户端私钥的加密数据,该加密数据是采用对象的对象口令对该客户端私钥进行加密得到的,具体可以是先通过对象口令生成对称密钥,进而通过该对称密钥对该客户端私钥进行加密即可得到该加密数据。该对象口令可以理解为是对象设置的密码,该对象口令可以是任意形式的口令,如该对象口令可以是对象设置的字符密码或者对象设置的手势密码等等。
对象可以在第一客户端将第一客户端中存储的加密数据进行云端托管,即托管到第一客户端的云端设备1a,后续,若第一客户端中的加密数据丢失,则还可以通过云端托管的加密数据实现对第一客户端中加密数据的恢复。
更多的,通过对象在第一客户端的客户端私钥可以计算得到对象的上述客户端公钥,通过该客户端公钥还可以计算得到对象在第一客户端的账户地址,后续,第一客户端就可以通过对象输入的对象口令以及自己存储的加密数据对该账户地址相关的业务处理进行身份认证,以实现对该账户地址相关的业务处理。
并且,本申请中,所有涉及对象的对象口令和客户端私钥的处理操作都可以由第一客户端调用对象的终端设备2a中的安全环境执行,由于该安全环境是与第一客户端相隔离的执行环境,因此,这可以保证第一客户端获取不到对象的对象口令以及客户端私钥,同时云端托管的也是客户端私钥的加密数据,这就使得第一客户端的后台(即云端设备1a)也获取不到对象的对象口令以及客户端私钥,进而使得第一客户端以及第一客户端的后台都不能私自挪用对象的对象口令以及客户端私钥进行业务处理,保证了对象的对象口令以及客户端私钥的安全性和保密性。
请参见图3,图3是本申请提供的一种数据处理方法的流程示意图。本申请实施例中的执行主体可以是第一客户端,即本申请实施例可以应用于第一客户端(对第一客户端的具体描述可以参见下述步骤),第一客户端可以包含于计算机设备中,即第一客户端所执行的操作可以是通过所在的计算机设备来执行的,该计算机设备可以是对象的终端设备,或者也可以是其他能够包含第一客户端的设备,具体可以根据实际应用场景确定,对此不做限制,该对象可以是指任意用户、机构或者企业等。如图3所示,该方法可以包括:
步骤S101,若获取到针对加密数据的云端托管请求,则接收对象口令。
具体的,第一客户端(属于前端)可以是任意的需要使用密钥对进行身份认证(如通过密钥对中的私钥对数据进行签名以实现身份认证,以证明该数据是第一客户端发起的)的客户端,第一客户端可以是网页、小程序或者软件(APP)等任意形式的客户端。
对象可以具有在第一客户端的密钥对,该密钥对也可以称之为是第一客户端的密钥对,该密钥对可以包含对象在第一客户端的私钥(可以称为客户端私钥)和公钥(可以称为客户端公钥)。
可以知道的是,该密钥对可以是非对称密钥对,因此,通过客户端私钥进行加密的数据可以通过客户端公钥进行解密,反之,通过客户端公钥进行加密的数据也可以通过客户端私钥进行解密。
其中,第一客户端中可以不存储对象的客户端私钥的明文,即第一客户端不会直接存储对象的客户端私钥,第一客户端中可以存储有客户端私钥的加密数据,该加密数据可以是通过对象的对象口令对该客户端私钥进行加密得到的,该对象口令可以理解为是用于对对象在第一客户端的客户端私钥进行加密的密码。
下面具体描述对象获取在第一客户端的密钥对以及第一客户端存储对象的客户端私钥的加密数据的过程:
第一客户端若获取到账户创建请求(可以是对象在第一客户端中通过创建账户的按钮发起),则第一客户端可以让对象输入自己的口令(可以称为对象口令),如第一客户端可以在客户端界面显示用于输入口令的输入框,对象可以在该输入框中输入自己需要设置的对象口令并点击确认,因此,第一客户端就可以接收到对象输入的对象口令。
可选的,对象口令的类型可以根据实际应用场景确定,对此不做限制。例如,对象的对象口令可以是对象输入的字符串(可以包含字母、数字或/和符号等)或者手势口令等。
第一客户端在接收到对象输入的对象口令后,可以生成对象在第一客户端的上述密钥对。其中,第一客户端可以采用相关的非对称加密算法来生成对象在第一客户端的密钥对,生成的该密钥对就包含对象在第一客户端的上述客户端公钥和客户端私钥。其中,在生成该密钥对时,是先生成对象的客户端私钥,再通过该客户端私钥生成对象的客户端公钥,而通过客户端公钥是推导不出客户端私钥的。
进而,第一客户端可以采用对象输入的对象口令对上述生成的密钥对中的客户端私钥进行加密,以得到客户端私钥的加密数据。如第一客户端可以先根据对象输入的对象口令生成一个对称密钥,进而通过该对称密钥对客户端私钥进行加密,即可得到客户端私钥的加密数据。可选的,第一客户端可以采用相关的对称加密算法(如SM4算法)根据对象口令生成对应的该对称密钥。
其中,对于该对称密钥,可以知道的是,通过该对称密钥进行加密的数据也可以通过该对称密钥进行解密,该对称密钥只包含一个密钥,即对于对称密钥,对数据进行加密和解密的密钥是同一个。
更多的,第一客户端还可以采用上述生成的密钥对中的客户端公钥生成对象在第一客户端的账户地址(可以将该账户地址称之为是目标账户地址)。
其中,第一客户端可以按照预设的地址生成规则根据客户端公钥生成对象在客户端的目标账户地址,该地址生成规则可以根据实际应用场景进行设置,对此不做限制。
例如,第一客户端可以直接将该客户端公钥作为对象在第一客户端的目标账户地址(也可以称为第一客户端的目标账户地址),或者,第一客户端也可以对该客户端公钥进行哈希计算,得到客户端公钥的哈希值,将该哈希值作为对象在第一客户端的目标账户地址,等等。
进而,第一客户端可以对上述生成的目标账户地址和客户端私钥的加密数据进行关联存储,该关联存储可以是双向映射,即通过目标账户地址可以关联查找到加密数据,通过加密数据也可以关联查找到目标账户地址。
第一客户端可以根据存储的加密数据对目标账户地址进行业务处理。例如,目标账户地址下可以具有对象的资源(如数字资源,该数据资源可以是数字藏品等),第一客户端可以根据存储的加密数据对目标账户地址下对象的资源进行转移(如转移给其他对象)等业务处理。
请参见图4,图4是本申请提供的一种设置口令的界面示意图。如图4所示,客户端界面1和客户端界面2都属于第一客户端的客户端界面。对象可以在客户端界面1设置数字口令作为自己的对象口令,或者对象也可以在客户端界面2设置手势口令作为自己的对象口令。
更多的,上述第一客户端可以是对象的终端设备中的客户端,对象的终端设备可以称为目标设备,对象的终端设备中还可以包含第一客户端可调用的安全环境,该安全环境不属于第一客户端,该安全环境可以是对象的终端设备中自带的,该安全环境是与第一客户端相隔离的执行环境。
其中,该安全环境可以是通过集成在对象的终端设备中的芯片(如安全芯片或者加密芯片)提供的硬件环境,或者,该安全环境也可以是对象的终端设备中构建的可信的软件环境。例如,该安全环境可以是可信执行环境(TEE,Trusted Execution Environment)等。在该安全环境内可以进行可信、安全且与外界隔离的业务处理。由于该安全环境是与第一客户端相隔离的,因此,第一客户端也并不能知道和获取到在该安全环境中进行处理的数据。
因此,需要进行说明的是,本申请中所有涉及对对象口令和客户端私钥进行处理的操作都可以是第一客户端调用对象的终端设备中的安全环境来执行的。
例如,上述第一客户端接收对象输入的对象口令的操作、第一客户端在接收到对象输入的对象口令后生成对象的密钥对的操作、以及采用对象口令对对象的客户端私钥进行加密以得到加密数据的操作,都可以是第一客户端调用安全环境来执行的,这可以使得第一客户端也不能知道和拿到对象的对象口令和客户端私钥,因此可以提高对象的对象口令和客户端私钥在前端的安全性和保密性,使得第一客户端也不能私自挪用对象的对象口令或者客户端私钥进行业务处理。
因此,第一客户端获取到的客户端私钥的加密数据可以是基于安全环境得到的。例如,第一客户端在调用安全环境生成密钥对、并得到客户端私钥的加密数据后,安全环境可以直接将业务处理的结果(如客户端私钥的加密数据和客户端公钥)给到第一客户端。
第一客户端可以通过基于安全环境得到的客户端公钥计算上述目标账户地址,并可以对该目标账户地址与基于安全环境得到的加密数据进行关联存储,后续,第一客户端就可以根据存储的加密数据对目标账户地址进行相应的业务处理,对象创建账户成功。
更多的,第一客户端调用安全环境进行业务处理的相关业务逻辑可以是在终端设备中安装第一客户端时被封装和配置到安全环境中的。
可选的,若对象的终端设备中不包含上述第一客户端可调用的安全环境,则涉及对对象的对象口令和客户端私钥进行处理的操作也可以由第一客户端来执行,第一客户端可以在对对象的对象口令和客户端私钥进行相应的业务处理后就删除缓存的对象口令和客户端私钥。此种情形下,第一客户端可以采用其他安全等级防护的机制对对象的对象口令和客户端私钥进行保护,并需要向对象承诺(如通过协议承诺),保证对象的对象口令或/和客户端私钥不会离开对象的终端设备,第一客户端也不会私自挪用对象的对象口令或/和客户端私钥进行业务处理。
并且,若对象的终端设备中不包含上述第一客户端可调用的安全环境,则第一客户端在当前完成对对象输入的对象口令以及解密得到的客户端私钥的相关操作后,也需要及时删除缓存的对象口令和客户端私钥。
可选的,对象在创建账户后,可以通过自己的实名信息(如实名的身份信息)对创建的目标账户地址进行云端登记(即后台登记),以完成对对象的实名登记,其中,通过实名信息对目标账户地址进行登记的过程可以参见下述图6对应实施例中的相关描述。对于在有实名规定的地区,对象在完成对目标账户地址的实名登记后,可以请求针对加密数据的云端托管(即备份)。或者,对于在没有实名规定的地区,对象在未对目标账户地址进行实名登记的情形下,也可以请求针对加密数据的云端托管,具体可以根据所在地区相关法律法规决定。针对加密数据的云端托管过程可以如下述内容描述。
在存储加密数据后,第一客户端若获取到针对加密数据的云端托管请求(可以是对象通过第一客户端中私钥托管的控件发起),则第一客户端可以让对象输入对象口令(如显示口令的输入框让对象输入),第一客户端可以接收到对象输入的对象口令。由上述描述可知,若对象的终端设备中包含上述安全环境,则第一客户端接收对象输入的对象口令的操作可以是第一客户端调用安全环境执行的,若对象的终端设备中不包含上述安全环境,则接收对象输入的对象口令的操作可以是由第一客户端自己来执行的。
步骤S102,采用接收的对象口令对加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以采用接收到的对象口令对存储的加密数据进行解密,以得到对象在第一客户端的客户端私钥(也是第一客户端的私钥)。例如,第一客户端也可以通过对象输入的对象口令计算得到上述对称密钥,进而使用该对称密钥对存储的加密数据进行解密,即可得到对象的客户端私钥。
若对象的终端设备中包含第一客户端可调用的上述安全环境,则第一客户端采用对象输入的对象口令对加密数据进行解密以得到对象的客户端私钥的操作,也可以第一客户端调用安全环境执行的。
由上述步骤S101中相关描述可知,若对象的终端设备中不包含该安全环境,则采用对象输入的对象口令对加密数据进行解密以得到对象的客户端私钥的操作,也可以是由第一客户端自己来执行的。
步骤S103,基于客户端私钥对加密数据进行签名,得到加密数据的签名。
具体的,第一客户端可以采用上述解密的客户端私钥对加密数据进行签名,以得到加密数据的签名。若对象的终端设备中包含上述安全环境,则第一客户端采用解密的客户端私钥对加密数据进行签名以得到加密数据的签名的操作,也可以是第一客户端调用安全环境执行的。安全环境在得到加密数据的签名后,就可以将加密数据的签名给到第一客户端,因此,第一客户端获取的加密数据的签名可以是基于安全环境得到的。
由上述步骤S101中相关描述可知,若对象的终端设备中不包含该安全环境,则采用解密的客户端私钥对加密数据进行签名以得到加密数据的签名的操作也可以是由第一客户端自己来执行的。
可选的,采用客户端私钥对加密数据进行签名以得到加密数据的签名的过程可以包括:可以对加密数据进行哈希计算,得到加密数据的哈希值,并可以采用客户端私钥对加密数据的哈希值进行加密,即可得到加密数据的签名。
请参见图5,图5是本申请提供的一种获取加密数据的签名的场景示意图。如图5所示,对象终端(即对象的终端设备)中包含安全环境和第一客户端。对象可以在第一客户端中发起针对客户端私钥(对象的感知上可以是针对客户端私钥,实际可以是针对加密数据)的云端托管请求,进而第一客户端可以请求对象输入口令(在生成密钥对时用户自己设置的)。
第一客户端可以调用安全环境接收对象输入的对象口令,因此,安全环境可以接收到对象输入的对象口令。进而,安全环境可以采用对象输入的对象口令对加密数据(可以是第一客户端提供的)进行解密,得到客户端私钥。
安全环境还可以采用解密得到的客户端私钥对加密数据进行签名,得到加密数据的签名,安全环境可以将该加密数据的签名输出给第一客户端,第一客户端就获取到了加密数据的签名。
步骤S104,将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。
具体的,第一客户端可以获取到对象的客户端公钥,该客户端公钥可以是预先存储在第一客户端的(如在创建账户时存储的),该客户端公钥也可以是基于解密得到的客户端私钥计算出来的。第一客户端可以将客户端公钥、加密数据以及加密数据的签名发送给云端设备,使得云端设备在通过该客户端公钥和加密数据的签名对加密数据验证成功(确保该加密数据是第一客户端发送的可靠的数据)后,存储加密数据,以实现对加密数据的托管。
其中,云端设备可以理解为是第一客户端的后台设备,云端设备可以是由一个或者多个计算机设备构成,该计算机设备可以是服务器或者其他设备,具体可以根据实际应用场景确定。
可选的,云端设备通过客户端公钥和加密数据的签名对加密数据进行验证的过程可以包括:云端设备可以采用客户端公钥对加密数据的签名进行解密,得到加密数据的确定的哈希值,云端设备还可以对接收到的加密数据进行哈希计算,得到加密数据的待验证的哈希值。
进而,云端设备可以对该确定的哈希值和该待验证的哈希值进行比对,若比对出该确定的哈希值和该待验证的哈希值相同,则可以确定对加密数据验证成功;反之,若比对出该确定的哈希值和该待验证的哈希值不同,则可以确定对加密数据验证失败。
可选的,云端设备在对加密数据验证成功后,还可以基于获取的客户端公钥计算得到对象在第一客户端的上述目标账户地址,进而,云端设备可以检测该目标账户地址是否已在后台被登记成功,若登记成功,则云端设备可以关联存储接收到的加密数据和该目标账户地址。
关联存储的该加密数据和目标账户地址可以理解为是双向映射的,云端设备通过加密数据可以关联查找到目标账户地址,通过目标账户地址也可以关联查找到加密数据。
本申请中在对客户端私钥进行云端托管时,不是直接将客户端私钥(即客户端私钥的明文)托管存储在云端设备,而是将客户端私钥的加密数据存储托管在云端设备,使得云端设备(后台)也不能知道和拿到对象的客户端私钥,也就不能私自挪用对象的客户端私钥进行业务处理。因此,采用本申请提供的方法,在实现了针对客户端私钥在云端设备的托管的前提下,也可以保证客户端私钥在云端设备的保密性和安全性。
后续,若对象的终端设备中第一客户端存储的加密数据被丢失(如对象的终端设备丢失或者系统重装后导致加密数据的丢失),则对象也可以通过云端设备中存储的加密数据实现在第一客户端对加密数据的恢复,该过程可以参见下述图8对应实施例中的具体描述。
本申请中,第一客户端具有密钥对,该密钥对可以包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,该加密数据是基于对象口令对客户端私钥进行加密得到的。第一客户端若获取到针对加密数据的云端托管请求,则可以接收对象口令;并可以采用接收的对象口令对加密数据进行解密,得到客户端私钥;还可以基于客户端私钥对加密数据进行签名,得到加密数据的签名;进而,第一客户端可以将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。由此可见,本申请提出的方法可以对客户端私钥的加密数据进行云端托管,通过对加密数据的云端托管实现了对客户端私钥进行保管的可靠性,并且由于不是直接将客户端私钥托管在云端设备中,而是将客户端私钥的加密数据托管在云端设备中,因此,在实现了针对客户端私钥的云端托管的前提下,也保证了客户端私钥的安全性和保密性。
请参见图6,图6是本申请提供的一种地址登记方法的流程示意图。本申请实施例中的执行主体也可以是上述第一客户端,对地址进行云端登记也可以理解为是对对象进行实名登记。如图6所示,该方法包括:
步骤S201,若获取到地址登记请求,则接收对象口令。
具体的,第一客户端若获取到地址登记请求(可以是对象通过第一客户端中地址登记的控件发起),则可以请求对象输入口令(如显示用于录入口令的输入框或者语音输入等),第一客户端可以接收对象输入的对象口令。
需要进行说明的是,本申请中对象在第一客户端中可以具有一个或者多个密钥对,一个密钥对对应一个对象口令(该对象口令用于对对应密钥对中的客户端私钥进行加解密)和一个账户地址(通过该密钥对中的公钥计算得到),即对象在第一客户端中可以具有一个或者多个账户地址(即多个账户)。不同密钥对可以对应相同的对象口令或者不同的对象口令,这可以根据对象对各个密钥对实际设置的口令决定。
若有多个账户地址,且第一客户端是基于区块链(即区块链网络)进行搭建,则该多个账户地址可以存在于相同或者不同的区块链上,即第一客户端的后台可以有多个区块链。例如,第一客户端是资源包应用,该资源包应用可以是用于管理对象的资源(如数字资源,该数字资源可以是数据藏品等资源)的应用,第一客户端基于区块链进行搭建,对象在该多个账户地址下均有相应的资源,那么对象在各个账户地址下的数字资源可以存在于不同的区块链上。
本申请中,由于对对象在第一客户端的每个密钥对(或者每个账户地址)进行相关处理(如地址登记、加密数据云端备份、加密数据本地备份、加密数据云端恢复、加密数据本地恢复、第一客户端与第二客户端的交互、在第一客户端发起交易等相关处理)的原理都相同,因此,本申请是以对对象在第一客户端中的一个密钥对(可以是任一个密钥对)进行处理的过程为例进行说明,该个密钥对对应的账户地址可以是下述目标账户地址,本申请中所描述的对象输入的对象口令可以是该个密钥对对应的对象口令,换句话说,本申请中单独描述到的客户端公钥、客户端私钥、加密数据、对象口令和目标账户地址都可以是与该个举例描述的密钥对相配套相对应的。
可选的,若对象的终端设备中包含第一客户端可调用的安全环境,则第一客户端接收对象的对象口令的操作可以是由第一客户端调用该安全环境所执行的。
步骤S202,采用接收的对象口令对加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以采用对象输入的对象口令对存储的加密数据进行解密,如通过该对象口令计算得到对称密钥,通过该对称密钥对加密数据进行解密,即可得到对象在第一客户端的客户端私钥(此时需要对象输入的是正确的对象口令)。
可选的,若对象的终端设备中包含第一客户端可调用的安全环境,则第一客户端采用对象输入的对象口令对加密数据进行解密以得到客户端私钥的操作,可以是由第一客户端调用该安全环境执行的。
步骤S203,获取身份信息,并基于客户端私钥对客户端公钥和身份信息进行签名,得到身份签名。
具体的,第一客户端可以请求对象录入相关的身份信息(能证明对象的身份的相关信息,具体可以根据实际应用确定,如可以包含对象在权威机构的身份编号、名称等信息),第一客户端可以获取到对象输入(或者导入)的身份信息。
第一客户端可以对对象录入的身份信息进行验证,验证通过,就可以采用上述解密得到的客户端私钥对客户端公钥(该客户端公钥可以是通过解密的客户端私钥计算得到的,也可以是第一客户端预先存储的)和身份信息一起进行签名,可以将此处得到的签名称之为是身份签名,通过对对象的客户端公钥和对象的身份信息一起进行签名可以实现对对象的客户端公钥和身份信息进行绑定的效果。
例如,第一客户端可以请求或者调用对象录入的身份信息相关的权威机构(如身份编号发行的机构)对对象录入的身份信息进行验证,以验证对象录入的身份信息是否是在该权威机构中发行或者发布的身份信息,若是,则可以确认对对象录入的身份信息验证通过。
可选的,第一客户端采用上述解密得到的客户端私钥对客户端公钥和身份信息一起进行签名的过程可以包括:第一客户端可以对客户端公钥和身份信息进行拼接,得到拼接信息,进而,第一客户端可以计算该拼接信息的哈希值,并可以采用上述解密得到的客户端私钥对该拼接信息的哈希值进行加密,即可得到上述身份签名。
步骤S204,将身份签名、身份信息和客户端公钥发送给云端设备,使云端设备在基于客户端公钥和身份签名对身份信息验证成功后,对目标账户地址和身份信息进行关联存储;目标账户地址是由云端设备基于客户端公钥计算得到的。
具体的,第一客户端可以将上述身份签名、对象录入的身份信息以及客户端公钥一起发送给云端设备,使得云端设备在通过接收的客户端公钥和身份签名对接收的身份信息验证成功后,就可以对对象的目标账户地址(该目标账户地址可以是云端设备在对身份信息验证成功后,通过接收的客户端公钥计算得到的)和身份信息进行关联存储(也可以是双向映射存储),以此就实现了在云端对对象在第一客户端的目标账户地址的实名登记。
云端设备在对目标账户地址进行实名登记后,还可以生成针对登记的该目标账户地址的签名(可以称为地址签名),该地址签名可以是云端设备采用所属的私钥(即云端设备的私钥)对存储的目标账户地址进行签名得到,该地址签名可以采用云端设备的公钥进行加密,该地址签名用于指示云端设备对目标账户地址登记成功,云端设备可以将该地址签名返回给第一客户端。
其中,云端设备采用所属的私钥对目标账户地址进行签名以得到地址签名的过程可以包括:云端设备可以计算目标账户地址的哈希值,进而云端设备可以采用所属的私钥对该目标账户地址的哈希值进行加密,即可得到上述地址签名。
可选的,上述云端设备生成目标账户地址的地址签名返回给第一客户端的过程,也可以通过CA(证书的签发机构)证书的颁发过程来代替,只要能证明目标账户地址已经实际合法登记即可,具体可以根据实际应用场景确定,对此不作限制。
其中,云端设备是第一客户端的后台设备。若第一客户端是基于区块链网络搭建的,则该云端设备可以是该区块链网络中的区块链节点的节点设备,该节点设备可以是由一个或者多个计算机设备构成,该计算机设备可以是服务器或者其他设备。
步骤S205,接收云端设备返回的地址签名;地址签名是由云端设备采用所属的私钥对存储的目标账户地址进行签名得到,地址签名用于指示对目标账户地址登记成功。
具体的,第一客户端可以接收到云端设备返回的地址签名,第一客户端可以存储该地址签名,该地址签名可以在第一客户端中作为已在云端对目标账户地址进行登记的凭证或者记录。
通过上述过程,即完成了在云端对目标账户地址进行登记的过程,通过对目标账户地址进行登记也实现了对对象的实名登记,这可以提高对象在使用第一客户端时的安全性和合法性。
请参见图7,图7是本申请提供的一种客户端的界面示意图。本申请中的第一客户端可以是图7中的资源包应用,该资源包应用可以是基于区块链网络(如区块链Q)进行搭建的,该资源包应用可以是用于对象管理在区块链上的资源的应用,该资源可以是数据藏品等任意的数字资源。
图7所示的客户端界面就是该资源包应用的界面,该界面中显示有资源包地址(即对象的账户地址“ABCDEF”),还显示有当前资源包应用所属的区块链Q,该区块链Q支持被切换(如切换到资源包应用所属的其他区块链)。
该界面中还显示有功能菜单,通过该功能菜单可以实现切换资源包(如切换资源包地址)、备份资源包(如在本地存储空间备份加密数据)、恢复资源包(如通过本地或者云端备份的加密数据实现对资源包应用中加密数据的恢复)、托管资源包(如在云端设备托管加密数据)等功能。
该界面还显示有扫码控件,通过该扫码控件可以打开对象终端的摄像头进行扫码,以进行相应的业务处理(如获取其他客户端提交的数据或者发起交易等)。
该界面还展示有对象在账户地址下的数字资源(此处的数字藏品),包括“歪头的猫咪”和“展翅的鹅”,且还显示了数字资源的拥有人和数字资源ID(标识)。
该界面还显示有核心功能,包括“转出”的功能、“转入”的功能以及“兑换”的功能,该“转出”的功能用于对象将自己持有的数字藏品转移给其他对象,该“转入”的功能用于对象接收其他对象转入的数字藏品,该“兑换”的功能用于对象将自己拥有的数字藏品兑换为其他物品(如其他数字藏品)。
请参见图8,图8是本申请提供的一种数据恢复方法的流程示意图。本申请实施例中的执行主体也可以是上述第一客户端,本申请实施例中主要描述了当第一客户端中的加密数据丢失(可以理解为客户端私钥丢失),如何从云端设备进行恢复,此种恢复方式需要对象已经在云端设备对加密数据(可以理解为是对客户端私钥)进行备份(即托管)。如图8所示,该方法包括:
步骤S301,若第一客户端中存储的加密数据丢失,且获取到基于云端的加密数据恢复请求,则获取身份信息。
具体的,若第一客户端中存储的加密数据丢失,则对象可以在第一客户端中发起从云端进行加密数据恢复的请求(可以称为基于云端的加密数据恢复请求,如该请求可以是对象通过第一客户端中从云端进行加密数据恢复的控件发起)。
因此,若第一客户端中存储的加密数据丢失,且第一客户端获取到对象的上述加密数据恢复请求,则第一客户端可以请求对象输入自己的身份信息,该身份信息可以是对象在进行上述目标账户地址登记时的身份信息,因此,第一客户端可以获取到对象输入的身份信息。
可选的,若第一客户端所在的对象的终端设备丢失或者损坏,则可能导致第一客户端中对象的加密数据丢失。可选的,若第一客户端原本所在的对象的终端设备丢失或者损坏,则本申请实施例中进行加密数据恢复的第一客户端可以是存在于对象的其他终端设备中的,即当对象原本的终端设备丢失,则对象也可以在其他终端设备中重新安装第一客户端,并在重新安装的该第一客户端中进行自己的加密数据的恢复。
步骤S302,将身份信息发送给云端设备,使云端设备在对身份信息验证成功后,获取与身份信息关联存储的至少一个账户地址。
具体的,第一客户端可以将获取到的对象的身份信息发送给云端设备,使得云端设备在对对象的身份信息验证成功后,可以获取与对象的身份信息关联存储的至少一个账户地址,该至少一个账户地址可以包括对象在第一客户端全部的账户地址(也可以称为对象的第一客户端的账户地址),该至少一个账户地址可以包含上述目标账户地址。云端设备可以将获取的该至少一个账户地址返回给第一客户端。
该至少一个账户地址都可以是通过上述图5对应实施例中所描述的原理在云端设备进行地址登记后再在云端设备中与对象的身份信息进行关联存储的。
其中,云端设备可以向对象的身份信息所属的权威机构(即第三方机构)验证对象的身份信息,如验证对象的身份信息是否是在该权威机构进行正式发布的身份信息,若验证出对象的身份信息是在该权威机构进行正式发布的身份信息,则表明对对象的身份信息验证通过。
步骤S303,接收云端设备返回的与身份信息关联存储的至少一个账户地址,并从接收的至少一个账户地址中选择需要恢复的目标账户地址。
具体的,第一客户端可以接收云端设备返回的与对象的身份信息关联存储的上述至少一个账户地址,并可以输出该至少一个账户地址供对象选择,对象可以在输出的该至少一个账户地址中选择需要恢复的加密数据所属的上述目标账户地址,第一客户端也可以根据对象对输出的该至少一个账户地址中目标账户地址的选择操作,从该至少一个账户地址中选择出需要恢复的目标账户地址。
步骤S304,将目标账户地址发送给云端设备,使云端设备获取与目标账户地址进行关联存储的加密数据。
具体的,第一客户端可以将需要恢复的目标账户地址返回给云端设备,使得云端设备可以获取与该目标账户地址进行关联存储的加密数据(与该目标账户地址进行关联备份的加密数据)。云端设备可以将获取的与该目标账户地址关联存储的加密数据返回给第一客户端,该加密数据是由云端设备通过上述图3对应实施例中的描述进行备份存储的。
步骤S305,接收云端设备返回的加密数据,并基于接收的加密数据和目标账户地址对加密数据进行恢复。
具体的,第一客户端可以接收云端设备返回的加密数据,并可以通过接收的加密数据以及对象选择的目标账户地址在第一客户端对加密数据进行恢复,如下述内容描述。
第一客户端可以请求对象输入口令,因此,第一客户端可以接收对象输入的对象口令。第一客户端可以基于对象输入的对象口令对接收的加密数据进行解密,即可得到对象在第一客户端的客户端私钥。如第一客户端可以根据对象输入的对象口令计算对应的对称密钥,使用该对称密钥对接收的加密数据进行解密,即可得到对象的客户端私钥。
可选的,若对象的终端设备中具有第一客户端可调用的安全环境,则第一客户端接收对象输入的对象口令的操作、以及第一客户端根据对象输入的对象口令对接收的加密数据进行解密以得到客户端私钥的操作都可以是由第一客户端调用该安全环境执行的。
进而,第一客户端可以基于解密得到的客户端私钥计算对应的客户端公钥,并可以根据该计算得到的客户端公钥计算对象在第一客户端的账户地址,若该计算的账户地址与上述选择的目标账户地址相同,则第一客户端可以关联存储目标账户地址和接收的加密数据。
通过上述过程,就通过云端设备的备份实现了在第一客户端对加密数据的恢复。
采用本申请实施例提供的方法,当第一客户端中的加密数据丢失时,也可以通过云端设备备份的加密数据实现在第一客户端对加密数据的恢复,且该过程中不管是对于第一客户端还是云端设备,对象的客户端私钥都不会被暴露,都是保密的。
请参见图9,图9是本申请提供的一种数据备份方法的流程示意图。本申请实施例中的执行主体也可以是上述第一客户端,本申请实施例描述了在本地进行加密数据备份的过程。如图9所示,该方法包括:
步骤S401,若获取到针对客户端私钥的本地备份请求,则接收对象口令。
具体的,第一客户端若获取到针对加密数据(按照对象的视角可以理解为是针对客户端私钥的)的本地备份请求(如可以是对象通过第一客户端中对加密数据进行本地备份的控件发起),则第一客户端可以请求对象输入口令,第一客户端可以接收到对象输入的对象口令。
可选的,若对象的终端设备具有第一客户端可调用的安全环境,则第一客户端接收对象输入的对象口令的操作可以是由第一客户端调用该安全环境执行的。
步骤S402,基于接收的对象口令对加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以采用接收到的对象口令对加密数据进行解密,以得到对象在第一客户端的客户端私钥。如第一客户端可以先通过对象输入的对象口令计算对应的对称密钥,进而使用该对称密钥对加密数据进行解密,即可得到对象的客户端私钥。
可选的,若对象的终端设备具有第一客户端可调用的安全环境,则第一客户端采用对象输入的对象口令对加密数据进行解密以得到客户端私钥的操作,可以是由第一客户端调用该安全环境执行的。
步骤S403,基于客户端私钥对加密数据进行签名,得到加密数据的签名。
具体的,第一客户端可以通过上述解密得到的客户端私钥对加密数据进行签名,即可得到加密数据的签名。若对象的终端设备中包含上述安全环境,则第一客户端采用解密的客户端私钥对加密数据进行签名以得到加密数据的签名的操作,也可以是第一客户端调用安全环境执行的。安全环境在得到加密数据的签名后,就可以将加密数据的签名给到第一客户端,因此,第一客户端获取的加密数据的签名可以是基于安全环境得到的。
可选的,采用客户端私钥对加密数据进行签名以得到加密数据的签名的过程可以包括:可以对加密数据进行哈希计算,得到加密数据的哈希值,并可以采用客户端私钥对加密数据的哈希值进行加密,即可得到加密数据的签名。
步骤S404,对加密数据和加密数据的签名进行编码处理,得到编码数据。
具体的,第一客户端可以对加密数据以及加密数据的签名进行编码处理,得到编码数据,该编码处理的方式可以是任意的方式,具体可以根据实际应用场景确定,使得编码得到的该编码数据可以直观展示并给到对象,后续通过对该编码数据进行解码,即可得到该加密数据和加密数据的签名。
例如,对加密数据以及加密数据的签名进行编码处理的方式可以是进行视频编码、图像编码、音频编码或者字符编码(如hex(一种字符编码方式)、base64(一种字符编码方式)、base58(一种字符编码方式))等任意的编码方式。若采用视频编码的方式,则得到的编码数据可以是视频形式的数据;若采用图像编码的方式,则得到的编码数据可以是图像形式的数据;若采用音频编码的方式,则得到的编码数据可以是音频形式的数据。
可选的,在对上述加密数据以及加密数据的签名进行编码时,还可以一起对目标账户地址(该目标账户地址可以是第一客户端预先存储的,也可以是第一客户端通过上述解密的客户端私钥计算得到的)进行编码,即也可以对加密数据、加密数据的签名以及目标账户地址一起进行编码(如拼接后再编码),得到上述编码数据。
步骤S405,输出编码数据;输出的编码数据用于被导出并存储至目标设备的本地存储空间,本地存储空间不属于第一客户端。
具体的,第一客户端可以输出上述编码数据,输出的该编码数据就可以用于被对象导出并存储至目标设备(即对象的终端设备,也可以称为对象设备)的本地存储空间中,该本地存储空间不属于第一客户端。例如,在第一客户端输出的编码数据的客户端界面还可以包含用于导出编码数据的控件,对象可以通过该控件将编码数据保存在自己的终端设备的本地存储空间中。
例如,若编码数据是图像形式的数据,则该本地存储空间可以是指目标设备中的相册的存储空间,即编码数据可以被导出存储在目标设备的相册中。
通过上述过程,即实现了在本地对加密数据的备份(即对客户端私钥的加密备份),通过将加密数据压缩成对象可以直观感受到的数据形式(如视频、音频或者图像等),也可以降低对象对加密数据进行保管的门槛。
请参见图10,图10是本申请提供的一种数据本地备份的场景示意图。如图10所示,目标设备中可以包括本地存储空间和第一客户端(存储有加密数据),对象可以在第一客户端中请求将加密数据备份到设备本地,因此,第一客户端可以对加密数据及相关数据(如加密数据的签名和目标账户地址)一起进行编码,得到编码数据,将给编码数据提供给对象导出并保存在本地存储空间中。
更多的,若第一客户端中存储的加密数据丢失,且获取到对象基于本地的加密数据恢复请求,则第一客户端可以请求对象导入上述编码数据(如可以显示用于导入数据的控件,对象可以基于该控件导入编码数据),因此,第一客户端可以获取到对象从上述本地存储空间(若对象转存了编码数据,则也可以不是从上述本地存储空间中导入的,而是从转存后的存储位置导入的)中导入的编码数据。
第一客户端可以对该编码数据进行解码处理,得到上述加密数据和加密数据的签名,或者还有目标账户地址。可选的,若目标账户地址在云端进行登记过,且第一客户端存储有该目标账户地址的地址签名,则通过存储的地址签名可以验证该解码的目标账户地址是被登记过的。
进而,第一客户端可以请求对象输入口令,第一客户端可以接收到对象输入的对象口令。第一客户端还可以采用对象输入的对象口令对解码得到的加密数据进行解密,得到对象在第一客户端的客户端私钥。例如,第一客户端可以先通过对象输入的对象口令计算对应的对称密钥,进而采用该对称密钥对解码得到的加密数据进行解密,即可得到客户端私钥。
可选的,若对象的终端设备中具有第一客户端可调用的安全环境,则上述第一客户端接收对象输入的对象口令的操作、以及第一客户端采用对象输入的对象口令对解码的加密数据进行解密的操作都可以是第一客户端调用该安全环境执行的。
第一客户端可以采用上述解密得到的客户端私钥计算对象的客户端公钥,并可以通过该计算的客户端公钥计算对象在第一客户端的账户地址(即上述目标账户地址)。
若对象的终端设备中具有第一客户端可调用的安全环境,则第一客户端采用解密得到的客户端私钥计算对象的客户端公钥的操作可以是第一客户端调用该安全环境执行的,即该计算的客户端公钥可以是安全环境给到第一客户端的。
其中,通过计算的客户端公钥和解码得到的加密数据的签名还可以对上述解码得到的加密数据进行验证,这可以保证解码得到的加密数据的合法性和可信性。例如,第一客户端可以采用计算的客户端公钥对解码得到的加密数据的签名进行解密,得到一个哈希值,第一客户端还可以对解码得到的加密数据进行哈希计算,得到另一个哈希值,若该两个哈希值相同,则表明对解码得到的加密数据验证成功。
第一客户端可以关联存储上述计算的目标账户地址和解码得到的加密数据,即实现了在第一客户端对加密数据的恢复。
通过本申请实施例提供的方法,可以在本地对客户端私钥进行加密备份,后续也可以通过该加密备份的客户端私钥(如编码数据,也可以理解为加密数据)实现对第一客户端中加密数据的恢复,此过程中对象的客户端私钥也不会被暴露,也是保密的。
请参见图11,图11是本申请提供的一种客户端连接方法的流程示意图。本申请实施例中的执行主体也可以是上述第一客户端。如图11所示,该方法包括:
步骤S501,若接收到第二客户端提交的第一连接请求,则输出第一客户端的至少一个账户地址;第一连接请求携带第二客户端的客户端标识。
具体的,第二客户端可以是不同于第一客户端的客户端。第二客户端可以是网页客户端、小程序客户端或者软件(app)客户端等任意形式的客户端。可选的,第二客户端可以是Web3(一种互联网)应用。
对象可以在第二客户端中请求连接第一客户端(如可以通过第二客户端中连接第一客户端的控件发起),第二客户端可以生成第一连接请求,该第一连接请求是第二客户端请求连接第一客户端的请求,第二客户端可以将该第一连接请求提交给第一客户端,该第一连接请求可以携带第二客户端的客户端信息(可以包括第二客户端的客户端标识和第二客户端的公钥)以及第二客户端对该客户端信息的签名,该客户端信息的签名是由第二客户端使用自己的私钥(即第二客户端的私钥)对该客户端信息的哈希值进行加密得到。
第一客户端在接收到第二客户端发起的第一连接请求后,可以根据该第一连接请求提取得到第二客户端的客户端信息以及该客户端信息的签名。进而,第一客户端可以使用客户端信息中的第二客户端的公钥对该客户端信息的签名进行验证,验证成功后,就可以表明该客户端信息确实是第二客户端发送的。
如第一客户端可以计算提取得到的第二客户端的客户端信息的哈希值,并可以使用提取的客户端信息中第二客户端的公钥对提取的客户端信息的签名进行解密,得到待验证的哈希值,若该计算的哈希值与该待验证的哈希值相同,则表明对客户端信息的签名验证成功,表明客户端信息是可信的。
可选的,若第二客户端是Web3(一种互联网)应用,则第二客户端的客户端标识可以是第二客户端的域名信息。
在对获取到的第二客户端的客户端信息验证成功后,第一客户端可以查询对象在第一客户端的至少一个账户地址(也可以称为第一客户端的至少一个账户地址),该至少一个账户地址包含对象在第一客户端全部的账户地址,该至少一个账户地址可以包含上述目标账户地址。
第一客户端可以输出查询的该至少一个账户地址。
步骤S502,在输出的至少一个账户地址中选择需要连接的目标账户地址,并获取与目标账户地址关联存储的加密数据。
具体的,对象可以从第一客户端输出的上述至少一个账户地址中选择目标账户地址(可以选择任一个账户地址)进行连接,第一客户端可以根据对象针对目标账户地址的选择操作在该至少一个账户地址中选择出需要连接的目标账户地址。
由于对象在第一客户端的目标账户地址与加密数据是关联存储的,该目标账户地址是通过对象的客户端公钥计算得到,因此,第一客户端还可以获取与选择的该目标账户地址关联存储的加密数据。
步骤S503,接收对象口令,基于接收的对象口令对获取的加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以请求对象输入口令,第一客户端可以接收到对象输入的对象口令,第一客户端可以采用接收到的对象口令对上述获取的加密数据进行解密,即可得到对象的客户端私钥。
可选的,若对象的终端设备中具有第一客户端可调用的安全环境,则第一客户端接收对象输入的对象口令的操作、以及采用对象输入的对象口令对上述获取的加密数据进行解密以得到客户端私钥的操作,都可以是第一客户端调用该安全环境执行的。
步骤S504,生成与第二客户端之间的通信密钥,并采用客户端私钥对通信密钥进行签名,得到通信密钥的签名。
具体的,第一客户端可以生成与第二客户端之间的通信密钥(也可以称为通讯密钥或者会话密钥),第一客户端可以采用密钥对称算法生成与第二客户端之间的通信密钥,后续第一客户端与第二客户端之间可以通过该通信密钥进行通信,防止通信内容被泄露。
第一客户端可以采用上述解密得到的客户端私钥对该通信密钥进行签名,得到通信密钥的签名。该过程可以包括:第一客户端可以计算该通信密钥的哈希值,进而第一客户端可以采用解密得到的客户端私钥对该通信密钥的哈希值进行加密,即可得到通信密钥的签名。
步骤S505,采用第二客户端的公钥对通信密钥进行加密,得到加密后的通信密钥。
具体的,第一客户端可以采用第二客户端的公钥对上述通信密钥进行加密,得到加密后的通信密钥,该加密后的通信密钥可以通过第二客户端的私钥进行解密。
步骤S506,将客户端公钥、通信密钥的签名和加密后的通信密钥返回给第二客户端,使第二客户端采用所属的私钥对加密后的通信密钥进行解密,得到通信密钥,并在基于通信密钥的签名和客户端公钥对通信密钥验证成功后,关联存储目标账户地址和通信密钥。
具体的,第一客户端可以将对象的客户端公钥(可以是通过解密得到的客户端公钥计算得到,也可以是第一客户端预先存储的)、通信密钥的签名以及加密后的通信密钥返回给第二客户端。
第二客户端在接收到第一客户端返回的客户端公钥、通信密钥的签名以及加密后的通信密钥后,可以采用所属的私钥(即第二客户端的私钥)对该加密后的通信密钥进行解密,得到通信密钥。
进而,第二客户端可以根据接收到的通信密钥的签名和客户端公钥对该解密得到的通信密钥进行验证,验证成功后,就可以关联存储目标账户地址(该目标账户地址可以是第二客户端通过接收到的客户端公钥计算得到,或者也可以是由第一客户端直接返回的)和通信密钥,此时可以理解为第二客户端这边就已经连接了第一客户端。
其中,第二客户端根据接收到的通信密钥的签名和客户端公钥对该解密得到的通信密钥进行验证的过程可以包括:第二客户端可以采用该客户端公钥对该通信密钥的签名进行解密,即可得到一个哈希值,第二客户端还可以对上述解密得到的通信密钥进行哈希计算,得到一个哈希值,若该解密得到的哈希值与该计算得到的哈希值相同,则表明对解密得到的通信密钥验证成功,表明解密得到的通信密钥是可信的。
第二客户端在关联存储目标账户地址与通信密钥后,还可以向第一客户端返回对目标账户地址连接成功的提示信息。
步骤S507,接收第二客户端返回的连接成功的提示信息,并关联存储第二客户端的客户端标识、目标账户地址和通信密钥。
具体的,第一客户端可以接收到第二客户端返回的对目标账户地址连接成功的提示信息,在接收到该提示信息后,第一客户端也可以关联存储第二客户端的客户端标识、目标账户地址和与第二客户端之间的通信密钥。
通过上述过程,可以实现对象在第一客户端中的账户地址(即对象的账户)是跟随着对象走的,即对象可以在其他客户端(如第二客户端)连接自己在第一客户端中的账户地址。
可以理解的是,若第二客户端是Web3应用,则第二客户端本身不具备账户体系,第二客户端可以作为一个平台连接到对象在第一客户端的账户地址。后续,对象可以在第二客户端中对所连接的账户地址进行相应操作(如对连接的账户地址下的数字资源进行相关的操作)。
通过上述过程即实现了第一客户端对第二客户端的连接,或者说是第二客户端对第一客户端的连接。举个例子,若第一客户端是资源包应用,对象在账户地址下具有数字资源,第二客户端可以是资源售卖(转移)的平台,则对象在第二客户端中可以发起对连接的对象的账户地址(如目标账户地址)下的数字资源进行查询、展示和售卖(即转移)的相关操作。
更多的,第一客户端在关联存储目标账户地址、第二客户端的客户端标识和与第二客户端之间的通信密钥后,第二客户端在连接第一客户端后的一段时间(可以称为有效期)内,第二客户端都可以免连接授权(如无需进行对象输入对象口令、后续采用通过对象输入的对象口令对加密数据进行解密的客户端私钥对通信密钥进行签名等授权操作)直接连接第一客户端,如下述内容描述。
若第二客户端连接第一客户端后,又在上述有效期内断开了与第一客户端的连接,则对象可以在第二客户端中发起连接第一客户端的第二连接请求,第二客户端可以将该第二连接请求提交给第一客户端。同样,该第二连接请求可以携带第二客户端的客户端信息(可以包含第二客户端的客户端标识和公钥)以及第二客户端采用自己的私钥对该客户端信息的签名。
第一客户端可以从第二连接请求中提取出第二客户端的客户端信息和客户端信息的签名,第一客户端在对该客户端的签名验证成功,表明提取得到的客户端信息是可信的后,第一客户端可以查询对象在第一客户端的至少一个账户地址,该至少一个账户地址可以包含对象在第一客户端全部的账户地址,该至少一个账户地址可以包含上述目标账户地址。
第一客户端可以输出查询的该至少一个账户地址供对象选择,第一客户端可以根据对象针对输出的该至少一个账户地址中目标账户地址的选择操作确定需要连接的该目标账户地址。
若第一客户端检测到已经存在与该目标账户地址和第二客户端的客户端标识关联存储的上述通信密钥,表明第二客户端近期已经连接过第一客户端的目标账户地址(此时可以直接免授权连接),则第一客户端可以采用第二客户端的公钥对存储的该通信密钥进行加密,得到加密后的通信密钥。
进而,第一客户端可以将该加密后的通信密钥以及目标账户地址(或者可以不返回目标账户地址,而是返回客户端公钥,第二客户端可以根据接收到客户端公钥计算得到目标账户地址)返回给第二客户端。第二客户端在接收到该加密后的通信密钥和目标账户地址后,可以采用所属的私钥(即第二客户端的私钥)对该加密后的通信密钥进行解密,得到通信密钥。
并且,第二客户端若检测到已经存在与目标账户地址关联存储了该通信密钥,第二客户端就可以直接与第一客户端进行连接(如在当前重新记录与第一客户端的目标账户地址连接的时间,并持续关联存储目标账户地址和通信密钥),并可以生成与第一客户端连接成功的提示信息,第二客户端可以将该连接成功的提示信息返回给第一客户端。
第一客户端可以接收到第二客户端返回的连接成功的提示信息,第一客户端也可以持续关联存储目标账户地址、第二客户端的客户端标识和与第二客户端的通信密钥,并可以在当前重新记录连接第二客户端的时间。
通过上述过程,即实现了第一客户端与第二客户端之间的免授权连接。
更多的,若第一客户端是资源包应用(即资源包客户端),第二客户端还可以对对象是否具有对连接的目标账户地址下的数字资源的所属权进行验证,如下述内容描述。
第二客户端在需要查询对象是否具有对账户地址下的数字资源的所属权时(如可以是对象主动在第二客户端中发起,或者是对象想在第二客户端中特定的功能模块(如售卖的功能模块)处展示自己的数字资源,而该功能模块内又只能展示对象具有所属权的数字资源时,亦或是第二客户端需要确认对象是否具有在账户地址下的特定数字资源时),可以生成第一资源查询请求,该第一资源查询请求用于发起对对象是否具备对账户地址下的数字资源的所属权的验证,该第一资源查询请求携带第二客户端生成的随机数。第二客户端可以将该第一资源查询请求提交给第一客户端。
第一客户端若接收到第二客户端发起的该第一资源查询请求,则可以查询对象在第一客户端的至少一个账户地址,该至少一个账户地址可以包含对象在第一客户端所有的账户地址,该至少一个账户地址可以包含上述目标账户地址。
第一客户端可以输出该至少一个账户地址供对象选择,对象可以在输出的该至少一个账户地址中选择目标账户地址,第一客户端可以根据对象针对该至少一个账户地址中目标账户地址的选择操作在该至少一个账户地址中选择出需要查询的目标账户地址。
接着,第一客户端可以请求对象输入口令,第一客户端可以接收到对象输入的对象口令,第一客户端可以采用对象输入的对象口令对存储的加密数据进行解密,得到对象在客户端的客户端私钥。
进而,第一客户端还可以采用解密得到的客户端私钥对第一资源查询请求携带的随机数进行签名(如采用该客户端私钥对该随机数的哈希值进行加密),得到随机数签名。
可选的,若对象的终端设备中具有第一客户端可调用的安全环境,则上述接收对象输入的对象口令、采用对象输入的对象口令对加密数据进行解密以得到客户端私钥、以及采用客户端私钥对随机数进行签名的操作,都可以第一客户端调用该安全环境执行的。
第一客户端可以将上述随机数签名和对象在第一客户端的客户端公钥(可以是通过上述解密得到的客户端私钥计算得到,或者是第一客户端预先存储的)返回给第二客户端。
第二客户端在接收到该随机数签名和客户端公钥后,可以通过该客户端公钥对随机数签名进行验证,并在验证成功后,就可以通过该客户端公钥向第一客户端发起第二资源查询请求,该第二资源查询请求是在第二客户端确认得到第一客户端授权确定目标账户地址下的数字资源是属于对象的(即对象具有对目标账户地址下的数字资源的所属权)后,发起的最终的查询请求。
其中,第二客户端对随机数签名进行验证的过程可以包括:第二客户端可以采用接收到客户端公钥对该随机数签名进行解密,得到一个哈希值,第二客户端还可以计算自己之前生成的随机数(即第一资源查询请求中携带的随机数)的哈希值,若该解密得到的哈希值与该计算得到的哈希值相同,则表明对随机数签名验证成功。
第二客户端可以将第二资源查询请求提交给第一客户端,该第二资源查询请求可以携带对象在第二客户端的的客户端公钥。第一客户端在接收到第二客户端提交的第二资源查询请求时,可以根据该第二资源查询请求中的客户端公钥计算得到上述目标账户地址,并可以查询对象在该目标账户地址下的资源,并生成相应的查询结果。
可选的,若第一客户端是基于区块链网络进行搭建的资源包应用,并且对象具有在第一客户端中的多个账户地址,每个账户地址下的数字资源分别分散在不同的区块链网络中,则上述第一资源查询请求还可以携带对象想要查询的数字资源所在区块链网络的标识(如链ID),此时对第一资源查询请求中携带的客户端标识进行签名时也可以对该链ID一起进行签名,该链ID可以是对象在第二客户端中提供的,使得后续第一客户端也可以根据该链ID以及目标账户地址在对应区块链网络中查询对象相应的数字资源。
进而,第一客户端可以将针对对象在该目标账户地址下的资源的查询结果返回给第二客户端。该查询结果与上述第一资源查询请求实际需要查询的需求是相互对应的:例如,若该第一资源查询请求是想要查询对象在账户地址下的所有数字资源,则该查询结果可以包含对象在目标账户地址下所有的数字资源;再如,若该第一资源查询请求是想要查询对象在账户地址下是否具有某种特定的数字资源,则该查询结果可以用于指示对象在目标账户地址下具有该种特定的数字资源或不具有该种特定的数字资源;还如,若该第一资源查询请求是想要查询对象在账户地址下是否有指定数量的数字资源,则该查询结果可以用于指示含对象在目标账户地址下具有该指定数量的数字资源或不具有该指定数量的数字资源。查询结果是什么可以根据实际的查询需求确定,对此不作限制。
更多的,需要进行说明的是,第一客户端与第二客户端之间的数据交互方式可以包括:
若第二客户端是网页形式的客户端(如Web3应用),第一客户端是以浏览器插件的形式实现的,则第二客户端可以通过浏览器的内置接口拉起浏览器插件(如第一客户端),并将相应数据(可以是上述第二客户端需要提交给第一客户端的任意数据)提交给第一客户端。
若第二客户端是网页形式的客户端(如Web3应用),第一客户端是对象终端中的软件(APP)时,第二客户端可以根据需要提交给第一客户端的相应数据生成图形数据(如二维码或者条形码等,该图形数据可以显示给对象使用),进而第一客户端通过摄像头扫描该图形数据(如对象可以使用第一客户端扫描该图形数据),第一客户端即可获取到第二客户端提交过来的该相应数据。
若第二客户端是软件(APP),第一客户端也是软件,则第二客户端可以根据需要提交给第一客户端的相应数据生成图形数据,进而第一客户端通过摄像头扫描该图形数据,即可获取到第二客户端提交过来的该相应数据(此种情形下,第二客户端和第一客户端可以不在同一个终端设备中,如第二客户端可以在对象的PC端(电脑端)中,第一客户端可以在对象的手机中);或者,若第二客户端和第一客户端存在于同一终端设备中,则第二客户端也可以在该终端设备中拉起第一客户端(可以理解为调用或者触发第一客户端),并将相应数据直接提交给拉起的第一客户端。
同理,若第一客户端是网页形式的客户端,第二客户端是以浏览器插件的形式实现的,则第一客户端可以通过浏览器的内置接口拉起浏览器插件(如第一客户端),并将相应数据(可以是上述第一客户端需要提交或者返回给第二客户端的任意数据)提交给第二客户端。
若第一客户端是网页形式的客户端,第二客户端是对象终端中的软件(APP)时,第一客户端可以根据需要提交给第二客户端的相应数据生成图形数据(如二维码或者条形码等,该图形数据可以显示给对象使用),进而第二客户端通过摄像头扫描该图形数据(如对象可以使用第二客户端扫描该图形数据),即可获取到第一客户端提交过来的该相应数据。
若第一客户端是软件(APP),第二客户端也是软件,则第一客户端可以根据需要提交给第二客户端的相应数据生成图形数据,进而第二客户端通过摄像头扫描该图形数据,即可获取到第一客户端提交过来的该相应数据(此种情形下,第二客户端和第一客户端可以不在同一个终端设备中,如第一客户端可以在对象的PC端(电脑端)中,第二客户端可以在对象的手机中);或者,若第二客户端和第一客户端存在于同一终端设备中,则第一客户端也可以在该终端设备中拉起第二客户端(可以理解为调用或者触发第二客户端),并将相应数据直接提交给拉起的第二客户端。
可选的,可以理解的是,若第一客户端是基于区块链网络搭建的资源包应用,则大家都可以无授权地查询对象的账户地址下对象具有的数字资源,只是在验证对象具有对某账户地址下数字资源的所属权时需要授权验证。
请参见图12,图12是本申请提供的一种客户端连接的流程示意图。如图12所示,该流程可以包括:
1.用户(可以是指对象)可以在Web3应用(可以是指第二客户端)中请求连接资源包应用(可以是指第一客户端)。2.Web3应用可以向资源包应用提交应用信息、链id(标识)、随机数s和Web3应用签名,此处提交的数据可以是携带在上述第一连接请求中的,该应用信息可以包含Web3应用的域名(可以理解为客户端标识)和Web3应用的公钥,该链id可以是用户想要连接的账户地址所属区块链的id,该随机数s可以是Web3应用随机生成的数值(用于提高业务安全性),该Web3应用的签名可以是Web3应用使用自己的公钥对此处提交的全部数据进行签名得到。
3.资源包应用可以对Web3应用的签名验证通过后,可以在本地查找应用连接信息,该应用连接信息可以包括Web3应用可以连接的对象的账户地址,即此处的地址列表中的账户地址,地址列表中的账户地址可以包含对象在资源包应用全部的账户地址。4.资源包应用可以显示该地址列表并询问用户需要连接的账户地址。
5.用户可以在显示的地址列表中选择需要连接的账户地址(如上述目标账户地址)。6.若用户选择的账户地址是Web3应用近期未连接过的地址,则资源包应用可以根据选择的地址获取相应的私钥密文(即加密数据)。
7.资源包应用可以请求对象输入口令。8.对象输入口令。9.资源包应用生成与Web3应用之间的通信密钥,并可以使用Web3应用的公钥对该通信密钥进行加密,得到通信密钥密文(即加密后的通信密钥)。
10.资源包应用可以使用对象输入的口令对私钥密文进行解密,并通过解密得到的私钥(即客户端私钥)完成相关签名,得到客户端私钥的签名,该签名可以是资源包应用使用解密得到的客户端私钥(可以称为资源包私钥)对Web3应用的应用信息、通信密钥、随机数s以及客户端公钥(可以称为资源包公钥)一起进行签名得到。
11.资源包应用可以将资源包公钥、通信密钥密文、资源包私钥签名返回给Web3应用。12.Web3应用可以对该资源包私钥的签名进行验证(即验签)。13.Web3应用在对该资源包私钥的签名验签通过后,可以保存资源包地址(即账户地址,如上述目标账户地址)与通信密钥的对应关系,即关联存储资源包地址和通信密钥。13.Web3应用向资源包应用返回连接成功的提示信息。14.资源包应用保存已连接的应用信息,包括Web3应用的域名和通信密钥。
后续,Web3应用应用与资源包应用之间就可以通过通信密钥进行加密通信。
请参见图13,图13是本申请提供的一种交易方法的场景示意图。本申请实施例中的执行主体也可以是上述第一客户端,本申请实施例中第一客户端可以是基于区块链网络进行搭建的,上述云端设备可以是区块链网络中区块链节点的节点设备。如图13所示,该方法包括:
步骤S601,若获取到交易发起请求,则按照交易发起请求的指示组装待发起的目标交易。
具体的,第一客户端若获取到交易发起请求(可以是对象通过第一客户端中的发起交易的控件发起),则第一客户端可以按照该交易发起请求的指示(如该交易发起请求可以指示对象选择发起交易的类型)组装待发起的交易,可以将该待发起的交易称之为是目标交易。
如第一客户端可以是基于区块链网络搭建的资源包应用,则该目标交易可以是对对象在目标账户地址下的数字资源进行转移的交易。再如,该目标交易还可以是执行区块链网络中某智能合约的交易,具体可以根据实际应用场景确定,对此不作限制。
步骤S602,接收对象口令,并基于接收的对象口令对加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以请求对象输入口令,进而第一客户端可以接收到对象输入的对象口令。
第一客户端可以获取存储的加密数据,并可以采用接收到的对象口令对该加密数据进行解密,得到对象的客户端私钥。
若对象的终端设备中包含第一客户端可调用的安全环境,则此处第一客户端接收对象输入的对象口令以及采用对象口令对加密数据进行解密以得到客户端私钥的操作,都可以是第一客户端调用该安全环境执行的。
步骤S603,基于客户端私钥对目标交易进行签名,得到交易签名。
具体的,第一客户端可以采用上述解密得到的客户端私钥对上述待发起的目标交易进行签名,得到目标交易的签名,可以将该签名称之为是交易签名。
如第一客户端可以计算该目标交易的哈希值,并可以采用客户端私钥对该目标交易的哈希值进行加密,即可得到该交易签名。
步骤S604,将目标交易和交易签名广播至区块链网络,使区块链网络在基于交易签名对目标交易共识成功后,执行目标交易,并将目标交易上链至区块链网络。
具体的,第一客户端可以将上述目标交易以及交易签名广播到区块链网络,区块链网络中的区块链节点在获取到该目标交易和交易签名后,可以对该交易签名进行验证(也可以理解为是采用交易签名对目标交易进行验证),验证成功后,区块链网络中的区块链节点可以对该目标交易进行共识,共识成功后,就可以执行该目标交易,并可以将目标交易上链至区块链网络(如区块链节点可以将该目标交易添加到自己的账本中)。
其中,区块链节点对交易签名进行验证的过程可以包括:区块链节点可以采用对象的客户端公钥(可以是第一客户端根据解密的客户端私钥计算并发送的,也可以是区块链节点预先存储的)对接收到的交易签名进行解密,得到一个哈希值,区块链节点还可以对接收到的目标交易进行哈希计算,得到一个哈希值,若该解密得到的哈希值与该计算得到的哈希值相同,则表明对交易签名验证成功,也表明对接收到的目标交易验证成功。
通过上述过程,即实现了通过对象输入的对象口令以及第一客户端中存储的加密数据发起并执行了目标交易,此过程中对象的客户端私钥也不会被暴露,也是保密的。
请参见图14,图14是本申请提供的一种交易执行的流程示意图。第一客户端可以是基于区块链网络搭建的,如图14所示,该流程可以包括:
1.对象可以在第一客户端发起链上交易。2.第一客户端可以根据对象的选择(如选择的交易类型)组装对应的区块链交易(如上述目标交易)。3.第一客户端可以请求对象输入口令。4.对象可以输入口令。
5.第一客户端可以获取存储的客户端私钥密文(即加密数据),并使用对象输入的口令对该客户端私钥密文进行解密,得到客户端私钥。6.第一客户端可以使用客户端私钥对区块链交易进行签名,得到区块链交易的签名。
7.第一客户端可以将交易请求广播到区块链网络,该交易请求可以携带区块链交易以及区块链交易的签名。8.区块链网络(区块链网络中的各个区块链节点)可以基于该签名执行区块链交易并相互广播对区块链交易的共识结果。
9.第一客户端可以定期向区块链网络轮询,包括查询区块链网络上最新的区块。10.区块链网络中的区块链节点在接收到第一客户端针对最新区块的查询时,可以向第一客户端返回最新区块。
11.第一客户端可以确认该最新区块是否包含上述发起的区块链交易。12.若该最新区块包含该区块链交易,则第一客户端可以分析针对区块链交易的交易结果,实际上第一客户端可以在区块链网络拿到针对区块链交易的交易结果。13.第一客户端可以向对象显示针对区块链交易的交易结果。
请参见图15,图15是本申请提供的一种口令更换方法的流程示意图。本申请实施例中的执行主体也可以是上述第一客户端。如图15所示,该方法包括:
步骤S701,若获取到针对目标账户地址的口令更换请求,则接收对象口令以及用于更换对象口令的目标对象口令。
具体的,对象若想要更换针对目标账户地址的对象口令(即该对象口令加密的客户端私钥可以生成该目标账户地址),则对象可以在第一客户端中针对该目标账户地址发起更换口令的请求(如通过第一客户端中更换口令的控件发起),使得第一客户端可以生成针对该目标账户地址的口令更换请求。
其中,第一客户端可以输出对象在第一客户端的至少一个账户地址(包含目标账户地址)供对象选择需要更换的口令对应的账户地址(如对象可以在该至少一个账户地址中选择目标账户地址),第一客户端就可以生成针对对象选择的账户地址的口令更换请求。
第一客户端若获取到该口令更换请求,则可以请求对象输入针对该目标账户地址的对象口令(即原本的对象口令)以及用于更换该对象口令的目标对象口令,第一客户端可以接收到对象输入的针对该目标账户地址的对象口令以及用于更换该对象口令的目标对象口令。
可选的,若对象的终端设备具有第一客户端可调用的安全环境,则上述第一客户端接收对象输入的对象口令以及目标对象口令的操作可以是第一客户端调用该安全环境执行的。
步骤S702,采用接收的对象口令对加密数据进行解密,得到客户端私钥。
具体的,第一客户端可以采用对象输入的对象口令(原本的对象口令)对存储的加密数据进行解密,即可得到对象在第一客户端的客户端私钥。
如第一客户端可以先通过对象输入的对象口令计算得到相应的对称密钥,进而通过该对称密钥对存储的加密数据进行解密,即可得到对象在第一客户端的客户端私钥。
步骤S703,根据客户端私钥计算客户端公钥,并根据客户端公钥计算第一客户端的账户地址。
具体的,第一客户端可以采用上述解密得到的客户端私钥计算对象在第一客户端对应的客户端公钥,并可以根据该计算的客户端公钥进一步计算对象在第一客户端的账户地址(也可以称为计算第一客户端的账户地址)。
步骤S704,若计算的账户地址与目标账户地址相同,则采用目标对象口令对客户端私钥进行加密,得到更换后的加密数据,并存储更换后的加密数据。
具体的,若上述计算的账户地址与上述口令更换请求对应的目标账户地址相同,则第一客户端可以采用对象输入的目标对象口令对解密得到的客户端私钥进行加密,得到更换后的加密数据。
第一客户端可以存储该更换后的加密数据并覆盖掉原本存储的加密数据,即删除原本存储的加密数据,就实现了对对象的对象口令的更换。
更多的,若第一客户端在存储更换后的加密数据后,还检测到原本的加密数据(即上述加密数据)是进行了云端托管的(即在云端设备备份了的),则第一客户端可以提示和询问对象现在是否要更新云端备份的加密数据(如通过弹窗提示和询问)。
可选的,在上述图3对应实施例描述的在云端设备托管加密数据的过程,第一客户端可以在对加密数据的云端托管流程结束时在本地(也就是第一客户端在对象的终端设备中的存储空间)保留一个托管标记(也可以称为云端备份标记),该托管标记用于记录第一客户端已经对加密数据完成了云端托管,该托管标记还可以在第一客户端中与目标账户地址进行关联存储。因此,若第一客户端在存储更换后的加密数据后,检测到了与目标账户地址关联存储的该托管标记,则可以确定加密数据(即上述原本的加密数据)是进行了云端托管的。
若对象选择现在需要对云端备份的加密数据进行更新,则第一客户端可以通过上述图3对应实施例中所描述的过程让对象重新在云端设备中托管该更换后的加密数据,云端设备在托管了该更换后的加密数据,也可以将原本备份的加密数据进行删除(即用该更换后的加密数据覆盖掉原本备份的加密数据)。
可选的,若对象未更新云端备份的加密数据,则当第一客户端中对象的加密数据丢失了,又从云端设备处拿到加密数据进行了第一客户端中加密数据的恢复后(此时恢复的是未更新的加密数据),对象需要在第一客户端中使用原始的对象口令(即上述原本的对象口令)才能继续使用第一客户端中与目标账户地址相关联的业务处理。
可选的,更换口令的过程中,对象输入原本的对象口令一直到第一客户端采用目标对象口令对加密数据进行加密,得到更换的加密数据后,第一客户端可以再让对象对更换后的目标对象口令进行验证,包括:第一客户端可以再次让目标对象输入目标对象口令,输入之后,第一客户端采用输入的目标对象口令对更换后的加密数据进行解密,得到客户端私钥,通过该客户端私钥计算对应的账户地址,若该账户地址与上述选择的目标账户地址相同,则表明对对象的新口令(即目标对象口令)验证通过,可以此时再存储更换后的加密数据。
请参见图16,图16是本申请提供的一种口令更换的界面示意图。如图16所示的客户端界面可以是第一客户端的客户端界面,对象可以在该界面上输入原口令(即原本的对象口令)和新口令(即用于更换原口令的口令,即上述目标对象口令,可以输入两次),以实现对对象口令的更换。
在一种可行的实施方式中,由于对象口令复杂度要求较低,在某些极端情况下可能存在目标设备或者目标设备的权限(如锁屏密码)被他人获取的情况,在此种情况下对象的对象口令可能会面临被暴力破解的威胁,针对此种情况,本申请还可以对对象的对象口令做以下防护:
在需要对象输入口令时,第一客户端可以对对象连续输入口令的错误次数进行统计并保存(可以调用目标设备的安全环境接收对象输入的口令,并在该安全环境中统计和保存该错误次数),当对象连续输入口令的错误次数大于或等于某个次数(如第一次数阈值)之后就需要启动相应的保护机制。
可选的,该保护机制可以包括但不限于:限制对象再次输入口令的时间间隔,该时间间隔可以随着失败次数(即上述错误次数)增加,错误次数越多,该时间间隔可以越大,如第3次输入口令错误后需要等待1分钟才可以进行第4次输入,而第4次输入口令错误后需要5分钟才可以进行再次输入,以此类推;或/和,对象可以自行在第一客户端设置,当输入口令的错误次数大于或者等于某个次数(如第二次数阈值)时,就需要对第一客户端中的加密数据进行销毁,因此,按照对象的设置,若对象连续输入口令的错误次数达到该第二次数阈值后第一客户端可以将存储的加密数据进行自毁(该功能可以在对象已经完成密钥备份(如加密数据的云端备份或者设备本地备份)的情况下被允许开启)。
通过上述的保护机制,可以确保目标设备在丢失或者被恶意入侵的情况下,对象在第一客户端的对象口令也难以被暴力破解,这可以保护对象在第一客户端的账户(即账户地址)和对象口令的安全。
采用本申请提供的方法,对象仅需要记忆一个简单的对象口令即可完成对第一客户端的管理,且该对象口令也必须配套存储有对应加密数据的终端设备才能使用,因此单纯泄露对象口令也并不会导致对象在第一客户端中账户地址下的数字资源丢失。本申请第一客户端可以是基于区块链网络进行搭建的,采用本申请的方法有助于降低对象对区块链网络中密钥对的使用门槛,提高对象在第一客户端中账户地址下的数字资源的安全性,并能够满足相关地区监管的要求(如对地址进行实名登记),同时也为区块链网络以及上述Web3应用的推广普及提供了有力的底层技术支持。
请参见图17,图17是本申请提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件,该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。该装置应用于第一客户端,第一客户端具有密钥对,该密钥对包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,该加密数据是基于对象口令对客户端私钥进行加密得到的。如图17所示,该数据处理装置1可以包括:接收模块11、解密模块12、签名模块13和发送模块14;
接收模块11,用于若获取到针对加密数据的云端托管请求,则接收对象口令;
解密模块12,用于采用接收的对象口令对加密数据进行解密,得到客户端私钥;
签名模块13,用于基于客户端私钥对加密数据进行签名,得到加密数据的签名;
发送模块14,用于将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。
可选的,第一客户端包含于目标设备中,目标设备包含第一客户端可调用的安全环境,安全环境是与第一客户端相隔离的执行环境;
第一客户端调用安全环境执行的操作包括:接收对象口令的操作;采用接收的对象口令对加密数据进行解密,得到客户端私钥的操作;以及,基于客户端私钥对加密数据进行签名,得到加密数据的签名的操作;
其中,第一客户端获取的加密数据的签名是基于安全环境得到的。
可选的,上述装置1还用于:
若获取到账户创建请求,则接收对象口令,并生成第一客户端的密钥对;
采用接收的对象口令对密钥对中的客户端私钥进行加密,得到加密数据;
采用密钥对中的客户端公钥生成第一客户端的目标账户地址,并对目标账户地址和加密数据进行关联存储;
其中,第一客户端用于根据存储的加密数据对目标账户地址进行业务处理。
可选的,上述装置1还用于:
若获取到地址登记请求,则接收对象口令;
采用接收的对象口令对加密数据进行解密,得到客户端私钥;
获取身份信息,并基于客户端私钥对客户端公钥和身份信息进行签名,得到身份签名;
将身份签名、身份信息和客户端公钥发送给云端设备,使云端设备在基于客户端公钥和身份签名对身份信息验证成功后,对目标账户地址和身份信息进行关联存储;目标账户地址是由云端设备基于客户端公钥计算得到的;
接收云端设备返回的地址签名;地址签名是由云端设备采用所属的私钥对存储的目标账户地址进行签名得到,地址签名用于指示对目标账户地址登记成功。
可选的,云端设备在获取到客户端公钥、加密数据和加密数据的签名后,基于客户端公钥对加密数据的签名进行解密,得到加密数据的确定的哈希值,并对加密数据进行哈希计算,得到加密数据的待验证的哈希值;以及,云端设备若对比出确定的哈希值与待验证的哈希值相同,则确定对加密数据验证成功;
云端设备在对加密数据验证成功后,基于客户端公钥计算得到目标账户地址,以及,云端设备若检测到目标账户地址已被登记成功,则关联存储加密数据和目标账户地址。
可选的,上述装置1还用于:
若第一客户端中存储的加密数据丢失,且获取到基于云端的加密数据恢复请求,则获取身份信息;
将身份信息发送给云端设备,使云端设备在对身份信息验证成功后,获取与身份信息关联存储的至少一个账户地址;
接收云端设备返回的与身份信息关联存储的至少一个账户地址,并从接收的至少一个账户地址中选择需要恢复的目标账户地址;
将目标账户地址发送给云端设备,使云端设备获取与目标账户地址进行关联存储的加密数据;
接收云端设备返回的加密数据,并基于接收的加密数据和目标账户地址对加密数据进行恢复。
可选的,上述装置1基于接收的加密数据和目标账户地址对加密数据进行恢复的方式,包括:
接收对象口令;
基于接收的对象口令对接收的加密数据进行解密,得到客户端私钥;
基于客户端私钥计算客户端公钥,并基于客户端公钥计算第一客户端的账户地址;
若计算的账户地址与目标账户地址相同,则在第一客户端关联存储目标账户地址和接收的加密数据。
可选的,第一客户端包含于对象的目标设备中;上述装置1还用于:
若获取到针对客户端私钥的本地备份请求,则接收对象口令;
基于接收的对象口令对加密数据进行解密,得到客户端私钥;
基于客户端私钥对加密数据进行签名,得到加密数据的签名;
对加密数据和加密数据的签名进行编码处理,得到编码数据;
输出编码数据;输出的编码数据用于被导出并存储至目标设备的本地存储空间,本地存储空间不属于第一客户端。
可选的,上述装置1还用于:
若第一客户端中存储的加密数据丢失,且获取到基于本地的加密数据恢复请求,则获取从本地存储空间导入的编码数据;
对编码数据进行解码处理,得到加密数据;
接收对象口令,并基于接收的对象口令对解码得到的加密数据进行解密,得到客户端私钥;
基于客户端私钥计算客户端公钥,并基于客户端公钥计算第一客户端的目标账户地址;
在第一客户端关联存储目标账户地址和解码得到的加密数据。
可选的,签名模块13基于客户端私钥对加密数据进行签名,得到加密数据的签名的方式,包括:
对加密数据进行哈希计算,得到加密数据的哈希值;
采用客户端私钥对加密数据的哈希值进行加密,得到加密数据的签名。
可选的,第一客户端的目标账户地址与加密数据是关联存储的,目标账户地址是基于客户端公钥计算得到的;上述装置1还用于:
若接收到第二客户端提交的第一连接请求,则输出第一客户端的至少一个账户地址;第一连接请求携带第二客户端的客户端标识;
在输出的至少一个账户地址中选择需要连接的目标账户地址,并获取与目标账户地址关联存储的加密数据;
接收对象口令,基于接收的对象口令对获取的加密数据进行解密,得到客户端私钥;
生成与第二客户端之间的通信密钥,并采用客户端私钥对通信密钥进行签名,得到通信密钥的签名;
采用第二客户端的公钥对通信密钥进行加密,得到加密后的通信密钥;
将客户端公钥、通信密钥的签名和加密后的通信密钥返回给第二客户端,使第二客户端采用所属的私钥对加密后的通信密钥进行解密,得到通信密钥,并在基于通信密钥的签名和客户端公钥对通信密钥验证成功后,关联存储目标账户地址和通信密钥;
接收第二客户端返回的连接成功的提示信息,并关联存储第二客户端的客户端标识、目标账户地址和通信密钥。
可选的,上述装置1还用于:
若在断开与第二客户端之间的连接后,接收到第二客户端提交的第二连接请求,则输出第一客户端的至少一个账户地址;第二连接请求的发起时间晚于第一连接请求的发起时间;第二连接请求携带第二客户端的客户端标识;
在输出的至少一个账户地址中选择需要连接的目标账户地址;
若检测到存在与目标账户地址和客户端标识关联存储的通信密钥,则采用第二客户端的公钥对通信密钥进行加密,得到加密后的通信密钥;
将加密后的通信密钥和目标账户地址返回给第二客户端,使第二客户端采用所属的私钥对加密后的通信密钥进行解密,得到通信密钥,以及,若检测到存在与目标账户地址关联存储的通信密钥,则生成与第一客户端连接成功的提示信息;
接收第二客户端返回的连接成功的提示信息。
可选的,上述装置1还用于:
若接收到第二客户端发起的第一资源查询请求,则输出第一客户端的至少一个账户地址;第一资源查验请求携带第二客户端生成的随机数;
在输出的至少一个账户地址中选择需要查询的目标账户地址;
接收对象口令,并基于接收的对象口令对存储的加密数据进行解密,得到客户端私钥;
采用客户端私钥对随机数进行签名,得到随机数签名;
将随机数签名和客户端公钥返回给第二客户端,使第二客户端在基于客户端公钥对随机数签名验证成功后,基于客户端公钥向第一客户端发起第二资源查询请求;
接收第二客户端提交的第二资源查询请求,根据第二资源查询请求携带的客户端公钥查询对象在目标账户地址下的资源;
将目标账户地址下的资源的查询结果返回给第二客户端。
可选的,第一客户端还存储有目标账户地址,目标账户地址是基于客户端公钥计算得到的;上述装置1还用于:
若获取到针对目标账户地址的口令更换请求,则接收对象口令以及用于更换对象口令的目标对象口令;
采用接收的对象口令对加密数据进行解密,得到客户端私钥;
根据客户端私钥计算客户端公钥,并根据客户端公钥计算第一客户端的账户地址;
若计算的账户地址与目标账户地址相同,则采用目标对象口令对客户端私钥进行加密,得到更换后的加密数据,并存储更换后的加密数据。
可选的,若第一客户端是基于区块链网络进行搭建的,则云端设备是指区块链网络中区块链节点的节点设备。
可选的,上述装置1还用于:
若获取到交易发起请求,则按照交易发起请求的指示组装待发起的目标交易;
接收对象口令,并基于接收的对象口令对加密数据进行解密,得到客户端私钥;
基于客户端私钥对目标交易进行签名,得到交易签名;
将目标交易和交易签名广播至区块链网络,使区块链网络在基于交易签名对目标交易共识成功后,执行目标交易,并将目标交易上链至区块链网络。
根据本申请的一个实施例,图3所示的数据处理方法所涉及的步骤可由图17所示的数据处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图17中的接收模块11来执行,图3中所示的步骤S102可由图17中的解密模块12来执行;图3中所示的步骤S103可由图17中的签名模块13来执行,图3中所示的步骤S104可由图17中的发送模块14来执行。
本申请中,第一客户端具有密钥对,该密钥对可以包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,该加密数据是基于对象口令对客户端私钥进行加密得到的。第一客户端若获取到针对加密数据的云端托管请求,则可以接收对象口令;并可以采用接收的对象口令对加密数据进行解密,得到客户端私钥;还可以基于客户端私钥对加密数据进行签名,得到加密数据的签名;进而,第一客户端可以将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。由此可见,本申请提出的方法可以对客户端私钥的加密数据进行云端托管,通过对加密数据的云端托管实现了对客户端私钥进行保管的可靠性,并且由于不是直接将客户端私钥托管在云端设备中,而是将客户端私钥的加密数据托管在云端设备中,因此,在实现了针对客户端私钥的云端托管的前提下,也保证了客户端私钥的安全性和保密性。
根据本申请的一个实施例,图17所示的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图17中所示的数据处理装置1,以及来实现本申请实施例的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图18,图18是本申请提供的一种计算机设备的结构示意图。如图18所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图18所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图18所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
接收模块,用于若获取到针对加密数据的云端托管请求,则接收对象口令;第一客户端具有密钥对,密钥对包含客户端公钥和客户端私钥,第一客户端存储有客户端私钥的加密数据,该加密数据是基于对象口令对客户端私钥进行加密得到的;
解密模块,用于采用接收的对象口令对加密数据进行解密,得到客户端私钥;
签名模块,用于基于客户端私钥对加密数据进行签名,得到加密数据的签名;
发送模块,用于将客户端公钥、加密数据和加密数据的签名发送给第一客户端的云端设备,使云端设备在基于客户端公钥和加密数据的签名对加密数据验证成功后,存储加密数据。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3对应实施例中对上述数据处理方法的描述,也可执行前文图17所对应实施例中对上述数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (20)

1.一种数据处理方法,其特征在于,所述方法应用于第一客户端,所述第一客户端具有密钥对,所述密钥对包含客户端公钥和客户端私钥,所述第一客户端存储有所述客户端私钥的加密数据,所述加密数据是基于对象口令对所述客户端私钥进行加密得到的;所述方法包括:
若获取到针对所述加密数据的云端托管请求,则接收所述对象口令;
采用接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
基于所述客户端私钥对所述加密数据进行签名,得到所述加密数据的签名;
将所述客户端公钥、所述加密数据和所述加密数据的签名发送给所述第一客户端的云端设备,使所述云端设备在基于所述客户端公钥和所述加密数据的签名对所述加密数据验证成功后,存储所述加密数据。
2.根据权利要求1所述的方法,其特征在于,所述第一客户端包含于目标设备中,所述目标设备包含所述第一客户端可调用的安全环境,所述安全环境是与所述第一客户端相隔离的执行环境;
所述第一客户端调用所述安全环境执行的操作包括:所述接收所述对象口令的操作;所述采用接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥的操作;以及,所述基于所述客户端私钥对所述加密数据进行签名,得到所述加密数据的签名的操作;
其中,所述第一客户端获取的所述加密数据的签名是基于所述安全环境得到的。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若获取到账户创建请求,则接收所述对象口令,并生成所述第一客户端的所述密钥对;
采用接收的所述对象口令对所述密钥对中的所述客户端私钥进行加密,得到所述加密数据;
采用所述密钥对中的所述客户端公钥生成所述第一客户端的目标账户地址,并对所述目标账户地址和所述加密数据进行关联存储;
其中,所述第一客户端用于根据存储的所述加密数据对所述目标账户地址进行业务处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若获取到地址登记请求,则接收所述对象口令;
采用接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
获取身份信息,并基于所述客户端私钥对所述客户端公钥和所述身份信息进行签名,得到身份签名;
将所述身份签名、所述身份信息和所述客户端公钥发送给所述云端设备,使所述云端设备在基于所述客户端公钥和所述身份签名对所述身份信息验证成功后,对所述目标账户地址和所述身份信息进行关联存储;所述目标账户地址是由所述云端设备基于所述客户端公钥计算得到的;
接收所述云端设备返回的地址签名;所述地址签名是由所述云端设备采用所属的私钥对存储的所述目标账户地址进行签名得到,所述地址签名用于指示对所述目标账户地址登记成功。
5.根据权利要求4所述的方法,其特征在于,所述云端设备在获取到所述客户端公钥、所述加密数据和所述加密数据的签名后,基于所述客户端公钥对所述加密数据的签名进行解密,得到所述加密数据的确定的哈希值,并对所述加密数据进行哈希计算,得到所述加密数据的待验证的哈希值;以及,所述云端设备若对比出所述确定的哈希值与所述待验证的哈希值相同,则确定对所述加密数据验证成功;
所述云端设备在对所述加密数据验证成功后,基于所述客户端公钥计算得到所述目标账户地址,以及,所述云端设备若检测到所述目标账户地址已被登记成功,则关联存储所述加密数据和所述目标账户地址。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述第一客户端中存储的所述加密数据丢失,且获取到基于云端的加密数据恢复请求,则获取身份信息;
将所述身份信息发送给所述云端设备,使所述云端设备在对所述身份信息验证成功后,获取与所述身份信息关联存储的至少一个账户地址;
接收所述云端设备返回的与所述身份信息关联存储的至少一个账户地址,并从接收的至少一个账户地址中选择需要恢复的所述目标账户地址;
将所述目标账户地址发送给所述云端设备,使所述云端设备获取与所述目标账户地址进行关联存储的所述加密数据;
接收所述云端设备返回的所述加密数据,并基于接收的所述加密数据和所述目标账户地址对所述加密数据进行恢复。
7.根据权利要求6所述的方法,其特征在于,所述基于接收的所述加密数据和所述目标账户地址对所述加密数据进行恢复,包括:
接收所述对象口令;
基于接收的所述对象口令对接收的所述加密数据进行解密,得到所述客户端私钥;
基于所述客户端私钥计算所述客户端公钥,并基于所述客户端公钥计算所述第一客户端的账户地址;
若计算的账户地址与所述目标账户地址相同,则在所述第一客户端关联存储所述目标账户地址和接收的所述加密数据。
8.根据权利要求1所述的方法,其特征在于,所述第一客户端包含于目标设备中;所述方法还包括:
若获取到针对所述客户端私钥的本地备份请求,则接收所述对象口令;
基于接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
基于所述客户端私钥对所述加密数据进行签名,得到所述加密数据的签名;
对所述加密数据和所述加密数据的签名进行编码处理,得到编码数据;
输出所述编码数据;输出的所述编码数据用于被导出并存储至所述目标设备的本地存储空间,所述本地存储空间不属于所述第一客户端。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述第一客户端中存储的所述加密数据丢失,且获取到基于本地的加密数据恢复请求,则获取从所述本地存储空间导入的所述编码数据;
对所述编码数据进行解码处理,得到所述加密数据;
接收所述对象口令,并基于接收的所述对象口令对解码得到的所述加密数据进行解密,得到所述客户端私钥;
基于所述客户端私钥计算所述客户端公钥,并基于所述客户端公钥计算所述第一客户端的目标账户地址;
在所述第一客户端关联存储所述目标账户地址和解码得到的所述加密数据。
10.根据权利要求1所述的方法,其特征在于,所述基于所述客户端私钥对所述加密数据进行签名,得到所述加密数据的签名,包括:
对所述加密数据进行哈希计算,得到所述加密数据的哈希值;
采用所述客户端私钥对所述加密数据的哈希值进行加密,得到所述加密数据的签名。
11.根据权利要求1所述的方法,其特征在于,所述第一客户端的目标账户地址与所述加密数据是关联存储的,所述目标账户地址是基于所述客户端公钥计算得到的;所述方法还包括:
若接收到第二客户端提交的第一连接请求,则输出所述第一客户端的至少一个账户地址;所述第一连接请求携带所述第二客户端的客户端标识;
在输出的至少一个账户地址中选择需要连接的所述目标账户地址,并获取与所述目标账户地址关联存储的所述加密数据;
接收所述对象口令,基于接收的所述对象口令对获取的所述加密数据进行解密,得到所述客户端私钥;
生成与所述第二客户端之间的通信密钥,并采用所述客户端私钥对所述通信密钥进行签名,得到所述通信密钥的签名;
采用所述第二客户端的公钥对所述通信密钥进行加密,得到加密后的通信密钥;
将所述客户端公钥、所述通信密钥的签名和所述加密后的通信密钥返回给所述第二客户端,使所述第二客户端采用所属的私钥对所述加密后的通信密钥进行解密,得到所述通信密钥,并在基于所述通信密钥的签名和所述客户端公钥对所述通信密钥验证成功后,关联存储所述目标账户地址和所述通信密钥;
接收所述第二客户端返回的连接成功的提示信息,并关联存储所述第二客户端的所述客户端标识、所述目标账户地址和所述通信密钥。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若在断开与所述第二客户端之间的连接后,接收到所述第二客户端提交的第二连接请求,则输出所述第一客户端的至少一个账户地址;所述第二连接请求的发起时间晚于所述第一连接请求的发起时间;所述第二连接请求携带所述第二客户端的所述客户端标识;
在输出的至少一个账户地址中选择需要连接的所述目标账户地址;
若检测到存在与所述目标账户地址和所述客户端标识关联存储的所述通信密钥,则采用所述第二客户端的公钥对所述通信密钥进行加密,得到加密后的通信密钥;
将所述加密后的通信密钥和所述目标账户地址返回给所述第二客户端,使所述第二客户端采用所属的私钥对所述加密后的通信密钥进行解密,得到所述通信密钥,以及,若检测到存在与所述目标账户地址关联存储的所述通信密钥,则生成与所述第一客户端连接成功的提示信息;
接收所述第二客户端返回的连接成功的提示信息。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到第二客户端发起的第一资源查询请求,则输出所述第一客户端的至少一个账户地址;所述第一资源查验请求携带所述第二客户端生成的随机数;
在输出的至少一个账户地址中选择需要查询的所述目标账户地址;
接收所述对象口令,并基于接收的所述对象口令对存储的所述加密数据进行解密,得到所述客户端私钥;
采用所述客户端私钥对所述随机数进行签名,得到随机数签名;
将所述随机数签名和所述客户端公钥返回给所述第二客户端,使所述第二客户端在基于所述客户端公钥对所述随机数签名验证成功后,基于所述客户端公钥向所述第一客户端发起第二资源查询请求;
接收所述第二客户端提交的所述第二资源查询请求,根据所述第二资源查询请求携带的所述客户端公钥查询所述对象在所述目标账户地址下的资源;
将所述目标账户地址下的资源的查询结果返回给所述第二客户端。
14.根据权利要求1所述的方法,其特征在于,所述第一客户端还存储有目标账户地址,所述目标账户地址是基于所述客户端公钥计算得到的;所述方法还包括:
若获取到针对所述目标账户地址的口令更换请求,则接收所述对象口令以及用于更换所述对象口令的目标对象口令;
采用接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
根据所述客户端私钥计算所述客户端公钥,并根据所述客户端公钥计算所述第一客户端的账户地址;
若计算的账户地址与所述目标账户地址相同,则采用所述目标对象口令对所述客户端私钥进行加密,得到更换后的加密数据,并存储更换后的加密数据。
15.根据权利要求1所述的方法,其特征在于,若所述第一客户端是基于区块链网络进行搭建的,则所述云端设备是指所述区块链网络中区块链节点的节点设备。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
若获取到交易发起请求,则按照所述交易发起请求的指示组装待发起的目标交易;
接收所述对象口令,并基于接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
基于所述客户端私钥对所述目标交易进行签名,得到交易签名;
将所述目标交易和所述交易签名广播至所述区块链网络,使所述区块链网络在基于所述交易签名对所述目标交易共识成功后,执行所述目标交易,并将所述目标交易上链至所述区块链网络。
17.一种数据处理装置,其特征在于,所述装置应用于第一客户端,所述第一客户端具有密钥对,所述密钥对包含客户端公钥和客户端私钥,所述第一客户端存储有所述客户端私钥的加密数据,所述加密数据是基于对象口令对所述客户端私钥进行加密得到的;所述装置包括:
接收模块,用于若获取到针对所述加密数据的云端托管请求,则接收所述对象口令;
解密模块,用于采用接收的所述对象口令对所述加密数据进行解密,得到所述客户端私钥;
签名模块,用于基于所述客户端私钥对所述加密数据进行签名,得到所述加密数据的签名;
发送模块,用于将所述客户端公钥、所述加密数据和所述加密数据的签名发送给所述第一客户端的云端设备,使所述云端设备在基于所述客户端公钥和所述加密数据的签名对所述加密数据验证成功后,存储所述加密数据。
18.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-16任一项所述方法的步骤。
19.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-16中任一项所述方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-16任一项所述的方法。
CN202211324998.1A 2022-10-27 2022-10-27 数据处理方法、装置、程序产品、计算机设备和介质 Pending CN117997519A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211324998.1A CN117997519A (zh) 2022-10-27 2022-10-27 数据处理方法、装置、程序产品、计算机设备和介质
PCT/CN2023/125366 WO2024088145A1 (zh) 2022-10-27 2023-10-19 数据处理方法、装置、程序产品、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211324998.1A CN117997519A (zh) 2022-10-27 2022-10-27 数据处理方法、装置、程序产品、计算机设备和介质

Publications (1)

Publication Number Publication Date
CN117997519A true CN117997519A (zh) 2024-05-07

Family

ID=90830015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211324998.1A Pending CN117997519A (zh) 2022-10-27 2022-10-27 数据处理方法、装置、程序产品、计算机设备和介质

Country Status (2)

Country Link
CN (1) CN117997519A (zh)
WO (1) WO2024088145A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001976A (zh) * 2012-12-28 2013-03-27 中国科学院计算机网络信息中心 一种安全的网络信息传输方法
CN111008094B (zh) * 2018-10-08 2023-05-05 阿里巴巴集团控股有限公司 一种数据恢复方法、设备和系统
CN111416807B (zh) * 2020-03-13 2022-06-07 苏州科达科技股份有限公司 数据获取方法、装置及存储介质
CN112491843B (zh) * 2020-11-17 2022-06-21 苏州浪潮智能科技有限公司 一种数据库多重认证方法、系统、终端及存储介质
CN113972985A (zh) * 2021-09-02 2022-01-25 北京电子科技学院 一种基于云密码机密钥管理的私有云加密存储方法
CN114036539A (zh) * 2021-10-14 2022-02-11 国家电网有限公司 基于区块链的安全可审计物联网数据共享系统及方法

Also Published As

Publication number Publication date
WO2024088145A1 (zh) 2024-05-02

Similar Documents

Publication Publication Date Title
US11468151B2 (en) System and method for memetic authentication and identification
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
CN110324143A (zh) 数据传输方法、电子设备及存储介质
JP5852265B2 (ja) 計算装置、コンピュータプログラム及びアクセス許否判定方法
US8122255B2 (en) Methods and systems for digital authentication using digitally signed images
CN113193965B (zh) 基于nft的数字内容实物化展示系统
US20210056541A1 (en) Method and system for mobile cryptocurrency wallet connectivity
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
KR101744747B1 (ko) 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
KR20060003319A (ko) 기기 인증 시스템
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN112671720A (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
CN112653556B (zh) 一种基于token的微服务安全认证方法、装置、存储介质
CN114266033A (zh) 验证码生成方法、装置、验证码登录系统及电子设备
CN104125064A (zh) 一种动态密码认证方法、客户端及认证系统
US9787476B2 (en) Image verification by an electronic device
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN113329004A (zh) 一种认证方法、系统及装置
CN117240625A (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
CN109450643B (zh) Android平台上基于native服务实现的签名验签方法
CN116232700A (zh) 登录认证方法、装置、计算机设备、存储介质
CN110855753A (zh) 银行运营系统、方法及服务器
CN115801287A (zh) 签名认证方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination