密钥管理

**密钥管理**（**Key management**）是一个中加密密钥的管理部分。它包括密钥的生成、交换、存储、使用、以及密钥更替的处理，涉及到密码学协议设计、、用户程序，以及其他相关协议。

密钥管理关注用户层面或用户与系统之间的密钥，这与不同，密钥调度通常指密码内部轮运算中内部密钥的生成和处理这一过程。

成功的密钥管理对密码系统的安全性至关重要。密钥管理在某种意义上比纯数学的密码学更加具有挑战，因为它涉及到系统策略、用户培训、组织和部门的相互作用，以及上述所有元素之间的协调，而这些过程往往和密码学的其他元件不同，因为这些过程无法自动完成。

## 密钥类型
加密系统可能使用多种密钥，其中可能包括对称密钥与非对称密钥。在對稱密鑰加密算法中，用于加密与解谜消息的密钥是相同的。这些密钥必须被慎重选择、分发和安全存储。非对称密钥也称公开密钥加密，它的重要特点是有公钥与私钥这两个密钥，常被用于互聯網通信。

## 库存
任何证书和私钥管理策略的起点都是创建所有凭证的位置和责任方的全面清单。这不是一件微不足道的事情，来自各种来源的凭据被不同个人和团队部署在各种地点——这不可能简单依赖于单个数字证书认证机构的列表，在到期前没有被更新或替换的证书可能导致严重的停机和中断。以及其他考虑：
法规和强制要求，例如PCI-DSS，要求严格的安全性、加密密钥管理以及审核员，审查日益增长的使用中的管理控制和流程。
* 用于证书的私钥必须安全保存，否则未经授权的人员可能拦截机密通信或非授权地介入关键系统。不能确保适当的职责分离意味着生成加密密钥的管理员可以使用它们来访问敏感、受监管的数据。
* 如果证书颁发机构受到威胁或者加密算法遭受破解，组织必须准备好在几小时内替换所有的证书和密钥。

## 管理步骤
在密钥被签发后，密钥管理一般有三个步骤：交换、存储和使用。

### 密钥交换

進行安全通訊之前，各用戶間需要確立加密程序的細節，尤其是密鑰。在對稱密鑰加密系統，各用戶間需要確立共同使用的單一密鑰，此步驟即密鑰交換。交換對稱密鑰必須透過另一安全的通訊管道進行；否則，如果以明文形式在網路傳送，將使竊聽者能夠立即得知密鑰以及據其加密的數據。以前，交換密對稱密鑰是非常麻煩的，可能需要使外交邮袋等安全渠道。

公開金鑰加密的出現大大減輕了交換對稱密鑰的困難，公鑰可以公開（透過不安全、可被竊聽的渠道）傳送，用以加密明文。不過，公钥加密在在計算上相當複雜，效能欠佳、遠遠不比对称加密；因此，在一般實際情況下，往往通过公钥加密来隨機建立臨時的對稱秘钥，亦即對話鍵，然后才通过对称加密來傳輸大量、主體的数据。

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.

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.

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 智慧卡 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.

### 密钥存储
對稱加密使用的單一密鑰會被收發雙方儲存，公開金鑰加密的私鑰由於還有數位簽章的功能，所以都必須安全存儲，以保障通信安全。業界已發展出各種各樣的技術來保障密鑰得到妥善存儲，包括定期或不定的系統檢測是否有入侵之虞、對儲存媒體或伺服器提供高強度的物理防護及監控。最常見的是加密應用程序負責管理用戶的密鑰，使用密鑰時則需要輸入認別用戶的存取密碼。對於認證機構，一旦私鑰外洩，將可能導致整個信任链被摧毀，影響廣及眾多客戶，所以認證機構會使用硬件安全模組，有些儲存私鑰的電腦甚至平時不會連線，只在固定的排程下，經過一系列嚴謹的行政程序重重把關，才會取出私鑰為客戶簽章憑證。在信任鏈設計中，絕大部份的根证书都不會直接為客戶簽章，而是先簽章一個（或多個）中繼憑證，再由中繼憑證為客戶簽章，這可以加強控管能力及控制一旦簽章私鑰被洩時的損失。

### 密钥使用
密鑰的有效期限是一個重要問題，一個密鑰應該在產生後多久被汰換呢？密鑰汰換之後，舊有的密鑰就無法再解密新產生的密文，喪失對竊聽者的價值，這會增加了攻擊者所需要投入的氣力，所以密鑰應該經常替換。同時，這也可以減低信息一旦被破解時的損失；因為竊聽者可能在破解密鑰之前一直儲存截取到的加密訊息，等待成功破解密鑰的一刻；所以密鑰更換得越頻密，竊聽者可解讀的訊息就越少。在過去，如果可靠的密鑰交換程序非常困難或者僅僅間歇可行，對稱密鑰會被長期使用。但在理想情況下，對稱密鑰應該在每次交換訊息或會話時轉換，使得如果某一密鑰被洩（例如，被盜竊，密碼分析或社會工程化）時，只有單一訊息或會話被解讀。基於公開金鑰加密的特性，一對公鑰和私鑰的有效期一般會長於對稱加密所使用的單一密鑰，尤其是需要認證機構簽核的電子證書，當中涉及行政及部署成本，所以可能是三個月至一、兩年不等，考慮的因素包括配合加密算法的密钥长度、儲存私鑰的強度、一旦外洩可能引致的風險、更換程序對運行中的服務的影響、以及執行成本。

