PKI(Public Key Infrastructure)是一个软件的组合体,运用加密技术、进程、服务来帮助企业保护它的通信和商业交易。PKI是一个由数字证书,CA以及其他的注册授权机构组成的系统。当一个电子交易发生时,PKI会确认和认证它所涉及的每个组件的有效性。PKI标准目前还处在演变中,但是它们已被作为电子商务的基本组件而广泛应用。
PKI的基本概念
通常一个PKI解决方案依靠的是多种技术和组件,当你计划实施PKI时,你需要考虑并理解以下的几点:
- 基础架构。这个和其它的基础架构的概念是一样的,比如电力系统,运输系统,供水系统的基础架构。每一个构成PKI的元素都有特定的工作要完成,并且他们要与你的需求匹配才能提供有效的功能,所有这些元素结合在一起才能让PKI有效安全的运作,组成PKI的元素包含以下内容:
a.一个证书颁发机构(CA)
b.一个证书仓库
c.一个注册授权机构
d.能够吊销证书
e.能够备份、还原、更新秘钥
f.能够管理和追踪时间点
g.客户端处理
- 公/私钥。通常加解密数据会应用两种方法:
a.对称加密:它使用完全一样的秘钥进行加解密,是一种特殊的数据加密方法。用这种方法加密数据,你必须有相同的秘钥,因此任何拥有这种秘钥的人都可以对数据进行加密,但是与加密集成的秘钥必须个人单独维护管理。
b.非对称加密:这种方法进行加解密时应用的秘钥是不同的,它也属于数据加密的一种特殊方法,只不过他加密时用的秘钥和解密时用的秘钥是不同的。这种加密方法使用的是一对秘钥,这对秘钥由一个公钥和一个私钥组成,这两个秘钥都是唯一的。它们可以互相加解密,即公钥加密的数据可以用私钥解密,反之亦然。因为这对秘钥是完全不同的,所以你是无法通过一个秘钥确定另一个秘钥的,因此你可以公布出其中一个秘钥,这并不会降低数据的安全性,只要另外一个秘钥保证私密性即可。
对大量数据来说,使用对称加密的算法会更加快速有效,但是使用对称秘钥,安全性上就存在风险,因为你需要将秘钥连同加密文件一起发送给接收方。或者说我们用非对称加密来加密文件,它能够保障数据的安全性,但是它的速度又远比对称加密的慢。鉴于他们各自的优缺点,我们一般采用混合加密的方式,也就是说我们用对称秘钥来加密数据,然后我们用非对称秘钥来加密对称秘钥,这样既保证了安全性,也满足了快速高效的需求。
如果你的环境中部署了PKI,对你的环境的安全性是非常有用的,它主要有以下几点好处:
- 机密性。PKI解决方案能够让你的数据在保存和传递过程中都是加密的
- 完整性。你可以使用PKI对数据数字签名,数字签名可以验证数据在传输过程中是否有被修改过。
- 可靠性和不可否认性。认证数据通过哈希算法生成一个信息摘要,发件者使用他的私钥在信息摘要上签名,证明这个信息摘要是可靠的。不可否认性是指数字签名能够提供签名数据的完整性和起始原件的证据。
- 标准化方法。PKI的标准化是指多数技术提供商被强制遵循,所提供的安全性基础架构要能够支持PKI,这个标准是基于RFC 2527中定义的行业标准,"互联网X.509公钥基础架构证书策略和认证实践框架"
PKI解决方案的组件
想提供一个完整的PKI解决方案需要多个组件共同运作,在Windows2012中PKI有以下组件:
- CA。CA为用户,服务,计算机颁发和管理数字证书,通过部署CA在公司中建立PKI。
- 数字证书。数字证书的功能和电子签证类似,数字证书用于证明用户的身份,数字证书包含了与配对秘钥关联的电子凭证,这个电子凭证会被用来认证用户和其他设备。数字证书还能够保障软件和代码来自一个受信任的源,数字证书包含了多个区域,比如对象,发布者,通用名。这些区域决定了证书的特定用途,比如一台web服务器可能在证书的通用名区域的值是web01.adatum.com,那么这个证书就只能对这台web服务器生效,如果有人试图在一个web02.adatum.com的web服务器上使用这个证书,那么他会收到一个警告信息。
- 证书模板。这个组件用于描述数字证书的内容和目的。从域环境的企业CA申请一个证书时,证书的申请人会根据他所拥有的权限,从证书模板中选择多种证书类型,例如用户类型,代码签名类型。证书模板能够让用户从低技术层次的角度上决定他们所需要的证书类型,另外它还能让管理员区分出什么角色可以申请什么证书。
- 证书吊销列表(CRL)和在线应答器:
a.CRL是一个专用于被吊销证书的数字签名清单。这些清单会被周期性的发布出去,客户端会接收并缓存这个清单,缓存时间取决于CRL的生命周期,它被用来确定证书的吊销状态。
b.在线应答器在Windows2008和Windows2012中隶属于在线证书状态协议(OCSP Online Certificate Status Protocol)角色服务,在线应答器不要求客户端下载整个CRL,就能够接收检查证书吊销状态的请求,它提升了证书吊销状态检查的速度,减少了网络带宽,同时通过启用在线应答器的阵列配置增强了扩展性和容错性。
- 基于公钥的应用程序和服务。这个与支持公钥加密的应用程序和服务有关,换句话说,应用程序和服务必须能够支持公钥部署才能够受益于这个功能。
- 证书和CA管理工具。管理工具提供了命令行和UI界面两种模式,可以用来:
a.配置CA
b.还原被归档的私钥
c.导入导出秘钥和证书
d.发布CA证书和CRL
e.管理颁发的证书
- 权威信息访问(AIA Authority Information Access)和吊销列表发布点(CDP CRL Distribution Point)。AIA用于确定CA证书发现并进行验证的区域,CDP用于确定证书在验证过程中发现CRL的位置。随着时间流逝被吊销的证书慢慢增多,从而CRL也越来越大,但是你不用将整个CRL都发布,你可以发布一个小的过渡性的CRL,这个CRL被称为增量CRL。增量CRL仅包含最近一次CRL发布后增加的吊销证书,它能够让客户端通过获取增量CRL快速建立一个完整的吊销证书列表,增量CRL的运用也使得吊销证书的数据发布的频率更快,鉴于增量CRL的大小,所以它不会像完整CRL那样需要在传递过程中花费大量时间。
- 硬件安全性模块(HSM Hardware Security Module)。HSM是一种可选的密码保护硬件设备,用于加速管理数字秘钥的加密处理。这是使用高安全性专用的存储设备连接到CA对证书进行管理,通常HSM是物理连接到计算机的,它是PKI的一个可选插件,在安全性要求很高的环境中应用的比较广泛。
注意:任何安全性基础架构中最重要的组件就是物理安全性,一个安全性基础架构不仅仅是部署了PKI就够了,还需要其他元素的结合,例如物理安全性,合适的安全策略,这些在整个安全性架构中都有着重要的作用。
什么是CA
CA是一个精心设计的在企业中拥有高度信任的服务,它为用户和计算机提供证书,管理以及发布CRL,并且视情况对OCSP进行响应。你可以在Windows2012上部署AD CS角色来搭建CA,当你安装第一台CA服务器的时候,它会在网络中建立PKI,并且作为整个PKI结构中的最高点,你可以在网络中搭建多台CA,但是在CA层次中只能有一台CA可以位于最高点,这台CA被称为根CA。
CA的主要目的是用来颁发证书,吊销证书,发布AIA和CRL信息。通过这些操作,CA可以确保它颁发了证书的对象(用户、计算机、服务)能够被成功验证。CA在PKI中扮演多个功能或角色,在一个大型的PKI中,CA的角色分布在多台服务器上是很常见的,CA能够提供以下的管理任务:
- 验证证书申请者的身份
- 将证书颁发给发出证书请求的用户、计算机、服务
- 管理证书的吊销
当你在网络中部署了第一台CA,它首先会为自己颁发一个证书,然后其他的CA会从这台跟CA接收这个证书,你也可以使用一个公共证书作为你的CA的证书。