Key management
Key management is the management of cryptographic keys in a cryptosystem. This includes dealing with the generation, exchange, storage, use, and replacement of keys. It includes cryptographic protocol design, key servers, user procedures, and other relevant protocols.[1]
Key management concerns keys at the user level, either between users or systems. This is in contrast to key scheduling; key scheduling typically refers to the internal handling of key material within the operation of a cipher.
Successful key management is critical to the security of a cryptosystem. In practice it is arguably the most difficult aspect of cryptography because it involves system policy, user training, organizational and departmental interactions, and coordination between all of these elements.
Types of keys
Cryptographic systems may use different types of keys, with some systems using more than one. These may include symmetric keys or asymmetric keys. In a symmetric key algorithm the keys involved are identical for both encrypting and decrypting a message. Keys must be chosen carefully, and distributed and stored securely. Asymmetric keys, in contrast, are two distinct keys that are mathematically linked. They are typically used in conjunction to communicate.
Key exchange
Prior to any secured communication, users must set up the details of the cryptography. In some instances this may require exchanging identical keys (in the case of a symmetric key system). In others it may require possessing the other party's public key. While public keys can be openly exchanged (their corresponding private key is kept secret), symmetric keys must be exchanged over a secure communication channel. Formerly, exchange of such a key was extremely troublesome, and was greatly eased by access to secure channels such as a diplomatic bag. Clear text exchange of symmetric keys would enable any interceptor to immediately learn the key, and any encrypted data.
The advance of public key cryptography in the 1970s has made the exchange of keys less troublesome. Since the Diffie-Hellman key exchange protocol was published in 1975, it has become possible to exchange a key over an insecure communications channel, which has substantially reduced the risk of key disclosure during distribution. It is possible, using something akin to a book code, to include key indicators as clear text attached to an encrypted message. The encryption technique used by Richard Sorge's code clerk was of this type, referring to a page in a statistical manual, though it was in fact a code. The German Army Enigma symmetric encryption key was a mixed type early in its use; the key was a combination of secretly distributed key schedules and a user chosen session key component for each message.
In more modern systems, such as OpenPGP compatible systems, a session key for a symmetric key algorithm is distributed encrypted by an asymmetric key algorithm. This approach avoids even the necessity for using a key exchange protocol like Diffie-Hellman key exchange.
Another method of key exchange involves encapsulating one key within another. Typically a master key is generated and exchanged using some secure method. This method is usually cumbersome or expensive (breaking a master key into multiple parts and sending each with a trusted courier for example) and not suitable for use on a larger scale. Once the master key has been securely exchanged, it can then be used to securely exchange subsequent keys with ease. This technique is usually termed Key Wrap. A common technique uses Block ciphers and cryptographic hash functions.[2]
A related method is to exchange a master key (sometimes termed a root key) and derive subsidiary keys as needed from that key and some other data (often referred to as diversification data). The most common use for this method is probably in SmartCard based cryptosystems, such as those found in banking cards. The bank or credit network embeds their secret key into the card's secure key storage during card production at a secured production facility. Then at the Point of sale the card and card reader are both able to derive a common set of session keys based on the shared secret key and card-specific data (such as the card serial number). This method can also be used when keys must be related to each other (i.e., departmental keys are tied to divisional keys, and individual keys tied to departmental keys). However, tying keys to each other in this way increases the damage which may result from a security breach as attackers will learn something about more than one key. This reduces entropy, with regard to an attacker, for each key involved.
Key storage
However distributed, keys must be stored securely to maintain communications security. Security is a big concern [3] and hence there are various techniques in use to do so. Likely the most common is that an encryption application manages keys for the user and depends on an access password to control use of the key. Likewise, in the case of smartphone keyless access platforms, they keep all identifying door information off mobile phones and servers and encrypts all data, where just like low-tech keys, users give codes only to those they trust.[3]
Key use
The major issue is length of time a key is to be used, and therefore frequency of replacement. Because it increases any attacker's required effort, keys should be frequently changed. This also limits loss of information, as the number of stored encrypted messages which will become readable when a key is found will decrease as the frequency of key change increases. Historically, symmetric keys have been used for long periods in situations in which key exchange was very difficult or only possible intermittently. Ideally, the symmetric key should change with each message or interaction, so that only that message will become readable if the key is learned (e.g., stolen, cryptanalyzed, or social engineered).
Public Key Infrastructure (PKI)
A public key infrastructure is a type of key management system that uses hierarchical digital certificates to provide authentication, and public keys to provide encryption. PKIs are used in World Wide Web traffic, commonly in the form of SSL and TLS.
Key Management System Security Policy
A Key Management System Security Policy provides the rules that are to be used to protect keys and metadata that the key management system supports. As defined by the National Institute of Standards and Technology NIST, the policy shall establish and specify rules for this information that will protect its:[4]
- Confidentiality
- Integrity
- Availability
- Authentication of source[5]
This protection covers the complete key life-cycle from the time the key becomes operational to its elimination.[1]
Key Management Compliance
Key management compliance refers to the oversight, assurance and capability of being able to demonstrate that keys are securely managed. This includes the following individual compliance domains:
- Physical security – the most visible form of compliance, which may include locked doors to secure system equipment and surveillance cameras. These safeguards can prevent unauthorized access to printed copies of key material and computer systems that run key management software.
- Logical security – protects the organization against the theft or unauthorized access of information. This is where the use of cryptographic keys comes in by encrypting data, which is then rendered useless to those who do not have the key to decrypt it.
- Personnel security – this involves assigning specific roles or privileges to personnel to access information on a strict need-to-know basis. Background checks should be performed on new employees along with periodic role changes to ensure security.[1][4]
Enterprise Key and Certificate Management (EKCM)
The starting point in any certificate and private key management strategy is to create a comprehensive inventory of all certificates, their locations and responsible parties. This is not a trivial matter because certificates from a variety of sources are deployed in a variety of locations by different individuals and teams - it's simply not possible to rely on a list from a single certificate authority. Certificates that are not renewed and replaced before they expire can cause serious downtime and outages. Some other considerations:
- Regulations and requirements, like PCI-DSS, demand stringent security and management of cryptographic keys and auditors are increasingly reviewing the management controls and processes in use.
- Private keys used with certificates must be kept secure or unauthorised individuals can intercept confidential communications or gain unauthorised access to critical systems. Failure to ensure proper segregation of duties means that admins who generate the encryption keys can use them to access sensitive, regulated data.
- If a certificate authority is compromised or an encryption algorithm is broken, organizations must be prepared to replace all of their certificates and keys in a matter of hours.
Multicast Group Key Management
Group Key Management means managing the keys in a group communication. Most of the group communications use multicast communication so that if the message is sent once by the sender, it will be received by all the users. The main problem in multicast group communication is its security. In order to improve the security, various keys are given to the users. Using the keys, the users can encrypt their messages and send them secretly.
Challenges
Several challenges IT organizations face when trying to control and manage their encryption keys are:
- Complex Management: Managing a plethora of encryption keys in the millions.
- Security Issues: Vulnerability of keys from outside hackers/malicious insiders.
- Data Availability: Ensuring data accessibility for authorized users.
- Scalability: Supporting multiple databases, applications and standards.
- Governance: Defining policy driven, access, control and protection for data.[6]
Key management solution
A key management solution (KMS) is an integrated approach for generating, distributing and managing cryptographic keys for devices and applications. Compared to the term key management, a KMS is tailored to specific use-cases such as secure software update or machine-to-machine communication. In an holistic approach, it covers all aspects of security - from the secure generation of keys over the secure exchange of keys up to secure key handling and storage on the client. Thus, a KMS includes the backend functionality for key generation, distribution, and replacement as well as the client functionality for injecting keys, storing and managing keys on devices. With the Internet of Things, KMS becomes a crucial part for the security of connected devices.
Key management systems
The following key management systems exist as open source or proprietary software.
Open source
- Barbican, the OpenStack security API.
- KeyBox - web-based SSH access and key management.[7]
- EPKS - Echo Public Key Share, system to share encryption keys online in a p2p community.[8]
- Kmc-Subset137[9] - key management system implementing UNISIG Subset-137 [10] for ERTMS/ETCS railway application.
- privacyIDEA - Two factor management with support for managing SSH keys.[11]
- StrongKey - open source, last updated on Sourceforge in 2013.[12]
- Vault - secret server from HashiCorp.[13]
Proprietary
- Amazon Web Service (AWS) Key Management Service (KMS) [14]
- Bell ID Key Manager[15]
- Cryptomathic Key Management System [16]
- Cryptsoft KMIP C and Java Servers[17]
- Fornetix Key Orchestration[18]
- Futurex Key Management [19]
- Gazzang zTrustee[20]
- HP Enterprise Secure Key Manager[21]
- IBM Distributed Key Management System (DKMS)[22]
- IBM Enterprise Key Management Foundation[23]
- IBM Tivoli Key Lifecycle Manager[24]
- Microsoft Azure Key Vault [25]
- Oracle Key Manager[26]
- Porticor Virtual Private Data[27]
- QuintessenceLabs qCrypt Key and Policy Manager[28]
- RSA Data Protection Manager[29]
- Safenet Enterprise Key Management[30]
- SSH Communications Security Universal SSH Key Manager [31]
- Thales Key Management[32]
- Townsend Security Alliance Key Manager[33]
- Venafi Trust Protection Platform[34]
- Vormetric Data Security Platform[35]
- P6R KMIP Client SDK[36]
See also
- Key ceremony
- Key derivation function
- Key encapsulation
- Physical key management
- Keystore
- KMIP
- KSD-64
- List of cryptographic key types
- NSA's Electronic Key Management System (EKMS)
- Pseudorandom function family
- Public key infrastructure
- Dynamic secrets
References
- 1 2 3 Turner, Dawn M. "What Is Key Management? A CISO Perspective". Cryptomathic. Retrieved 30 May 2016.
- ↑ Pressestelle Ruhr-Universität Bochum - Online-Redaktion. "Startseite - Ruhr-Universität Bochum" (in German). Crypto.rub.de. Retrieved 2013-08-06.
- 1 2 "An ancient technology gets a key makeover". Crain's New York Business. Crain's New York. Retrieved 19 May 2015.
- 1 2 Reinholm, James H. "Simplifying the Complex Process of Auditing a Key Management System for Compliance". Cryptomathic. Retrieved 30 May 2016.
- ↑ Barker, Elaine; Smid, Miles; Branstad, Dennis; Chokhani, Santosh. "NIST Special Publication 800 -130: A Framework for Designing Cryptographic Key Management Systems" (PDF). National Institute of Standards and Technology. Retrieved 30 May 2016.
- ↑ "Security Policy and Key Management: Centrally Manage Encryption Key". Slideshare.net. 2012-08-13. Retrieved 2013-08-06.
- ↑ http://sshkeybox.com/
- ↑ https://en.wikibooks.org/wiki/Big_Seven_Study
- ↑ http://www.kmc-subset137.eu/
- ↑ http://www.era.europa.eu/Document-Register/Documents/SUBSET-137%20v100.pdf
- ↑ http://privacyidea.org
- ↑ http://sourceforge.net/projects/strongkey/
- ↑ http://vaultproject.io/
- ↑ https://aws.amazon.com/kms/
- ↑ "Key Management System". Bell ID. Retrieved 2014-01-17.
- ↑ Landrock, Peter. "Cryptomathic Key Management System". http://www.cryptomathic.com/. Cryptomathic. Retrieved April 20, 2015. External link in
|website=
(help) - ↑ "Cryptsoft". Cryptsoft. Retrieved 2013-08-06.
- ↑ =http://fornetix.com/products/
- ↑ "Futurex Key Management Servers". Futurex.com. Retrieved 2016-08-18.
- ↑ "Gazzang zTrustee". Gazzang.com. 1970-01-01. Retrieved 2013-08-06.
- ↑ United States. "Data Encryption - Enterprise Secure Key Manager | HP® Official Site". H17007.www1.hp.com. Retrieved 2013-08-06.
- ↑ "IBM Enterprise Key Management Foundation (EKMF)". 03.ibm.com. Retrieved 2013-08-06.
- ↑ http://public.dhe.ibm.com/common/ssi/ecm/en/zss03081usen/ZSS03081USEN.PDF
- ↑ "IBM - Tivoli Key Lifecycle Manager - United States". 01.ibm.com. Retrieved 2013-08-06.
- ↑ https://azure.microsoft.com/en-us/documentation/articles/key-vault-whatis/
- ↑ "Key Manager | Storage". Oracle. Retrieved 2013-08-06.
- ↑ "About Virtual Private Data". Porticor.com. Retrieved 2013-08-06.
- ↑ "qCrypt". Quintessencelabs.com. Retrieved 2016-04-01.
- ↑ "RSA Data Protection Manager - Data Encryption, Key Management". EMC. 2013-04-18. Retrieved 2013-08-06.
- ↑ "Key Management Solutions by SafeNet: Protect & Manage Cryptographic Keys". Safenet-inc.com. Retrieved 2013-08-06.
- ↑ http://www.ssh.com/products/universal-ssh-key-manager
- ↑ "Key Management: keyAuthority - a proven solution for centralizing key management". Thales-esecurity.com. Retrieved 2013-08-06.
- ↑ "Encryption Key Management | Encryption Key Management, Cloud Security, Data Protection". Townsendsecurity.com. Retrieved 2013-08-06.
- ↑ https://www.venafi.com/what-we-do/
- ↑ "Vormetric Data Security Platform". Vormetric.com. Retrieved 2015-12-15.
- ↑ "P6R". P6R. Retrieved 2015-05-11.
External links
- Recommendation for Key Management — Part 1: general, NIST Special Publication 800-57
- NIST Cryptographic Toolkit
- The IEEE Security in Storage Working Group (SISWG) that is creating the P1619.3 standard for Key Management
- American National Standards Institute - ANSI X9.24, Retail Financial Services Symmetric Key Management
- The OASIS Key Management Interoperability Protocol (KMIP) Technical Committee
- The OASIS Enterprise Key Management Infrastructure (EKMI)Technical Committee
- "Key Management with a Powerful Keystore"
- "Intelligent Key Management System - KeyGuard | Senergy Intellution"