使用服务器证书
一个服务器证书是你的服务器的一个电子ID,它可让你的服务器执行两个重要的功能来确保通信的安全:为用户标识自己和加密传送到这些用户的信息。SSL加密需要一个服务器证书被绑定到你的网站中。该证书包含有“Keys”,在你的网站和请求安全信息的用户间建立一个安全连接时,需要用到这些keys。
在Internet Information Server 4中,服务器证书是被绑定到Web服务中的,并不是个别的网站,除非一个网站拥有一个独立的IP地址。在Internet Information Services 5中,你可以绑定服务器证书到任何的网站,不过每个站点只可以设置一个证书。还有,在Internet Information Server 4中,你需要使用Key Manager来绑定证书。在Internet Information Services 5中,你可以使用Web Site Certificate向导,令整个过程变得更加简单。该向导可引导你设置请求和安装一个证书的全过程。
客户证书映射
客户端的证书和服务端的是等价的。客户证书是一个数字ID,该ID是用来向你的Web服务器标识一个客户的,并且可让你的服务器使用客户证书映射。客户证书映射将一个客户的证书映射为一个Windows用户帐号,并且可以自动认证和允许带有这些证书和正确帐号的用户进行访问。
例如,一个称为Vicky的用户拥有一个客户证书,她点击了一个到该公司网站的雇员信息部分的连接,她的浏览器就会将其证书信息放到其服务器请求的头部,服务器就会检索该证书的一个映射。如果用户的证书是正确的,并且映射到一个有效的Windows用户帐号,而且该帐号允许访问这些内容,Vicky就会被自动地认证,请求的数据也会出现在她的浏览器中。
证书映射的类型
在Internet Information Services 5中,有两类的证书映射:一对一和多对一。一对一映射将一个特别的证书和某个Windows用户帐号联系起来。客户证书的一个拷贝必须放到服务器上以作认证之用。如果用户使用另一个客户证书作同样的请求,将需要重新建立映射。
多对一的映射仅使用证书中的某些信息,并且与一定的标准作对比以进行用户帐号映射。只要该证书符合这些标准,认证就会成功。这样多个证书就可以被映射到一个用户帐号,而且证书的拷贝无需要存放到服务器中。
两者之间的区别可以用以下的情况说明。当一个带证书的请求到来时,服务器有两种的方式来映射它。服务器可以对自己说“我需要查找一个2002年3月建立的证书,它的序列号是ZXV345T4689AS234,如果我找不到该证书,我就会发送一个403-禁止的错误信息,并且处理完毕”,或者,服务器也可以这样“我正在查找XYZ Certificate公司建立的任何证书,它是为ABC公司建立的,在2002年3月1日到2002年6月1日之间。如果我找到类似的证书就可以了”。第一种情况就是一对一映射,后者是一个多对一映射。
很容易看到,一对一映射更加安全,不过它需要更多的设置和维护工作,而多对一的安全性要差一点,不过可以更加灵活,而且需要较少的管理维护工作。
Fortezza卡和证书映射
智能卡上带有证书的一个拷贝,并且可以用作映射。将证书的信息拷贝到卡上后,证书的处理就象其它的客户证书一样。通常一对一的映射被用在Fortezza卡上,因为它是为更高的安全性而设计的。
通过SSL进行基本的认证
SSL加密可以和基本的认证混合使用以加强安全性。SSL通常是用来加密与Web服务之间的数据传输的--例如,在一个在线购买中加密一个用户的信用卡密码。当SSL和基本的认证混合使用时,用户的帐号和密码也是加密的,这样就更加安全。
对于使用非微软浏览器的客户来说,带SSL的基本认证就更加有利了。这些非微软浏览器的客户可以被Internet Information Services认证,它们的用户名和密码也不会以明文的方式在Internet上传输。
数字证书
Internet Information Services还支持X.509数字证书以作访问控制。这些数字证书必须是经由一个信任的证书授权建立,并且必须在客户的计算机上维护。它们的运作和一个ID卡类似--这就是在客户企图访问Web服务器的一个资源时,它会送出数字证书的信息。不过,相对于简单的ID卡证书来说,它多了一层的安全性。在产生数字证书时,用户必须提供一个密码。以后使用该证书时,客户还必须再次输入该密码以确保客户是该数字证书的真正拥有者。
使用数字证书需要一个适当的协议,例如SSL,该协议通常需要存在于客户和服务器上。通常服务器都会提供一个证书给客户以表明服务器或者域名的身份。
选择你的映射方法
选择哪种映射方法和几个方面有关,不过主要的两点是安全级别的需要和可用的管理资源。如果你需要高的安全性,那么一对一映射是最理想的,只要你可以付出资源来管理它。如果你的管理资源有限,需要映射的客户也很多,那么多对一就很适合,只要你需要的安全性不是特别高。具体选择哪种方式,以下是一些建议:
。小型网络,对安全性要求不高;无需证书。即使网络小,还是选择多对一的方式,因为对信息的安全性要求不高。你可以创建一个简单的证书并且使用一个软盘来共享它。
。小型网络,对安全性要求不高;需要证书。如果你需要知道谁正在访问什么,你可以使用多对一的映射,其中一个标准是使用用户名,并且映射到单个的用户帐号。这样需要更多的工作,不过仍然比一对一好,因为用户可以替换证书而无需要重新设置
。小型网络,带有保密的信息,需要证书。在这种情况下,最好使用一对一的映射,并且映射验证到个别的帐号。这意味着如果用户使用一个另外的证书,就必须重新设置一个新的映射。不过这里假定用户的数目比较少。你也可以使用Windows 2000的Active Directory认证特性,要了解更多的相关信息,可以查看Windows 2000的文档。
。大型网络,对安全性的要求不高;不需要证书。解决的方案和小型的网络一样,不过你可以为每个部门或者组选择一个不同的验证。
。大型网络,带有保密的信息;需要证书。从安全的角度来说,你需要选择一对一。不过,为了简化管理,你可以可以选择多对一。主要是按你的需要,如果你使用一对一,可以考虑使用Active Directory来简化管理。
。对安全性要求很高:如果是这样,你可以选择使用Fortezza智能卡的一对一映射。你只需要将智能卡放入到读取器就可以进去。不过,如果你有大量的客户,这将是一个管理的噩梦。