## 挑战
IT组织在控制和管理他们的加密密钥时遇到的挑战是：
# 擴展性：需管理大量加密密钥。
# 安全性：外部黑客/恶意内部人员造成的密钥隐患。
# 数据可用性：需确保授权用户可访问数据。
# 支援性：需支持多種数据库、应用程序和标准。
# 治理：定义政策驱动的访问控制和数据保护。治理包括符合数据保护要求。

### 合规
密钥管理的合规性是指监督、保证和证明密钥得到了妥善管理。合规领域包括：
#### 實體安全
最基本顯見的合規形式，其中包括保護系統硬件設備的門鎖、監控攝錄、登記每一次接觸系統硬件的人員姓名及時間。這些保護措施可以防止有人未經授權使用電腦系統，以列印密鑰副本，或運行密鑰管理軟件。而需要保護的硬件設備包括運作中及備用的機器、儲存媒體、備份媒體、以及系統使用手冊。

#### 邏輯安全
在軟件應用上保障企業免受盜竊或未經授權的信息存取。這就是一般所說的通過密鑰來加密數據，然後這些加密數據對那些沒有密鑰進行解密的人來便是無用。即使是加密後的數據也儘可能只給擁有相關權限的人員接觸到，這可能需要在物理上硬件層面、系統上的存取權限設定各方面配合。
#### 人事安全
這涉及特定角色及權限分配，無關的員工不會分配到權限、個別權限只會根據個別需要分配、相關員工只可以存取其工作必要的相關數據。對新入職員工可能需要進行背景審查，並定期重新審視權限、檢討角色、或在各人員之間調動崗位。

## 管理和合规体系

### 密钥管理系统
密钥管理系统（key management system，KMS）也称密码学密钥管理系统（crytographic key management system，CKMS），是用于生成、分发和管理设备和应用程序的密钥的一种集成手段。与术语密钥管理相比，KMS针对特定用例进行了定制，例如安全软件更新、機器對機器通信。在整体来说，它涵盖了安全性的所有方面——从通过密钥安全交换来安全生成密钥，到客户端安全密钥的处理和存储。因此，一个KMS包含用于密钥生成、分发和替换的后端功能，以及用于注入密钥、存储和管理设备上的密钥等客户端功能。随着物联网的发展，密钥管理系统已成为互联设备安全性的关键部分。

#### 类型
下列是一些开放源代码或专有的密钥管理系统。

##### 开源
* Barbican, the OpenStack security API.
* KeyBox - web-based SSH access and key management.
* EPKS - Echo Public Key Share, system to share encryption keys online in a p2p community.
* Kmc-Subset137 - key management system implementing UNISIG Subset-137  for /ETCS railway application.
*  - two factor management with support for managing SSH keys.
* StrongKey - open source, last updated on Sourceforge in 2013.
* Vault - secret server from .

##### 专有
* Amazon Web Service (AWS) Key Management Service (KMS) 
*  CERT+ Certificate and Key Lifecycle Automation
*  SSH+ SSH Key Lifecycle Automation
* Bell ID Key Manager
* 
* Cryptsoft KMIP C and Java Servers
* Fornetix Key Orchestration
*  Key Management
* Gazzang zTrustee
* HP Enterprise Secure Key Manager
* IBM Distributed Key Management System (DKMS)
* IBM Enterprise Key Management Foundation
* IBM Security Key Lifecycle Manager
* KeyNexus Enterprise on-premise 
* Microsoft Azure Key Vault
* Oracle Key Manager
* P6R KMIP Client SDK
* Porticor Virtual Private Data
* QuintessenceLabs qCrypt Key and Policy Manager
* RSA Data Protection Manager
* Safenet Enterprise Key Management
*  Universal SSH Key Manager
* Thales Key Management
* Townsend Security Alliance Key Manager
*  Trust Protection Platform
*  Data Security Platform
* Bloombase KeyCastle

#### 密钥管理系统安全策略
密钥管理系统安全策略提供了用于保护密钥管理系统支持的密钥和元数据的规则。根据國家標準技術研究所（NIST）的定义，该政策应制定和规定将保护信息下列方面的规则：
* 保密
* 完整
* 可用
* 来源认证
这种保护涵盖密钥从生成到消亡的完整生命周期。

#### 带入自己的加密/密钥
带入自己的加密/密钥（Bring your own encryption，简称BYOE），也称called bring your own key（BYOK），是指一种云计算安全模型，允许公共云服务客户使用自己的加密软件和管理自己的加密密钥。

### [[公開金鑰基礎建設]]（PKI）
透過信任数字证书认证机构的根证书、及其使用公开密钥加密作數位簽章核發的公開金鑰認證，形成信任鏈架構，已在TLS實作並在万维网的HTTP以HTTPS、在电子邮件的SMTP以STARTTLS引入。

### 组播组密钥管理
Group Key Management means managing the keys in a group communication. Most of the group communications use 多播 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. IETG.org released RFC 4046, entitled Multicast Security (MSEC) Group Key Management Architecture, which discusses the challenges of group key management.

## 参见

## 参考资料

## 外部链接
* *Recommendation for Key Management — Part 1: general,* 
* 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"
* IBM Security Key Lifecycle Manager, SKLM