对于使用证书注册的开发人员而言,新的 API 对基于 ActiveX® 的旧控件(xenroll.dll 和 scrdernl.dll)提供了重大改进。新的证书注册 API 提供了定义良好的类层次结构,理解起来更加轻松,编码也更加简单。这一新的 API 取代了 Windows Vista 和 Windows Server 2008 中的 xenroll。
对 API 所做的这一更改对开发人员和 IT 专业人员都有影响,因为 Windows Vista 客户端无法使用 Windows Server 2003 中提供的基于 Web 的注册功能。这是由于这些注册网页(默认存储于 /certsrv 虚拟目录下)所使用的 xenroll 控件在 Windows Vista 中已不复存在。知识库文章“如何将证书服务 Web 注册页与 Windows Vista 结合使用”(support.microsoft.com/kb/922706) 提供了一种相应解决方案的相关信息。从 Windows Server 2003 自动注册到 Windows Vista 未受影响。
在以前版本的 Windows Server 中,对注册代理能代表哪些群体进行注册并没有什么限制。换句话说,一旦授予了用户注册代理能力,他就能够代表林中的其他任何用户进行注册。当然,这就意味着用户通过代表某位现有用户进行注册,进而使用新创建的证书假冒该用户,即可轻松升级自已的权限。为防止此类威胁,仅对具有高可信度的用户提供注册代理能力。这种方法虽然提高了安全性,但也使部署模型的灵活性降低,因为只有少量用户具有代表其他用户进行注册的能力。因此,地理位置分散的大型组织为最终用户(例如智能卡)部署证书的复杂度将会增加。
在 Windows Server 2008 中,可以将注册代理限制在更低的级别。可以针对能够代表哪些用户进行注册加以限制,也可以针对能够依照哪些模板进行注册加以限制,如图 3 所示。例如,现在,某组织可以赋予某个本地 IT 专业人员代表本分支机构内所有用户(而不是人力资源组中的用户)进行注册的能力。针对注册代理的这一精确方法使企业能在其组织内部更有效、更安全地委派注册能力。
图 3 注册代理限制
管理 PKI 的最大挑战之一是管理分散在组织内各设备中的所有密钥对。即使在一个不很复杂的 PKI 环境中,任何特定用户也可能具有若干个不同的密钥对(如 EFS、无线网络身份验证和 S/MIME),并要求无论该用户从何处登录都可以使用这些密钥对。随着移动计算和终端服务的日益盛行,在网络内复制这些密钥对以便用户在任何位置登录都可以使用它们,将变得空前重要。虽然用户持有的令牌(如智能卡)有助于解决部分问题,但组织内可能仍然有用户没有卡或用户持有的证书并未存储在卡内。凭据漫游通过安全存储 Active Directory® 内部的密钥对和证书使得用户无论从何处登录都能够使用它们,从而解决了上述问题。
凭据漫游首先在 Windows Server 2003 SP1 中推出,允许证书和密钥在无需使用漫游用户配置文件的情况下在计算机之间安全漫游。在 Windows Vista 和 Windows Server 2008 中,此功能是默认包含的,并在证书服务客户端 (CSC) 服务中实现。配置选项(如哪些证书可以漫游和如何解决冲突)是通过组策略进行管理的。在 Windows Vista 和 Windows Server 2008 中,CSC 服务还可以实现存储的用户名和密码的漫游。虽然此功能默认包含在 Windows Vista 中,但应注意,Windows XP 中完全支持凭据漫游,登录到 Windows Server 2003 域控制器(带有更新部署;请参见 support.microsoft.com/kb/907247)时也完全支持凭据漫游。这就意味着您无需等待 Windows Vista 部署完成即可使用此技术。