Key management is the administration of tasks involved in all aspects of cryptographic key usage in a cryptosystem. This includes dealing with the generation, distribution, exchange, storage, use, and replacement of keys. All aspects of security should be covered for the life-cycle of a key, from key generation to replacement, storage, or disposal. Each key must also be protected during its life-time to prevent unauthorized disclosure, modification, substitution, replay, and improper use. Likewise, the functions used in key management must be prevented from such unauthorized use.
There is no universal solution for key management that will work for all businesses and other types of institutions, companies, etc. Each system may have its own criteria for information security, including type of network topology, cryptographic services, and algorithms. Government and company rules and regulations also need to be taken into account. This requires tight coordination between encryption enabled storage devices and key management, in order for security policies to be effectively enforced.
There are many phases involved when designing and implementing a key management system. They could include cryptographic algorithm design (including modes of operation), protocol design, interaction with key servers, user procedures, implementation procedures, verification procedures, etc. Each of these phases should be thoroughly scrutinized and evaluated to ensure that the cryptographic mechanisms provide the desired security level.
The security of any cryptographic system is mostly dependent on the level of security provided by the keys themselves. Therefore, successful key management is critical to the security of the system. In practice, management of the keys is the most difficult aspect of cryptography, because it involves system policy, user training, organizational and departmental interactions, and coordination between all of these elements. The basic encryption and storage of keys is not hard, but getting the right keys to the authorized users and managing the lifecycle of the keys is the challenging part. The sheer volume of data transactions and distributions within storage media within large companies make key management a formidable task, because of the millions of keys that need to be generated, handled, protected, stored, replaced, and disposed of when needed. The fact the some companies use different encryption tools (possibly incompatible), make the management tasks even more formidable. Key management becomes even more difficult in a Cloud environment, where many other types of transactions can occur, and a third party is sometimes involved.
The main issues that must be faced when implementing a key management system are:
Since most modern security systems use a combination of symmetric, asymmetric, and possible hybrid methods for key usage, the requirements for key management functionality will vary depending on the method. In any case, the most important security measures that need to be considered when implementing a key management system include:
Some of the services that a key management system should provide to maintain these security measures include:
Several key distribution functions should be included in a key management system, which securely provide keys to parties requiring them.
Most other functions are used for key maintenance, which will preserve, protect and dispose of keys as needed.
(Key deletion and archival are also maintenance functions, but these are listed as states in the following list.)
In order to get a better idea of the functionality of a key management system, it’s important to know the various states that a symmetric key or public/private key pair can exist in. As functions are performed, keys will make a transition from one state to another. (Note that some key management systems may not use all of these states, and other systems may add additional states.)