U.S. patent application number 13/527860 was filed with the patent office on 2012-12-20 for key rotation and selective re-encryption for data security.
Invention is credited to Jason Chambers, Dameion Dorsner, Daniel Konisky, Sridhar Manickam, Theresa Robison.
Application Number | 20120321078 13/527860 |
Document ID | / |
Family ID | 47353665 |
Filed Date | 2012-12-20 |
United States Patent
Application |
20120321078 |
Kind Code |
A1 |
Chambers; Jason ; et
al. |
December 20, 2012 |
KEY ROTATION AND SELECTIVE RE-ENCRYPTION FOR DATA SECURITY
Abstract
Systems and methods for maintaining data security through
encryption key retirement and selective re-encryption are
presented. A method of selectively re-encrypting a subset of
encrypted values includes storing each encrypted value together
with the key profile number for the encryption key that was used to
generate that encrypted value. When a key is compromised, its
associated key profile number allows the efficient identification
of all the encrypted values that were created using the
now-compromised key. Once identified, the encrypted values may be
decrypted using the compromised key and re-encrypted using a new
key, without changing other related data such as the token
associated with the encrypted value.
Inventors: |
Chambers; Jason; (Dunwoody,
GA) ; Robison; Theresa; (Sandy Springs, GA) ;
Dorsner; Dameion; (Atlanta, GA) ; Manickam;
Sridhar; (Alpharetta, GA) ; Konisky; Daniel;
(Atlanta, GA) |
Family ID: |
47353665 |
Appl. No.: |
13/527860 |
Filed: |
June 20, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61499121 |
Jun 20, 2011 |
|
|
|
Current U.S.
Class: |
380/44 |
Current CPC
Class: |
G06F 15/173 20130101;
H04L 9/0891 20130101; G06F 21/00 20130101 |
Class at
Publication: |
380/44 |
International
Class: |
H04L 9/00 20060101
H04L009/00 |
Claims
1. A method of selectively re-encrypting a subset of encrypted data
values, for use in a data processing operation for protecting
sensitive data, said method comprising the computer-implemented
steps of: establishing a data store for storing a plurality of
records, wherein each record comprises an encrypted value
associated with original sensitive data, and a key profile number
associated with an encryption key that was used to generate said
encrypted value; identifying a compromised key and a compromised
key profile number associated therewith; generating a new key and a
new key profile number associated therewith; identifying in said
data store a subset of records, wherein said subset is
characterized by a key profile number that matches said compromised
key profile number, and for each record in said subset: (a)
de-encrypting said encrypted value using said compromised key to
reveal said original sensitive data; (b) re-encrypting said
original sensitive data using said new key to generate a new
encrypted data value; (c) replacing said encrypted value with said
new encrypted data value; and (d) replacing said compromised key
profile number with said new key profile number.
2. The method of claim 1, wherein each said record further
comprises a token value associated with said original sensitive
data, and wherein said method is executed without changing said
token value.
3. The method of claim 1, wherein said step of generating said new
key includes generating an activation date associated therewith,
and wherein said step of identifying occurs after said activation
date.
4. A method for activating a new encryption key on a future date,
for use in a data processing operation for protecting sensitive
data, said method comprising the computer-implemented steps of:
establishing a data processing operation comprising a key manager
for generating encryption keys, a token manager for encrypting
sensitive data, and a data vault for storing encrypted data;
establishing a key management data store, in communication with
said key manager, for storing a plurality of records, wherein each
record comprises an encryption key, a key profile number, and an
activation date; generating a new record, comprising a new
encryption key, a new key profile number, a new activation date;
and distributing said new record to said token manager for
implementation of said new encryption key and said new key profile
number upon reaching said activation date.
5. A method of encryption key retirement for use in a data
processing operation for protecting sensitive data, said method
comprising the computer-implemented steps of: establishing a data
processing operation comprising a key manager for generating
encryption keys, a token manager for encrypting sensitive data, and
a data vault for storing encrypted data; establishing a data store,
in communication with said data vault, for storing a plurality of
records, wherein each record comprises an encrypted value
associated with original sensitive data, and a key profile number
associated with an encryption key that was used to generate said
encrypted value; identifying a compromised key and a compromised
key profile number associated therewith; generating a new key and a
new key profile number associated therewith; identifying in said
data store a subset of records, wherein said subset is
characterized by a key profile number that matches said compromised
key profile number, and for each record in said subset: (a)
de-encrypting said encrypted value using said compromised key to
reveal said original sensitive data; (b) re-encrypting said
original sensitive data using said new key to generate a new
encrypted data value; (c) replacing said encrypted value with said
new encrypted data value; and (d) replacing said compromised key
profile number with said new key profile number.
6. The method of claim 5, wherein each said record further
comprises a token value associated with said original sensitive
data, and wherein said method is executed without changing said
token value.
7. The method of claim 5, wherein said step of generating said new
key includes generating an activation date associated therewith,
and wherein said step of identifying occurs after said activation
date.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of and priority to U.S.
Provisional Application No. 61/499,121, entitled "Token Manager for
Data Protection," filed Jun. 20, 2011, which is herein incorporated
by reference in its entirety.
TECHNICAL FIELD
[0002] The following disclosure relates generally to data security
applications and, more particularly, to systems and methods for
maintaining data security using certificate-based mutual
authentication.
BACKGROUND
[0003] The proliferation of business-critical and sensitive
electronic data creates a data security challenge, especially when
sensitive data is collected in geographically distant locations and
stored in multiple applications and databases for later
processing.
[0004] Data encryption uses an encryption key to encrypt the
sensitive data. The resulting encrypted data, sometimes called
cipher text, can be stored in a database. The encrypted data is
generally larger than the original value, requiring more space.
Storing the encryption key in the same place exposes the encrypted
data to easy decryption if the database is compromised.
[0005] In existing systems, when an encryption key is compromised
(corrupted or stolen, for example) the entire database of encrypted
data, row by row, must be checked to determine if that data is
linked in any way to the compromised encryption key. If so, that
data must be decrypted and re-encrypted. For encryption keys that
were used over long periods or for a large number of transactions,
there may be many thousands of data entries that were processed by
a key that is now compromised. Efforts at improving the recovery
from a compromised encryption key have been unsatisfactory.
SUMMARY
[0006] According to various embodiments, a method of selectively
re-encrypting a subset of encrypted data values, for use in a data
processing operation for protecting sensitive data, includes the
steps of: (1) establishing a data store for storing a plurality of
records, wherein each record comprises an encrypted value
associated with original sensitive data, and a key profile number
associated with an encryption key that was used to generate the
encrypted value; (2) identifying a compromised key and a
compromised key profile number associated therewith; (3) generating
a new key and a new key profile number associated therewith; (4)
identifying in the data store a subset of records, wherein the
subset is characterized by a key profile number that matches the
compromised key profile number, and (5) for each record in the
subset: (a) de-encrypting the encrypted value using the compromised
key to reveal the original sensitive data; (b) re-encrypting the
original sensitive data using the new key to generate a new
encrypted data value; (c) replacing the encrypted value with the
new encrypted data value; and (d) replacing the compromised key
profile number with the new key profile number.
[0007] In another aspect of the method, each record further
comprises a token value associated with the original sensitive
data, and the method is executed without changing the token
value.
[0008] In another aspect, the step of generating the new key
includes generating an activation date associated therewith, and
the step of identifying occurs after the activation date.
[0009] The method may also include activating a new encryption key
on a future date, which includes the steps of: (6) establishing a
data processing operation comprising a key manager for generating
encryption keys, a token manager for encrypting sensitive data, and
a data vault for storing encrypted data; (7) establishing a key
management data store, in communication with the key manager, for
storing a plurality of records, wherein each record comprises an
encryption key, a key profile number, and an activation date; (8)
generating a new record, comprising a new encryption key, a new key
profile number, a new activation date; and (9) distributing the new
record to the token manager for implementation of the new
encryption key and the new key profile number upon reaching the
activation date.
[0010] A method of encryption key retirement for use in a data
processing operation for protecting sensitive data, includes the
steps of: (1) establishing a data processing operation comprising a
key manager for generating encryption keys, a token manager for
encrypting sensitive data, and a data vault for storing encrypted
data; (2) establishing a data store, in communication with the data
vault, for storing a plurality of records, wherein each record
comprises an encrypted value associated with original sensitive
data, and a key profile number associated with an encryption key
that was used to generate the encrypted value; (3) identifying a
compromised key and a compromised key profile number associated
therewith; (4) generating a new key and a new key profile number
associated therewith; (5) identifying in the data store a subset of
records, wherein the subset is characterized by a key profile
number that matches the compromised key profile number, and (6) for
each record in the subset: (a) de-encrypting the encrypted value
using the compromised key to reveal the original sensitive data;
(b) re-encrypting the original sensitive data using the new key to
generate a new encrypted data value; (c) replacing the encrypted
value with the new encrypted data value; and (d) replacing the
compromised key profile number with the new key profile number.
[0011] In another aspect of this method, each record further
comprises a token value associated with the original sensitive
data, and wherein the method is executed without changing the token
value. The step of generating the new key includes generating an
activation date associated therewith, and wherein the step of
identifying occurs after the activation date.
BRIEF DESCRIPTION OF THE DRAWING
[0012] Having thus described various embodiments in general terms,
reference will now be made to the accompanying drawings, which are
not necessarily drawn to scale, and wherein:
[0013] FIG. 1 is an exemplary system architecture diagram,
according to particular embodiments.
[0014] FIG. 2A is an illustration of sensitive data and a
corresponding token, according to particular embodiments.
[0015] FIG. 2B is an illustration of sensitive data and a
corresponding token, according to particular embodiments.
[0016] FIG. 3 is an illustration of a portion of an exemplary data
store in a data vault, according to particular embodiments.
DETAILED DESCRIPTION
[0017] The present systems and apparatuses and methods are
understood more readily by reference to the following detailed
description, examples, drawing, and claims, and their previous and
following descriptions. However, before the present devices,
systems, and/or methods are disclosed and described, it is to be
understood that this invention is not limited to the specific
devices, systems, and/or methods disclosed unless otherwise
specified, as such can, of course, vary. It is also to be
understood that the terminology used herein is for the purpose of
describing particular aspects only and is not intended to be
limiting.
[0018] The following description is provided as an enabling
teaching in its best, currently known embodiment. To this end,
those skilled in the relevant art will recognize and appreciate
that many changes can be made to the various aspects described
herein, while still obtaining the beneficial results of the
technology disclosed. It will also be apparent that some of the
desired benefits can be obtained by selecting some of the features
while not utilizing others. Accordingly, those with ordinary skill
in the art will recognize that many modifications and adaptations
are possible, and may even be desirable in certain circumstances,
and are a part of the invention described. Thus, the following
description is provided as illustrative of the principles of the
invention and not in limitation thereof.
[0019] As used throughout, the singular forms "a," "an" and "the"
include plural referents unless the context clearly dictates
otherwise. Thus, for example, reference to "a" component can
include two or more such components unless the context indicates
otherwise.
[0020] Ranges can be expressed herein as from "about" one
particular value, and/or to "about" another particular value. When
such a range is expressed, another aspect includes from the one
particular value and/or to the other particular value. Similarly,
when values are expressed as approximations, by use of the
antecedent "about," it will be understood that the particular value
forms another aspect. It will be further understood that the
endpoints of each of the ranges are significant both in relation to
the other endpoint, and independently of the other endpoint.
[0021] As used herein, the terms "optional" or "optionally" mean
that the subsequently described event or circumstance may or may
not occur, and that the description includes instances where said
event or circumstance occurs and instances where it does not.
Exemplary Tokenization System
[0022] Aspects of this disclosure relate to systems and methods for
protecting and using sensitive data such as credit card numbers in
compliance with regulations and best practices. Although the
systems and methods are described herein primarily within the
context of credit card numbers, the technology described herein is
useful and applicable for protecting any type of sensitive data,
such as social security numbers, passport numbers, license numbers,
account numbers, payroll data, national health insurance numbers,
personally-identifiable information (PII) such as name and date of
birth, and the like.
[0023] FIG. 1 illustrates the architecture for an exemplary system
100, according to particular embodiments. The system 100 as shown
includes four distinct modules: a token manager 110, a key manager
120, a data vault 130, and a client/application 140.
[0024] The key manager 120 manages encryption keys that are used to
encrypt sensitive data and permit only authorized users to reveal
or otherwise access the sensitive data. The encryption keys may be
distributed to the token manager 110 for use in encryption and
decryption functions.
[0025] The token manager 110 is a central part of the system 100,
providing tokenization, encryption, client management, event
logging, and administrative functions. Tokenization describes the
process of receiving sensitive data and generating a token to be
used in its place. The token manager 110 generates the token,
encrypts the original sensitive data, and stores the encrypted data
(cipher text) in the data vault 130. The encrypted data is stored
only in the data vault 130. The token is a reference to the
encrypted data; there is no mathematical relationship between a
token and the encrypted data. Therefore, the token may be safely
used throughout the system 100, while the encrypted data it
represents remains stored in the data vault 130. The token manager
110 ensures that there is a one-to-one relationship between the
sensitive data and the generated token, so that referential
integrity is maintained throughout the system 100.
[0026] The data vault 130 is a depository such as a database for
storing the tokens and the encrypted data. The data vault does not
store the encryption key, which is stored and controlled using the
key manager 120. In particular embodiments, the data vault 130 may
store a key profile number or other pointer that indicates which
key was used to encrypt the data. The token manager 110 may use a
data access technology such as JDBC (Java Database Connectivity) to
communicate with the data vault 130.
[0027] The client or application 140 may be any of a variety of
applications or platforms involved in the collection, handling, or
processing of sensitive data. For example, the client/application
140 may be a financial application for processing or analyzing
payments received by a business enterprise. Another
client/application 140 may be a point-of-sale device such as a cash
register or payment card reader. In particular embodiments,
integration of client/applications 140 may be accomplished through
SOAP/web services. In this aspect, any application 140 that
supports web services can be integrated with the token manager 110
and may be configured to make calls to tokenize/encrypt sensitive
data or, if authorized, to decrypt/access the sensitive data.
[0028] As illustrated in FIG. 1, the system 100 may include other
modules depending on the implementation. For example, the system
100 may include a directory 150 includes a database for storing any
type of data useful in the system 100. For example, the directory
150 may include client IP addresses, hostnames, user identities,
client role definitions, client permissions and data access
policies, and the like. The token manager 110 may use LDAP or
another protocol for accessing and maintaining the directory
150.
[0029] The system 100 may also include an administrator 152 with
access to the token manager 110. The administrator 152 may use
HTTP/S or another secure protocol for communicating with the token
manager 110.
[0030] The token manager 110 and the key manager 120 may be
configured to generate security event messages via Syslog. These
logs can be directed to an event log 154 which may include an event
management application (SIEM) for logging, collecting, storing,
analyzing, and/or reporting events.
[0031] The token manager 110 may also be configured to send e-mail
alerts using an e-mail server 156 via SMTP or similar protocol. The
system 100 may also include a metadata store 158.
[0032] In use, the token manager 110, according to particular
embodiments, receives sensitive data from an application 140 along
with a request to protect it, generates a token, and inserts the
token in place of the sensitive data. The key manager 120 supplies
an encryption key to the token manager 110, which then encrypts the
sensitive data and stores the encrypted data (cipher text) in the
data vault 130. Tokens can be used safely in any application or
database without exposing the sensitive data.
[0033] When an application 140 or database requires the original
sensitive data, the application 140 transmits a request (by web
services call, for example) to the token manager 110 and presents
the token. The token manager 110 validates the credentials of the
requesting application and, if authorized, looks-up the token in
the data vault 130, identifies the matching cipher text, decrypts
the cipher text, and returns the original sensitive data back to
the application 140.
[0034] According to particular embodiments, the system 100 ensures
a one-to-one relationship between a token and the sensitive data it
represents. The data vault 130 contains a single encrypted version
of each original sensitive data. Even when encryption keys change
over time, there is only one instance of the encrypted value stored
in the data vault 130. In use, this means that the returned token
will consistently represent the same original data throughout the
system 100, in different applications and across multiple data
sets.
Token Characteristics
[0035] The token manager 110 in particular embodiments may be
configured to generate a token that is structurally similar in
length and format to that of the original sensitive data. For
example, as shown in FIG. 2A, a token 200a can be formatted to
preserve any number of leading and trailing characters found in the
original sensitive data 10. In the example shown, the head 202a
includes the leading six characters, the tail 206a includes the
trailing four, and the body 204a includes tokenized characters.
[0036] As shown in FIG. 2B, a token 200b can be formatted to
preserve both the length and the data type (alpha or numeric, and
the like) of the original sensitive data 10. In the example shown,
the head 202b includes the leading six characters, the body 204b
includes six numeric characters, and the tail 206b includes the
trailing four characters. Any number (including zero) of the
leading and/or trailing characters from the original sensitive data
10 may be preserved. The format-preserving tokenization process is
also described in the commonly owned and co-pending U.S. patent
application Ser. No. 13/040,133, entitled "System and Methods for
Format Preserving Tokenization of Sensitive Information," which is
herein incorporated by reference in its entirety.
[0037] The task of generating a token may be accomplished in one or
more steps performed by a token generation algorithm. As described
above, the token generation algorithm may be configured to generate
a token that is independent of at least a portion of the data in a
sensitive data string.
Key Versioning and Key Retirement
[0038] The key manager 120 in particular embodiments generates
encryption keys and, together with the token manager 110, controls
the usage of keys throughout the system 100. Keys can be changed
monthly, quarterly, annually--any time the user wants or needs to
change the encryption key currently in use. Key rotation can be
implemented, for example, when the current key is compromised,
corrupted, or otherwise not desirable. Key rotation is controlled
and administered by the key manager 120.
[0039] Key versioning allows the token manager 110 to automatically
use the current key for encryption--and to access the past key when
performing a decryption. In particular embodiments, the key manager
120 assigns a version number, called a key profile number, which
remains associated with a particular encryption key. The token
manager 110 maintains a record of which key profile number is
associated with each encrypted value. The data vault 130, in
particular embodiments, maintains a data store 600 that includes at
least a token 200c, the associated encrypted data 620, and the key
profile number 610 associated with the encryption key that was used
to create each item of encrypted data 620. A portion of such a data
store 600 is illustrated in FIG. 3.
[0040] The key profile number 610 allows any component accessing
the data store 600 in the data vault 130 to identify the encryption
key that was used to create any particular item of encrypted data
620. Even if the key is no longer in active use, the key profile
number 610 can be used to lookup the associated encryption key 620
(stored and maintained by the key manager 120) and perform a
decryption at any time.
[0041] Key versioning also allows users to create and distribute an
encryption key for use at a later date; a feature called effective
date key rotation. In particular embodiments, each encryption key
includes an associated key profile number 610 and an effective
date. The administrator 152 or other authorized user can generate a
new key and a new key profile number, and assign an effective date
in the future when the new key will be activated and available for
use. The new key can be distributed to the token manager 110, but
will not be used to encrypt data until the selected activation date
and time. The token manger 110 will automatically detect when the
activation date is reached, and will use the new key without any
further input or instruction from the key manager 120 or
administrator 152 to initiate the key rotation.
[0042] Key retirement is desired when an encryption key is
compromised, corrupted, stolen, or otherwise identified for
de-activation. The key profile number 610 allows the token manager
110 to de-activate or retire an encryption key so that it is never
used again. All the encrypted data associated with that key should
be decrypted and re-encrypted using a new key. This effort may
impact many thousands or millions of encrypted data entries,
depending on how long the compromised key was in active use. The
key profile number 610 allows the quick and effective
identification of every item of encrypted data 620 associated with
a compromised key.
[0043] For example, as illustrated in FIG. 3, the encryption key
associated with key profile number "1313" has been compromised. To
protect the sensitive data, all the encrypted data associated with
the compromised key profile 613 must be decrypted and re-encrypted,
using a new key. In particular embodiments, the key manager 120 or
token manager 100 (via a web-based graphical user interface,
typically) may access the data vault 130 where the data store 600
is maintained. Instead of searching line by line through the data
store 600, a simple query can be executed that will find all the
data associated with the compromised key profile 613. After this
subset of data is identified, the following steps will effectively
retire the compromised key. First, each item of encrypted data is
retrieved and decrypted using the compromised key. Next, each item
of data is re-encrypted using a new key, and the new encrypted data
is stored. Also, the compromised key profile 613 is removed, and
replaced with the new key profile number, which is also stored.
[0044] Notice that the tokenized data string 200c does not change,
even when its associated key is retired and replaced with a new
key. In this aspect, key versioning and key retirement help to
preserve the one-to-one relationship between the token and the data
value.
[0045] The system can perform a selective re-encryption of data
associated with any particular key profile number, or set of key
profile numbers, at any time, without generating a new token. The
re-encryption process may be configured to run in the background,
while all components and servers remain active, and without
interfering with continued operation of the system.
CONCLUSION
[0046] Although the systems and methods are described herein
primarily within the context of numerical data such as credit card
numbers, the technology described herein is useful and applicable
for protecting any type of sensitive data, such as social security
numbers, passport numbers, license numbers, account numbers,
payroll data, national health insurance numbers,
personally-identifiable information (PII) such as name and date of
birth, and the like. Moreover, although several embodiments have
been described herein, those of ordinary skill in art, with the
benefit of the teachings of this disclosure, will understand and
comprehend many other embodiments and modifications for this
technology. The invention therefore is not limited to the specific
embodiments disclosed or discussed herein, and that may other
embodiments and modifications are intended to be included within
the scope of the appended claims. Moreover, although specific terms
are occasionally used herein, as well as in the claims or concepts
that follow, such terms are used in a generic and descriptive sense
only, and should not be construed as limiting the described
invention or the claims that follow.
* * * * *