WO2020238248A1 - 一种数据存储方法、装置及设备 - Google Patents

一种数据存储方法、装置及设备 Download PDF

Info

Publication number
WO2020238248A1
WO2020238248A1 PCT/CN2020/071678 CN2020071678W WO2020238248A1 WO 2020238248 A1 WO2020238248 A1 WO 2020238248A1 CN 2020071678 W CN2020071678 W CN 2020071678W WO 2020238248 A1 WO2020238248 A1 WO 2020238248A1
Authority
WO
WIPO (PCT)
Prior art keywords
data record
data
hash value
block
user
Prior art date
Application number
PCT/CN2020/071678
Other languages
English (en)
French (fr)
Inventor
李亿泽
杨新颖
张渊
俞本权
闫文远
Original Assignee
创新先进技术有限公司
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 创新先进技术有限公司 filed Critical 创新先进技术有限公司
Priority to US16/806,875 priority Critical patent/US10783277B2/en
Publication of WO2020238248A1 publication Critical patent/WO2020238248A1/zh

Links

Images

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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party

Definitions

  • the embodiments of this specification relate to the field of information technology, and in particular to a data storage method, device, and equipment.
  • the database server When storing data in a centralized blockchain ledger, generally speaking, the database server does not directly face users. User data is generated based on the application server, and then the application server forwards the user data to the database server for storage. In this case, the user does not know whether his data has been mistaken or changed during the storage process.
  • the purpose of the embodiments of the present application is to provide a method that can ensure the security of user stored data.
  • the application server obtains the first data record carrying the user identification
  • the application server obtains the corresponding user private key according to the user ID, executes the preset signature code in the trusted execution environment, and generates a second data record containing the user's digital signature, wherein the signature code is used to Digitally sign the first data record;
  • the application server sends the second data record to the database server
  • the database server receives the second data record, and determines the hash value of the second data record
  • the database server when the preset blocking condition is reached, determines each second data record to be written in the data block, and generates the Nth data block containing the hash value of the data block and each second data record.
  • the hash value and block height of the initial data block are given based on a preset method
  • the embodiment of this specification also provides a data storage system, including an application server and a database server.
  • a data storage system including an application server and a database server.
  • the application server obtains the first data record carrying the user identification; obtains the corresponding user private key according to the user identification, executes the preset signature code in the trusted execution environment, and generates the second data record containing the user's digital signature, where, The signature code is used to digitally sign the first data record according to the user's private key; send the second data record to the database server;
  • the database server receives the second data record, and determines the hash value of the second data record
  • each second data record to be written in the data block is determined, and the Nth data block including the hash value of the data block and each second data record is generated, which specifically includes:
  • the hash value and block height of the initial data block are given based on a preset method
  • the embodiment of this specification also provides a data storage method, which is applied to the application server, and the method includes:
  • a data record is digitally signed;
  • an embodiment of this specification also provides a data storage device, which is applied to an application server, and the device includes:
  • the receiving module obtains the first data record carrying the user identification
  • the generation module obtains the corresponding user private key according to the user identification, executes the preset signature code in the trusted execution environment, and generates a second data record containing the user's digital signature, wherein the signature code is used to pair according to the user private key
  • the first data record is digitally signed
  • the sending module sends the second data record to the database server.
  • the application server digitally signs the user data in a trusted execution environment, generates a second data record containing the user's digital signature, and stores the second data record in a centralized block chain
  • the non-tampering of the data containing the user's digital signature is realized, the security of the user's stored data is guaranteed, and the user experience is improved.
  • FIG. 1 is a schematic diagram of the system architecture involved in the embodiment of this specification
  • FIG. 2 is a schematic flowchart of a data storage method in a system aspect provided by an embodiment of this specification
  • FIG. 3 is a schematic flowchart of a data storage method on the application server provided by an embodiment of the specification
  • Figure 4 is a schematic structural diagram of a data storage device provided by an embodiment of this specification.
  • Fig. 5 is a schematic structural diagram of a device for configuring the method of the embodiment of this specification.
  • Fig. 1 is a schematic diagram of the system architecture involved in the embodiment of this specification.
  • Figure 2 is a schematic flow diagram of a system data storage method provided by an embodiment of this specification, which is applied to a system including an application server and a database server.
  • the flow specifically includes the following steps:
  • the application server obtains a first data record carrying a user identifier.
  • the first data record may be raw data sent by the client, for example, operation commands, transaction orders, etc. sent by the client; or data generated by the application server based on operations of the client, for example, operation logs.
  • the user ID corresponding to the client at this time can be obtained, and the user ID can be bound to the first data record, for example, written to the designated location of the first data record; The header of the data record and so on, thereby obtaining the first data record carrying the user identification.
  • the application server obtains the corresponding user private key according to the user identification, executes the preset signature code in the trusted execution environment, and generates a second data record containing the user's digital signature.
  • the application server generally provides a centralized service.
  • Each user can store his or her private key in the application server and establish a corresponding relationship with the user ID, and , You can use your own public key to verify the encryption result of the application server at any time, so as to ensure that the application server uses its own private key in the encryption process.
  • the application server executes a piece of code that can be seen publicly, so that the public and users can understand the purpose of the code, thereby ensuring the fairness of the encrypted data obtained in the embodiments of this specification.
  • the code is a piece of signature code for digitally signing the first data record according to the user's private key.
  • the method of using a private key for digital signature is already very common, so I won't repeat it here. It should be noted that in this process, the user's private key that is called is not publicly visible.
  • TEE Trusted Execution Environment
  • the trusted execution environment is a secure extension based on CPU hardware and is completely isolated from the outside.
  • TEE was first proposed by Global Platform to solve the security isolation of resources on mobile devices, and parallel to the operating system to provide a trusted and secure execution environment for applications.
  • ARM's Trust Zone technology is the first to realize the real commercial TEE technology.
  • TEE has also been rapidly developed and expanded.
  • server chip manufacturers Intel, AMD, etc. have successively introduced hardware-assisted TEE and enriched the concept and characteristics of TEE, which has been widely recognized in the industry.
  • the TEE mentioned now usually refers to this kind of hardware-assisted TEE technology.
  • cloud access requires remote access, and the end user is invisible to the hardware platform. Therefore, the first step in using TEE is to confirm the authenticity of TEE.
  • the current TEE technology has introduced a remote certification mechanism, which is endorsed by hardware vendors (mainly CPU vendors) and digital signature technology ensures that users can verify the state of the TEE. In other words, the result of execution in TEE can be digitally signed by the hardware manufacturer.
  • TEEs including Intel SGX and AMD SEV, also provide memory encryption technology to limit trusted hardware to the inside of the CPU.
  • the data on the bus and memory are ciphertext to prevent malicious users from snooping.
  • Intel Software Protection Extensions (SGX) and other TEE technologies isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for code execution.
  • the applications running in the TEE are protected by security and are almost impossible to be accessed by third parties.
  • SGX provides an enclave (also called an enclave), which is an encrypted trusted execution area in the memory, and the CPU protects data from being stolen.
  • enclave also called an enclave
  • the CPU protects data from being stolen.
  • a part of the area EPC Enclave Page Cache, enclave page cache or enclave page cache
  • the encryption engine MEE in the CPU encrypts the data in it.
  • EPC encrypted content will be decrypted into plaintext only after entering the CPU. Therefore, in SGX, users can distrust the operating system, VMM (Virtual Machine Monitor), and even BIOS (Basic Input Output System). They only need to trust the CPU to ensure code execution.
  • the second data record containing the user's digital signature can be obtained, and the authenticity of the second data record can be determined by Trust the hardware provider of the execution environment.
  • S205 The application server sends the second data record to the database server.
  • S207 The database server receives the second data record, and determines the hash value of the second data record.
  • the database server determines each second data record in the data block to be written when the preset blocking condition is reached, and generates the Nth data block containing the hash value of the data block and each second data record ,.
  • the preset block conditions include: the number of second data records to be stored reaches the number threshold. For example, every time one thousand second data records are received, a new data block is generated and one thousand second data records are stored. Write into the block; or, the time interval from the last block formation time reaches the time threshold, for example, every 5 minutes, a new data block is generated, and the second data record received within these 5 minutes is written into the block .
  • the N here refers to the serial number of the data block.
  • the data block is in the form of a block chain, which is arranged sequentially based on the order of the block time, and has a strong timing characteristic.
  • the block height of the data block increases monotonically based on the sequence of the block time.
  • the block height can be a sequence number, at this time the block height of the Nth data block is N; the block height can also be generated in other ways.
  • the data block at this time is the initial data block.
  • the current data block (the first data block) can be generated based on the hash value of the previous data block (that is, the N-1th data block). For example, one feasible way is to determine the hash value of each second data record to be written in the Nth block, and generate a hash value according to the sequence in the block Merkel tree, the root hash value of the Merkel tree and the hash value of the previous data block are spliced together, and the hash algorithm is used again to generate the hash value of the current block, and it can also be based on the Merkel tree
  • the root hash value of and some other metadata (such as version number, generation timestamp of data block, etc.) generate the current fast hash value.
  • each data block is determined by a hash value
  • the hash value of the data block is determined by the content and sequence of the second data record in the data block and the hash value of the previous data block.
  • the user can initiate verification based on the hash value of the data block or the hash value of the second data record at any time. Any modification of the data block (including the modification of the content or sequence of the second data record in the data block) will cause the verification
  • the hash value of the data block calculated at the time is inconsistent with the hash value when the data block is generated, which causes the verification to fail, thereby realizing non-tampering under centralization.
  • the format of the data block can be customized.
  • the format of the data block may be similar to the block format in the blockchain.
  • each data block it contains a block header for storing metadata, and a block body for storing the second data record.
  • the block header in the data block can be used to store such things as the parent hash, its own block hash value, version number, root hash of the Merkel tree of the data record, timestamp, and so on.
  • the application server digitally signs the user data in a trusted execution environment, generates a second data record containing the user's digital signature, and stores the second data record in a centralized block chain
  • the digital signature ensures that the data is indeed generated by the user, and the centralized block chain ledger storage realizes that the data containing the user's digital signature can not be tampered with.
  • the aforementioned scheme ensures the security of the user's stored data and improves the user. Experience.
  • the database server may also verify the second data record before storing the second data record. That is, the corresponding public key is determined according to the user ID. In the digital signature process, the corresponding public key is publicly visible, and any user or organization can know the public key corresponding to a user. Therefore, the corresponding public key can be obtained according to the user ID, and the second data Record for verification.
  • the data record is written to the data block; otherwise, the data record is not written, and the corresponding notification message can be returned to the application server.
  • the specific verification method for the digital signature is also very common at present, and will not be repeated here.
  • the database server may also return the hash value of the second data record to the application server, and the application server forwards the hash value of the second data record to the first client corresponding to the user ID end. Therefore, the first client can query the corresponding second data record according to the hash value at any time, and can verify the correctness of the private key in the second data record.
  • the integrity verification of the ledger where the second data record is located can be performed at any time based on the hash value, and the specific integrity verification method has been described in detail above.
  • a shared learning platform different clients can input their own data as training samples into the same learning platform (ie, application server), and the learning platform can perform model training on the client data.
  • the same learning platform ie, application server
  • any client can perform corresponding operations (for example, update, retrain, etc.) on the training model obtained by the platform, and a client may also need to use data from other clients for its own related model training.
  • a client has the motivation to query and verify the data provided by other clients and the data generated by other clients during use, etc.
  • the first client or the application server can publish the hash value of the second data record generated by the operation of the first client, and other clients can send the hash value to the application server for corresponding query.
  • the application server may receive the query request containing the hash value of the second data record sent by the second client, and forward the query request to the database server; the database server may, according to the second data record The hash value of the query obtains the corresponding second data record, and returns the data record to the application server; the application server forwards the second data record obtained by the query to the second client, and the second client then The public key of the first client can be used to decrypt and verify the second data record.
  • any client can verify the legality of the data generated by other clients and confirm that the data provided or generated by any other user is reliable Legal, achieve joint public supervision, further guarantee the security of users' stored data, and improve user experience.
  • the embodiment of this specification also provides a data storage system, including an application server and a database server.
  • a data storage system including an application server and a database server.
  • the application server obtains the first data record carrying the user identification; obtains the corresponding user private key according to the user identification, executes the preset signature code in the trusted execution environment, and generates the second data record containing the user's digital signature, where, The signature code is used to digitally sign the first data record according to the user's private key; send the second data record to the database server;
  • the database server receives the second data record, and determines the hash value of the second data record
  • each second data record to be written in the data block is determined, and the Nth data block including the hash value of the data block and each second data record is generated, which specifically includes:
  • the hash value and block height of the initial data block are given based on a preset method
  • the database server is further configured to determine the corresponding user public key according to the user identification, and use the user public key to verify the second data record.
  • the preset blocking condition includes: the number of data records to be stored reaches the number threshold; or, the time interval from the last blocking time reaches the time threshold.
  • the database server returns the hash value of the second data record to the application server; the application server forwards the hash value of the second data record to the first client.
  • the application server is further configured to receive a query request containing the hash value of the second data record sent by the second client, and forward the query request to the database server;
  • the database server is also used to query the corresponding second data record according to the hash value of the second data record, and return the data record to the application server; the application server forwards the query obtained
  • the second data is recorded to the second client, so that the second client uses the public key of the first client to decrypt and verify the second data record.
  • the trusted execution environment includes Intel SGX or AMD SEV or ARM Trustzone.
  • the embodiment of this specification also provides a data storage method applied to the application server, as shown in FIG. 3, which is the flow of the data storage method of the application server provided by the embodiment of this specification Schematic diagram, the method includes:
  • an embodiment of this specification also provides a data storage device, which is applied to an application server, as shown in FIG. 4, which is a schematic structural diagram of a data storage device provided by an embodiment of this specification, including:
  • the receiving module 401 obtains the first data record carrying the user identification
  • the generating module 403 obtains the corresponding user private key according to the user identification, executes the preset signature code in the trusted execution environment, and generates a second data record containing the user digital signature, wherein the signature code is used to generate a second data record containing the user's digital signature. Digitally sign the first data record;
  • the sending module 405 sends the second data record to the database server.
  • the embodiment of this specification also provides a computer device, which at least includes a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the processor implements the data shown in FIG. 3 when the program is executed. Storage method.
  • FIG. 5 shows a more specific hardware structure diagram of a computing device provided by an embodiment of this specification.
  • the device may include a processor 1010, a memory 1020, an input/output interface 1030, a communication interface 1040, and a bus 1050.
  • the processor 1010, the memory 1020, the input/output interface 1030, and the communication interface 1040 realize the communication connection between each other in the device through the bus 1050.
  • the processor 1010 may be implemented in a general-purpose CPU (Central Processing Unit, central processing unit), microprocessor, application specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits for execution related Program to implement the technical solutions provided in the embodiments of this specification.
  • a general-purpose CPU Central Processing Unit, central processing unit
  • microprocessor microprocessor
  • application specific integrated circuit Application Specific Integrated Circuit, ASIC
  • ASIC Application Specific Integrated Circuit
  • the memory 1020 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory, random access memory), static storage device, dynamic storage device, etc.
  • the memory 1020 may store an operating system and other application programs. When the technical solutions provided in the embodiments of the present specification are implemented through software or firmware, related program codes are stored in the memory 1020 and called and executed by the processor 1010.
  • the input/output interface 1030 is used to connect an input/output module to realize information input and output.
  • the input/output/module can be configured in the device as a component (not shown in the figure), or can be connected to the device to provide corresponding functions.
  • the input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and an output device may include a display, a speaker, a vibrator, an indicator light, and the like.
  • the communication interface 1040 is used to connect a communication module (not shown in the figure) to realize the communication interaction between the device and other devices.
  • the communication module can realize communication through wired means (such as USB, network cable, etc.), or through wireless means (such as mobile network, WIFI, Bluetooth, etc.).
  • the bus 1050 includes a path to transmit information between various components of the device (for example, the processor 1010, the memory 1020, the input/output interface 1030, and the communication interface 1040).
  • the device may also include the necessary equipment for normal operation.
  • the above-mentioned device may also include only the components necessary to implement the solutions of the embodiments of the present specification, rather than all the components shown in the figures.
  • the embodiment of this specification also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the data storage method shown in FIG. 3 is implemented.
  • Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer-readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • a typical implementation device is a computer.
  • the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, and a game control A console, a tablet computer, a wearable device, or a combination of any of these devices.

