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.

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  200   a  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  202   a  includes the leading six characters, the tail  206   a  includes the trailing four, and the body  204   a  includes tokenized characters. 
         [0036]    As shown in  FIG. 2B , a token  200   b  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  202   b  includes the leading six characters, the body  204   b  includes six numeric characters, and the tail  206   b  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  200   c , 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  200   c  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.