NDES

NDES(Network Device Enrollment Service),它是微软SCEP(Simple Certificate Enrollment Protocol)的一种部署方式,SCEP是一种通信协议,它能够让软件运行在网络设备上,例如路由器和交换机,这个协议会从CA注册X.509的证书,如果没有SCEP软件是无法在网络上被验证的。

我们在IIS上可以将NDES作为一个Internet服务器API筛选器来实现以下功能:

  1. 为管理员创建并提供一次性的注册密码

  2. 从CA上回收等待中的请求

  3. 为运行在网络设备上的软件收集并处理SCEP注册请求

如果企业的PKI架构中拥有一台或多台基于Windows2012 CA,那么可以通过应用NDES来提高网络设备的安全性。基于802.1x的端口安全性要求证书被安装在交换机和访问点。代替Telnet的安全壳要求路由器,交换机或者访问点上安装有证书。NDES允许管理员将证书安装在使用SCEP的设备上。

增加NDES的支持可以增强企业PKI的灵活性和扩展性,所以PKI架构师,管理员,PKI规划师可能对NDES会有兴趣。

在安装NDES前,我们必须确定以下几点:

  1. 是否需要专门建立一个用户账号用于NDES,或者仅使用网络服务账号即可。

  2. 确定NDES注册颁发机构名称和国家/地区的值,这些信息会包含在所有被颁发的SCEP证书当中。

  3. 将用于签名秘钥的CSP(cryptographic service provider 加密服务提供器)用来加密CA和注册颁发机构之间的通信。

  4. 将用于加密秘钥的CSP用来加密注册颁发机构和网络设备之间的通信

  5. 这些秘钥的长度

另外我们需要创建和配置证书模板,这个证书模板用于创建与NDES结合的证书。

当我们在计算机上安装NDES,会创建一个新的注册颁发机构并删除计算机内以前存在的注册颁发机构证书。因此如果我们想在一台配置了另一个注册授权机构的计算机上安装NDES,在安装NDES前,所有挂起的证书请求都需要被处理掉,所有未申明的证书都需要被申明。


证书吊销

吊销指的是停用一个或多个证书的有效性的行为。在发起吊销进程时,实际上是将一个证书指纹发布到对应的CRL中。

证书吊销生命周期的过程:

  1. 从MMC的证书颁发机构组件上对证书执行吊销,在吊销的时候可以指定一个原因代码和一个日期时间,这个动作不是强制的,但是推荐执行它。

  2. 使用MMC的证书颁发机构组件发布CRL,或者CRL会根据配置的计划自动发布。CRL可以在AD域中发布,也可以在共享文件夹中或者通过网站来发布。

  3. 当Windows客户端计算机与证书结合后,它们会执行一个进程,通过查询颁发证书的CA来验证吊销状态。这个进程会确定证书是否已被吊销,然后将信息发给请求验证的应用程序。Windows客户端会使用证书中指定的某一个CRL位置来检查该证书的有效性。

在Windows操作系统中包含了一个CryptoAPI,它负责证书吊销以及证书状态检查的进程。CryptoAPI在证书检查过程中需要执行以下几个动作:

  1. 证书发现。证书发现会收集CA证书,被颁发证书的AIA信息,证书注册过程的明细。

  2. 路径验证。路径验证是验证证书是否已经过CA传送链路传到根CA证书的过程。

  3. 吊销检查。在证书链路的每个证书都会被验证,从而确认没有证书被吊销。

  4. 网络回收和缓存。网络回收是通过OCSP(Online Certificate Status Protocol 在线证书状态协议)执行的。CryptoAPI负责首先检查本地缓存中的吊销信息,如果没有找到匹配的信息则会通过OCSP向已颁发证书提供的URL执行一个访问动作。


当我们管理和颁发证书时,配置恰当的证书扩展是非常重要的,因为证书扩展中的配置将被用于验证CA的证书和验证用户、计算机、设备使用的证书。AIA和CDP是每个证书扩展都有的部分,它们必须被指定合适的位置,否则PKI会无法正常工作。

注意:导致CA架构故障和停机的一个常见问题是配置了不恰当的AIA和CDP扩展,在将CA架构导入到生产环境前我们需要确保这些扩展所填写的内容是正确的。

AIA

AIA地址是CA颁发的证书中配置的URL地址。这些地址告诉某个证书的验证者应该到哪里去获取CA的证书。AIA可以通过HTTP,FTP,LDAP,文件地址的方式访问URL。

CDP

CDP是证书扩展中表明从哪里可以获取到CA发布的CRL的地址。它可以是空的,也可以是一个或多个HTTP,FTP,LDAP或文件地址。

每个从CA颁发的证书都会包含CDP和AIA位置的信息。每次使用某个证书时,这些位置都会被检查,检查AIA位置是为了验证CA证书的有效性,检查CDP位置是为了验证CA发布的CRL的内容。每个证书至少要有一个有效的AIA和CDP,否则系统会假定该证书是无效的,吊销检查也会失败,同时你将无法使用该证书执行任何操作。因为CA颁发的证书都会写入AIA和CDP位置,所以在颁发证书前配置好AIA和CDP位置就非常重要了,一旦证书被颁发了,证书中的CDP和AIA位置就无法修改了。