Abstract

公开了一种数据存储方法、装置及设备。应用服务端将用户数据在可信执行环境中进行数字签名,生成包含用户数字签名的第二数据记录,将第二数据记录存储在中心化的块链式账本中,实现了对于包含用户数字签名的数据的不可篡改。

Description

一种数据存储方法、装置及设备 技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种数据存储方法、装置及设备。
背景技术
在以中心化的块链式账本存储数据时,通常而言,数据库服务端并不直接面向用户。用户的数据是基于应用服务端所产生,进而是应用服务端将用户数据转发至数据库服务端进行存储。在这种情形下,用户并不知晓自己的数据是否在存储过程中发生了错误或者改动。
基于此,需要一种可以保障用户存储数据安全性的方法,提高用户体验。
发明内容
本申请实施例的目的是提供一种可以保障用户存储数据安全性的方法。
为解决上述技术问题,本申请实施例是这样实现的:
一种数据存储方法,应用于包括应用服务端和数据库服务端的系统中,所述方法包括:
应用服务端,获取携带用户标识的第一数据记录;
应用服务端,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
应用服务端,发送所述第二数据记录至数据库服务端;
数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
数据库服务端,当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确 定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
对应的,本说明书实施例还提供一种数据存储系统,包括应用服务端和数据库服务端,在所述系统中,
应用服务端,获取携带用户标识的第一数据记录;根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;发送所述第二数据记录至数据库服务端;
数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
另一方面,本说明书实施例还提供一种数据存储方法,应用于应用服务端中,所述方法包括:
获取携带用户标识的第一数据记录;
根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
发送所述第二数据记录至数据库服务端。
对应的,本说明书实施例还提供一种数据存储装置,应用于应用服务端中,所述装置包括:
接收模块,获取携带用户标识的第一数据记录;
生成模块,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私 钥对所述第一数据记录进行数字签名;
发送模块,发送所述第二数据记录至数据库服务端。
通过本说明书实施例所提供的方案,应用服务端将用户数据在可信执行环境中进行数字签名,生成包含用户数字签名的第二数据记录,将第二数据记录存储在中心化的块链式账本中,实现了对于包含用户数字签名的数据的不可篡改,保障了用户存储数据安全性,提高用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1本说明书实施例中所涉及的系统架构的示意图;
图2是本说明书实施例提供的一种系统方面的数据存储方法的流程示意图;
图3为本说明书实施例所提供的应用服务端方面的数据存储方法的流程示意图;
图4是本说明书实施例提供的一种数据存储装置的结构示意图;
图5是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在当前的服务器架构中,数据库服务端可以是直接对接的客户端个人用户,也可以是由一些应用服务端对接客户端个人用户,而数据库服务端则对接所述应用服务端。如图1所示,图1本说明书实施例中所涉及的系统架构的示意图。
以下结合附图,详细说明本说明书各实施例提供的技术方案。如图2所示,图2是本说明书实施例提供的一种系统方面的数据存储方法的流程示意图,应用于包括应用服务端和数据库服务端的系统中,该流程具体包括如下步骤:
S201,应用服务端,获取携带用户标识的第一数据记录。
第一数据记录可以是客户端发送的原始数据,例如,客户端所发送的操作命令、交易订单等等;也可以是应用服务端基于客户端的操作所产生的数据,例如,操作日志等等。
在应用服务端,可以获取此时的客户端所对应的用户标识,并将用户标识与第一数据记录进行绑定,例如,写入第一数据记录的指定位置中;或者,拼接到第一数据记录的头部等等,从而得到携带用户标识的第一数据记录。
S203,应用服务端,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录。
需要说明的是,在本说明书实施例中,应用服务端一般是中心化的提供服务,各用户可以将自身的私钥存储于应用服务端之中,并且与用户标识建立相应的对应关系,以及,可以随时使用自身的公钥对应用服务端的加密结果进行验证,从而能够保证应用服务端在加密过程中使用的是自身的私钥。
同时,应用服务端在加密过程中,执行一段可以公开所见的代码,从而公众以及用户均可以了解该代码的用途,进而保证在本说明书实施例中所得到的加密数据的公正性。
在本说明书实施例中,该代码为一段签名代码,用于根据用户私钥对所述第一数据记录进行数字签名。使用私钥进行数字签名的方法已经很常见,此处不再赘述。需要说明的是,在这个过程中,调用的用户私钥并不公开所见的。
为此,在应用服务端中,可以在可信执行环境(Trusted Execution Environment,TEE)进行私钥签名来保障公正性。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。
可信执行环境是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。ARM的Trust Zone技术最早实现了 真正商用的TEE技术。
伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对TEE提出了更多的需求。TEE的概念也得到了高速的发展和扩充。现在所说的TEE相比与最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性,在工业界得到了广泛的认可。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商)背书并通过数字签名技术确保用户对TEE状态可验证。换言之,在TEE中执行的结果可以得到硬件厂商的数字签名。
同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX,AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等TEE技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在TEE中运行的应用程序受到安全保护,几乎不可能被第三方访问。
以Intel SGX技术为例,SGX提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由CPU保护数据不被窃取。以服务端采用支持SGX的CPU为例,利用新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),通过CPU内的加密引擎MEE(Memory Encryption Engine)对其中的数据进行加密。EPC加密的内容只有进入CPU后才会被解密成明文。因此,在SGX中,用户可以不信任操作系统、VMM(Virtual Machine Monitor,虚拟机监控器)、甚BIOS(Basic Input Output System,基本输入输出系统),只需要信任CPU便能确保代码的执行。
在本说明书实施例中,通过在可信执行环境中执行公开的代码以进行用户私钥加密,从而可以获取得到的包含用户数字签名的第二数据记录,该第二数据记录的真实性由可信执行环境的硬件提供方所保障。
S205,应用服务端,发送所述第二数据记录至数据库服务端。
S207,数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值。
S209,数据库服务端,当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,。
所述预设的成块条件包括:待存储的第二数据记录数量达到数量阈值,例如,每接收到一千条第二数据记录时,生成一个新数据块,将一千条第二数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的第二数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含第二数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的第二数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值,以及还可以根据默克尔树的根哈希值和其它一些元数据(例如版本号、数据块的生成时间戳等等)生成当前快的哈希值。又例如,还可以按照块中第二数据记录的顺序进行拼接并取哈希得到整体第二数据记录的哈希值,拼接前一数据块的哈希值和整体第二数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的第二数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值或者第二数据记录的哈希值发起验证,对于数据块中任何内容(包括对于数据块中第二数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。
在本说明书实施例中,数据块的格式是可以自定义的。在一种实施例中,数据块的格式可以是类似于区块链中的区块格式。在每一个数据块中,其包含用于存储元数据的块头,和,用于存储第二数据记录的块体。数据块中的块头可以用于存储诸如父哈希、自身的块哈希值、版本号、数据记录的默克尔树的根哈希、时间戳等等。
通过本说明书实施例所提供的方案,应用服务端将用户数据在可信执行环境中进行数字签名,生成包含用户数字签名的第二数据记录,将第二数据记录存储在中心化的块链式账本中,数字签名保障了数据确实由该用户所产生,而中心化的块链式账本存储实现了对于包含用户数字签名的数据的不可篡改,通过前述方案保障了用户存储数据安全性,提高用户体验。
在一种实施例中,数据库服务端还可以在存储第二数据记录前对第二数据记录进行验证。即根据用户标识确定对应的公钥。在数字签名过程中,对应的公钥是公开可见的,任一用户或者机构都可以知晓一名用户所对应的公钥,因而,根据用户标识即可得到对应的公钥,并对第二数据记录进行验证。
验证如果通过,再将数据记录写入数据块;否则,不写入,并且还可以返回相应的通知消息至应用服务端。对于数字签名的具体验证方式在当前也很常规,此处不再赘述。
在一种实施例中,数据库服务端还可以返回对于第二数据记录的哈希值至应用服务端,应用服务端转发第二数据记录的哈希值至所述用户标识所对应的第一客户端。从而第一客户端可以随时根据该哈希值查询得到相应的第二数据记录,并且可以验证该第二数据记录中的私钥的正确性。或者,可以随时根据该哈希值对第二数据记录所处的账本进行完整性验证,具体的完整性验证方式在前文已经详述。
在一种实施例中,若多个不同的客户端之间有可能需要共享数据。例如,在一种共享学习的平台中,不同的客户端可以分别将自己的数据作为训练样本输入到同一的学习平台(即应用服务端)中,学习平台可以对客户端的数据进行的模型训练。
同时,任一客户端均可以对平台得到的训练模型进行相应的操作(例如,更新,再次训练等等),以及,一个客户端可能还需要使用到其它客户端的数据进行自身相关的模型训练。在这种情形下,一名客户端有动机去查询验证其它客户端所提供的数据以及其它客户端在使用过程中所产生的数据等等。
此时,第一客户端或者应用服务端可以将第一客户端操作所产生的第二数据记录 的哈希值进行公开,其它客户端可以发送该哈希值至应用服务端进行相应的查询。
进而,应用服务端,可以接收第二客户端所发送的包含第二数据记录的哈希值的查询请求,并转发所述查询请求至数据库服务端;数据库服务端,根据所述第二数据记录的哈希值查询得到对应的第二数据记录,并返回所述数据记录至应用服务端;应用服务端转发所述查询得到的第二数据记录至所述第二客户端,第二客户端则可以采用第一客户端的公钥对所述第二数据记录进行解密验证。
通过这种方式,在这类多客户端共享数据的情形下,任一客户端均可以对其它客户端所产生的数据进行合法性验证,确认其它任一用户所提供或者所产生的数据是可靠合法的,达到共同公开监督,进一步保障用户存储数据安全性,提高用户体验。
对应的,本说明书实施例还提供一种数据存储系统,包括应用服务端和数据库服务端,在所述系统中,
应用服务端,获取携带用户标识的第一数据记录;根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;发送所述第二数据记录至数据库服务端;
数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,在所述系统中,数据库服务端还用于,根据用户标识确定对应的用户公钥,采用所述用户公钥对第二数据记录进行验证。
进一步地,在所述系统中,在数据库服务端中,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
进一步地,在所述系统中,数据库服务端返回所述第二数据记录的哈希值至应用服务端;应用服务端转发第二数据记录的哈希值至所述第一客户端。
进一步地,在所述系统中,应用服务端还用于,接收第二客户端所发送的包含第二数据记录的哈希值的查询请求,并转发所述查询请求至数据库服务端;
相应的,数据库服务端还用于,根据所述第二数据记录的哈希值查询得到对应的第二数据记录,并返回所述数据记录至应用服务端;应用服务端转发所述查询得到的第二数据记录至所述第二客户端,以便所述第二客户端采用第一客户端的公钥对所述第二数据记录进行解密验证。
进一步地,在所述系统中,所述可信执行环境包括Intel SGX或AMD SEV或ARM Trustzone。
在另一方面,本说明书实施例还提供一种数据存储方法,应用于应用服务端中,如图3所示,图3为本说明书实施例所提供的应用服务端方面的数据存储方法的流程示意图,所述方法包括:
S301,获取携带用户标识的第一数据记录;
S303,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
S305,发送所述第二数据记录至数据库服务端。
对应的,本说明书实施例还提供一种数据存储装置,应用于应用服务端中,如图4所示,图4是本说明书实施例提供的一种数据存储装置的结构示意图,包括:
接收模块401,获取携带用户标识的第一数据记录;
生成模块403,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
发送模块405,发送所述第二数据记录至数据库服务端。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的数据存储方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和 总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的数据存储方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储 器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (15)

  1. 一种数据存储方法,应用于包括应用服务端和数据库服务端的系统中,所述方法包括:
    应用服务端,获取携带用户标识的第一数据记录;
    应用服务端,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
    应用服务端,发送所述第二数据记录至数据库服务端;
    数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
    数据库服务端,当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
    当N=1时,初始数据块的哈希值和块高基于预设方式给定;
    当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
  2. 如权利要求1所述的方法,数据库服务端,在确定待写入数据块中的各第二数据记录之前,所述方法还包括:
    根据用户标识确定对应的用户公钥,采用所述用户公钥对第二数据记录进行验证。
  3. 如权利要求1所述的方法,所述预设的成块条件包括:
    待存储的第二数据记录数量达到数量阈值;或者,
    距离上一次成块时刻的时间间隔达到时间阈值。
  4. 如权利要求1所述的方法,所述方法还包括:
    数据库服务端返回所述第二数据记录的哈希值至应用服务端;
    应用服务端转发第二数据记录的哈希值至所述用户标识所对应的第一客户端。
  5. 如权利要求1所述的方法,所述方法还包括:
    应用服务端,接收第二客户端所发送的包含第二数据记录的哈希值的查询请求,并转发所述查询请求至数据库服务端;
    数据库服务端,根据所述第二数据记录的哈希值查询得到对应的第二数据记录,并返回所述数据记录至应用服务端;
    应用服务端转发所述查询得到的第二数据记录至所述第二客户端,以便所述第二客户端采用第一客户端的公钥对所述第二数据记录进行解密验证。
  6. 如权利要求1所述的方法,所述可信执行环境包括Intel SGX或AMD SEV或ARM Trustzone。
  7. 一种数据存储系统,包括应用服务端和数据库服务端,在所述系统中,
    应用服务端,获取携带用户标识的第一数据记录;根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;发送所述第二数据记录至数据库服务端;
    数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
    当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
    当N=1时,初始数据块的哈希值和块高基于预设方式给定;
    当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
  8. 如权利要求7所述的系统,数据库服务端还用于,根据用户标识确定对应的用户公钥,采用所述用户公钥对第二数据记录进行验证。
  9. 如权利要求7所述的系统,在数据库服务端中,所述预设的成块条件包括:
    待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
  10. 如权利要求7所述的系统,
    数据库服务端返回所述第二数据记录的哈希值至应用服务端;应用服务端转发第二数据记录的哈希值至所述第一客户端。
  11. 如权利要求7所述的系统,
    应用服务端还用于,接收第二客户端所发送的包含第二数据记录的哈希值的查询请求,并转发所述查询请求至数据库服务端;
    相应的,数据库服务端还用于,根据所述第二数据记录的哈希值查询得到对应的第二数据记录,并返回所述数据记录至应用服务端;
    应用服务端转发所述查询得到的第二数据记录至所述第二客户端,以便所述第二客户端采用第一客户端的公钥对所述第二数据记录进行解密验证。
  12. 如权利要求7所述的系统,所述可信执行环境包括Intel SGX或AMD SEV或ARM Trustzone。
  13. 一种数据存储方法,应用于应用服务端中,所述方法包括:
    获取携带用户标识的第一数据记录;
    根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
    发送所述第二数据记录至数据库服务端。
  14. 一种数据存储装置,应用于应用服务端中,所述装置包括:
    接收模块,获取携带用户标识的第一数据记录;
    生成模块,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
    发送模块,发送所述第二数据记录至数据库服务端。
  15. 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求13所述的方法。
PCT/CN2020/071678 2019-05-31 2020-01-13 一种数据存储方法、装置及设备 WO2020238248A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/806,875 US10783277B2 (en) 2019-05-31 2020-03-02 Blockchain-type data storage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910473001.0A CN110245518A (zh) 2019-05-31 2019-05-31 一种数据存储方法、装置及设备
CN201910473001.0 2019-05-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/806,875 Continuation US10783277B2 (en) 2019-05-31 2020-03-02 Blockchain-type data storage

Publications (1)

Publication Number Publication Date
WO2020238248A1 true WO2020238248A1 (zh) 2020-12-03

Family

ID=67885755

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/071678 WO2020238248A1 (zh) 2019-05-31 2020-01-13 一种数据存储方法、装置及设备

Country Status (3)

Country Link
CN (1) CN110245518A (zh)
TW (1) TWI725709B (zh)
WO (1) WO2020238248A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245518A (zh) * 2019-05-31 2019-09-17 阿里巴巴集团控股有限公司 一种数据存储方法、装置及设备
US10783277B2 (en) 2019-05-31 2020-09-22 Alibaba Group Holding Limited Blockchain-type data storage
CN110688664B (zh) * 2019-09-25 2021-03-23 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的权限管理方法、装置及设备
CN111310208A (zh) * 2020-02-14 2020-06-19 云从科技集团股份有限公司 数据处理方法、系统、平台、设备及机器可读介质
CN111786779B (zh) * 2020-06-18 2022-03-18 中国电子科技集团公司第三十研究所 一种新的可问责安全数据共享系统和方法
CN111859467B (zh) * 2020-07-23 2024-03-26 中国工商银行股份有限公司 一种基于sgx的云数据完整性审计方法及装置
CN113468270A (zh) * 2021-02-07 2021-10-01 支付宝(杭州)信息技术有限公司 一种数据存储方法及系统
CN115345616A (zh) * 2022-10-18 2022-11-15 上海特高信息技术有限公司 一种区块链交易在线签名的安全执行装置及其工作方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962765B2 (en) * 2007-06-14 2011-06-14 Red Hat, Inc. Methods and systems for tamper resistant files
CN103685162A (zh) * 2012-09-05 2014-03-26 中国移动通信集团公司 文件存储和共享方法
CN105975870A (zh) * 2016-05-19 2016-09-28 上海点荣金融信息服务有限责任公司 数据脱敏方法和系统
CN106022154A (zh) * 2015-03-24 2016-10-12 株式会社特迈数据 数据库加密方法和数据库服务器
CN109635581A (zh) * 2018-12-12 2019-04-16 深圳市网心科技有限公司 一种数据处理方法、设备、系统及存储介质
CN110245518A (zh) * 2019-05-31 2019-09-17 阿里巴巴集团控股有限公司 一种数据存储方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106454528A (zh) * 2015-08-07 2017-02-22 阿里巴巴集团控股有限公司 基于可信执行环境的业务处理方法和客户端
DK3257191T3 (en) * 2016-02-23 2018-07-23 Nchain Holdings Ltd REGISTER AND AUTOMATIC PROCEDURE FOR MANAGING BLOCKCHAIN FORCED SMART CONTRACTS
KR20180089682A (ko) * 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법
CN106997439B (zh) * 2017-04-01 2020-06-19 北京元心科技有限公司 基于TrustZone的数据加解密方法、装置及终端设备
CN108055133B (zh) * 2017-12-12 2020-02-14 江苏安凰领御科技有限公司 一种基于区块链技术的密钥安全签名方法
CN109768865A (zh) * 2019-01-18 2019-05-17 深圳市威赫科技有限公司 可信执行环境下的区块链上身份数字化实现方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962765B2 (en) * 2007-06-14 2011-06-14 Red Hat, Inc. Methods and systems for tamper resistant files
CN103685162A (zh) * 2012-09-05 2014-03-26 中国移动通信集团公司 文件存储和共享方法
CN106022154A (zh) * 2015-03-24 2016-10-12 株式会社特迈数据 数据库加密方法和数据库服务器
CN105975870A (zh) * 2016-05-19 2016-09-28 上海点荣金融信息服务有限责任公司 数据脱敏方法和系统
CN109635581A (zh) * 2018-12-12 2019-04-16 深圳市网心科技有限公司 一种数据处理方法、设备、系统及存储介质
CN110245518A (zh) * 2019-05-31 2019-09-17 阿里巴巴集团控股有限公司 一种数据存储方法、装置及设备

Also Published As

Publication number Publication date
TW202046143A (zh) 2020-12-16
CN110245518A (zh) 2019-09-17
TWI725709B (zh) 2021-04-21

Similar Documents

Publication Publication Date Title
WO2020238248A1 (zh) 一种数据存储方法、装置及设备
TWI740388B (zh) 基於可信執行環境的操作記錄儲存方法、裝置及設備
TWI672648B (zh) 業務處理方法、裝置、資料共享系統及儲存介質
WO2020211496A1 (zh) 一种块链式账本中的签名验证方法、系统、装置及设备
US10116645B1 (en) Controlling use of encryption keys
US10783277B2 (en) Blockchain-type data storage
US11108573B2 (en) Blockchain ledger authentication
WO2020244236A1 (zh) 一种块链式账本的授时认证方法、装置及设备
US11283622B2 (en) Signature verification for a blockchain ledger
US10003467B1 (en) Controlling digital certificate use
WO2022161182A1 (zh) 基于数据流的可信计算的方法及装置
WO2020199708A1 (zh) 一种针对授时证书生成请求的监控方法、装置及设备
US10783054B2 (en) Method, apparatus, and device for storing operation record based on trusted execution environment
WO2020186457A1 (zh) 网络摄像机的认证方法和装置
WO2021000578A1 (zh) 一种块链式账本中的用户创建方法、装置及设备
CN111917696B (zh) 使用不可旁路的网关的基于tpm的安全多方计算系统
US11374898B1 (en) Use of partial hash of domain name to return IP address associated with the domain name
CN110851851B (zh) 一种块链式账本中的权限管理方法、装置及设备
TW201516748A (zh) 基於伺服器的登入系統、登入驗證伺服器及其驗證方法
CN111292082B (zh) 一种块链式账本中的公钥管理方法、装置及设备
US20240119168A1 (en) Blind subpoena protection
US20240114012A1 (en) Zero-trust distributed data sharing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20813693

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20813693

Country of ref document: EP

Kind code of ref document: A1