下载第 25章 证书的使用在前面的章节中,研究了许多基于 We b的应用程序的安全技术。这些技术都是用于处理
I n t e r n e t上的安全问题。在网上,一些用户能够很容易地访问和操纵数据,而不需要任何事先的验证。这些安全系统通过对非授权用户隐藏信息和在公用网上(如 I n t e r n e t)建立虚拟的专用网来工作。
然而,对访问数据的限制只是整个问题的一部分。在我们处理一些敏感数据传输时,我们需要保证这些数据能安全到达其目的地,而不发生改变或在途中丢失数据。例如,从
d e l l,c o m网站购买一台新型电脑,用户不希望他们的信用卡号以明码传送。以这种方式传送的信息,对于知道如何分析 T C P数据包的应用程序(例如微软的 N e t M o n产品)而言,是完全可以浏览的。使用类似于 N e t M e n的工具,可非常容易地读取这样的原始数据。因此可同时让零售商和用户以加密的格式传送数据,以致于这种证书包除了他们,别人都不能破译数据的信息。通信过程中证书的使用就是这样一种方式,可以确保客户和服务器之间的通信都是以安全的方式进行的。
在本章中,我们将研究证书( C e r t i f i c a t e)如何验证用户确实是他声称的那个人,如何确保在 I n t e r n e t上传送的数据不被篡改。本章主要涉及证书的一些基本技术、证书的工作方式和如何融合到 We b站点之中。我们讨论的主要内容是:
一致性和可靠性的基本概念。
证书的类型和证书机构( Certificates Authoritie) 。
有关获取证书的信息。
获取证书的示例。
怎样使用证书。
怎样用 A S P管理证书。
怎样用 MS Certificate Services建立一个证书机构。
本章所涉及的内容用于处理服务器证书管理,要求在 Windows 2000 Server或 A d v a n c e d
S e r v e r操作系统下运行。但不能用于 Windows 2000 工作站版本,因为工作站版本没有证书服务器选项。
25.1 安全性、一致性和可靠性敏感数据传送的机制要求满足以下三个方面:
安全性( S e c u r i t y),数据不能被其他人读取。
一致性( I d e n t i t y),通信中的对方确实是他声称的身份。
可靠性( A u t h e n t i c i t y),获得的数据与传送的一致。
提供安全通信的技术必须基于具有上述三个特点的机制,通常这些技术依赖于加密算法,
这些算法用一种既难又费时的方法加密数据。因此,实际上任何人都不可能只根据加密数据推算出原始数据。目前最好的加密算法基于一种名为非对称密钥加密( asymmetric key
e n c r y p t i o n)的技术,这种加密方法看起来十分简单,但却依赖于复杂的数学算法。这种非对称密钥加密机制不仅可以保证安全性,还可以保证一致性和可靠性。
非对称密钥加密下面简要解释一下非对称密钥加密机制。
两个用户要在网络中以保密方式交换数据。接收者有两个数学上相关的密钥。一个密钥就是一段数据,通过密钥可以对其他数据加密或解密。这两个密钥有特殊的关系,一个对数据加密,只有另一个才能解密并恢复原始信息。接收者给发送者一个密钥,发送者用它来加密。在两个用户间传送的这个密钥叫公共密钥( public key),另一个叫私有密钥( private key) 。
接收者永远不会泄露其专用密钥,但可以将公共密钥给任何人。如果发送者要向接收者发送一些秘密数据,可以先用接收者的公共密钥加密。只有持有私有密钥的人,才能破译加密数据。图 2 5 - 1显示了采用非对称密钥加密交换数据的步骤。
图 25-1 采用非对称密钥加密交换数据这种基于公共与私有密钥的数学关系的加密机制功能很强大,有很高的安全性。但这种数学关系十分复杂,这两种密钥间特有的关系基于分解巨大的数字。一台指令周期为 1μs的计算机分解一个 2 0 0位的数字需要 4 0亿年。 由此可以看出分解数字的数学复杂性和加密的安全性。
这种非对称密钥加密机制是在网络上安全通信的基础,可用于安全通信协议,如安全套接字层( Security Socket Layer,S S L )。 S S L协议为启动 T C P / I P连接提供安全握手。 I I S用它来建立客户和服务器间的安全连接,在 2 5,4,1节中,我们会看到在 I I S中使用 S S L进行安全连接。
1,非对称密钥加密与一致性在有些环境下,这种安全通信形式不能保证发送者的身份可靠性,这就涉及到一致性的确认。假设我们收到朋友发来的一封电子邮件,就可以通过非对称密钥加密方式来防止他人偷看这些秘密信息,这能保证不会有第三者读取我们的秘密信息,但不能确保这些信息确实是发自我们的朋友。因为任何人都可以获取公共密钥,这样任何人都可假冒我们的朋友给我们发送信息。
这个问题在电子商务应用程序中非常重要。人们要确信是从与他们在网上洽谈的卖方购买东西,而卖方也需想确认真正的买主,以及他们是否要购买选定的东西。总之,想要确认对方的身份,就会遇到这个问题。
第 25章 证书的使用 计计 757下载
①发送者发送他的公共密钥
②接受者用发送者的公共密钥加密数据
③接受者发送加密后的数据给发送者
④发送者用他的私有密钥解码数据发送者私有密钥接收者公共密钥在本章里,一致性指的是识别一个人或一个公司的机制。从技术上讲,它是从一个真实实体(如一个人或一个公司)到一个 I n t e r n e t实体(如一个网址、网络浏览器或一个电子邮件程序)的映射。
我们可以用非对称密钥加密机制来确认一致性。注意,我们用公共密钥加密的数据只能用私有密钥解密。然而,反过来也是如此,用私有密钥加密的数据只能用公共密钥才能解密。因此,只需颠倒这对密钥的角色就可以确认一致性。发送者用他的私有密钥发送信息,接收者用发送者的公共密钥对信息解密,这就确保了他接收的信息来自持有私有密钥的人,图 2 5 - 2 显示了一致性确认过程。
图 25-2 一致性确认示意图
2,非对称密钥加密与可靠性一致性的确认也暗示了数据传输的可靠性,即接收的数据与发送的数据完全相同。其实,
非对称密钥加密本身的特点就意味着如果信息有误,接收者将不可能用发送者的公共密钥解密。然而,有时我们想发送一些普通数据,也需要接收者能够证明数据发自于我们,而且没有发错。例如每个人都可读取一个公用合法文件,但其可靠性应该得到确认。为了使人们都能确认数据的可靠性,可以使用一种数字签名( digital signature)技术。
数字签名相当于一个人的手写签名,可用来确认发送者的身份和确保数据(文件、消息、软件等)在传输中没有改变。它来自于一个字符串,叫做文档散列或校验和,是从文
758计计 ASP 3 高级编程 下载
①发送者发送他的公共密钥公共密钥
③发送者发送加密后的数据给接收者
②发送者用他的私有密钥加密数据
④接收者用发送者的公共密钥解码私有密钥发送者 接收者发送者发送文档和签名验证算法签名算法公共密钥私有密钥数字签名数字签名图 25-3 数字签名使用示意图档中通过计算得出的,并由建立文档的人用私有密钥加密而成。文档散列就像是文档的指纹,产生于散列算法,这些算法提取大量数据并只返回一小部分,通常是固定大小的。散列算法对不同的文档得到相同的文档散列是极困难的,而仅通过改变一些字符来获取相同的散列值更困难 。
数字签名机制将散列字符串绑定到文档和私有密钥的持有者。要确认文档的可靠性,可以用发送者的公共密钥解密签名(这样就确认了发送者的一致性),生成文档校验和,并将之与接收的数据比较,图 2 5 - 3显示了如何运用数字签名过程。
为文档建立一个数字签名称为给文档签名,给文档签名并不是改变其内容,只是生成一个数字签名,可以将其绑定到文档上或单独传送。
25.2 证书与证书机构非对称密钥加密是保证传输数据的安全性、一致性和可靠性的基本机制。所有功能都依赖于公共密钥的分发,以及私有密钥与公共密钥匹配。换句话说,如果给他人发送加密信息,
需要知道他的公共密钥;或者如果收到一个签名的文档,就需要用发送者的公共密钥去核实他的可靠性。
然而,我们收到一个公共密钥,并不能确认发送信息的人正是所找的人。很可能会有人错发了公共密钥。需要记住的是非对称密钥加密只确保密钥匹配机制的工作,而不是公共密钥掌握在哪个人手中。
证书可以解决匹配问题。证书技术允许个人被唯一地确认身份,这样如果证书是有效的,
所信任的应用程序或服务器就可以轻易验证他。然而,证书技术并不限于对单个用户进行验证。它也可以验证文档,如电子邮件或其他任何支持证书加密的应用程序。
1,证书的概念数字证书是一个唯一的记录,包含用于证实个人或组织的身份的必要信息。数字证书来源于 X,5 0 9标准化格式,执行了 R S A实验室提出的公共密钥密码标准( P u b l i c - K e y
Cryptography Standards,P K C S) 。我们可以在 h t t p,/ / w w w.rsa.com /rsalabs/pubs/PKCS/上找到更多的关于这些标准的信息。
X,5 0 9标准描述了一些证书要求:
证书使用的格式版本。
证书的序列号。
用于签署证书的算法的标识符。
发出证书的证书机构。
证书的初始日期与终止日期。
拥有者的姓名。
拥有者的公共密钥。
证书机构的数字签名。
每项都对应于证书结构的特定字段。证书也可以包括其他信息,如邮政地址、电子邮件地址、国家、年龄、性别等等。这种附加的数据是可选的,取决于特定的证书类型。表 2 5 - 1
显示了证书的字段的一个典型实例。
第 25章 证书的使用 计计 759下载表 25-1 证书的典型结构字 段 内 容
Ve r s i o n V 3
Serial Number 6 F 3 1 4 B 0 2 4 8 C 6 2 4 3 D 2 F C D 6 B 7 B D C 8 8 1 D 8 3
S i g n,A l g o r i t h m RSA(512 位 )
I s s u e r VeriSign Inc.
Initial date 07/08/99 0.00.00
Expiration date 07/07/00 23.59.59
O w n e r’s name John Smith
O w n e r’s public key 3 0 4 7 0 2 4 0 0 7 E 9 C 8 F 3 E D E C 8 A D A 4 C 5 7 A 4 6 F 1 C 9 D 0 7 B F 0?
I s s u e r’s signature 9 B E F 5 4 6 8 0 B 4 F D 3 C F 9 E 4 0 6 4 6 5 A 7 0 2 0 3 0 1 0 0 0 1 6 A 7 2 F 1?
存储在证书字段中的有些信息将在以后的章节内详细讲述。表 2 5 - 1说明的是证书所必需的基本结构。注意,证书本身并不能确认个人的身份,任何人都可根据标准格式创建和发布证书。发布证书的系统要遵守一些非常严格的标准,这样证书才能提供我们所要的安全性。
2,证书机构在标准证书格式所需的信息中,注意一下证书机构( Certificate Authority,C A),也就是表 2 5 - 1中的发行者( I s s u e r) 。 C A是负责确认公共密钥的匹配的一个受信任的第三方伙伴,即它证实某一公共密钥是属于已知用户的。 C A负责发布、撤消、刷新数字证书以及为数字证书提供目录。在为个人或组织发证书前,C A必须经过严格的过程才确认他们。这就确保了该密钥匹配过程的合法性。 C A可以被认为是 I n t e r n e t上的公证人。
表 2 5 - 1显示的证书结构有两项与 C A有关的字段,I s s u e r与 I s s u e r’ s signature。这说明 C A
确保它所存储的公共密钥属于证书的持有者。这种办法只是将个人可信性转变为 C A的可信性问题。但谁又能保证 C A是可信的?回答这个问题并不简单。但是,信任是 C A存在的基础。
目前,许多组织提供证书服务。由于电子商务的需要,这种组织日益增多。表 2 5 - 2显示了一些知名的 C A和他们的网址。
表 25-2 一些知名的 C A和他们的网址机 构 名 称 U R L
B e l s i g n w w w,b e l s i g n,b e
Certisign Certificadora Di g i t a l w w w,c e r t s i g n,c o m,b r
C O S T w w w,c o s t,s e
Entrust Technologies w w w,e n t r u s t,c o m
E u r o S i g n w w w,e u r o s i g n,c o m
GTE CyberTr u s t w w w,c y b e r t r u s t,g t e,c o m
I n t e r C l e a r w w w,i n t e r c l e a r,c o,u k
Keywitness w w w,k e y w i t n e s s,c a
S E Tc o w w w,s e t c o,o rg
T h a w t e w w w,t h a w t e,c o m
Ve r i s i g n w w w,v e r i s i g n,c o m
Xcert Software w w w,x c e r t,c o m
当两个用户或两个组织交换他们的证书后,只要他们信任发布证书的 C A,就可以确认对
760计计 ASP 3 高级编程 下载方的身份。每个证书都包含持有者的公共密钥,因此,可以用它加密数据发送给证书的持有者。证书还包含 C A的数字签名,这就确保没有人修改过证书,它所存储的信息准确无误。
数字签名是文档建立者用私有密钥制作的。因此,为了确认证书是由特定的 C A签发的,
就需要 C A的公共密钥。在 2 5,5节中会看到,多数 C A的公共密钥通常与浏览器、电子邮件程序以及其他软件包一起分发。这样用户就可以确认某一证书的可靠性。
3,证书的类型
I n t e r n e t上常用的数字证书有四种,每一种都有其特定的作用范围:
服务器证书( Server Certificate),即 Server ID。这些证书允许确认使用安全通信协议
(如 S S L)的服务器的身份。用户可以在发送秘密信息前确认服务器或 We b站点的身份。
个人证书( Personal Certificate),用于确认个人。服务器可以用他们来鉴别用户,或安全发送电子邮件。
软件发布者证书( Software Publisher Certificate),用来给在 I n t e r n e t上发布的软件签名。
它们解决了目前软件产业面临的一个重大问题,即用户怎样才能相信 I n t e r n e t上发布的代码。软件包用商标和密封包装使用户相信他们的完整性,商标代表着信用和声誉,密封包装则保证封装后就没人动过它。但在 I n t e r n e t上发布的代码没有这些安全保证。为了提供这种保证,软件发行商就需要一个数字的安全保证,代码签名就是 I n t e r n e t上的商标和密封包装。然而软件发布者证书不能确保签名的代码可以安全运行或没有错误。
C A证书( Certificate Authority Certificate),用于确认 C A。这种类型的证书需要做出一些解释。 C A可以分为两大类:根 C A和中介 C A。它们的区别在于,根 C A可以发布任何形式的证书,并由本身确认。而中介 C A除了不能发布其本身的证书外,可以发布其他任何形式的证书。根 CA 证书是唯一一种发布者和持有者是同一人的证书。根 CA 可以给中介 C A发布证书,而且中介 C A可以给其他中介 C A发布证书。 C A发布给其他 C A
的证书就是 C A证书,这就有了证书的层次结构,每一层都向他的发布者寻求信誉担保,
直到根 C A。这个层次结构就是 C A链。这种 C A的层次结构来自于它的组织形式,如地理位置、发给的证书类型、管理的方便性等。
图 2 5 - 4显示了基于地理位置和发给的证书类型的 C A链的示例。
图 25-4 CA 链的示例这种层次结构主要优点是只要信任相应的根 C A,就可以信任证书。也就是说只要相信
C A链的根 C A,就可以相信每个中介 C A。
第 25章 证书的使用 计计 761下载根 CA
中介 CA美国 CA 欧洲 CA
个人证书 CA 服务器证书 CA 个人证书 CA 服务器证书 CA
762计计 ASP 3 高级编程 下载
25.3 从证书机构获取证书要得到一个证书,必需与证书机构( C A)打交道。获取证书的过程称为注册 ( e n r o l l m e n t ),
获取不同类型的证书的过程又有些不同。
在注册前,应该认真考虑选择 C A。这儿有几个需考虑的问题:
C A是否值得依赖,它的证书业务是否既可满足我们的需要又能在我们的区域内有效?
作为一个知名的值得依赖的组织,客户和其他 C A应该能立刻识别他。如果选择了不著名的 C A,其他用户很可能们拒绝我们的证书。
CA是否熟悉我们组织的商业利益?从技术、法律和商业角度选择相应的 C A。
C A为了确认身份,会要求我们提供哪些类型的信息?大多数 C A要求提供详细的信息,
如我们的身份、我们组织的身份及管理 We b服务器的正式权力。根据所需身份识别担保的级别,C A可能需要更多的信息,如专业关系或财政收入,以及公证人对这些信息的认可。
C A是否有一个接收在线证书请求的系统,如那些由密钥管理服务器产生的请求?一个在线系统能够加快处理证书请求的速度。多数 C A都有该系统。
每个 C A都有其相应的证书操作说明( Certification Practices Statement,C P S ),公开陈述执行的操作过程,通常发布在 C A的网站上。因此在申请证书前可以阅读它。
图 2 5 - 5显示了 Thawte CA的主页,注意到 C P S及证书注册窗体的连接:
图 25-5 Thawte CA的主页
1,获取服务器证书为了在 We b上安全通信,服务器证书用于标识使用 S S L协议的服务器。当浏览器通过
H T T P S协议 ( H T T P协议的变体 )与已证明的 We b服务器进行通信时,它同时收到服务器的证书和公共密钥。这样浏览器就能安全地标识服务器的拥有者,并用它的公共密钥加密数据。
为了使 We b服务器能使用 S S L和证书,必须执行一个特定的过程,这个过程取决于所用的
We b服务器和 C A。然而,执行过程的每一步都与所有服务器及多数 C A相适应。如下所述:
第 25章 证书的使用 计计 763下载
服务器证书要被捆绑到在一个已注册的 I n t e r n e t域,因此确保为 We b站点正确地注册一个域。如果没有的话,必需在申请证书前为 We b站点注册一个域。
用服务器软件附带的工具生成一对密钥和一个证书签名请求( Certificate Signing
R e q u e s t,C S R) 。密钥生成阶段生成了服务器的私有密钥和公共密钥,因为生成的 C S R
含有服务器的公共密钥,因此这一步很重要。在 C S R生成阶段,必需提供其他一些信息,
如 We b站点的 U R L、公司或组织的名称和地址。该步骤的结果是一个 A S C I I文件,包含标准格式(即 P K C S# 1 0)的证书请求。
此时,可以向 C A发送 C S R。这可用多种方式完成,可以通过发送电子邮件或使用 C A网站的在线注册窗体。在后一种情况中,必须执行从 C S R文件到 We b窗体的剪切与粘贴操作。
C S R文件的内容应该如下:
----BEGIN NEW CERT I F I C ATE REQUEST- - - -
M I I B J T C B 0 A I B A D B t M Q s w C Q T D V Q Q Q E w J V U z E Q M A 4 G A 1 U E C h s 4 1 B M H Q X J p e m 9 u Y
T E N A 1 U E B x M E T W V z Y T E f M B 0 G A 1 U E C h M W T W V s 3 X b n z Y S B D b 2 1 t d W 5 p d H k g Q 2 9 s b G V n Z
T E A 1 U E A x M T d 3 d 3 L m 1 j L m 1 h c m l j b 3 B h L m V k d T B a M A 0 G C S q G S I b 3 D Q E B A Q U A A 0 k A M E Y C
Q Q D R N U 6 x s l W j G 4 11 6 3 g A s j / P 1 0 8 s F m j k j z M u U U F Y b m t Z X 4 R F x f / U 7 c Z Z d M a g z 4 IMm Y 0 F 9 c d p
D LTA u t U LTs Z K D c L A g E D o A Aw D Q Y J K o Z I h v c N A Q E E B Q A D Q Q A j I F pT Lg f m B V h c 9 S q a i p 5 S F
N X t z A m h Y z v J k t 5 J J 4 X 2 r 7 V J Y G 3 J 0 v a u J 5 V j k X z 9 a e v J 8 d z x 3 7 i r 3 P 4 X p z + N F x K 1 R =
----END NEW CERT I F I C ATE REQUEST- - - -
在同一窗体上,也可能会询问其他管理信息(如联系人姓名、费用等)和技术信息(如服务器软件,询问短语( challenge phrase)等) 。多数 C A要求询问短语,我们能用它来取消和更新证书。
在向 C A发送 C S R后,必须等待 C A的确认。 C A会确认提供的信息,并询问其他一些信息。
用来确认我们的身份的信息叫权利证明( proof of rights),可以是传统的文档,如
Business License,Articles of Incorporation或 Tax ID号码。确认过程所用的规则由 C A决定,并取决于所需的身份级别。
当确认过程完成时,C A会创建一个证书,并用私有密钥签署它。该证书包括相应的信息,
如公共密钥、终止日期及其他数据。然后 C A将它发送给我们,或发布到网站上以供下载。我们收到的证书是一个 A S C I I文件,包括 P K C S# 7标准格式的数据。内容如下:
----BEGIN CERT I F I C AT E - - - -
C B H c m 9 1 c C B D Q S 5 j c m w w R q B E o E K G Q G Z p b G U 6 Ly 9 c X E N F U I RT U I Z c Q 2 Vy d F N y d l x D Z
X J 0 RW 5 y b 2 x s X E 1 T I E N l c n RTc n Y g V G V z d C B H c m 9 1 c C B D Q S 5 j c m w w C Q Y D V R 0 T B A I w A D B i
B g g r B g E F D Q c B A Q RW M F Q w U g Y I K w Y B B Q U H M A K G R m h 0 d H A 6 Ly 9 D RV J U U 1 J W L 0 N l c n R
Tc n Yv Q 2 Vy d E Vu c m 9 s b C 9 D RV J U U 1 J W X 0 1 T I E N l c n RTc n Y g V G V z C B H c m 9 1 c C B D QS5 j c n Q w D
Q Y J K o Z I h v c N A Q E E B Q A D Q Q A h q 7 0 R l s e 0 u l P s t U + I w d j e N j 5 p
----END CERT I F I C AT E - - - -
最后可以按相应文档的提示在 We b服务器上安装服务器证书。记住要为收到的文件制作拷贝。注意 C A从不占有你的私有密钥。如果丢失服务器证书,必须申请一个新的 C S R。
上面所讲的是从 C A获取服务器证书的最一般的步骤,适用于多数服务器软件和 C A,下面是证书的请求与安装的一个示例。将使用 IIS 5.0作为 We b服务器,Ve r i s i g n,I n c为 C A。
(1) 生成密钥对和 C S R
第一步,必须先生成密钥对和 C S R,这可以用 Internet Service Manager来完成。右击要为其申请证书的 We b站点并选择 P r o p e r t i e s,接着单击 Directory Security选项卡,会看到这个如图 2 5 - 6所示的窗口。
可以看到 Secure communications框中的
E d i t按钮是无效的,因为还没有安装任何服务器证书。单击 Server Certificate按钮,运行 We b
Serrer Certificate Wi z a r d来搜集用于生成 C S R
的信息。
点击,N e x t”,在出现的窗口中,选择 C r e a t e
a New Certificate。在下一界面中,选择单选按钮,Prepare the request now,but send it later” 。
再点击,N e x t”,你将被要求为 C S R提供详细信息。接下来会要求输入公司和 We b站点的信息。
这种信息就是服务器的区别名称( Distinguished Name) 。向导将询问以下详细信息:
O rg a n i z a t i o n:该项填写拥有此域名的组织或公司。组织名称(公司、大学、政府机制)
必须是在国家、省、市级权力机关注册的。必须提供组织注册的法定名称。
Organizational Unit:可以用此项来区别同属一个组织的部门。
Common Name:这个普通名是完全限定的域名,D N S用它来查找服务器(如
w w w,w r o x,c o m) 。浏览器通过该信息标识我们的 We b站点,如果改变我们的主机名,则需要再申请一份证书。连接到主机的客户浏览器将检测证书的普通名是否与 U R L匹配。
在这个字段中,不能使用通配符( *,?等),I P地址或端口号,也不能包括 h t t p,/ /或
h t t p s,/ /。
C o u n t r y / R e g i o n:在该项中,需输入两个字符的 I S O格式代码,如美国为 U S,意大利为
I T,英国为 G B。
State/Province:必须输入组织所在的州或省。
City/Lo c a l i t y:填写组织所在的城市。
输入所有必需的信息后,还要输入存储 C S R的文本文件名。然后会有一个界面显示已输入的所有信息,接着向导会生成密钥对,创建 C S R并存储到刚指定的文件中。点击 F i n i s h按钮便完成了该过程。
(2) 申请证书现在可以连接到 Verisign We b站点进行注册。地址是 h t t p,/ / w w w,v e r i s i g n,c o m。在主页中,
按照链接找到在线注册窗体并输入所需信息。要输入 C S R,须先用 N o t e p a d之类的文本编辑器打开 C S R文件并复制 C S R,包括 BEGIN NEW CERT I F I C ATE REQUEST和 END NEW
C E RT I F I C ATE REQUEST两行,再粘贴到窗体中,如图 2 5 - 7所示。
输入我们的组织的联系人和酬金。
(3) 等待确认在提出申请后,要等待证实通知。会收到一封证实注册的电子邮件,该邮件包括个人识
764计计 ASP 3 高级编程 下载图 25-6 站点的 Diretory Serurity 选项卡第 25章 证书的使用 计计 765下载别码 (Personal Identification Number,P I N )和 U R L,我们可以用 P I N检查证书请求的状态。电子邮件会在提出申请后两小时内发送。然后确认过程开始。 Ve r i s i g n将检测你发出的信息,也可能需要其他文件。如果不需要其他文件,可以在 3? 5天后获得证书。
图 25-7 申请证书的窗口
(4) 接收证书
Ve r i s i g n用电子邮件发送证书。其他 C A(如 T h a w t e)将证书发布在 We b服务器上供下载。
在这个示例中,我们应该在电子邮件的附件中收到证书。现在,准备将其安装到 We b服务器。
(5) 安装证书为安装证书,必须重新打开 Internet Service Manager,并点击 Directory Se c u r i t y选项卡中的 Server Certificate来重新启动 Web Server Certificate Wi z a r d。该向导将提示有一个未定的证书请求。下一步就可以处理或删除请求。如果不想删除,可选择 Process the pending request
and install the certificate。向导要求输入含有 C A发送的证书的文件的路径和名称。最后一步,
该向导安装服务器证书。
安装证书后,We b服务器将启用 S S L。然而,除非明确地在一个 I I S资源( H T M L页面、
A S P页面或虚拟目录)上需要 S S L,否则服务器不使用 S S L。我们将会在 2 5,4节中看到如何使
S S L在 I I S资源上可用,如果需要证书来测试一下你的系统,可从 Ve r i s i g n和其他的 C A上免费获得。
2,获得个人证书个人证书用来核实个人的身份。电子邮件程序能用它发送加密的消息。或者,浏览器借助于它访问要求客户身份验证的 We b站点。要获取个人证书,必须按照一定的过程进行。总结为以下几点:
对于个人证书,不必显式地建立私有密钥和公共密钥,它们由浏览器在申请时生成。第一步,访问选择的 C A的 We b站点,填写 C A提供的窗体提出证书请求。必须输入身份信息(全名、地址和出生日期),电子邮件地址,还要根据 C A的要求输入其他一些数据,
如性别、护照号码、纳税号码等。
向 C A发送请求后,要等待 C A的核实。尤其是我们的电子邮件地址,要通过发送指令检测。
最后一步,必须在浏览器和电子邮件程序中安装证书,并且将之用于客户身份验证和消息加密。安装过程取决于使用的电子邮件程序或 We b浏览器。有些 C A也提供一个在线系统,可以自动给浏览器安装证书。
获取个人证书与服务器证书略有不同。获得了个人证书,就可以访问要求证书验证的
We b站点,以及发送可靠的和加密的电子邮件消息。下面将介绍用微软的 Internet Explorer从
Ve r i s i g n获取个人证书的过程。
(1) 连接到 Verisign 并申请证书与服务器证书不同的是,不必显式地建立密钥对。这可以由含有登记窗体的 We b网页所使用的 A c t i v e X控件 (Xenroll,dll)来完成。连接到 Ve r i s i g n的 We b站点后,浏览如图 2 5 - 8所示的
Digital ID在线登记窗体。
图 25-8 在线登记窗体必须输入姓名和电子邮件地址,也可以输入其他信息,如国家、出生日期和性别等,在有些 We b站点上可以简化登记。可提供的其他信息还包括询问短语、财务信息以及专用密钥的保护级。
向 Ve r i s i g n的服务器发送数据时,A c t i v e X控件将生成密钥对和 C S R,并在注册表中存储私有密钥。
需注意的是,早期的 Netscape Communicator 4.0用不同的方法生成密钥对,N e t s c a p e定义了专用的 H T M L标记< KE Y G E N>,这个标记必须在窗体中使用,并显示一个组合框,允许选择生成的密钥的大小。下面是使用< KE Y G E N>的示例:
<KEYGEN NAME =,m y k e y” >
点击提交按钮时,就生成了密钥对。私有密钥存储于本地密钥数据库中,该数据库是由
C o m m u n i c a t o r管理的一个文件。而公共密钥嵌入 C S R中,发送到服务器。
(2) 等待指示现在必须等待电子邮件消息。该消息也可以检测我们在窗体中输入的电子邮件地址。在本例中,这个核实过程十分简单。这取决于申请的证书的级别(本示例中,为级别 1) 。申请
766计计 ASP 3 高级编程 下载更高级别的证书时,将进行更精确的核实。
收到的消息会告诉我们该怎么做。它提供给我们一个 P I N,并要求输入到 Ve r i s i g n的安全
Digital ID Center的一个窗体中以获取证书。网址为 h t t p s,/ / d i g i t a l i d,v e r i s i g n,c o m / e n r o l l m e n t /
m s p i c k u p,h t m。必须使用发送登记窗体的计算机和浏览器来完成这一步。
(3) 获取和安装证书发送出 P I N后,Ve r i s i g n服务器将会生成证书。这需要几分钟时间。完成后,我们将会收到一个显示新证书中的有关数据的 We b页面。如果数据正确,单击 I n s t a l l按钮,证书就会安装在浏览器上。执行安装的是同一 A c t i v e X控件。
也可以把证书安装到 MS Outlook Express
上,给电子邮件签名和加密。下面描述了如何将个人证书与 MS Outlook Express的电子邮件帐号结合。
1) 从 To o l s菜单中选择 A c c o u n t s,再选 M a i l
选项卡。
2) 选择想联关的邮件帐号,点击 P r o p e r t i e s,
再选择 Security 选项卡,就能够分别在 S i g n i n g
c e r t i f i c a t e和 Encrypting preferences框中选择用于签名和加密的证书。当然,可以选择同一个证书,如图 2 5 - 9所示。
3) 点击 O K来确认选择。
Ve r i s i g n同样提供了使用说明和其他一些关于使用个人证书的信息。和服务器证书一样,可以获得在一段时间内有效的免费测试证书。
3,获取软件发行者证书软件发行者证书( Software Publisher Certificate,S P C )用于核实在 I n t e r n e t上发行软件的开发者或发行商的身份。可以用这种证书核实签名软件的开发者,并确保软件没有被篡改,
需注意的是,签名软件并不加密软件本身。
在申请 S P C前,必须注意两点。一是使用的给软件签名的技术。目前两种主要的软件签名技术是 Microsoft Authenticode 和 Netscape Object Signing。这两种技术是互不兼容的,需要不同的工具与不同类型的证书。因此,必须分别申请证书以使用这两种技术来给软件签名。
二是软件开发者的类型。许多 C A区别对待单个程序员软件发行者( Individual Software
P u b l i s h e r s)和商业软件发行者( Commercial Software Publishers) 。这一区别在于核实过程不同,收费也不同。
申请证书时,必须确定使用哪种技术以及自己是哪种类型的软件开发者。
获取 S P C的过程有以下几步:
(1) 在申请 S P C前,应确保有合适的工具来给软件签名。对于 Microsoft Authenticode,需要 IE Administration Kit (http://www.microsoft.com /windows/ie/ieak/We b c a s t,h t m),而对于
Netscape Object Signing 则需要 Netscape Object Signing Toolkit (http://developer,n e t s c a p e,c o m /
s o f t w a r e / s i g n e d o b j / j a r p a c k,h t m l )。
(2) 连接到 C A的 We b站点上,填写登记窗体。输入自己的信息、要使用的技术、软件开发第 25章 证书的使用 计计 767下载图 25-9 Security 选项卡者的类型及其他管理信息。
(3) 提出申请后,C A要花费几天的时间来核实信息,并发布证书。最后,C A会通知我们到其 We b站点下载证书。
(4) 获得证书和私有密钥后,就可以用适当的签名工具给文件签名。
25.4 使用证书获取证书后,可以用它在网上的安全交易中证明自己的身份。证书可确保任何人从这里收到的电子信息都是可靠的。但是,怎样使用证书?如何访问要求身份验证的 We b站点?怎样在自己的服务器上使用身份验证?怎样在其他计算机上使用我们的证书?怎样用它来确保电子邮件信息的身份验证、证书到期时该怎么办?
这一节将会回答这些问题。
25.4.1 使用服务器证书在 We b服务器上安装服务器证书后,必须使其使用 S S L协议。利用 Internet Information
S e r v e r,可以在各个资源( H T M L或 A S P页面)或虚拟目录上启用 S S L。为做到这些,必须在
Internet Service Manager中执行如下操作:
(1) 在要启用 SSL 的资源上右击,在弹出的菜单中选择 P r o p e r t i e s。
(2) 在 Directory Security选项卡上,点击位于 Secure communications下的 E d i t按钮。需注意的是,如果 We b中已经安装了证书,E d i t按钮已被激活。
(3) 选择 Require Secure Channel(SSL)选项,再单击 OK确认。
需注意是,查阅支持 S S L的页面时,必须使用 H T T P S协议。这样,如果要链接由 S S L保护的页面 m y p a g e,a s p,应该输入 h t t p s,/ / w w w,m y s e r v e r.com/mypage.asp 而不是 h t t p,/ / w w w,m y s e r v e r.
c o m / m y p a g e,a s p。不能使用相对路径从一个非安全页面链接到一个安全页面。也就是说,不能在不安全的 We b页面中只用相对路径和名字链接到一个 S S L页面,例如:
必须提供绝对路径:
相对路径可以用在同一个服务器上的安全页面之间。绝对路径对于改变协议是必要的。
当浏览器通过 H T T P S向 We b服务器请求一个页面时,服务器将把它的证书(和公共密钥)
发送给浏览器,使它能够编码发送的数据并解码接收的数据,这些信息的交换都是自动完成的。
多数浏览器已经安装了几个著名 C A的证书。如果你的证书不是由浏览器可以确认的 C A发布的,用户会看到一个警告消息,提示他决定是继续访问 We b网站还是退出。我们还可以按
2 5,5节所提供的指示了解浏览器已安装了哪些 C A证书。
引用启用 S S L的资源时,应使用 H T T P S而不是 H T T P。除此之外,对 We b应用程序不需要进行其他任何处理。
25.4.2 使用个人证书使用个人证书有两种目的:用户身份的核实;电子邮件消息的签名和加密。一些 We b网
768计计 ASP 3 高级编程 下载第 25章 证书的使用 计计 769下载站在访问之前要求证书身份验证。这种证明类型比基于用户名与口令的传统验证要可靠得多。
主要有以下几个原因:
没有私有密钥的匹配,偷窃的证书是无用的。而用户名与口令可使任何人都能访问 We b
网站。
证书不要求用户记住自己的用户名与口令。
证书将用户与其电子交易完全连接起来,他们不能拒绝付款。
当访问要求证书身份验证的 We b网站时,浏览器将证书发送到 We b服务器。多数浏览器允许在将证书发送给服务器的同时,设置相应的一些属性。例如,它会要求在发送证书前确认或者允许它自动发送。
在电子邮件程序中可以使用个人证书给消息签名,允许接收者证实信息是由我们发送的,
并且是未更改的。可以通过点击工具栏上的邮件信封图标或者在 To o l s菜单中选择 D i g i t a l l y
S i g n项在 MS Outlook Express 中给消息签名。这项操作给消息添加了一个附件,其中包括消息的签名和证书。接收者可以使用这个附加数据来证实消息的可靠性。这个证明过程通常由电子邮件程序执行的。
也可以使用证书中的私有密钥来加密消息。在 MS Outlook Express中,点击工具栏上的信封上带有钥匙的图标或者从 To o l s菜单中选择 E n c r y p t可以实现这一功能。
25.4.3 使用软件发行者证书软件发行者证书( S P C)必须与一些工具结合使用,给软件签名。这些工具取决于用来签名软件的技术。例如,为了用 A u t h e n t i c o d e给一个程序文件签名,必须使用 MS Internet
A d m i n i s t r a t i o n K i t中的 s i g n c o d e,e x e工具,用的是下列语法:
d i s p l a y n a m e是将在证书中显示的文件描述,在 We b网址 h t t p,/ / w w w,m y We b,c o m上我们可发现更多的关于该程序的信息,m y c e r t i f i c a t e,s p c是我的 S P C证书文件。 m y p r i v a t e k e y,p v k是私有密钥,m y f i l e n a m e是要签的文件名。
如何使用 S P C证书已经超出了本书的范围。可在微软的站点 h t t p,/ / m s d n,m i c r o s o f t,c o m /
w o r k s h o p / s e c u r i t y / a u t h c o d e / a u t h e n t i c o d e,a s p中发现更多的关于 MS Authenticode 的信息。想获得关于 Netscape Object Signing的信息可以查阅 h t t p,/ / d e v e l o p e r,n e t s c a p e,c o m / l i b r a r y /
documentation/signedobj/trust/index.htm 站点。
从 I n t e r n e t上下载软件时,浏览器或客户端应用程序调用一个证实签名的函数,这一函数使用发行者的公共密钥(已被证书机构证实)去解码和检查签名。检测完签名后,可能会发生下述情况,这取决于用户选择的选项:
如果证书有效,用户可以决定接收每段下载代码的信息,或者在不显示任何消息的情况下让所有的已签名的代码运行。
如果代码没有被签名,会显示警告提示,要用户决定是否安装这个代码。
如果签名无效,或者如果证书已被取消或终止,就会显示更严重的警告提示。
25.4.4 客户证书映射在前一节里,通过个人证书讨论了客户身份验证。这里将介绍,如何启用 I I S通过检验用户的 We b浏览器在登录过程中提交的证书的内容来验证用户。下面将讲到如何使用 A S P定制证书验证。
I I S具有客户证书映射功能,可以验证用客户证书登录的用户。而不需要使用 B a s i c或
Windows NT Challenge/Response身份验证。将用户的客户证书的内容映射到相应的 Wi n d o w s
N T帐号,该帐号用来定义用户的权限和访问规则。一旦创建并启动了一个映射,每当用户用客户证书登录时,We b服务器就会自动地连接到相应的 Windows NT帐号。
当客户请求一个启用了 SSL 的 We b网站资源( H T M L页面,A S P页面或虚拟目录)时,可以将 I I S配置为忽略、接受或者要求客户证书。理解每一个设置如何改变 I I S响应客户证书的方式是十分重要的。
忽略证书,I I S不关心用户是否随请求发送证书,它用另外一种方法检验用户,例如
C h a l l e n g e / R e s p o n s e。
接受证书:如果客户证书已经发送,I I S将会使用包含在证书中的信息验证用户。如果没有证书被发送,I I S将使用其他方法。
要求证书,I I S仅满足有有效证书的用户的要求。
I I S有两种方法建立客户证书映射:多对一和一对一。两者最大区别在于后者使用实际证书,而前者只使用包含在证书里的某些信息,例如证书的发布者。对于一对一映射,如果用户得到一个新的证书,旧的映射就失去价值,I I S不得不为新证书建立一个新的映射。对于多对一映射,如果用户得到一个新的证书,而 I I S用来验证的信息保持不变,映射会自动接受它。
多对一映射只使用证书的某些信息。我们可以控制映射使用的信息。可以建立通配符规则,如“接收某一 C A发布的所有证书”,或做更详细的说明,如“只接受发布给特定用户的证书” 。这样,就可以迅速地将多个证书映射到一个用户的帐号中。因此也没必要在服务器上复制客户证书。如果用户获得一份相关内容与以前相同的新证书,以前的映射将仍然有效。
多对一映射不识别单个客户,但识别一组客户。例如,这种映射可以识别一个公司中的每个雇员。
因为一对一映射使用不同于所有证书的唯一信息,我们可以肯定用户的身份。一对一映射使用加密交换,与 C h a l l e n g e/ R e s p o n s e十分相似,涉及客户证书的密钥对。在交换过程中,
服务器会将用户浏览器发送的信息与服务器复制的客户证书信息相比较。因此,服务器必须复制每个客户证书,以用于一对一映射。
由于服务器使用客户证书的实际拷贝进行比较,如果客户获得另外的证书,服务器必须获得新证书的一个拷贝并生成一个新的映射。即使产生证书的用户信息完全一致,也需要这样做。请记住,对于每个证书产生的密钥对是绝对唯一的。
只有服务器启用证书映射时,才会用证书自动验证用户的身份。要使服务器启用一对一证书映射,须执行如下步骤:
1) 打开 Internet Service Manager,右击要应用证书映射的网站,并选择 P r o p e r t i e s。
2) 选择 Directory Security选项卡,单击 Secure communications下的 E d i t按钮。
3) 选中 Require secure channel(SSL)选项,选择 Require client certificates单选按钮,选中
Enable client certificate mapping。
需注意的是,要选择 Require client certificates选项,必须先选择 Require secure channel选
770计计 ASP 3 高级编程 下载项。该选项使客户访问该 We b站点中受保护的资源时,I I S会要求客户证书。如果选择 A c c e p t
client certificates选项,I I S会接受证书,并用它验证客户。如果没有证书或证书无效,将启用基于用户名和口令的标准验证协议。
4) 单击 Secure Communications框中的
E d i t按钮。然后选择是一对一映射证书,还是定义一个规则,使用多对一映射,如图 2 5 -
1 0所示。
5) 选择 1 - t o - 1选项卡,单击 A d d按钮将证书添加到映射中。这会要求输入 Wi n d o w s帐号的用户的证书文件名。在 2 5,5节中将讨论证书文件的格式。选择要映射的证书文件名后,需选择 Wi n d o w s用户帐号与口令。
6) 点击 O K应用映射。无论用户何时访问 We b站点中需要访问权限的区域,就会记录在日志文件中。
如果使用多对一证书映射,可以先执行上述前 4步,再执行以下几步:
1) 选择 M a n y - t o - 1选项卡。
2) 点击 A d d按钮,将启动一个向导为映射制定规则,要求给创建的规则集指定一个名称。
我们会看到图 2 5 - 11所示的窗口。
3) 在此窗口中,输入证书字段、子字段和相应的匹配准则来定义映射的规则。点击 N e w
按钮,可以设定更多的字段。定义规则时会显示如图 2 5 - 1 2所示的对话框。
4) 在这个例子中,规则限定证书的发布者的普通名 ( C N )必须是 Ve r i s i g n。在准则字段中使用通配符可以实现其他匹配。
5) 单击 O K,最终对话框将提示选择接受证书用于登录验证,或拒绝任何其证书匹配指定准则的用户访问。我们推荐接受。单击
F i n i s h按钮,就启用了多对一映射。
图 25-12 定义规则的窗口第 25章 证书的使用 计计 771下载图 25-10 选择映射的窗口图 2 5 - 11 创建规则的窗口当用户访问安全网站时,客户证书映射是简化验证过程的重要手段。一对一与多对一的方法使我们能为网站定义不同的访问规则。然而可能还有一些特殊的证书选择标准不能用这两种方法表示。在 25.6 节中,会讲到如何以定制的方法通过证书用 A S P来管理对我们的网站的访问。
25.4.5 证书的生存期证书有一定生存期。它们被请求、创建,然后,在某一时间被终止或取消。因为计算机能力的提高及算法或安全协议中的漏洞,有可能使证书变得不可靠,所以终止是很重要的。如果私有密钥被破坏或者状态或策略发生改变,就要撤消。
例如,如果 Jim ABC离开公司,表明他是 X Y Z公司的一个职员的证书就应该被取消。图 2 5 - 1 3显示了证书的生存期的各阶段。
撤消的证书会被加入到由 C A管理的证书撤消清单( C R L)中。这与信用卡的撤消是相似的。
银行不能强迫人们毁坏他们的信用卡,同样,
C A也不能强行破坏所有的证书拷贝。然而,在使用信用卡购物的过程中,将通过检查信用卡撤消清单以确定信用卡是否仍然有效。类似地,将要使用证书的客户可能要通过 C R L检验证书的有效性。
C A公布的证书撤消清单显示了发布后撤消的所有证书。客户程序可下载或在线浏览 C RL。
为了核实证书,拥有 C A的公共密钥和通过 C A发布的 C R L检验证书都是必要的。
证书终止时,应该迅速更新。为了避免任何可能引发证书无效的安全问题发生,通常可以在终止证书前更新它。从 C A的观点来看,更新一个证书与要求一个新证书是不一样的。如果证书信息与最初发布时一样,就可以更新它。
25.5 管理证书通常可以使用安装证书的软件( We b服务器、浏览器和电子邮件程序等)来管理证书,
可以备份证书文件或者将它们导出以用于另一个系统。例如,改变了 We b网站的计算机,就可以在这个新机器上使用证书。或者要在另外的机器上用浏览器使用证书,就可以用原来的浏览器将证书导出并导入到一个新的浏览器内。大多数程序允许显示安装的证书,他们导出到一个外部文件中,以及导入新的证书。对用户而言,这三项可视为管理证书的基本操作。
我们将用 I I S,Internet Explorer和 MS Outlook Express执行这些操作。然而,这些概念对于其他软件程序也是有效的。
25.5.1 证书存储在详细讲解管理证书前,我们应该知道 Windows 2000 有一个存储证书的系统区域,称为
772计计 ASP 3 高级编程 下载图 25-13 证书的生存期的示意图密钥产生和申请发布正常使用终止 撤消第 25章 证书的使用 计计 773下载证书存储( Certificate Store) 。它是 Windows 2000 内的许多证书功能的核心。证书存储包括许多不同的 C A发布的证书。可以使用微软管理控制台( Microsoft Management Console,
M M C )的 Certificate 插件管理安装在证书存储中的证书。为了使用这一插件,打开 M M C窗口
(在 Start 菜单的 R u n对话框中键入 m m c,e x e),在 Console 菜单中选择 Add/Remove Snap-in。点击 A d d按钮选择 C e r t i f i c a t e s插件,显示结果如图 2 5 - 1 4所示。
图 25-14 Add/Remove Snap-in 窗口点击 A d d按钮,会要求我们选择要为谁管理证书:一个用户、一台计算机或一项服务。选定这些证书类别之一,指定用户帐号、计算机名或服务名后,就可以关闭所有的窗口,回到
M M C主窗口下。如果选择管理一个用户帐号,M M C窗口如图 2 5 - 1 5所示。
图 25-15 管理用户帐号的证书的窗口另一方面,如果选择管理 WWW Publishing Service的证书,M M C窗口如图 2 5 - 1 6所示。
需注意的是,图 2 5 - 1 5显示了 We b服务器信任的根 C A。这就意味着 Web 服务器将自动接受由这里列出的 C A发布的客户证书。
Certificate Manager插件允许在证书上执行一些最普通的操作,例如,请求新证书,导出或导入证书,导入证书的撤消清单以及更新证书等。还可以浏览证书的细节,复制或删除证书。所有这些操作都在 A c t i o n菜单中,或者右击证书或空白处,在弹出的菜单中执行。选择任何一个由 Certificate Manager插件提供的操作,都可以启动执行所需操作的向导。用 I I S、
Internet Explorer或 O u t l o o k请求同一操作时,会激活同一向导。还可以通过右击证书文件的图标,来浏览详细资料或直接从 Windows Explorer向证书存储中导入证书文件。
图 25-16 管理 WWW Publishing Service的证书的窗口用于导入证书的操作也可以用来导入证书撤消清单。可以启动 Certificate Import Wi z a r d,
并提供 C R L文件名(而不是证书文件名) 。 C R L安装在证书存储里,并可被管理证书的所有程序使用。
使用证书的程序可以从证书存储中获得证书,并用于服务器和客户的身份验证、电子邮件消息的签名等等。
以下介绍的是在 I I S,Internet Explorer和 Outlook Express中如何管理证书。
25.5.2 IIS证书管理我们可以用 Internet Services Manager管理工具很方便地管理证书。在网站属性窗口中,
774计计 ASP 3 高级编程 下载图 25-17 Directory Security 选项卡 图 25-18 浏览证书细节的窗口通过 Directory Security选项下的 Secure communications框,可以浏览、导出、导入、更新和替换证书,如图 2 5 - 1 7所示。
点击 View Certificate按钮,就可以浏览目前安装的服务器证书的细节,如图 2 5 - 1 8所示。
在 C e r t i f i c a t e窗口的 D e t a i l s选项卡中,可以看到证书的每个字段的值,并可以用 Copy to
F i l e按钮把证书导出到文件中。
点击 Copy to File按钮,启动 Certificate Export Wi z a r d,它会引导我们将证书导出到文件中。需记住的是证书只含有公共密钥。如果想导出证书作为备份,也应该导出私有密钥。
Certificate Export Wi z a r d会询问是否要连同私有密钥一起导出证书。
下一步,选择文件的格式。如果已选择了连同私有密钥导出证书,则只能以 P e r s o n a l
Information Exchange格式 (即 P K C S# 1 2格式 )导出证书。否则,可以在三种不同格式中选择:
D E R编码二进制 X,5 0 9,B a s e - 6 4编码 X,5 0 9和 P K C S# 7,选择哪种格式导出证书取决于以后将用哪种软件导入他。 P K C S# 7和 P K C S# 1 2都是标准格式,可以被任何 We b服务器导入。
如果选择了连同私有密钥导出证书,向导将要求设置口令以防止他人非法读取。然后输入要导出到的文件名。需注意的是,文件的扩展名根据文件格式的不同而不同。选择 D E R编码二进制或 B a s e - 6 4编码格式,则扩展名为,c e r;选择 P K C S# 7格式,则扩展名为,p 7 b;若选择
Personal Information Exchange格式,则扩展名为,p f x。最后,会有一个屏幕列出所有选择,点击 F i n i s h按钮就可以导出证书。
要为 I I S导入一份证书文件,需首先把它导入到证书存储,再分配给网站。可以用
Certificate Manager插件导入证书文件,也可以右击该文件,选择 Install Certificate,启动
Certificate Import Wi z a r d引导我们逐步导入。它会要求选择要导入到的证书存储,可以自己从向导提供的证书存储中选择一个,也可以让向导根据证书的类型自动选择。如果是从一个
P K C S# 1 2文件导入证书,要求输入口令,这个口令用于保护私有密钥。
将证书安装到证书存储中,启动 Web Server Certificate Wizard就可以将其用于 IIS。需记住的是要启动该向导,需打开网站的属性页,点击 Directory Security选项下的 Server Certificate按钮。
如果一个证书已安装,这个向导会显示可以对它进行的操作,例如更新、删除或替换。
如果要用于一个导入的证书替换当前安装的证书,向导将让你从证书存储中选择一个。
更新服务器证书的过程很简单,先启动 Web Server Certificate Wi z a r d,选择 Renew the
current certificate选项,其余过程和创建 C S R一样,只是不必再输入组织的信息。
25.5.3 IE证书管理要浏览安装在 Internet Explorer中的个人证书,可以在 Internet Options对话框中点击 C e r t i f i c a t e s,显示结果如图 2 5 - 1 9所示。
这时,可以导出和导入证书,并可浏览已安装的证书。选择 I m p o r t或 E x p o r t按钮将启动前面已经讲过的向导。 我们还可以管理 C A证书以建立我们信任的网站。
只 要网 站的 证书 是 由 Trusted Root Certification
A u t h o r i t i e s和 Intermediate Certification Authorities选项卡中所列的 C A发布的,浏览器就会信任这些网站。
第 25章 证书的使用 计计 775下载图 25-19 浏览个人证书的窗口
776计计 ASP 3 高级编程 下载
25.5.4 Outlook Express证书管理在 MS Outlook Express,每个证书都关联着一个邮件帐号,可用电子邮件帐号的属性将证书绑定到帐号中,如图 2 5 - 2 0所示。
图 25-20 Outlook Express的证书管理窗口可根据不同的需要选择不同的证书,例如给信息签名或加密。
25.6 证书与 A S P
我们可以通过启用客户证书映射来使用证书验证。然而,在一些情况下,分析证书的内容可能获得更好的身份验证。假如要应用复杂的标准以允许进行基于证书的用户验证,例如,
可以确保拥有 Ve r i s i g n或 T h a w t e证书的某一公司的雇员可以访问。使用客户证书映射时,制定一个匹配这一准则的规则是比较困难的。或者,假如要针对访问 We b网站的用户定制主页,
例如,给每个公司的雇员制作不同的主页。使用 A S P,可以完成这些工作,甚至更多。特别是可以使用 R e q u e s t对象的 C l i e n t C e r t i f i c a t e集合。
要访问证书的字段,We b服务器必须配置为要求客户证书,否则 C l i e n t C e r t i f i c a t e集合将是空的。 I I S默认为不请求证书。参见 2 5,4,4节,可以将服务器设置为要求证书。只要服务器能从浏览器接收证书,就可以读取证书中的信息或执行其他操作。
C l i e n t C e r t i f i c a t e集合有一些字段允许读取证书的字段。表 2 5 - 3是一些在 A S P脚本中可以用来得到证书信息的字段。
表 25-3 ClientCertificate 集合的一些字段字 段 内 容
C e r t i f i c a t e 包含整个证书内容的二进制流的字符串
F l a g s 提供客户证书的附加信息的一组标志
I s s u e r 包含证书的发布者信息的字符串
S e r i a l N u m b e r 包含证书序列号的十六进制字节的 A S C I I字符串
S u b j e c t 包含证书的主体信息的字符串
Va l i d F o r m 证书的生效日期
Va l i d U n t i l 证书的失效日期
S u b j e c t和 I s s u e r字段还有子字段,可用的子字段如表 2 5 - 4所示。
表25-4 Subject和 I s s u e r 密钥字段的子字段及内容子 字 段 内 容 子 字 段 内 容
C 指定国家标识符 O 说明公司或组织名
C N 指定普通名 O U 说明组织单位名
G N 指定给定名 S 说明省或州名
I 指定一系列初始值 T 说明个人或组织的标题
L 说明地域需注意的是一份证书并不必给出所有子字段。可以将子字段作为后缀添加到字段上,这样就可以在证书中读取子字段。例如,可以通过以下方法读取 I s s u e r中的组织名:
在以下所举的这个示例中,A S P脚本只允许一个公司的雇员进行访问,并重定向到使用相应语言的页面:
这个脚本主要检查存储在证书的字段中的信息,并重定向到相应的 A S P页面。它核实证书的有效性及公司是否是被认可的。 C h e c k C o m p a n y函数在数据库中查找公司名。只要检查出错误,就会带着相应的错误代码重定向到 A S P错误管理器页面( e r r o r _ m a n a g e r,a s p) 。若证书的字段值被接受,脚本会检测 S u b j e c t C子字段读取用户所在的国家,然后重定向到相应的欢迎页面。
这个简单的脚本显示了如何用 A S P管理证书的字段以进行基于用户身份的定制操作。证书的更复杂的使用一般都依赖于对证书的字段和子字段的检测。用 A S P管理证书不仅简单,
还具有方便用户访问,A S P应用程序定制和高安全性等优点。
25.7 成为自己的证书机构前面几节中,我们已知证书机构是核实向他们要求证书的用户的身份的第三方伙伴。 C A
第 25章 证书的使用 计计 777下载的角色是 I n t e r n e t交易中的中立的信任担保人。
然而,一些情况下需要为与我们有关系的用户发布、撤消和管理证书。就是说我们会成为自己的证书机构。这在内部网络或外部网络中都是确实存在的。当需要建立自己的虚拟专用网络( Virtual Private Network),以允许我们的用户以安全的方式在 We b网站上发出订单或进行其他交易或要建立一个大型的内部网并可以安全访问 We b网站的某些区域时,会发生这种情况。这种情况下我们应该能够自行发布、更新或取消证书,而不需要其他的 C A参与。要在某些特定的环境下验证用户或实体,就要创建企业 C A( Enterprise CA) 。
这相对于商业 C A具有许多优势,包括对证书管理规则的全面控制和较低的费用。
由我们的 C A发布的证书具有身份证或证章的作用。它们会在特定的企业或应用程序设置里提供身份证明或对资源的访问。某种环境下,不同的企业 C A可以互相了解对方的证书,这叫作交叉确认。要建立自己的 C A至少需要以下几个额外资源:
证书服务器:是用于发布证书、管理证书的内容、证书发布政策和撤消的服务器。市场上有很多产品,如 G T E的 C y b e r Tr u s t,Verisign OnSite,Netscape Certificate Server和
Entrust We b / C A。这一节的示例中会用到微软的 Certificate Services。
与客户建立信任关系的工具:如果服务器证书由公共 C A发布,因为 C A的证书已经安装,
访问 We b网站的用户就会认出这一 C A。如果 We b服务器有一个由我们自己发布的服务器证书,因为客户不认为我们是 C A,他就不会信任这个证书。这就会导致一个警告显示给用户,或者对 We b网站的访问会被终止,这取决于浏览器的安全级设置。创建自己的
C A时,我们要提供在自己的 C A和访问 We b网站的客户间建立信任的方法。一般情况下,
通过在浏览器上安装 C A证书实现这一步骤。
发布客户证书的工具:虽然可以选择自己的方式来发布客户证书,与公共 C A类似的在线窗体是发布它们的最佳方法。当然,在实际发布客户证书前,一定要执行自己的核实过程。
25.7.1 Certificate Services
Certificate Services为创建自己的 C A提供了工具。这些工具使管理证书的任务尽可能的简单,同时,更加灵活并且更可定制。事实上,Certificate Services 包括一套能被自定义和扩充以实现企业 C A的组件。如图 2 5 - 2 1所示,Certificate Services的结构有一个核心组件 — 服务器引擎( server engine),它是用来发布、更新和撤消证书的。这一组件周围有几个与之交互的其他组件。它们用于请求证书、应用发布策略和执行在数据库中保存证书之类的其他任务。
图 25-21 证书服务示意图
778计计 ASP 3 高级编程 下载客户应用程序 管理工具 策略模块退出模块服务器引擎中介应用程序值得注意的是,客户应用程序是启动注册过程的组件。它们可以是浏览器或者请求一个中介应用程序 的其他应用程序。对于客户证书来说,中介应用程序一般是 We b服务器。为满足客户的请求,中介应用程序将请求重定向到服务器引擎。策略模块是为发布证书实现企业策略的 D L L。这一模块可以根据自己的需要定制。在执行某些操作时,如发布或撤消证书,
请求待处理。退出模块是在这时从服务器引擎中接收通知的 D L L。退出模块可以被定制以执行类似于在数据库中存储证书这样的特定任务。
Certificate Services的定制超出了本章介绍的范围。可以在 h t t p,/ / m s d n,m i c r o s o f t,c o m /
w o r k s h o p / s e c u r i t y / c l i e n t / c e r t s v r,a s p和帮助文档里找到更多信息。
25.7.2 建立证书机构可以通过安装 Certificate Services为内部网或外部网建立一个证书机构。 C e r t i f i c a t e
S e r v i c e s允许建立两种类型的 C A:企业 C A和单独 C A( Stand-alone CA) 。企业 C A一般用在全局 Windows 2000环境中,利用 A D进行信息交换,并具有自动管理发布策略的功能。而单独
C A主要是在外部网和 I n t e r n e t上使用。它不使用 A D,也不允许更多地定制发布策略。
我们将集中讨论建立与 We b服务器和 I n t e r n e t有关的单独 C A。为建立 C A,必须作为
A d m i n i s t r a t o r登录,并且在 Control Panel中选择 Add/Remove Programs图标。然后单击
Add/Remove Windows Components,并选中 Certificates Servers选项。启动 Certificate Services
Installtion Wi z a r d。如图 2 5 - 2 2所示,选择 Stand-alone root CA选项。
图 25-22 Certificates Services Installtion Wi z a r d
向导将继续询问识别正在建立的 C A的信息。然后要求输入证书数据库与相应日志文件的路径。缺省的路径是\ W I N N T\ S y s t e m 3 2 \ C e r t L o g。在实际安装步骤中,必须关闭 I I S。如果
I I S正在运行,向导会自动进行检测,并让我们将之关闭。 Certificate Services安装完成后,向导将重新启动 I I S。系统现在就拥有可以发布、更新和撤消证书的证书机构。自己的 C A证书会在安装过程中自动创建。
25.7.3 管理证书机构一旦系统中安装了证书机构,就可用 Certification Authority管理工具进行管理。这是一个第 25章 证书的使用 计计 779下载
780计计 ASP 3 高级编程 下载
M M C插件,允许我们启动或结束这个服务,发布或撤消证书,管理待处理的请求。图 2 5 - 2 3
显示的就是 Certification Authority插件。
图 25-23 是 Certification Authority插件窗口这个证书管理器有四个文件夹,每一个对应一种证书状态。证书请求发送到这个服务时,
存储在 Pending Requests文件中。如果请求被接受,发布的证书将存储在 Issued Certificates文件内。如果被拒绝,就将存储在 Failed Requests文件夹内。撤消的证书存储在 R e v o k e d
C e r t i f i c a t e s文件夹内。可以用 A c t i o n菜单或右击插件中的对象,执行证书操作。
撤消的证书要在 C R L里公布,以便使人了解撤消情况。这可以通过右击 R e v o k e d
C e r t i f i c a t e s文件夹并在 All Ta s k s菜单里选择 P u b l i s h完成。下一节会讲到用户如何访问 C R L。
25.7.4 与证书机构的交互系统中安装了自己的 C A时,请求证书是一个与请求公共 CA 的证书相类似的过程。实际上,CA 的 We b网站是在安装 C e r t i f i c a t e
Services 时在 h t t p,/ / < y o u r s e r v e r n a m e > / c e r s r v网址上安装的。这个 We b网站允许用浏览器请求证书,安装 C A证书,下载 C R L,见图 2 5 - 2 4。
既然 C A证书没有安装在用于访问内部或外部网络的浏览器中,可以使用 CA We b网站与客户建立一个信任关系。选择显示在 C A主页的选 图 25-24 CA 的 Web 网站图 25-25 下载 CA 证书和 CRL 的页面项列表中的第一个选项可以实现这一过程。这个页面可通过点击 N e x t按钮下载,允许我们下载
C A证书和由 C A公布的 C R L,见图 2 5 - 2 5。
这个 C A证书和 C R L可以导入到证书存储中。
25.8 小结当电子商务成为 We b应用程序的重要组成部分时,标准的安全机制可能不足以确保通过
I n t e r n e t安全地传输敏感信息。实际上,安全访问几乎是每一个通过 I n t e r n e t进行信息交换的
We b网站的关键。在 I n t e r n e t交易中确保身份的验证和认可是十分重要的。本章介绍了证书发布的基本要点,这一技术允许在 I n t e r n e t上的识别与验证。本章还介绍了证书的类型,C A和证书的生存期,以及获得服务器和个人证书的方法,也涉及了用 A S P管理证书和创建自己的 C A
等方面的内容。
第 25章 证书的使用 计计 781下载