US11520905B2 - Smart data protection - Google Patents
Smart data protection Download PDFInfo
- Publication number
- US11520905B2 US11520905B2 US16/689,122 US201916689122A US11520905B2 US 11520905 B2 US11520905 B2 US 11520905B2 US 201916689122 A US201916689122 A US 201916689122A US 11520905 B2 US11520905 B2 US 11520905B2
- Authority
- US
- United States
- Prior art keywords
- sensitive data
- encryption key
- key
- timestamp
- data type
- 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.)
- Active, expires
Links
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Definitions
- the present disclosure relates to software, and more specifically, to encryption of sensitive data in live memory.
- sensitive data may include personally identifying information (PII), health information, financial data, etc.
- PII personally identifying information
- many computerized applications that utilize sensitive data may encrypt the sensitive data when storing it in long-term storage, such as on a hard disk drive (HDD).
- HDD hard disk drive
- an example application may retrieve the encrypted data from storage, decrypt it, and then utilize the decrypted sensitive data to perform whatever operations are required (such as processing an online payment with a user's credit card information).
- Many typical computer systems may have the capability to generate a “memory dump,” which is often a compilation of some or all data stored in memory. For example, some systems may automatically dump contents of memory to a file when an application crashes or otherwise fails. The contents of the memory at the time of the crash may assist in discerning why the application failed. However, if sensitive data is being stored in memory at the time of the dump, it may be written to file as well, enabling unauthorized access or disclosure. Sophisticated attackers may take advantage of this to acquire sensitive data without access.
- the method may include receiving sensitive data, requesting an encryption key from a key manager, and receiving the encryption key.
- the encryption key may be associated with the sensitive data.
- the method may also include encrypting the sensitive data using the encryption key and writing the encrypted sensitive data to live memory. This advantageously encrypts the sensitive data before it is written to live memory.
- Some embodiments of the present disclosure can be illustrated as the method described above, with the additional step of retrieving the encrypted sensitive data from the memory.
- This method may also include requesting a decryption key from the key manager, where the decryption key is associated with the sensitive data, receiving the decryption key, and decrypting the encrypted sensitive data using the decryption key. This advantageously enables usage of sensitive data even if it is stored in live memory in an encrypted state.
- Some embodiments of the present disclosure can also be illustrated as a computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform the methods discussed above.
- a computer program product advantageously enhances security over the prior art by encrypting sensitive data before the data is written to live memory, increasing resilience to core dump or similar attacks.
- the system may comprise memory and a central processing unit (CPU).
- the CPU may be configured to receive sensitive data and determine an encryption key.
- the encryption key may be associated with the sensitive data.
- the CPU may also be configured to encrypt the sensitive data based on the encryption key and write the encrypted sensitive data to the live memory. This advantageously enables the system to store sensitive data in live memory in an encrypted state, increasing security and mitigating risks of a core dump or similar attack.
- Some embodiments of the present disclosure can be illustrated as a system such as the system described above, where the CPU is further configured to retrieve the encrypted sensitive data from memory and determine a decryption key.
- the decryption key may be associated with the sensitive data.
- the CPU may also be configured to decrypt the sensitive data using the decryption key. This advantageously enables usage of the sensitive data even if it is stored in an encrypted state in live memory.
- FIG. 1 illustrates a system for protecting sensitive data in live memory
- FIG. 2 illustrates a method for encrypting sensitive data before saving it to live memory
- FIG. 3 illustrates a method for retrieving sensitive data from live memory and decrypting it for use in operation
- FIG. 4 depicts a cloud computing environment according to an embodiment of the present disclosure
- FIG. 5 depicts abstraction model layers according to an embodiment of the present disclosure.
- FIG. 6 illustrates a high-level block diagram of an example computer system that may be used in implementing embodiments of the present disclosure.
- aspects of the present disclosure relate to a system and method to secure sensitive data in live memory. More particular aspects relate to a system to receive input of sensitive data and cause the sensitive data to be encrypted before it is saved to live memory to prevent unencrypted sensitive data from being stored in live memory.
- RAM random access memory
- attackers have become increasingly sophisticated, and may now be capable of determining values of variables stored in live memory.
- one method employed by attackers may include triggering a core dump, causing the contents of live memory to be written to a file. If sensitive data is stored unencrypted in live memory, such an operation may result in the unencrypted sensitive data becoming readily available to an attacker.
- live memory may refer to one or more non-transitory computer-readable storage media such as, for example, random access memory (RAM).
- RAM random access memory
- data received by a computing system may be stored in live memory for a period during which the computing system may require access to the data.
- sensitive data may refer to any data whose security is considered significant by an application developer, user, or proprietor.
- sensitive data may include: personally identifying information (PII) such as social security numbers, residential addresses, etc.; healthcare information such as medical history; and financial information such as credit card numbers, bank account numbers, salary information, etc. Maintaining security and integrity of sensitive data (for example, preventing unauthorized access to the sensitive data) may be considered paramount in many different fields.
- PII personally identifying information
- healthcare information such as medical history
- financial information such as credit card numbers, bank account numbers, salary information, etc. Maintaining security and integrity of sensitive data (for example, preventing unauthorized access to the sensitive data) may be considered paramount in many different fields.
- an “instance” of sensitive data refers to what the sensitive data represents (e.g., a bank password, a credit card number, a residential address, etc.) as opposed to the stored bits.
- a first “instance” of sensitive data may be a first user's bank password
- a second sensitive data instance may be the first user's residential address. If the first user's bank password is stored in multiple locations (for example, several different hard disk drives), for purposes of this disclosure these are all still referred to as the first “instance” of sensitive data.
- a second user's bank password is coincidentally identical to the first user's bank password, the second user's bank password is still referred to as a third “instance” of sensitive data.
- Encryption may include symmetric key encryption.
- the encryption may comply with one or more encryption standards including, for example, Advanced Encryption Standard (AES, such as AES-192, AES-256, etc.).
- Encryption includes one or more “keys,” which may be generated or stored by a key manager. Multiple encryption keys may be used; in some embodiments, encryption keys may be specific to particular categories (or “types”) of data.
- each instance of sensitive data may have its own unique key associated with that instance.
- encrypted data may be decrypted using the same key with which the data was encrypted.
- decryption may first involve transforming the original encryption key into a decryption key, then using the decryption key to decrypt the encrypted data.
- an encryption key being “associated with” an instance of sensitive data means that the encryption key is used to encrypt that instance of sensitive data, and a decryption key to decrypt that instance of sensitive data may be determined based on that encryption key.
- encryption keys are associated with each instance of sensitive data of a particular type. For example, a first encryption key may be associated with “credit card numbers,” in which case each instance of sensitive data of the type “credit card number” may be associated with the first encryption key.
- each instance of sensitive data may be associated with a distinct encryption key. For example, a first instance of sensitive data may be associated with a first encryption key, while a second instance of sensitive data may be associated with a second encryption key.
- association between keys and instances of sensitive data may be tracked, defined, or otherwise determined via an encryption key database, such as an array.
- an array of an encryption key database may include one or more rows, wherein each row identifies a type of sensitive data and any encryption key associated with that type of sensitive data. “Associated,” as used herein, is two-way; a key being associated with an instance of sensitive data can also be described by the statement that the instance of sensitive data is associated with the encryption key.
- protection of sensitive data may occur at the “code level.”
- “code level” may refer to a stage of software development and execution wherein source code is written and edited.
- sensitive data may be specified as a particular data type or object type in source code of an application.
- implementing this data protection at “code level” may involve a modification to an existing programming language, such as Java, C++, etc., to support the additional “sensitive” data type.
- An application may be compiled into computer-executable instructions, wherein executing those instructions may cause a computer system to perform one of the methods described in this disclosure.
- FIG. 1 illustrates a system 100 for protecting sensitive data in live memory consistent with embodiments of the present disclosure.
- System 100 includes central processing unit (CPU) 102 , encryption/decryption unit (EDU) 104 , key manager 106 and live memory 108 .
- EDU 104 and key manager 106 are included within CPU 102 .
- some components of system 100 such as, for example, key manager 106 , are located elsewhere on a machine or server blade, connected to CPU 102 and/or EDU 104 via one or more buses.
- CPU 102 sends the sensitive data to EDU 104 for encryption via an encryption key.
- EDU 104 may retrieve the encryption key from key manager 106 .
- key manager 106 may be configured to generate an encryption key.
- key manager 106 may store one or more encryption keys.
- one or more of the stored encryption keys may be preinstalled or otherwise originate from an external source (i.e., not generated directly by key manager 106 ).
- the sensitive data may be tagged as a particular type of sensitive data. For example, sensitive data may be linked to a tag that labels the sensitive data as a credit card number, a social security number, a residential address, etc.
- the tag may be received alongside the sensitive data when the sensitive data is first input to the system, at which point the instance of sensitive data may be linked to the tag such that, whenever the sensitive data is sent to another component, the tag is sent with it.
- key manager 106 may selected or generate an encryption key based on a type of sensitive data. For example, sensitive data identified as a credit card number type may be associated with a first encryption key, while sensitive data identified as a residential address type may be associated with a second, possibly different encryption key.
- CPU 102 may request a key directly from key manager 106 .
- key manager 106 receives a key request (including, in some embodiments, a sensitive data type), it determines, selects, or generates an encryption key based on the request (and, in some embodiments, based on the sensitive data type).
- Key manager 106 includes a database of encryption keys 112 .
- Encryption key database 112 may include a number of encryption keys associated with sensitive data.
- each key in encryption key database 112 may be associated with a specific type of sensitive data.
- a first encryption key stored in encryption key database 112 may be associated with credit card numbers
- a second encryption key stored in encryption key database 112 may be associated with residential addresses, and so on for various different types of sensitive data.
- some encryption keys may be used for more than one sensitive data type (for example, the first encryption key stored in encryption key database 112 may be associated with credit card numbers and with social security numbers).
- encryption key database 112 includes a list of sensitive data types and initially does not include any encryption keys, and when key manager 106 receives a request for an encryption key associated with a sensitive data type for which no encryption key is currently stored, key manager 106 may generate and store a new encryption key associated with the requested sensitive data type before returning the new encryption key to the requester.
- encryption key database 112 further includes a timestamp to identify an “age” for some or all encryption keys stored therein.
- each entry of encryption key database 112 includes a timestamp identifying the first date and time the corresponding encryption key was used to encrypt sensitive data.
- encryption keys are associated with multiple instances of sensitive data; in such cases, the timestamp may refer to the “oldest” date and time the corresponding encryption key was used to encrypt any instance of sensitive data with which it is associated.
- key manager 106 may compare a current time and date to the time and date identified in the timestamp to determine an age of the encryption key. Key manager 106 may further compare the age to a threshold age, wherein the threshold age may also be stored in encryption key database 112 . If the encryption key age is over the threshold, key manager 106 may update the encryption key. To update the key, key manager 106 may generate a new encryption key for the associated instance and update the timestamp to the current time and date. Key manager 106 may also return the new encryption key in response to the request. If the request is for a decryption key and key manager 106 determines that the associated encryption key is over the age threshold, key manager 106 may return the current (i.e., “old”) decryption key before updating the encryption key.
- some encryption keys may have different age thresholds than other encryption keys. For example, a “social security number” encryption key may have an age threshold of one year, while an “residential address” encryption key may have an age threshold of two years.
- key manager 106 may update multiple encryption keys stored in encryption key database 112 , even including keys not associated with a current request. For example, if key manager 106 receives a request for a “social security number” key and determines that the SSN key is over the SSN key age threshold, key manager 106 may update both the SSN key and an unrelated “residential address” key. In some embodiments, key manager 106 may return the new SSN key before updating other keys, while in some embodiments, key manager 106 may update multiple keys before returning the new requested key.
- some encryption keys may share an age threshold. For example, in some embodiments, a first key associated with a “credit card number” sensitive data type and a second key associated with a “residential address” sensitive data type may share an age threshold of one year, while a third key associated with a “social security number” sensitive data type may have an age threshold of three years. In some embodiments, all encryption keys may share the same age threshold. In some embodiments, the age threshold(s) may be based on a cryptographic standard such as, for example, AES-256.
- key manager 106 may store a different encryption key for each instance of sensitive data.
- an “instance” of sensitive data is used to describe a unit of sensitive data to be utilized and/or encrypted; a request to encrypt sensitive data is associated with a single “instance” of sensitive data.
- key manager 106 may receive an identifier to distinguish between sensitive data instances that have been encrypted before via system 100 and new sensitive data instances. For example, one or more of CPU 102 or EDU 104 may perform a hash function on the sensitive data and send the hash of the unencrypted sensitive data to key manager 106 , such that key manager 106 may store the hash of the sensitive data in encryption key database 112 .
- key manager 106 may determine if the sensitive data is identical to a previously-encountered sensitive data by comparing the received hash to the hashes stored in encryption key database 112 .
- each instance of sensitive data may be assigned an identifying number (e.g., “sensitive data 001,” “sensitive data 002,” and so on).
- key manager 106 may simply be sent the unencrypted sensitive data itself. Regardless of the identifier used, key manager 106 may store the encryption keys, sensitive data identifier, and/or key age for each instance of sensitive data in encryption key database 112 .
- Key manager 106 sends the encryption key either to CPU 102 or directly to EDU 104 . If key manager 106 sends the encryption key to CPU 102 , CPU 102 may send it, along with the sensitive data, to EDU 104 . EDU 104 uses the encryption key to encrypt the sensitive data into encrypted sensitive data 110 . EDU 104 may return encrypted sensitive data 110 to CPU 102 . CPU 102 may write encrypted sensitive data 110 to live memory 108 . Thus, the unencrypted sensitive data may not be written to or stored in live memory 108 , advantageously improving security of the sensitive data. If a dump of live memory 108 is triggered during operation of system 100 , the unencrypted sensitive data is not written to a file.
- FIG. 2 illustrates a method 200 for encrypting sensitive data before saving it to live memory.
- Method 200 is illustrated in a “swimlane diagram” format. This indicates that, unless otherwise noted, operations depicted in the “Central Processing Unit” lane are, in method 200 , performed by a CPU (such as, for example, CPU 102 ) and operations depicted in the “Encryption/Decryption Unit” lane are performed by an EDU (such as, for example, EDU 104 ).
- a CPU such as, for example, CPU 102
- EDU such as, for example, EDU 104
- Method 200 includes receiving sensitive data 206 . This may be in response to, for example, a user entering a credit card number into a system for later use in a financial transaction. Method 200 further includes sending the sensitive data to an EDU with instructions to encrypt the sensitive data 208 . In some embodiments, the instructions to encrypt the sensitive data may include information identifying a type of the sensitive data. Method 200 further includes fetching a key from a key manager 210 . This may include, for example, an EDU such as EDU 104 sending a request to a key manager such as key manager 106 . The request may include information related to the sensitive data, such as type-identifying information. The key manager may utilize this information in selecting, generating, or determining an encryption key.
- the key manager may select a key from a list of stored keys based on an identified type of the sensitive data. In some embodiments, the key manager may generate a new key based on the type of the data. In some embodiments, the key manager may generate a new key for every new instance of sensitive data. The key manager may then return the encryption key to the EDU. In some embodiments, a CPU may perform operation 210 , rather than an EDU.
- Method 200 further includes encrypting the sensitive data with the encryption key. This may be performed by, for example, an EDU such as EDU 104 .
- the sensitive data is encrypted via an established encryption standard such as, for example, AES-256.
- Method 200 further includes returning the encrypted sensitive data to the CPU 214 .
- Method 200 further includes writing the sensitive data to live memory 216 . This may include, for example, a CPU such as CPU 102 writing the encrypted sensitive data such as encrypted sensitive data 110 to memory such as live memory 108 , advantageously improving security over prior art systems.
- a tag is stored with the encrypted sensitive data. This tag may include, for example, sensitive data type information, a sensitive data instance identifier, a sensitive data hash, etc. The tag may be used later to determine a decryption key when decrypting the encrypted sensitive data, such as during method 300 described with reference to FIG. 3 , below.
- FIG. 3 illustrates a method 300 for retrieving sensitive data from live memory and decrypting it for use in operation.
- Method 300 is illustrated in a “swimlane diagram” format. This indicates that, unless otherwise noted, operations depicted in the “Central Processing Unit” lane are to be performed by a CPU (such as, for example, CPU 102 ) and operations depicted in the “Encryption/Decryption Unit” lane are to be performed by an EDU (such as, for example, EDU 104 ).
- a CPU such as, for example, CPU 102
- EDU such as, for example, EDU 104
- Method 300 includes receiving an instruction, the instruction requiring sensitive data 304 .
- This instruction may be, for example, a part of a financial transaction wherein the sensitive data includes a credit card number.
- Method 300 further includes retrieving encrypted sensitive data from live memory 306 .
- This may include, for example, a CPU such as CPU 102 retrieving encrypted sensitive data such as that written to live memory at operation 216 of FIG. 2 , from live memory 108 .
- Method 300 further includes sending the encrypted sensitive data to an EDU with instructions to decrypt the encrypted sensitive data 308 .
- the instructions to decrypt the encrypted sensitive data may include a tag, the tag including information to identify which instance of sensitive data is to be decrypted. The tag could identify a type of the sensitive data, an identifier or index associated with the sensitive data, a hash of the unencrypted sensitive data, etc.
- Method 300 further includes fetching a key from a key manager 310 .
- This may include, for example, an EDU such as EDU 104 sending a request to a key manager such as key manager 106 .
- the request may include information related to the sensitive data, such as type identifying information, a sensitive data identifier, etc.
- the key manager may utilize this information in selecting, generating, or determining a decryption key.
- the decryption key may be identical to an encryption key used to encrypt the sensitive data (such as during operation 212 of FIG. 2 ).
- the decryption key may be different from but based on the encryption key. This may depend upon the encryption method used when encrypting the sensitive data (such as during method 200 ).
- the decryption key may be stored in an encryption key database such as, for example, encryption key database 112 .
- the key manager may select a key from a list of stored keys based on an identified type of the sensitive data.
- the decryption key is never stored in the encryption key database, and instead is generated based on the stored encryption key each time the decryption key is requested.
- a new decryption key is generated based on the encryption key. The new decryption key may be stored in the encryption key database or it may be discarded once it is returned.
- the key manager may then return the decryption key to the EDU.
- a CPU may perform operation 310 , rather than an EDU.
- the key manager may return the decryption key to the CPU rather than the EDU.
- Method 300 further includes decrypting the sensitive data with the decryption key. This may be performed by, for example, an EDU such as EDU 104 . In some embodiments, the sensitive data may be decrypted according to an established encryption standard such as, for example, AES-256. Method 300 further includes returning the decrypted sensitive data to the CPU 314 . Method 300 further includes executing the instruction using the decrypted sensitive data 316 . This may include, for example, a CPU such as CPU 102 executing the instruction received at 304 using the decrypted sensitive data 316 . Method 300 advantageously enables usage of sensitive data even if it is encrypted while stored in live memory.
- a cloud computing environment is service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
- An infrastructure that includes a network of interconnected nodes.
- cloud computing environment 400 comprises one or more cloud computing nodes 410 with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone 440 A, desktop computer 440 B, laptop computer 440 C, and/or automobile computer system 440 N may communicate.
- Nodes 410 may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof.
- This allows cloud computing environment 400 to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device.
- computing devices 440 A-N shown in FIG. 4 are intended to be illustrative only and that computing nodes 410 and cloud computing environment 400 can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).
- FIG. 5 a set of functional abstraction layers provided by cloud computing environment 400 ( FIG. 4 ) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 5 are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
- Hardware and software layer 560 includes hardware and software components.
- hardware components include: mainframes 561 ; RISC (Reduced Instruction Set Computer) architecture based servers 562 ; servers 563 ; blade servers 564 ; storage devices 565 ; and networks and networking components 566 .
- software components include network application server software 567 and database software 568 .
- Virtualization layer 570 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 571 ; virtual storage 572 ; virtual networks 573 , including virtual private networks; virtual applications and operating systems 574 ; and virtual clients 575 .
- management layer 580 may provide the functions described below.
- Resource provisioning 581 provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment.
- Metering and Pricing 582 provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources may comprise application software licenses.
- Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources.
- User portal 583 provides access to the cloud computing environment for consumers and system administrators.
- Service level management 584 provides cloud computing resource allocation and management such that required service levels are met.
- Service Level Agreement (SLA) planning and fulfillment 585 provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA.
- SLA Service Level Agreement
- Workloads layer 590 provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation 591 ; software development and lifecycle management 592 ; virtual classroom education delivery 593 ; data analytics processing 594 ; transaction processing 595 ; and sensitive data encryption 596 .
- FIG. 6 shown is a high-level block diagram of an example computer system 600 that may be configured to perform various aspects of the present disclosure, including, for example, methods 200 and 300 .
- the example computer system 600 may be used in implementing one or more of the methods or modules, and any related functions or operations, described herein (e.g., using one or more processor circuits or computer processors of the computer), in accordance with embodiments of the present disclosure.
- the major components of the computer system 600 may comprise a CPU 102 with one or more CPU cores 604 , a memory subsystem 608 , a terminal interface 616 , a storage interface 618 , an I/O (Input/Output) device interface 620 , and a network interface 622 , all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 632 , an I/O bus 614 , and an I/O bus interface unit 612 .
- a CPU 102 with one or more CPU cores 604 , a memory subsystem 608 , a terminal interface 616 , a storage interface 618 , an I/O (Input/Output) device interface 620 , and a network interface 622 , all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 632 , an I/O bus 614 , and an I/O bus interface unit 612 .
- the computer system 600 may contain one or more general-purpose programmable central processing units (CPUs) 102 , some or all of which may include one or more cores 104 a , 104 b , and 104 n , herein generically referred to as the CPU 602 .
- the computer system 600 may contain multiple processors typical of a relatively large system; however, in other embodiments the computer system 600 may alternatively be a single CPU system.
- Each CPU 102 may execute instructions stored in the memory subsystem 608 on a CPU core 104 and may comprise one or more levels of on-board cache.
- the memory subsystem 608 may comprise a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing data and programs.
- the memory subsystem 608 may include live memory 108 .
- the memory subsystem 608 may represent the entire virtual memory of the computer system 600 and may also include the virtual memory of other computer systems coupled to the computer system 600 or connected via a network.
- the memory subsystem 608 may be conceptually a single monolithic entity, but, in some embodiments, the memory subsystem 608 may be a more complex arrangement, such as a hierarchy of caches and other memory devices.
- memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor or processors.
- Memory may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of various so-called non-uniform memory access (NUMA) computer architectures.
- NUMA non-uniform memory access
- the main memory or memory subsystem 608 may contain elements for control and flow of memory used by the CPU 102 . This may include a memory controller 610 .
- the memory bus 632 is shown in FIG. 6 as a single bus structure providing a direct communication path among the CPU 102 , the memory subsystem 608 , and the I/O bus interface 612
- the memory bus 632 may, in some embodiments, comprise multiple different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration.
- the I/O bus interface 612 and the I/O bus 614 are shown as single respective units, the computer system 600 may, in some embodiments, contain multiple I/O bus interface units 612 , multiple I/O buses 614 , or both.
- multiple I/O interface units are shown, which separate the I/O bus 614 from various communications paths running to the various I/O devices, in other embodiments some or all of the I/O devices may be connected directly to one or more system I/O buses.
- the computer system 600 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, the computer system 600 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, mobile device, or any other appropriate type of electronic device.
- FIG. 6 is intended to depict the representative major components of an exemplary computer system 600 . In some embodiments, however, individual components may have greater or lesser complexity than as represented in FIG. 6 , components other than or in addition to those shown in FIG. 6 may be present, and the number, type, and configuration of such components may vary.
- the present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- These computer readable program instructions may be provided to a processor of a computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the blocks may occur out of the order noted in the Figures.
- two blocks shown in succession may, in fact, be accomplished as one step, executed concurrently, substantially concurrently, in a partially or wholly temporally overlapping manner, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (14)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/689,122 US11520905B2 (en) | 2019-11-20 | 2019-11-20 | Smart data protection |
PCT/IB2020/060863 WO2021099960A1 (en) | 2019-11-20 | 2020-11-18 | Smart data protection |
US17/977,495 US20230080528A1 (en) | 2019-11-20 | 2022-10-31 | Smart data protection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/689,122 US11520905B2 (en) | 2019-11-20 | 2019-11-20 | Smart data protection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/977,495 Continuation US20230080528A1 (en) | 2019-11-20 | 2022-10-31 | Smart data protection |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210150038A1 US20210150038A1 (en) | 2021-05-20 |
US11520905B2 true US11520905B2 (en) | 2022-12-06 |
Family
ID=75909025
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/689,122 Active 2040-03-23 US11520905B2 (en) | 2019-11-20 | 2019-11-20 | Smart data protection |
US17/977,495 Pending US20230080528A1 (en) | 2019-11-20 | 2022-10-31 | Smart data protection |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/977,495 Pending US20230080528A1 (en) | 2019-11-20 | 2022-10-31 | Smart data protection |
Country Status (2)
Country | Link |
---|---|
US (2) | US11520905B2 (en) |
WO (1) | WO2021099960A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12105827B2 (en) | 2021-02-10 | 2024-10-01 | Bank Of America Corporation | System for secure obfuscation of electronic data with data format preservation |
US11907268B2 (en) * | 2021-02-10 | 2024-02-20 | Bank Of America Corporation | System for identification of obfuscated electronic data through placeholder indicators |
US11580249B2 (en) | 2021-02-10 | 2023-02-14 | Bank Of America Corporation | System for implementing multi-dimensional data obfuscation |
CN113688407A (en) * | 2021-07-30 | 2021-11-23 | 山东云海国创云计算装备产业创新中心有限公司 | Data management method and related device |
CN113992345B (en) * | 2021-09-13 | 2024-05-28 | 百度在线网络技术(北京)有限公司 | Webpage sensitive data encryption and decryption method and device, electronic equipment and storage medium |
CN113591135B (en) * | 2021-09-29 | 2022-05-06 | 清华大学 | Method and system for processing medical data |
CN113722695B (en) * | 2021-11-02 | 2022-02-08 | 佳瑛科技有限公司 | Cloud server-based financial data secure sharing method, device and system |
US20240380583A1 (en) * | 2023-05-11 | 2024-11-14 | Textron Innovations Inc. | Ephemeral Keys for Key Management Systems |
CN117077170A (en) * | 2023-08-21 | 2023-11-17 | 中国银行股份有限公司 | Data encryption method, device, equipment and medium |
CN118972131B (en) * | 2024-08-13 | 2025-03-11 | 广州视声智能股份有限公司 | Data security transmission method and system based on structured tags |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486014A (en) | 2002-09-24 | 2004-03-31 | 黎明网络有限公司 | Method for safe data transmission based on public cipher key architecture and apparatus thereof |
WO2006009616A2 (en) | 2004-06-16 | 2006-01-26 | Nec Laboratories America, Inc. | Memory encryption architecture |
US20080147992A1 (en) | 2006-12-05 | 2008-06-19 | Shlomo Raikin | Protecting Private Data from Cache Attacks |
US20120331284A1 (en) * | 2011-06-23 | 2012-12-27 | Microsoft Corporation | Media Agnostic, Distributed, and Defendable Data Retention |
WO2013002789A1 (en) | 2011-06-29 | 2013-01-03 | Intel Corporation | Method and apparatus for memory encryption with integrity check and protection against replay attacks |
CN103502994A (en) | 2011-05-10 | 2014-01-08 | 纳格拉影像股份有限公司 | Method for handling privacy data |
US20140075193A1 (en) | 2012-03-19 | 2014-03-13 | Donglin Wang | Storage method |
US9576147B1 (en) * | 2015-01-05 | 2017-02-21 | Amazon Technologies, Inc. | Security policy application through data tagging |
CN106485155A (en) | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | A kind of encryption method annotated based on field and equipment |
US20170134160A1 (en) | 2012-03-29 | 2017-05-11 | International Business Machines Corporation | Encrypting data |
US20170193031A1 (en) * | 2016-01-04 | 2017-07-06 | Netflix, Inc. | Techniques for performing data reconciliation in distributed data store systems |
US9749193B1 (en) | 2015-06-12 | 2017-08-29 | EMC IP Holding Company LLC | Rule-based systems for outcome-based data protection |
US9852303B2 (en) | 2014-02-28 | 2017-12-26 | International Business Machines Corporation | Protecting sensitive data in software products and in generating core dumps |
US20180011802A1 (en) | 2016-07-08 | 2018-01-11 | Hewlett Packard Enterprise Development Lp | Selective memory encryption |
CN107609418A (en) | 2017-08-31 | 2018-01-19 | 深圳市牛鼎丰科技有限公司 | Desensitization method, device, storage device and the computer equipment of text data |
JP2018055555A (en) | 2016-09-30 | 2018-04-05 | 日本電気株式会社 | Computer, core dump acquisition system, core dump acquisition device, core dump acquisition method and program |
US20180167204A1 (en) * | 2016-10-19 | 2018-06-14 | Index Systems, Inc. | Systems and methods for multi-region encryption/decryption redundancy |
WO2018213744A2 (en) | 2017-05-18 | 2018-11-22 | Visa International Service Association | Reducing compromise of sensitive data in virtual machine |
US20180357093A1 (en) * | 2016-08-11 | 2018-12-13 | Intel Corporation | Systems, Methods, And Apparatus For Securing Virtual Machine Control Structures |
US10169251B1 (en) * | 2015-12-10 | 2019-01-01 | Massachusetts Institute Of Technology | Limted execution of software on a processor |
US10298545B2 (en) | 2013-09-12 | 2019-05-21 | International Business Machines Corporation | Secure processing environment for protecting sensitive information |
CN110472445A (en) | 2019-07-02 | 2019-11-19 | 深圳市金泰克半导体有限公司 | Data guard method, device, solid state hard disk and storage medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423791B1 (en) * | 2009-08-07 | 2013-04-16 | Google Inc. | Location data quarantine system |
US9262760B2 (en) * | 2010-12-22 | 2016-02-16 | Gilbarco Inc. | Fuel dispensing payment system for secure evaluation of cardholder data |
US10210323B2 (en) * | 2016-05-06 | 2019-02-19 | The Boeing Company | Information assurance system for secure program execution |
-
2019
- 2019-11-20 US US16/689,122 patent/US11520905B2/en active Active
-
2020
- 2020-11-18 WO PCT/IB2020/060863 patent/WO2021099960A1/en active Application Filing
-
2022
- 2022-10-31 US US17/977,495 patent/US20230080528A1/en active Pending
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486014A (en) | 2002-09-24 | 2004-03-31 | 黎明网络有限公司 | Method for safe data transmission based on public cipher key architecture and apparatus thereof |
WO2006009616A2 (en) | 2004-06-16 | 2006-01-26 | Nec Laboratories America, Inc. | Memory encryption architecture |
US20080147992A1 (en) | 2006-12-05 | 2008-06-19 | Shlomo Raikin | Protecting Private Data from Cache Attacks |
CN103502994A (en) | 2011-05-10 | 2014-01-08 | 纳格拉影像股份有限公司 | Method for handling privacy data |
US20120331284A1 (en) * | 2011-06-23 | 2012-12-27 | Microsoft Corporation | Media Agnostic, Distributed, and Defendable Data Retention |
WO2013002789A1 (en) | 2011-06-29 | 2013-01-03 | Intel Corporation | Method and apparatus for memory encryption with integrity check and protection against replay attacks |
US20140075193A1 (en) | 2012-03-19 | 2014-03-13 | Donglin Wang | Storage method |
US20170134160A1 (en) | 2012-03-29 | 2017-05-11 | International Business Machines Corporation | Encrypting data |
US10298545B2 (en) | 2013-09-12 | 2019-05-21 | International Business Machines Corporation | Secure processing environment for protecting sensitive information |
US9852303B2 (en) | 2014-02-28 | 2017-12-26 | International Business Machines Corporation | Protecting sensitive data in software products and in generating core dumps |
US9576147B1 (en) * | 2015-01-05 | 2017-02-21 | Amazon Technologies, Inc. | Security policy application through data tagging |
US9749193B1 (en) | 2015-06-12 | 2017-08-29 | EMC IP Holding Company LLC | Rule-based systems for outcome-based data protection |
CN106485155A (en) | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | A kind of encryption method annotated based on field and equipment |
US10169251B1 (en) * | 2015-12-10 | 2019-01-01 | Massachusetts Institute Of Technology | Limted execution of software on a processor |
US20170193031A1 (en) * | 2016-01-04 | 2017-07-06 | Netflix, Inc. | Techniques for performing data reconciliation in distributed data store systems |
US20180011802A1 (en) | 2016-07-08 | 2018-01-11 | Hewlett Packard Enterprise Development Lp | Selective memory encryption |
US20180357093A1 (en) * | 2016-08-11 | 2018-12-13 | Intel Corporation | Systems, Methods, And Apparatus For Securing Virtual Machine Control Structures |
JP2018055555A (en) | 2016-09-30 | 2018-04-05 | 日本電気株式会社 | Computer, core dump acquisition system, core dump acquisition device, core dump acquisition method and program |
US20180167204A1 (en) * | 2016-10-19 | 2018-06-14 | Index Systems, Inc. | Systems and methods for multi-region encryption/decryption redundancy |
WO2018213744A2 (en) | 2017-05-18 | 2018-11-22 | Visa International Service Association | Reducing compromise of sensitive data in virtual machine |
CN107609418A (en) | 2017-08-31 | 2018-01-19 | 深圳市牛鼎丰科技有限公司 | Desensitization method, device, storage device and the computer equipment of text data |
CN110472445A (en) | 2019-07-02 | 2019-11-19 | 深圳市金泰克半导体有限公司 | Data guard method, device, solid state hard disk and storage medium |
Non-Patent Citations (4)
Title |
---|
Christian Priebe ⋅ Kapil Vaswani ⋅ Manuel Costa; EnclaveDB: A Secure Database Using SGX; 2018 IEEE Symposium on Security and Privacy (SP) (pp. 264-278); (Year: 2018). * |
Mell et al., "The NIST Definition of Cloud Computing," Recommendations of the National Institute of Standards and Technology, U.S. Department of Commerce, Special Publication 800-145, Sep. 2011, 7 pages. |
Shay Gueron; Memory Encryption for General-Purpose Processors; IEEE Security & Privacy (vol. 14, Issue: 6, pp. 54-62); (Year: 2017). * |
Vasily Sartakov ⋅ Nico Weichbrodt ⋅ Sebastian Krieter ⋅ Thomas Leich ⋅ Rudiger Kapitza; STANlite—A Database Engine for Secure Data Processing at Rack-Scale Level; 2018 IEEE International Conference on Cloud Engineering (IC2E) (pp. 23-33); (Year: 2018). * |
Also Published As
Publication number | Publication date |
---|---|
US20230080528A1 (en) | 2023-03-16 |
WO2021099960A1 (en) | 2021-05-27 |
US20210150038A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230080528A1 (en) | Smart data protection | |
US11362815B2 (en) | Trusted data transmission methods, apparatuses, and devices | |
US10826881B2 (en) | Location-enforced data management in complex multi-region computing | |
US10614233B2 (en) | Managing access to documents with a file monitor | |
US10594481B2 (en) | Replicated encrypted data management | |
US11489660B2 (en) | Re-encrypting data on a hash chain | |
US11750652B2 (en) | Generating false data for suspicious users | |
US11354448B2 (en) | Demand trusted device-based data acquisition methods, apparatuses, and devices | |
KR20140099325A (en) | System and method for key management for issuer security domain using global platform specifications | |
US10536276B2 (en) | Associating identical fields encrypted with different keys | |
US11575499B2 (en) | Self auditing blockchain | |
US11531628B2 (en) | Protecting cache accesses in multi-tenant processing environments | |
US11677549B2 (en) | Maintaining confidentiality in decentralized policies | |
US8948381B2 (en) | Conditional key generation based on expiration date of data | |
US11995197B2 (en) | Sensitive data encryption | |
US20220004651A1 (en) | Management of computing secrets | |
US11907405B2 (en) | Secure data storage device access control and sharing | |
US20250094618A1 (en) | Virtual keys for column dataset access management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VALECHA, VINOD A.;RUDEK, KRZYSZTOF;SZCZEPANIK, GRZEGORZ PIOTR;AND OTHERS;SIGNING DATES FROM 20191030 TO 20191031;REEL/FRAME:051057/0991 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
AS | Assignment |
Owner name: KYNDRYL, INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:058213/0912 Effective date: 20211118 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |