Access to blockchain data may be removed by deleting an encryption key held in a remote server. Incoming data is stored in the blockchain after being encrypted at the key server. An ordinary blockchain user gains access to the data, after forwarding the encrypted data to the remote key server for decryption. Upon receipt of an input (e.g., time stamp), the key server deletes the key. Thereafter, the encrypted data on the blockchain is rendered inaccessible to the ordinary blockchain data user. At no point, does the ordinary data user have access to the key stored in the remote server. Embodiments may find particular use in removing access to personal data stored in a blockchain following the elapse of a predetermined amount of time, as may be required by privacy laws. Granular control over data access can may be afforded through the use of composite keys and/or key hierarchies.
|
1. A method comprising:
receiving unencrypted data by a key server from a local source;
encrypting at least a portion of the unencrypted data with at least one composite key stored in a database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
storing the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receiving an input to the key server;
processing the input to remove access to the encrypted data in the block, wherein the processing comprises:
deleting the first key or a pointer to the first key of the at least one composite key at a first time; and
deleting the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected; and
wherein prior to receiving the input, receiving the encrypted data from the blockchain, decrypting the encrypted data, and upon receiving a hold instruction, storing a copy of the decrypted data in a hold database outside of the database on the key server and the blockchain.
14. A computer system comprising:
one or more processors; and
at least one non-transitory computer readable medium storing computer executable instructions that when executed by the one or more processors cause an in-memory database engine of an in-memory source database to:
receive unencrypted data by a key server from a local source;
encrypt at least a portion of the unencrypted data with at least one composite key stored in the in-memory source database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
store the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receive an input to the key server; and
process the input to remove access to the encrypted data in the block, wherein the processing comprises:
delete the first key or a pointer to the first key of the at least one composite key at a first time; and
delete the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected;
wherein prior to receiving the input, receive the encrypted data from the blockchain, decrypt the encrypted data using the at least one composite key, and communicate the decrypted data to a user of the blockchain.
10. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:
receiving unencrypted data by a key server from a local source;
encrypting at least a portion of the unencrypted data with at least one composite key stored in a database on the key server to create encrypted data, wherein the at least one composite key comprises a first key associated with a first subset of the encrypted data and a second key associated with a second subset of the encrypted data, wherein the first key and the second key are generated by the key server;
storing the encrypted data in a block of a blockchain, wherein the blockchain is remote from the key server;
receiving the encrypted data from the block of the blockchain;
decrypting the encrypted data using the at least one composite key;
communicating the decrypted data to a user of the blockchain;
receiving an input to the key server; and
processing the input to remove access to the encrypted data in the block, wherein the processing comprises:
deleting the first key or a pointer to the first key of the at least one composite key at a first time; and
deleting the second key or a pointer to the second key of the at least one composite key at a second time,
wherein the first time and the second time are independently selected;
wherein prior to receiving the input, receiving the encrypted data from the blockchain, decrypting the encrypted data, and upon receiving a hold instruction, storing a copy of the decrypted data in a hold database outside of the database on the key server and the blockchain.
2. The method as in
prior to receiving the input, receiving the encrypted data from the blockchain;
decrypting the encrypted data using the at least one composite key; and
communicating the decrypted data to a user of the blockchain.
5. The method as in
6. The method as in
the database comprises an in-memory database; and
the encryption is performed by an in-memory database engine of the in-memory database.
7. The method of
9. The method of
11. The non-transitory computer readable storage medium as in
12. The non-transitory computer readable storage medium of
13. The non-transitory computer readable storage medium of
15. The system of
a key server and a hold database located on a restricted side of the system limiting access to particular users, and
the blockchain located on an unrestricted side of the system allowing access to all users.
16. The computer system as in
17. The computer system of
|
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
A blockchain comprises a growing list of blocks, in which each block contains a cryptographic hash of the preceding block, a time stamp, and data content. The blockchain includes an unmodifiable ledger, ensuring reliability and imparting resistance to tampering. Specifically, modification of earlier parts of the chain will break this cryptographic link in the chain.
Under certain circumstances, however, it may be desirable to remove data from a blockchain. For example, privacy laws may impose strict time limitations on the storage of personal information. Moreover, under certain circumstances (e.g., a court order) it may be mandated to delete data from storage.
Access to data stored in a blockchain, may be removed by deleting an encryption key held in a server remote from the blockchain. Incoming data is stored in the blockchain after being encrypted at the key server. An ordinary data user of the blockchain gains access to the data after forwarding the encrypted data to the remote key server for decryption. Upon receipt of an input (e.g., time stamp), the key server deletes the key. Thereafter, the encrypted data on the blockchain is rendered inaccessible to the ordinary data user. At no point, does the ordinary data user have access to the key stored in the remote server. Embodiments may find particular use in removing access to personal data stored in a blockchain, as may be required following the elapse of a predetermined time period dictated by applicable privacy statutes. More granular control over access to blockchain data can be afforded through the use of composite keys and/or key hierarchies.
The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of various embodiments.
Described herein are methods and apparatuses that implement removal of access to blockchain data. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of embodiments according to the present invention. It will be evident, however, to one skilled in the art that embodiments as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
Key server 110 is located on a restricted side 112. This side 112 is deemed “restricted”, in the sense that the ordinary data user is limited to interacting with the key server to decrypt certain information from the blockchain. More intimate interaction with the key server, however, is limited to higher level users (such as administrators).
The engine is configured to receive a first input 114 comprising an intake of data. Access to at least a portion of that incoming data by the data user, is slated to be removed at some future time, as implemented according to embodiments described herein.
In particular, a processing engine 116 of the key server, is configured to recognize specific components of the incoming data as being subject to access removal. The engine is then configured to encrypt the data so recognized.
This encryption at the key server is performed according to key(s) 118 stored within key database 120. Then, the engine is configured to instruct the key server to communicate the encrypted data 122 for storage in block 104 of the blockchain.
As a part of everyday usage, the data user seeks the data stored in the blockchain (e.g., for purposes of analysis). For the unencrypted data of the blockchain, this is straightforward.
For blockchain data encrypted by the key server, however, the data user first needs to forward 124 that encrypted data to the key server. In response, the key server performs decryption according to the key, and returns 126 the decrypted data 128 to the data user for reference.
Importantly, at no point during the above process is the key itself available to the ordinary data user of the blockchain. Rather, the key remains securely held within the key server on the restricted side, where the process of data decryption is performed.
At some future point, a second input 130 is received by the key server. This second input triggers the removal of access to data by the ordinary data user.
According to some embodiments, the second input may be a specialized command or instruction. However this is not required.
In other embodiments, the second input may merely be a signal indicating the passage of relative or absolute time (e.g., a clock signal or a timestamp). Receipt of such temporal information may automatically provoke (e.g., via application of a ruleset of the key server) the removal of access to the encrypted data in the blockchain.
Specifically, following receipt of the second input, the engine deletes the key within the key server. Such removal can comprise removing the key from the key server, or deleting a pointer to the key.
As a result, the key is no longer available to the key server to respond to requests from the ordinary blockchain data user. Thus, the ordinary data user is no longer able to decrypt the encrypted data that is present in the blockchain. Ultimately, the end effect is to deny the ordinary user access to the actual content of the encrypted data in the blockchain.
Under specific circumstances (such as a court order), it may be necessary to preserve particular data of the blockchain. Accordingly, the restricted side further comprises a hold server 140.
Receipt of a third input 142—either by the key server (shown) or alternatively the hold server directly—can trigger storage of a copy 144 of specific data in decrypted form to a separate hold database 146. Within that hold database 146, the data can be securely preserved pending ultimate resolution of the hold order.
At 204, the data (or portion thereof) is recognized as being earmarked for future removal of access. At 206, the recognized data (or a recognized portion thereof) is encrypted according to key(s).
At 208, the encrypted data is stored in a blockchain. At 210, in response to a request from a user of the blockchain, the encrypted data is retrieved from the blockchain, decrypted, and sent to the blockchain user.
At 214, in response to an input received at 212, the key (or a pointer thereto) is deleted from the database.
Further details regarding removal of access to blockchain data according to embodiments, are now provided in connection with the following example.
The Human Capital Management (HCM) tool available from SAP SE of Walldorf, Germany, is useful for performing complex and detailed analysis of the Human Resources (HR) data available to an enterprise. The HR data stored in HCM may be accessible to a user through the SAP Business Connector (BC) infrastructure.
Under certain circumstances, it may be desirable to store HR information as a blockchain. But, government legislation—such as Germany's General Data Protection Regulation (GDPR)—may demand that personal data be purged after a certain time period. However, as described above the blockchain mechanism does not provide for the actual removal of data.
Accordingly, embodiments allow the personal HR data stored within the blockchain, to be rendered inaccessible by encrypting it with a random key stored in a central key server. At the time when the personal data is to be rendered inaccessible, the key is deleted. Without the key, the personal data can never again be read from the blockchain.
A random key 302 is generated at a keyserver 304 for each employee. The random key 302 is stored exclusively in the keyserver 304.
Within the block 308 of the blockchain, privacy-sensitive fields such as the employee ID 312 and the relevant data are encrypted with this random key. Access to the key server and the key stored therein, is limited to higher level users such as audit tools.
Upon receipt of instruction to purge personal HR data of the employee, it is only necessary to permanently delete the key on the keyserver. This will leave the blockchain intact, but render privacy-sensitive data for this employee unreadable thereafter.
Beyond the basic embodiment shown and described in connection with
Accordingly,
In the manner just described, a blockchain may be used to store personal or HCM data compliant with the requirements of applicable privacy legislation.
Further description of embodiments that recognize granularity for compliant access removal, is now provided. In particular, it may be desirable to maintain the ability to remove access to data as required by either legislation or court orders.
Under such an approach, data blocks inside a blockchain may be identifiable by:
Thus,
To allow for removal of access to this data, an encryption key approach may recognize at least the same granularity. For example, such an embodiment may account for at least the following types of access removal.
According to a process-based data schema, a data block could be identified by category/process, and include a list of employees with data. Data management requirements remain the same.
A block in such a blockchain would look like
Specifically, given the requirement to remove access either on a category basis or on an employee basis, a composite key is created. That composite key is made up of an employee key and a category key.
A specific example is now presented.
Here, for the German state of Baden-Wuerttemberg (BW), employee absence records need to be deleted after two years. The current date is March 2019.
One employee has a unique identifier (ID) of 123456. Another employee has a unique ID of 654321. These IDs are stored in a table together with a corresponding employee key.
Employee
Employee Key
123456
Koskd308u
654321
sdiojf78e7zh
The employee 123456 has two stored absence records: one for January 2019, and another for February, 2017. This absence information is stored in the following table, together with a corresponding absence key.
Absence
Country
State
Community
Category
Date
Key
Germany
BW
Stuttgart
Absence
2017 February
Asounen
Germany
BW
Stuttgart
Absence
2017 March
aso983h
Germany
BW
Stuttgart
Absence
2019 January
083ujrn
The composite key for accessing this absence data for these employees, will be a composition of the employee key and the absence keys for the time period (year-month):
Per a deletion run performed in March 2019, the entry in the second table with the category keys for 2017-02 for absences will be deleted. (It is older than two years). In this manner, absence data during this period in BW Germany will be not be recoverable for any employees.
Deletion of the absence key for 2017-02 results in:
Should all data for an employee need to be deleted, the entry in the first table will be deleted. This renders all keys pertaining to that employee unrecoverable. Thus if employee 123456 is deleted:
Certain embodiments may implement category and employee encryption in order to achieve the following two additional objectives.
For such encryption, the key scheme described in the example above can be used. The employee ID gets encrypted with the employee key, and the category ID gets encrypted with the category key.
Such an approach merely involves an additional encryption/decryption step in reading, searching, or writing.
In
Details regarding the key server according to certain embodiments, are now described. The key server accomplishes one or more particular objectives that can include but are not limited to:
An exemplary simplified data schema is shown in
Fields for the key schema of
Employee Keys according to this example are as follows:
Category Keys according to this example are as follows:
Various fields for the configuration of
Retention times fields are as follows:
The Categories table contains all valid categories (or processes). It is global: locally different retention times for the same category are configured in the retention times table.
The nature of the encryption keys stored on the keyserver according to this specific example, is now discussed. Encryption keys are randomly generated.
A predictable key generation schema (e.g. a category/date composite key, generated as “category key+date”) can be reconstructed and prevents destruction. Rather the basis of data access removal is that here, that the (random) keys follow no recognizable pattern, and after deletion cannot be recovered.
Embodiments may utilize a symmetrical cipher as an encryption procedure. A variety of standardized, secure ciphers (such as AES) are available.
Operation of the key server according to this specific example, is now discussed. The key server provides operations for the following functions:
Key generation and querying may be implemented as APIs. The performance of key destruction (runs) may be somewhat more complex. In particular, the key destruction function may utilize an appropriate UI that allows an operator to trace it, and to make deletion decisions.
The above functions of a keyserver are now detailed. For key request/generation for an insertion into a blockchain, in this context a new key will be generated if the data concerns a new employee, or a new date or locality for a category.
If a key already exists, the existing key will be returned. If a key does not already exist, a new key will be generated and returned. If a key does not exist but has an entry with a deletion flag, a new key will not be generated.
For querying, the keyserver accommodates the following use cases, with queries indicating if search results in deleted keys.
For key destruction, the process may be triggered manually or automatically (e.g., over certain time intervals). Typically, once a month may be sufficient for legal purposes. In one or both cases, human intervention and a destruction instruction may be necessary.
Given the existence of minimum and/or maximum retention times that may prescribe some freedom in what gets deleted, a destruction run may need to accomplish one or more of the following:
Security aspects are now discussed. Conventionally, “data destruction” may be executed by deleting records from a data base or a file system. However, this does not render those records inaccessible. On the file system level, all that is really deleted is the pointer to the data. That data itself can still be read with forensic tools, unless it has been repeatedly overwritten. If file servers are situated in-house, this is not a difficult thing to do.
By contrast, the embodiments as described herein avoid this issue. With a key server in the cloud, the file system is not accessible locally. While an operator of a data center might still have access to the hardware and forensic tools, such a data recovery scenario is less likely than the one described above.
As long as a secure encryption procedure is used and the key is sufficiently long, once the key is deleted on the keyserver, with the approach as described herein data cannot be read by anyone again.
It is noted that under some circumstances, data may need to be preserved from deletion, even after a time period prescribed by statute. One example of this is a legal hold on data destruction that may be imposed by a court.
Specifically, a legal hold needs to be enacted on a court order that requires the data of one or more employees to be maintained. According to a composite key approach as has been described herein, such a hold would preclude the destruction of category keys that would affect employees on hold, and with it, all other employees with data in those categories.
An alternative tack could be to generate a new key per employee and event. However, this would be inelegant, inefficient, and would require the generation and management of a large number of keys for an entity of even moderate size.
It is emphasized, however, that a legal hold event is by its nature typically a relatively extraordinary event that is limited in time and in scope (e.g., affecting only a few employees). Accordingly, embodiments as described herein may adopt an approach wherein information that is deemed subject to a legal hold, is copied and maintained in a separate, secure location pending resolution of the hold.
This legal hold server retrieves all affected employee data and related keys from the blockchain. The legal hold server then decrypts that information, and stores it in a secure database 1306. Ultimately, upon conclusion of the legal hold (e.g., resolution of the lawsuit), that data within the legal hold server is deleted.
The configuration of
The legal hold server and database ensures that regular data destruction in the blockchain is not affected, and can go on. Access to data in the blockchain of employees lacking any legal hold, will continue to be removed.
Once the legal hold for an employee is over and the data in the legal hold server is deleted, this employee's blockchain data will be compliant with applicable data destruction requirements without any additional further action being required. The manual intervention to implement data preservation for a legal hold event does not impose a significant burden, as a legal hold is a manual activity in its nature. That is, both the start and the end of a legal hold process is initiated by an individual upon receipt of a court order.
Returning now to
Rather, alternative embodiments could leverage the processing power of an in-memory database engine (e.g., the in-memory database engine of the HANA in-memory database available from SAP SE), in order to perform various functions, including but not limited to key creation, querying, and key destruction.
Thus
It is noted that rather than destroying the data in the blockchain, embodiments retain the data in a data block, but that data is thereafter inaccessible. This is inherent to the nature of a blockchain—which grows but does not shrink. Where such retention by the blockchain of the data in inaccessible form poses possible issues, the use of a storage structure other than a blockchain may be advisable.
An example computer system 1500 is illustrated in
Computer system 1510 may be coupled via bus 1505 to a display 1512, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device 1511 such as a keyboard and/or mouse is coupled to bus 1505 for communicating information and command selections from the user to processor 1501. The combination of these components allows the user to communicate with the system. In some systems, bus 1505 may be divided into multiple specialized buses.
Computer system 1510 also includes a network interface 1504 coupled with bus 1505. Network interface 1504 may provide two-way data communication between computer system 1510 and the local network 1520. The network interface 1504 may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links are another example. In any such implementation, network interface 1504 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
Computer system 1510 can send and receive information, including messages or other interface actions, through the network interface 1504 across a local network 1520, an Intranet, or the Internet 1530. For a local network, computer system 1510 may communicate with a plurality of other computer machines, such as server 1515. Accordingly, computer system 1510 and server computer systems represented by server 1515 may form a cloud computing network, which may be programmed with processes described herein. In the Internet example, software components or services may reside on multiple different computer systems 1510 or servers 1531-1535 across the network. The processes described above may be implemented on one or more servers, for example. A server 1531 may transmit actions or messages from one component, through Internet 1530, local network 1520, and network interface 1504 to a component on computer system 1510. The software components and processes described above may be implemented on any computer system and send and/or receive information across a network, for example.
The above description illustrates various embodiments of the present invention along with examples of how aspects of the present invention may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
10740732, | May 20 2015 | RIPPLE LUXEMBOURG S A | Resource transfer system |
11386415, | May 20 2015 | RIPPLE LUXEMBOURG S A | Hold condition in a resource transfer system |
11392944, | May 20 2015 | RIPPLE LUXEMBOURG S A | Transfer costs in a resource transfer system |
11481771, | May 20 2015 | RIPPLE LUXEMBOURG S A | One way functions in a resource transfer system |
9773119, | Feb 25 2015 | SAP SE | Parallel and hierarchical password protection on specific document sections |
20020035556, | |||
20020059331, | |||
20030093429, | |||
20060095795, | |||
20100169669, | |||
20140208115, | |||
20180060496, | |||
20190138633, | |||
20190228165, | |||
20190251558, | |||
20190279752, | |||
20190305932, | |||
20200162238, | |||
20210006400, | |||
20210184848, | |||
20210211271, | |||
20210216529, | |||
20210306139, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 13 2020 | SCHRAGE, JAN | SAP SE | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052812 | /0416 | |
Jun 02 2020 | SAP SE | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 02 2020 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Feb 20 2027 | 4 years fee payment window open |
Aug 20 2027 | 6 months grace period start (w surcharge) |
Feb 20 2028 | patent expiry (for year 4) |
Feb 20 2030 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 20 2031 | 8 years fee payment window open |
Aug 20 2031 | 6 months grace period start (w surcharge) |
Feb 20 2032 | patent expiry (for year 8) |
Feb 20 2034 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 20 2035 | 12 years fee payment window open |
Aug 20 2035 | 6 months grace period start (w surcharge) |
Feb 20 2036 | patent expiry (for year 12) |
Feb 20 2038 | 2 years to revive unintentionally abandoned end. (for year 12) |