相对于传统的信息安全保护方案(防火墙、ACL、EFS等),Active Directory 权限管理服务它提供了与应用程序协作(如office 2007)保护数字内容的安全技术,它专门为那些需要保护的敏感文档、电子邮件和WEB内容而设计,可以严格地控制哪些用户可以打开、读取、修改和重新分发等权限。RMS的最大优势在于它能对整个数字信息生命周期进行管理,权限伴随文档。
一、AD RMS的工作过程
AD RMS的工作过程是一个相当复杂的过程。我们可以用下面的四步来简单描述它的工作过程(尽管不够具体、准确)。
作者:1、创建受保护的文档。2、授权并分发内容(作者会身RMS服务器请求发布许可,RMS服务器返回发布许可,支持RMS的应用程序将发布许可合并到受保护的文档)
使用者:当使用都打开受保护的文档时,1、向RMS服务器请求使用许可。2、服务器向使用者返回使用许可,使用者使用使用许可打开文档内容
 
二、AD Rms证书和许可证
服务器许可方证书 (SLC)

在群集中的第一个服务器上安装和配置 AD RMS 服务器角色时会创建 SLC。服务器会为自己生成唯一的 SLC,该 SLC 建立该服务器的标识,称为自注册,且有效期为 250 年。这样可以将受权限保护的数据存档较长时间。根群集既处理证书(通过发放权限帐户证书 (RAC)),又处理对受权限保护的内容的授权。添加到根群集的其他服务器共享一个 SLC。在复杂环境中,可以部署仅授权群集,这会生成它们自己的 SLC。
SLC 包含服务器的公钥。(注意在Windows Server 2003中,SLC是通过向微软网站注册后而微软创建的
 
客户端许可方证书 (CLC)
CLC 由 AD RMS 群集为响应客户端应用程序的请求而创建。CLC 在客户端连接到组织的网络时会发送到客户端,并授予用户在客户端未连接时发布受权限保护的内容的权限。CLC 与用户的 RAC 相关联,因此,如果 RAC 无效或不存在,用户将无法访问 AD RMS 群集。
CLC 包含客户端许可方公钥以及客户端许可方私钥,该私钥由请求证书的用户的公钥加密。它还包含发放证书的群集的公钥,该公钥由发放证书的群集的私钥签名。客户端许可方私钥用于对发布许可证进行签名。
 
计算机证书
首次使用支持 AD RMS 的应用程序时,会在客户端计算机上创建计算机证书。Windows Vista 和 Windows 7 中的 AD RMS 客户端自动激活并注册根群集,从而在客户端计算机上创建此证书。此证书标识计算机或设备上与登录用户的配置文件相关的密码箱。
计算机证书包含已激活计算机的公钥。该计算机的密码箱包含对应的私钥。密码箱是%windir%\system32\SECPRO.DLL文件
 
权限帐户证书 (RAC)
RAC 在 AD RMS 系统中建立了用户的标识。它由 AD RMS 根群集创建,并在首次尝试打开受权限保护的内容时提供给用户。
标准 RAC 在特定计算机或设备环境中使用帐户凭据标识用户,且具有以天数表示的有效时间。标准 RAC 的默认有效时间是 365 天。
临时 RAC 仅基于帐户凭据标识用户,且具有以分钟数表示的有效时间。临时 RAC 的默认有效时间是 15 分钟。
RAC 包含用户的公钥,以及用户的使用已激活计算机的公钥加密的私钥。RAC和特定的计算机相关联,每个用户对每个设备都有唯一的RAC。在任何计算机上,RAC的密钥对是相同的。
RAC的产生过程:
1、使用Windows集成身份验证向RMS服务器发送请求
2、RMS服务器查询数据库,可能会使用已有的密钥对或生成密钥对
3、RMS服务器将用户的私钥用计算机的公钥进行加密
4、RMS服务器将用户的公钥和加密后的私钥放在RAC中
5、RAC被RMS服务器用私钥进行数字签署
6、RMS服务器将RAC发送给用户
7、RMS服务器将用户的密钥对存放在RMS数据库中
 
发布许可证(Publishing License)
使用权限保护保存内容时,客户端会创建发布许可证。它指定可以打开受权限保护的内容的用户、用户可以打开内容的条件,以及每个用户对受权限保护的内容所具有的权限。它由RMS授权服务器颁发。
发布许可证包含:1、用于解密内容的对称内容密钥,该密钥使用发放许可证的服务器的公钥加密。
2、使用都权限。以Email标识用户和相应的权限,被发放许可证的服务器的公钥加密。
3、发布服务器的URL:使用者通过这个URL向服务器申请使用许可。
4、发布服务器的数字签署:证明发布许可证的有效性,防止篡改。

使用许可证(Usage License)
使用许可证在特定的已验证用户的环境中指定应用于受权限保护的内容的权限。此许可证与 RAC 相关联。如果 RAC 无效或不存在,则无法通过使用许可证打开内容。
使用许可证包含用于解密内容的对称内容密钥,该密钥使用用户的公钥加密和用户对文档的权限。使用许可证必由发布许可证的同一台服务器颁发;每个文档对每个用户都对应一个使用许可证;同时,如果用户对文档有写权限时,使用许可证会被缓存到OFFICE文档,对于电子邮件,会被OUTLOOK缓存。

RMS 系统使用存储在客户端计算机上的 XrML 中的下列证书和许可证。

计算机证书
文件名:CERT-Machine.drm 文件
位置:%USERPROFILE%\Local Settings\Application Data\Microsoft\DRM\
权限帐户证书
文件名前缀:GIC
位置:%USERPROFILE%\Local Settings\Application Data\Microsoft\DRM
客户端许可方证书
文件名前缀:CLC
位置:%USERPROFILE%\Local Settings\Application Data\Microsoft\DRM
用户许可证
文件名前缀:EUL
位置:%USERPROFILE%\Local Settings\Application Data\Microsoft\DRM
三、AD RMS数据库
下图是使用Windows内部数据库安装AD RMS服务器后数据库的情况:
命名采取:数据库类型(DRMS_Config,DRMS_DirectorySerivces,DRMS_Logging)_<RMS名>_<服务端口>
AD RMS 使用以下数据库:
1、配置数据库
配置数据库是 AD RMS 安装的关键组件,因为它可存储、共享和检索您管理群集的帐户证书、授权和发布服务所需的所有配置数据及其他数据。您管理配置数据库的方法直接影响受权限保护的内容的安全性和可用性。
每个 AD RMS 群集有一个配置数据库。根群集的配置数据库包含 Windows 用户标识及其 权限帐户证书 (RAC) 的列表。如果群集密钥由 AD RMS 集中管理,则证书密钥对在存储到该数据库之前加密为 AD RMS 群集密钥。仅授权群集的配置数据库不包含此信息。

2、日志记录数据库
对于每个根群集或仅授权群集,默认情况下,AD RMS 在承载配置数据库的同一个数据库服务器实例中安装日志记录数据库。AD RMS 还在 AD RMS 群集中的每个服务器上创建专用消息队列,以用于消息队列中的日志记录。AD RMS 日志记录服务将数据从此消息队列传输到日志记录数据库。

3、目录服务数据库
此数据库包含有关用户、标识符(如电子邮件地址)、安全 ID (SID)、组成员身份和备用标识符的信息。通过 AD RMS 授权服务对 Active Directory 域服务 (AD DS) 全局编录进行轻型目录访问协议 (LDAP) 查询,来获得此信息。
四、AD RMS 客户端服务发现
Active Directory 权限管理服务 (AD RMS) 客户端服务发现是 AD RMS 客户端用来发现 AD RMS 群集的方法。AD RMS 客户端服务发现实现方法:
1、Active Directory 域服务 (AD DS) 服务连接点 (SCP) 自动服务发现。这是部署 AD RMS 环境的推荐方法。在此方案中,会在安装了 AD RMS 群集的 Active Directory 林中创建 SCP。当 AD RMS 客户端在计算机上尝试用户激活时,它会查询该 SCP 以查找 AD RMS 群集并下载 权限帐户证书 (RAC)。使用自动服务发现,无需在 AD RMS 客户端上进行任何其他配置。

2、AD RMS 客户端注册表替代。在复杂的 AD RMS 部署拓扑中,需要对 AD RMS 客户端的更具体控制。对于在 Windows XP、Windows 2000 或 Windows Server 2003 上运行的 Rights Management Services (RMS) 客户端版本,部署了多个 Active Directory 林的拓扑需要使用这些替代。可以使用客户端注册表替代的另一个示例是用于支持 Extranet 用户。在这些情况下,会在 AD RMS 客户端中创建客户端注册表替代,以强制执行 AD RMS 群集中不同于在 SCP 中发布的受权限保护内容的证书或授权。AD RMS 客户端注册表替代用于替代在以下位置创建的 SCP:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDRM\ServiceLocation。
客户端注册表替代项如下:
Activation。此项用于替代在 SCP 中配置的默认 AD RMS 证书服务。此项的语法是 http(s)://<your cluster>/_wmcs/certification,其中 <your cluster> 是应该用于证书的根群集的 URL。
EnterprisePublishing。此项用于替代 AD RMS 客户端连接到的默认 AD RMS 授权服务。此项的语法是 http(s)://<your cluster>/_wmcs/licensing,其中 <your cluster> 是仅授权群集的 URL。
注意 
客户端注册表替代配置为注册表项。这些注册表项的值应添加到类型为 REG_SZ 的注册表项的默认项。
 
五、文档的发布过程
文档的发布过程分为以下两种:
1、文档的在线发布过程
由RMS客户端在线向授权服务器发送请求。
过程:①由密码箱生成对称密钥作为内容密钥
②内容密钥被授权服务器的公钥加密
③加密后的内容密钥和权限被发送到请求发布许可的授权服务器
④授权服务器使用它的私钥解开密的内容密钥
⑤授权服务器使用它的公钥加密内容密钥和使用权限
⑥加密后内容和使用权限被添加到发布许可
⑦授权服务器使用它的私钥签署使用许可
⑧发布许可返回到申请的客户端
⑨支持RMS的应用程序将发布许可合并到受保护的文档
2、文档的离线发布过程
文档的离线发布过程中使用到客户许可证书(CLC)。当用户端首次从授权服务器申请许可时就自动获取了
CLC。CLC包含CLC公钥,由用户RAC中的公钥加密的私钥等。
过程:①由密码箱生成对称密钥作为内容密钥
②客户端从CLC中取出授权服务器的公钥
③客户端使用授权服务器的公钥加密内容密钥和使用权限
④客户端使用CLC公钥对内容密钥和使用权限进行加密
⑤加密后的内容密钥和使用权限放在发布许可中
⑥客户端使用RAC服务器私钥解密CLC中的私钥
⑦客户使用CLC的私钥签署发布许可
⑧支持RMS的应用程序将发布许可合并到受保护的文档
 
六、受保护的文档的使用过程
客户端向颁发发布许可的授权服务器请求使用许可
过程:
①客户端将RAC和文档的发布许可发送到颁发发布许可的授权服务器
②授权服务器使用它的私钥解密发布许可中的内容密码
③授权服务器使用RAC中用户公钥加密内容密钥
④加密后的内容和用户的使用权限密钥被添加到使用使用许可
⑤授权服务器使用它的私钥签署使用许可
⑥使用许可被发送到客户端
⑦密码箱使用计算机的私钥解密保存在RAC中的用户私钥
⑧密码箱使用用户私钥解密内容密钥
⑨密码箱使用内容密钥解密受保护的文档