AIA和CDP的发布

如果我们只使用在线的CA,那么AIA和CDP都会被默认设置成本地的CA。但是如果我们想部署一个离线根CA,或者如果我们想将AIA和CDP发布到一个Internet的位置,我们就必须重新的去配置它们,以便它们能够应用到所有由根CA颁发的证书中。AIA和CDP扩展定义了客户端应用程序可以在×××到根CA的AIA和CDP信息。根CA和从属CA的AIA和CDP扩展URL格式已经发布方式通常是一样的,我们可以将根CA证书和CRL发布到:AD域,Web服务器,FTP服务器,文件服务器。

发布点

为了确保林中的所有计算机都能够访问,我们需要将离线根CA证书和离线根CA的CRL通过certutil命令发布到AD域中,然后保存了根CA证书和CRL的配置命名上下文会被复制到林中的所有DC上。

对于非域成员的计算机,我们可以将CA证书和CRL放在Web服务器上通过http协议来访问他们,当外部客户端或内部客户端从外网要求访问它们的时候,我们可以将web服务器放在外部网络或Internet上,在公司以外使用内部颁发的证书,这种方式就显得尤为重要。

我们也可以将证书和CRL发布到ftp://和file://的URL地址,但是推荐仅使用LDAP和HTTP的URL,因为这两种URL是应用的比较广泛格式。CDP和AIA扩展的排列顺序也是很重要的,因为证书链路引擎会顺序的搜索URL,如果你的证书大多数用于域内用户,那么最好将LDAP的URL放在第一位。

注意:处理配置CDP和AIA的发布点,我们还需要确认CRL是有效的,在线CA会定期的去自动更新CRL,但是离线CA则不会,如果离线根CA的CRL过期了,吊销检查就会失败,为了防止此类问题,我们需要将离线根CA的CRL的有效期配置足够长的时间,然后设置一个提醒机制,在旧的CRL过期之前开启CA并颁发一个新的CRL。


联机响应程序

通过使用OCSP,联机响应程序可以为客户端提供一个有效的方法去确定证书的吊销状态,OCSP使用HTTP来提交证书状态请求。

客户端访问CRL去确定证书的吊销状态,CRL可能会非常大,因此客户端需要花费很多的时间去搜索整个CRL,联机响应程序能够帮助客户端动态的去搜索这些CRL,并且只会将请求的证书反馈给客户端。

我们可以使用一个联机响应程序,去确定由一个或多个CA颁发的证书的吊销状态信息,但是我们可以使用多个联机响应程序去发布CA的吊销信息。

吊销联机响应程序可以安装在任何安装了Windows2008企业版或Windows2012操作系统的计算机上,但是不要将联机响应程序与CA装在一台计算机上。

下面的操作系统可以使用联机响应程序来验证证书状态:

Windows2008

Windows2008R2

Windows2012

Windows2012R2

Windows vista

Windows 7

Windows 8

Windows 8.1

出于考虑扩展性和高可用的目的,我们可以将联机响应程序部署在一个负载均衡的阵列上,并使用网络负载均衡功能来处理证书状态请求,我们就可以独立的监控和管理每个阵列成员。要配置联机响应程序,就必须使用联机响应程序管理控制台,我们必须在已颁发证书的AIA扩展中配置好联机响应程序的URL地址,OCSP客户端会使用这个URL地址去验证证书的状态,另外我们还必须颁发OSCP响应签名证书模板,以便联机响应程序也能够注册这种证书。


安装和配置联机响应程序

我们要在安装CA之后,颁发任何客户端证书之前安装联机响应程序。证书的吊销数据是从一个发布的CRL中获得的,这个发布的CRL可以来自Windows2008或更高版本的CA,也可以是Windows2003版本的CA,甚至来自非微软版本的CA,在将CA配置成支持联机响应程序服务之前,必须完成以下的配置:

  1. 联机响应程序安装时必须安装IIS,当我们安装联机响应程序的时候,IIS中针对联机响应程序的配置会自动的安装。

  2. 必须在CA上配置好一个OCSP响应签名证书模板,并将安装联机响应程序的计算机赋予该模板的自动注册权限。

  3. 联机响应程序的URL地址必须包含在由CA颁发的证书的AIA扩展中,联机响应程序客户端可以通过这个URL去验证证书的状态

在安装好联机响应程序之后,我们需要为每个CA和服务于联机响应程序的CA证书创建一个吊销配置,这个吊销配置包含了所有用于响应关于证书的状态请求的必要设置,这些被颁发的证书使用的是特定的CA秘钥,吊销配置包含了一下的设置:

  1. CA证书。这个证书能够放在一台DC上,也可以放在本地证书库,或者以文件的形式导入。

  2. 联机响应程序的签名证书。这个证书能够被自动选中,也可以手动选中(此操作需要在加入吊销配置后执行一个导入动作),或者使用选中的CA证书。

  3. 吊销提供程序。吊销提供程序使用这个配置可以提供吊销数据,这个信息作为一个或多个URL地址被访问,在这个URL位置会含有有效的基本和增量CRL。