----微软公司的Exchange Server一直提供高级安全功能,以便用户保护其邮件信息的安全。这些高级安全功能保证信息的机密性和完整性,并检查信息发送者身份的真实性,它提供端到端信息保护,从发送者签名、加密信息开始,直到接收者阅读信息,信息在传输过程中的各个环节,甚至在Exchange Server的信息存储器(Information Store,IS)和用户的个人文件夹中,都一直处于加密保护状态。Exchange围绕可选的密钥管理服务器(Key Management System,KMS)构造了高级安全体系。本文将讨论Exchange 2000 Server的KMS版本,以及KMS和以前的Exchange Server 5.5版本的主要不同之处,并讨论有关微软Outlook 2000 和Outlook Express 5.0 Secure MIME(S/MIME)的特点。
KMS基础和互操作
----Exchange的高级安全功能具有一个独特的密钥恢复特性,即可以使用户恢复丢失或删除的加密密钥。需要注意的是,不要把密钥委托保管和密钥恢复相混淆; 前者负责有关部门(如政府机构)对用户加密数据的访问,而后者负责用户访问他们自己的加密数据。
----在高级安全体系中,密钥恢复是基于服务器的。对于每一位可以使用高级安全功能的用户,KMS数据库中保存着当前和过去的加密密钥,这体现了双重密钥的工作方式,即用户有一对密钥用于加密,另一对密钥用于签名。如果高级安全体系仅仅使用一对密钥,并把这对私人密钥保存在KMS数据库中用于密钥恢复,它就不能保证可信的数字签名服务。数字签名要求用户能够访问只有他自己才能访问的私人签名密钥,否则任何人都可以模仿该用户。因此,Exchange Server只把签名密钥对保存在客户端。基于服务器的安全要求更多的管理职能,系统管理员必须在高级安全体系中对用户进行登记,定期地备份KMS数据库,以便必要时恢复用户的加密密钥。
----经过不断发展,Exchange Server KMS目前已经能够发布实用的安全消息。最初,KMS只产生X.509版本1的证书。Exchange Server 5.5 Service Pack 1(SP1)在这方面做了重要改进。在SP1中,用户可以向产生X.509 版本3证书的微软认证服务器(Microsoft Certificate Server,MCS)提供证书底稿。现在,KMS已成为注册机构。按照公钥体系(PKI)的定义,除了产生和废除证书外,注册机构执行所有证书管理的任务。证书机构负责证书的产生和废除;而注册机构识别用户,产生证书需求。由于KMS的这一重大改进,高级安全功能和企业PKI开始完全集成在一起。
----开放标准对于互通性非常重要。KMS高级安全功能既按照使用国际电信联盟的电信技术部(ITU-T)定义的证书格式制定X.509标准,也使用Inte.net 的安全信息标准S/MIME,因此具有良好的互通性。S/MIME是混合密码方案的优秀典型,它把对称及不对称密码和散列法的功能捆绑在一起。1999年7月,IETF在RFC 2632~2634中描述了S/MIME 3.0标准。在高级安全方面,互通性是非常重要的,即安全系统是否支持双密钥对,目前并非所有厂商的S/MIME产品都支持双密钥对系统。
KMS结构
----基本的Exchange 2000 KMS结构和以前具备高级安全功能的密钥管理服务系统没有较大的区别。新的KMS仍然使用一个私人JET数据库(kmsdir.edb)保存由KMS管理的账户和口令,以及用户的私人密钥、签名和保密历史。Exchange 2000 KMS仍然从KMS数据库获取一个密钥,并使用这个密钥加密和解密JET数据库。系统管理员必须在每次KMS启动时手工地输入口令,用它作为启动参数;或者把口令放在磁盘中,半自动地启动KMS。但是,Exchange 2000 KMS提供了一种新的选择,以便系统管理员可以改变数据库启动口令。这项特性增强了安全机制。如果需要改变口令,只需用鼠标右键点击“Key Manager”( 密码管理)按钮,选择所有的项目,就能够改变口令。
----为了使128位KMS数据库加密功能更加强大,新的KMS仍然使用Exchange独特的加密服务提供者(Cryptographic Service Provider,CSP)。一旦发生KMS离线的情况, Exchange 2000的系统助理(System Attendant,SA)可以起到缓冲存储的作用,存储与KMS相关用户的请求。例如,当一个用户在高级安全系统上进行登记而KMS处于离线状态时,那么该用户提交的签名证书请求将一直由SA存储,直到KMS在线。
----由于微软在Exchange 2000 和Windows 2000之间实现了目录集成,现在活动目录(Active Directory,AD)可以存储更多的内容,包括证书、证书废除表(Certificate Revocation List,CRL)和加密参数等。
----为了让Exchange 2000的KMS能使用X.509 版本3证书,系统管理员可以把KMS连接到证书服务器上,他们不再需要在证书服务器上安装特殊的CA策略模块expolicy.dll。Windows 2000的证书服务器所包含的策略模块已经支持Exchange 2000。为了与Outlook 97及早期版本的S/MIME兼容,新的KMS仍然支持X.509版本1证书格式。
----要使KMS能够产生X.509版本1格式的证书,可以进行如下操作:双击“Key Manager”按钮,输入KMS管理口令,点击“Enrollment”(登录)选项卡,选择“I have Outlook 97 or older clients in my organization. Issue Version 1 and version 3 certificates”(在我的组织中有Outlook 97或早期客户可以发行版本1和版本3证书)复选框,如图1所显示的那样。于是,在用户登录时,KMS就能够自动检测客户端的情况。然后,KMS根据检测结果,针对不同的客户产生不同的证书。如果客户采用的是Outlook 97,那么产生一个X.509 版本 1证书; 如果客户采用的是Outlook 98或更高版本,则除了产生一个X.509版本1证书,还向证书服务器发出请求,申请产生一个X.509 版本3证书。
高级安全服务器端的安装
----在安装Exchange 2000高级安全功能之前,需要安装Windows 2000、Exchange 2000、AD和Windows 2000 CA。利用Windows 2000 CA是Exchange 2000 KMS和以前版本的重要区别。系统管理员必须把CA和AD集成起来,这项集成也称为企业CA,同时需要加载机器登录代理(Machine Enrollment Agent)、Exchange用户(Exchange User)和Exchange用户签名(Exchange User Signature)模板。本文把随模板一起加载的CA称为KMS-CA。Windows 2000的证书模板对决定CA可以发布哪种类型的证书提供了比较灵活的方法。有了Windows 2000的发行候选者2(Release Candidate 2,RC2),就可以利用机器登录代理、Exchange用户和Exchange用户签名证书模板等。
----Exchange 2000有一个新的安装向导。在安装向导下安装KMS,要在“组件选择”(Component Selection)对话框中选择解压缩微软Exchange 2000,解压缩微软Exchange消息和协作,并选择微软Exchange密钥管理服务,然后在左边列点击“Install”(安装)即可。和Exchange服务器的早期版本一样,系统管理员在安装KMS时,可以选择软盘或手工这2种启动方式。安装进程创建一个新的叫做Exchange KMS服务器的Windows 2000程序组,并且颁发一个机器登录代理证书到密钥管理(KM)服务器。安装进程也将改变AD的配置名称,从而反映出那些和Exchange 2000管理组相关结构的变化。
----Exchange 2000管理组是Exchange 2000对象的逻辑分组; 系统管理员通过管理组进行管理。在Exchange 2000上安装了KMS之后,系统管理员会注意到KMS扩展了AD框架,并且在Exchange 2000机构内的每个管理组加上了高级安全容器(Advanced Security Container)。与Exchange Server 5.5(它每个节点包含一个KM服务器)不同,Exchange 2000 KMS现在链接到某一个管理组,每个管理组可以包含一个KM服务器。为了使Exchange Server机构中的所有信箱启用高级安全功能(即S/MIME),系统管理员需要至少在一个Exchange 2000服务器上安装KMS。从技术上讲,在包含多个节点的跨国Exchange服务组织上,设立一个KM服务器一般就足够了。然而,由于行政的原因,系统管理员往往需要安装多个KM服务器。因为某个分部可能不喜欢设在国外的中心来管理自己的S/MIME设置。一般来说,扩容不成问题,除非需要登录超过10万个高级安全用户。
----图2所示的高级安全容器可以包括2个对象:加密设置对象和密码管理对象。后者仅当管理组包含有KM服务器时才有效。加密设置对象在每个管理组中都有效,系统管理员可以为每个组设置不同的加密参数。
----和Exchange Server 5.5的KMS一样,新的KMS在加密配置的设置方面,与Exchange Server 4.0/5.0在实现S/MIME方面有所不同。从表面上看,Exchange Server和S/MIME与Exchange Server上的安全邮件操作有关,但事实上它们是指客户端的邮件安全操作,因为所有基于邮件安全的加密操作都发生在客户端。两种设置的不同之处在于客户端对于S/MIME协议和Exchange 4.0/ 5.0安全信息协议的支持。客户端软件所选择的对于邮件信息的加密算法依赖于客户端的软件版本和首选的加密算法。
----在客户端软件版本方面,Outlook有2个版本,即一个北美版本和一个国际版本。微软为北美版本提供了比国际版本更强的加密算法,因为美国出口法禁止出口密钥长度超过56位的加密软件。在北美以外的地区,系统管理员可以使用服务器门密码系统(Server Gates Cryptography,SGC)输出仅用于电子商务和某些电子邮件的128位加密算法。最近对于美国出口法的修改可能会很快导致国际加密标准的改变。
----至于首选的加密算法,系统管理员可以为每个管理组的加密配置对象设置首选的加密算法。如果在发送端和接收端都有多个加密算法可用,客户软件为客户邮件信箱所属的管理组选择首选的加密算法集。因为算法越强,越需要客户端具有更强的处理能力,在加密强度并非至关重要的情况下,应该选择与处理器关系不大的加密算法。例如,数据加密标准DES比三重DES较少地依赖处理器。
----在发送S/MIME信息之前,具有高级安全功能的客户端要通过AD检查接收端的加密能力。为了保证信息的安全,高级安全功能使用接收端支持的加密算法和密钥长度。要注意的是,具有高级安全功能的客户可以随时发送签名信息,但是为了发送加密信息,客户端必须首先从预定的接收端收到签名信息,签名信息通常和接收者的加密证书及公钥一起收到。
----安装KMS之后,系统管理员把Exchange KMS服务器组设置成能够访问和管理CA对象,这些可以通过对微软管理控制台(Microsoft Management Console,MMC)上的CA容器的安全特性进行设置来实现。
----证书模板是连接到一个ACL上的常规AC对象。要使Exchange 2000的登录通过KMS进行,系统管理员必须为每个模板加上设置成允许登录的Exchange KMS服务器。操作方法是,打开MMC的站点和服务图标, 选择“View”(查看)*“Show Services Node”(显示服务节点),双击“Services container”(服务容器)和“Public Key Service container”(公钥服务容器),然后选择“Certificate Templates container”(证书模板容器),在右边窗口合适的证书模板上点击鼠标右键,选择“Security”(安全)选项卡,在需要时改变允许登录的选项
,