China°beo 第25章证书的使用 在前面的章节中,研究了许多基于web的应用程序的安全技术。这些技术都是用于处理 Internet上的安全问题。在网上,一些用户能够很容易地访问和操纵数据,而不需要任何事先 的验证。这些安全系统通过对非授权用户隐藏信息和在公用网上(如 Internet)建立虚拟的专 用网来工作。 然而,对访问数据的限制只是整个问题的一部分。在我们处理一些敏感数据传输时,我 们需要保证这些数据能安全到达其目的地,而不发生改变或在途中丢失数据。例如,从 dell. com网站购买一台新型电脑,用户不希望他们的信用卡号以明码传送。以这种方式传送的 信息,对于知道如何分析TCP数据包的应用程序(例如微软的 Netmon产品)而言,是完全可 以浏览的。使用类似于 NewMen的工具,可非常容易地读取这样的原始数据。因此可同时让零 售商和用户以加密的格式传送数据,以致于这种证书包除了他们,别人都不能破译数据的信 息。通信过程中证书的使用就是这样一种方式,可以确保客户和服务器之间的通信都是以安 全的方式进行的 在本章中,我们将研究证书( Certificate)如何验证用户确实是他声称的那个人,如何确 保在 Internet上传送的数据不被篡改。本章主要涉及证书的一些基本技术、证书的工作方式和 如何融合到Web站点之中。我们讨论的主要内容是: 致性和可靠性的基本概念。 证书的类型和证书机构( Certificates Authoritie) 有关获取证书的信息。 获取证书的示例 怎样使用证书 怎样用ASP管理证书。 怎样用 MS Certificate Services建立一个证书机构。 本章所涉及的内容用于处理服务器证书管理,要求在 Windows2000 Server或 Advanced Server操作系统下运行。但不能用于 Windows2000工作站版本,因为工作站版本没有证书服 务器选项 25.1安全性、一致性和可靠性 敏感数据传送的机制要求满足以下三个方面: ·安全性( Security):数据不能被其他人读取。 一致性( Identity):通信中的对方确实是他声称的身份 可靠性( Authenticity):获得的数据与传送的一致 提供安全通信的技术必须基于具有上述三个特点的机制,通常这些技术依赖于加密算法 这些算法用一种既难又费时的方法加密数据。因此,实际上任何人都不可能只根据加密数据 推算出原始数据。目前最好的加密算法基于一种名为非对称密钥加密( asymmetric key
下载 第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
china-pub.com 第5章证书的使用757 下载 encry ption)的技术,这种加密方法看起来十分简单,但却依赖于复杂的数学算法。这种非对 称密钥加密机制不仅可以保证安全性,还可以保证一致性和可靠性 非对称密钥加密 下面简要解释一下非对称密钥加密机制 两个用户要在网络中以保密方式交换数据。接收者有两个数学上相关的密钥。一个密钥就 是一段数据,通过密钥可以对其他数据加密或解密。这两个密钥有特殊的关系,一个对数据加 密,只有另一个才能解密并恢复原始信息。接收者给发送者一个密钥,发送者用它来加密。在 两个用户间传送的这个密钥叫公共密钥( public key),另一个叫私有密钥( private key)。 接收者永远不会泄露其专用密钥,但可以将公共密钥给任何人。如果发送者要向接收者 发送一些秘密数据,可以先用接收者的公共密钥加密。只有持有私有密钥的人,才能破译加 密数据。图25-1显示了采用非对称密钥加密交换数据的步骤 ①发送者发送他的公共密钥 公共密钥一 ②接受者用发送者的 公共密钥加密数据 ③接受者发送加密后 的数据给发送者 发送者④发送者用他的私有密钥解码数据接收者 私有密钥 图25-1采用非对称密钥加密交换数据 这种基于公共与私有密钥的数学关系的加密机制功能很强大,有很高的安全性。但这种 数学关系十分复杂,这两种密钥间特有的关系基于分解巨大的数字。一台指令周期为1us的计 算机分解一个200位的数字需要40亿年。由此可以看出分解数字的数学复杂性和加密的安全性 这种非对称密钥加密机制是在网络上安全通信的基础,可用于安全通信协议,如安全套接字 层( Security Socket Layer,SsL)。SSL协议为启动τcPP连接提供安全握手。IS用它来建立 客户和服务器间的安全连接,在254.1节中,我们会看到在IS中使用SSL进行安全连接 1.非对称密钥加密与一致性 在有些环境下,这种安全通信形式不能保证发送者的身份可靠性,这就涉及到一致性的 确认。假设我们收到朋友发来的一封电子邮件,就可以通过非对称密钥加密方式来防止他人 偷看这些秘密信息,这能保证不会有第三者读取我们的秘密信息,但不能确保这些信息确实 是发自我们的朋友。因为任何人都可以获取公共密钥,这样任何人都可假冒我们的朋友给我 们发送信息。 这个问题在电子商务应用程序中非常重要。人们要确信是从与他们在网上洽谈的卖方购 买东西,而卖方也需想确认真正的买主,以及他们是否要购买选定的东西。总之,想要确认 对方的身份,就会遇到这个问题
e n c r y p t i o n)的技术,这种加密方法看起来十分简单,但却依赖于复杂的数学算法。这种非对 称密钥加密机制不仅可以保证安全性,还可以保证一致性和可靠性。 非对称密钥加密 下面简要解释一下非对称密钥加密机制。 两个用户要在网络中以保密方式交换数据。接收者有两个数学上相关的密钥。一个密钥就 是一段数据,通过密钥可以对其他数据加密或解密。这两个密钥有特殊的关系,一个对数据加 密,只有另一个才能解密并恢复原始信息。接收者给发送者一个密钥,发送者用它来加密。在 两个用户间传送的这个密钥叫公共密钥(public key),另一个叫私有密钥(private key)。 接收者永远不会泄露其专用密钥,但可以将公共密钥给任何人。如果发送者要向接收者 发送一些秘密数据,可以先用接收者的公共密钥加密。只有持有私有密钥的人,才能破译加 密数据。图2 5 - 1显示了采用非对称密钥加密交换数据的步骤。 图25-1 采用非对称密钥加密交换数据 这种基于公共与私有密钥的数学关系的加密机制功能很强大,有很高的安全性。但这种 数学关系十分复杂,这两种密钥间特有的关系基于分解巨大的数字。一台指令周期为 1ms的计 算机分解一个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 下载 ①发送者发送他的公共密钥 ②接受者用发送者的 公共密钥加密数据 ③接受者发送加密后 的数据给发送者 发送者 ④发送者用他的私有密钥解码数据 私有密钥 接收者 公共密钥
758 ASP3高级编程 China coM 下载 在本章里,一致性指的是识别一个人或一个公司的机制。从技术上讲,它是从一个真实 实体(如一个人或一个公司)到一个 Internet实体(如一个网址、网络浏览器或一个电子邮件 程序)的映射 我们可以用非对称密钥加密机制来确认一致性。注意,我们用公共密钥加密的数据只能用 私有密钥解密。然而,反过来也是如此,用私有密钥加密的数据只能用公共密钥才能解密。因 此,只需颠倒这对密钥的角色就可以确认一致性。发送者用他的私有密钥发送信息,接收者用 发送者的公共密钥对信息解密,这就确保了他接收的信息来自持有私有密钥的人,图25-2显示 了一致性确认过程 公共密钥 ①发送者发送他的公共密钥 发送者用他的私有 密钥加密数据 ③发送者发送加密后的数据给接收 接收者 私有密钥 ④接收者用发送者的公共密钥解码 图25-2一致性确认示意图 2.非对称密钥加密与可靠性 致性的确认也暗示了数据传输的可靠性,即接收的数据与发送的数据完全相同。其实 非对称密钥加密本身的特点就意味着如果信息有误,接收者将不可能用发送者的公共密钥解 密。然而,有时我们想发送一些普通数据,也需要接收者能够证明数据发自于我们,而且没 有发错。例如每个人都可读取一个公用合法文件,但其可靠性应该得到确认。为了使人们都 能确认数据的可靠性,可以使用一种数字签名( digital signature)技术。 数字签名相当于一个人的手写签名,可用来确认发送者的身份和确保数据(文件、消 息、软件等)在传输中没有改变。它来自于一个字符串,叫做文档散列或校验和,是从文 发送者发送文档和签名 签名算法 验证算法 数字签名 数字签名 私有密钥 公共密钥 图25-3数字签名使用示意图
在本章里,一致性指的是识别一个人或一个公司的机制。从技术上讲,它是从一个真实 实体(如一个人或一个公司)到一个 I n t e r n e t实体(如一个网址、网络浏览器或一个电子邮件 程序)的映射。 我们可以用非对称密钥加密机制来确认一致性。注意,我们用公共密钥加密的数据只能用 私有密钥解密。然而,反过来也是如此,用私有密钥加密的数据只能用公共密钥才能解密。因 此,只需颠倒这对密钥的角色就可以确认一致性。发送者用他的私有密钥发送信息,接收者用 发送者的公共密钥对信息解密,这就确保了他接收的信息来自持有私有密钥的人,图 2 5 - 2 显示 了一致性确认过程。 图25-2 一致性确认示意图 2. 非对称密钥加密与可靠性 一致性的确认也暗示了数据传输的可靠性,即接收的数据与发送的数据完全相同。其实, 非对称密钥加密本身的特点就意味着如果信息有误,接收者将不可能用发送者的公共密钥解 密。然而,有时我们想发送一些普通数据,也需要接收者能够证明数据发自于我们,而且没 有发错。例如每个人都可读取一个公用合法文件,但其可靠性应该得到确认。为了使人们都 能确认数据的可靠性,可以使用一种数字签名( digital signature)技术。 数字签名相当于一个人的手写签名,可用来确认发送者的身份和确保数据(文件、消 息、软件等)在传输中没有改变。它来自于一个字符串,叫做文档散列或校验和,是从文 758计计ASP 3 高级编程 下载 公共密钥 ①发送者发送他的公共密钥 ③发送者发送加密后的数据给接收者 ②发送者用他的私有 密钥加密数据 私有密钥 ④接收者用发送者的公共密钥解码 发送者 接收者 发送者发送文档和签名 签名算法 验证算法 私有密钥 公共密钥 数字签名 数字签名 图25-3 数字签名使用示意图
inaopub.com 第3章证的使用759 下载 档中通过计算得出的,并由建立文档的人用私有密钥加密而成。文档散列就像是文档的指 纹,产生于散列算法,这些算法提取大量数据并只返回一小部分,通常是固定大小的。散 列算法对不同的文档得到相同的文档散列是极困难的,而仅通过改变一些字符来获取相同 的散列值更困难 数字签名机制将散列字符串绑定到文档和私有密钥的持有者。要确认文档的可靠性,可 以用发送者的公共密钥解密签名(这样就确认了发送者的一致性),生成文档校验和,并将之 与接收的数据比较,图25-3显示了如何运用数字签名过程 为文档建立一个数字签名称为给文档签名,给文档签名并不是改变其内容,只是生成一 个数字签名,可以将其绑定到文档上或单独传送 252证书与证书机构 非对称密钥加密是保证传输数据的安全性、一致性和可靠性的基本机制。所有功能都依 赖于公共密钥的分发,以及私有密钥与公共密钥匹配。换句话说,如果给他人发送加密信息, 需要知道他的公共密钥:或者如果收到一个签名的文档,就需要用发送者的公共密钥去核实 他的可靠性。 然而,我们收到一个公共密钥,并不能确认发送信息的人正是所找的人。很可能会有人 错发了公共密钥。需要记住的是非对称密钥加密只确保密钥匹配机制的工作,而不是公共密 钥掌握在哪个人手中 证书可以解决匹配问题。证书技术允许个人被唯一地确认身份,这样如果证书是有效的, 所信任的应用程序或服务器就可以轻易验证他。然而,证书技术并不限于对单个用户进行验 证。它也可以验证文档,如电子邮件或其他任何支持证书加密的应用程序 1.证书的概念 数字证书是一个唯一的记录,包含用于证实个人或组织的身份的必要信息。数字证书来 源于ⅹ.509标准化格式,执行了RSA实验室提出的公共密钥密码标准( Public-Key Cryptography Standards,PKCS)。我们可以在htt/ vww. rsa. com/ rsalabs/pubs/PKCS/上找到 更多的关于这些标准的信息 X.509标准描述了一些证书要求: 证书使用的格式版本 ·证书的序列号。 用于签署证书的算法的标识符。 ·发出证书的证书机构 证书的初始日期与终止日期。 拥有者的姓名。 拥有者的公共密钥 证书机构的数字签名。 每项都对应于证书结构的特定字段。证书也可以包括其他信息,如邮政地址、电子邮件 地址、国家、年龄、性别等等。这种附加的数据是可选的,取决于特定的证书类型。表25-1 显示了证书的字段的一个典型实例
档中通过计算得出的,并由建立文档的人用私有密钥加密而成。文档散列就像是文档的指 纹,产生于散列算法,这些算法提取大量数据并只返回一小部分,通常是固定大小的。散 列算法对不同的文档得到相同的文档散列是极困难的,而仅通过改变一些字符来获取相同 的散列值更困难。 数字签名机制将散列字符串绑定到文档和私有密钥的持有者。要确认文档的可靠性,可 以用发送者的公共密钥解密签名(这样就确认了发送者的一致性),生成文档校验和,并将之 与接收的数据比较,图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 下载
76093高级程 Chinapub coM 表25-1证书的典型结构 字段 Version Serial number 6F314B0248C6243D2FCD6B7BDC881D8 Sign algorithm RSA(512位) Issuer ensIgn In Initial date Expiration date 07/070023.59.59 Owner's name John smith Owner's public key 3047024007E9C8F3EDEC8ADA4C57A46F1C9D07BF BEF54680B4FD3CF9E406465A702030100016A72F1 存储在证书字段中的有些信息将在以后的章节内详细讲述。表25-1说明的是证书所必需 的基本结构。注意,证书本身并不能确认个人的身份,任何人都可根据标准格式创建和发布 证书。发布证书的系统要遵守一些非常严格的标准,这样证书才能提供我们所要的安全性。 2.证书机构 在标准证书格式所需的信息中,注意一下证书机构( Certificate Authority,CA),也就是 表25-1中的发行者( Issuer)。CA是负责确认公共密钥的匹配的一个受信任的第三方伙伴,即 它证实某一公共密钥是属于已知用户的。CA负责发布、撤消、刷新数字证书以及为数字证书 提供目录。在为个人或组织发证书前,CA必须经过严格的过程才确认他们。这就确保了该密 钥匹配过程的合法性。CA可以被认为是 Internet上的公证人 表25-1显示的证书结构有两项与CA有关的字段: Issuer与 Issuer's signature。这说明CA 确保它所存储的公共密钥属于证书的持有者。这种办法只是将个人可信性转变为CA的可信 性问题。但谁又能保证CA是可信的?回答这个问题并不简单。但是,信任是CA存在的基 目前,许多组织提供证书服务。由于电子商务的需要,这种组织日益增多。表25-2显示 些知名的CA和他们的网址。 表25-2一些知名的CA和他们的网址 机构名称 URL Belser www.belsign.be Certisign Certificadora Digita www.certsign.com.br COST ww. cost. se Entrust Technologies trust. com Www. GTE CyberTrust www.cybertrust.gte.com www.interclear.co.u Keywitness SETco www.thawte.com Xcert Software www.xcert.com 当两个用户或两个组织交换他们的证书后,只要他们信任发布证书的CA,就可以确认对
表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 高级编程 下载