4.1 密钥管理
如第2章所述,现代密码学一般采用基于密钥保护的安全策略来保证密码系统的安全。除了一些特殊的应用场合,如军用密码系统、国家情报密码系统等,需要对密码算法进行保密外,其他情况下一般都会公开采用的密码算法。
采用基于密钥保护的安全策略,对密钥的保护关乎整个通信的安全保密。在计算机网络环境中,由于用户和节点众多,保密通信需要使用大量的密钥。如此大量的密钥,且又要经常更换(“一次一密”的需要),其产生、存储、分发是一个极大的问题。如果任何一个环节出现问题,均可能导致密钥的泄露。同时,密钥管理不仅仅是一个技术问题,还包含许多管理问题和密钥管理人员的素质问题。因此,密钥管理历来是保密通信中的一个非常棘手的问题。
从技术上讲,密钥管理包括密钥的产生、存储、分发、组织、使用、停用、更换、销毁等一系列问题,涉及每个密钥的从产生到销毁的整个生命周期。对称密钥密码体制和公开密钥密码体制因采用的加密方式的不同,其密钥管理方式也有所不同。本章主要介绍公开密钥密码体制中公开密钥分发涉及的相关技术和方法,即将产生的公开密钥安全地发送给相关通信参与方的技术和方法。
对称密钥密码体制中,由于加密密钥等于解密密钥,因此密钥分发过程中,其机密性、真实性和完整性必须同时被保护。对于通信双方A和B而言,可以选择以下几种方式来得到密钥:
(1)A选择一个密钥后以物理的方式传送给B。
(2)第三方选择密钥后以物理的方式传送给A和B。
(3)如果A和B以前或者最近使用过一个密钥,则一方可以将新密钥用旧密钥加密后发送给另一方。
(4)如果A和B到第三方C有加密连接,则C可以通过该加密连接将密钥传送给A和B。
上述方式中,第(1)和第(2)种方式需要人工交付一个密钥,这在现代计算机网络及分布式应用中是不现实的,因为每个设备都需要动态地提供大量的密钥,单靠人工方式根本无法完成。第(3)种方式可用于连接加密或端到端加密,但是如果攻击者成功地获得一个密钥,将会导致随后的密钥泄露。目前端到端加密中,被广泛使用的是第(4)种方式及其各种变种。在这种方式中,需要一个负责为用户(主机、进程或应用)分发密钥的密钥分发中心(Key Distribution Center,KDC),并且每个用户都需要和密钥分发中心共享唯一的密钥。
与对称密钥密码体制一样,公开密钥密码体制同样存在密钥管理问题。但是,由于它们使用的密钥种类和性质不同,密钥管理的要求和方法也有所不同。在公开密钥密码体制中,由于公钥是可以公开的,并且由公钥求解出私钥在计算上不可行,因此,公钥的机密性不需要保护,但完整性和真实性还是必须得到保护;私钥与对称密钥密码体制中的密钥一样,其机密性、完整性和真实性都必须得到保护。
如果公钥的完整性和真实性受到危害,则基于公钥的各种应用的安全性将受到危害。例如,攻击者可以实施下述伪造攻击。
攻击者将公钥PK1发送给用户甲,声称该公钥为用户乙的公钥。甲如果相信了PK1为用户乙所有,则在之后需要采用公钥加密的方法向用户乙发送消息时,将使用公钥PK1。而实际上PK1为攻击者的公钥,攻击者截获甲发给乙的加密消息后,可以使用与PK1对应的私钥SK1解密,获取消息内容。在此过程中,甲原本希望保密发送给乙的消息被攻击者获取了,消息的机密性受到破坏。
公钥伪造的问题之所以出现,是由于公开密钥密码系统中公钥完全公开,但是用户难以验证公钥隶属关系的真实性。换句话说,用户难以确定公钥是否真的隶属于它所声称的用户。为了解决这个问题,在公钥管理的过程中采取了将公钥和公钥所有人信息绑定的方法,这种绑定产生的就是用户数字证书(Digital Certificate,DC)。
为了确保数字证书的真实性,数字证书必须经由一个所有用户都相信的公正、权威机构颁发,由其验证和担保作为证书主体的证书所有者与证书中的公钥具有对应关系,同时为了防止他人伪造或者篡改数字证书,这个权威机构还必须在数字证书上进行数字签名,以保证证书的真实性和完整性。在此过程中涉及的权威机构或可信机构被称为数字证书认证中心(Certificate Authority,CA),通常简称为认证中心,或者称为证书颁发机构、签证机构等。
有了证书以后,将涉及证书的申请、发布、查询、撤销等一系列管理任务,因此需要一套完整的软硬件系统、协议、管理机制来完成这些任务,由此产生了公钥基础设施(PKI)。
后续章节将介绍的计算机网络的多个安全机制或协议,如IPsec、SSL/TLS、DNSSEC,都以数字证书和PKI为基础,因此,本章将对数字证书和PKI进行介绍。