The security of all encryption mechanisms ultimately comes down to whether the keys involved are correctly managed. In this sense, the encryption keys are often compared to a safe combination: no matter how secure the safe is, it is useless if thief gets the combination; and if the owner forgets the combination, the safe contents are irretrievable. Similarly, bad key management can have serious consequences for an organization. For example, if an encryption key is lost and there is no backup copy, the data encrypted with the key becomes unusable as it can not be recovered in clear text, resulting in a costly interruption to the business activity. If, on the other hand, access to the backup copy of a key (or the key itself) is not adequately controlled, the key could fall into the hands of unauthorized parties, which would leave all the data encrypted with key completely unprotected, no matter how strong the algorithms used are.
Increased Use of Encryption in Business
It is becoming more and more common for organizations to use encryption for protecting the data used in applications (Data-in-use protection) and saved in storage systems (Data-at-rest protection). The use of this technology is growing because of the following reasons:
- Greater exposure to risk of the data used by organizations. Firstly, the simple fact that the amount of data stored has increased makes this data more valuable and attractive to attackers. Especially when the legitimate obtaining of this data is costly, requires an infrastructure the attacker lacks or is just not possible. Secondly, to increase productivity, more and more corporate applications exploit the data stock. For example, the progressive automation of the workflows means that the data generated by the applications in one stage is used by the applications in following stages. This increases the exposure surface area of the data as there are more points in the infrastructure for attempting unauthorized access. Finally, the proliferation of portable devices (laptops, mobile phones, PDAs, USB memory drives) is seeing an exponential increase in the locations from which data is threatened, with the added problem that, owing to their very nature, these devices are very easy to steal or lose.
- The need to comply with the sector-specific laws and regulations that require the protection of confidentiality of certain data. Directive 95/46/CE of the European Parliament and Council establishes the obligation to protect the confidentiality of personal data. Likewise, the Payment Card Industry Data Security Standard (PCI DSS) requires the protection of card-owner data in all applications that process it.
From Local to Centralized Key Mangement
Up until recently, it was common practice to manually and locally manage the encryption keys used by the different applications (a database management system, a desktop system for encrypting files, automatic teller and point-of-sale system software). This was normally done using the key management functions of the applications or the key management tools of the cryptographic devices (HSM) these applications used. Managing keys in this way, known as silo-based key management, gives rise to serious problems (to the extent that it is unfeasible) when encryption mechanisms are used in a large number of corporate applications. The problems with this form (silo-based) of key management are that it is:
- Costly: It involves manually carrying out many procedures that can be automated. For example, the distributing of keys to different applications and their storage (or installation) in the operating environment in which they are to be used. Furthermore, the administrators have to familiarize themselves with the key management systems of all the applications and all the cryptographic devices used by the applications.
- Error-prone and, therefore, insecure: A great part of the key management policy, if not all of it, is applied manually with the consequent risk this involves. For example, making backup copies of the keys and the access control to these copies in recovery processes.
- Difficult to audit: The differences in applications and cryptographic devices make it extremely difficult to efficiently audit key management because, as it is managed locally, it is complicated to maintain a single and coherent event-log. In each node (application), the event log in normally compiled based on local criteria that differ from those used in other nodes (applications), which hinders incorporating the data in a central log.
- Difficult to regulate: Defining and applying policies (Policy Enforcement) is done locally (i.e., separately), meaning different management rules are defined and applied in each application.
To overcome these problems and facilitate the automation of key management, its control via corporate-wide policies and its effective auditing, the current trend is to make a clear distinction between key management functions-which are executed centrally-and the different applications in which the keys are used. This approach, in which all the symmetric keys are managed centrally, is known as Enterprise Key Management (EKM).
Deploying EKM with the TrustedX Key Custody Service
In brief, this involves making the management of encryption keys a security service that all the corporate applications that use it can access. This approach is completely in line with the nature and characteristics of TrustedX, which is, in fact, a platform that implements security functions that can be accessed as Web services (SOAP-HTTP, Restful HTTP). Specifically, it is the TrustedX Key Custody Service (TWS-SKM) that provides centralized key management, meaning TrustedX can be used as the main component in deploying a centralized key management system (EKM) in any organization.
The Architecture and Operation of the TrustedX Key Custody Service
TrustedX implements a symmetric key custody service. Key custody is the centralized management of all the encryption keys used by an organization's systems. The service can be used to centralize the generation, storage and access control of all the corporate encryption keys (Enterprise Key Management).
Centralizing the access control to the encryption keys means that, as an additional benefit, users are not responsible for distributing the keys to all the recipients that, because they belong to a certain trust circle, are authorized to read the data encrypted with the keys. The encryption keys are stored in the TrustedX custody service that assigns identifiers to them. From this moment on, it is the custody service that controls access to the keys, and, as a result, any user that wants to recover them must request it from the service.
This makes the access control to the encrypted data dynamic, as opposed to when it is the issuing user that distributes the encryption key. In this case, the issuer, on encrypting the key with the digital certificate of each of the recipients, implicitly defines a static access-control on the data protected with this key. Obviously, dynamic access-control is better than static access-control. Firstly, because the rights of access to the data of a certain confidence domain themselves change over time. For example, when members of staff change departments and their rights of access are changed. Secondly, because dynamic access-control does not depend on material that can expire, such as recipient certificates, that can reduces effectiveness over time.
Key custody is carried out using TWS-SKM as the main component (Figure 1?1). The keys in custody are stored in a database, encrypted with the key of a given custody policy, and each of them is associated to a resource registered in TrustedX. In this way, each custody policy defines a confidentiality domain formed by all the keys encrypted with the policy key and by all the data that in turn is encrypted by any one of them. The custody key is saved in the keystore of the policy to which it belongs and is based, normally, on an HSM device. Access to key custody operations (genkey, putkey, getkey) and access to the keys being protected is controlled by the TrustedX authentication and authorization service (authn, authz). Thus, key recovery is protected by a double access control: to recover a key that is being protected under a given policy, authorization must be obtained to run the getkey operation of the custody service and also to carry out the getkey action on the system resource associated to the key in question.
Key custody can also be used with the data encryption and decryption service (TWS-DE). For example, a request can be made to encrypt data with a specific symmetric key; it can also be specified in the request that this key be stored in the custody system. In this case, as well as carrying out the requested operation, the TrustedX encryption service internally requests the key custody service to store (putkey) the key used in the encryption and returns, to the client, the identifier assigned to this key. In the same way, a client can request the decryption of data and include in the request the identifier of the key in custody to be used for the operation so the decryption service can recover it by requesting it (getkey) from the key custody service in the client's name. Obviously, the key is only delivered if the client is authorized to access it; this is how access control on the encrypted data is achieved.