公钥证书-公钥加密

公钥证书,通常简称为证书,是一种数字签名的声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务的身份。大多数普通用途的证书基于 X.509v3 证书标准。要了解关于公钥加密的更多信息,请参阅资源:公用密钥结构。
可以为各种功能颁发证书,例如 Web 用户身份验证、Web 服务器身份验证、安全电子邮件(安全/多用途 Internet 邮件扩展 (S/MIME))、Internet 协议安全 (IPSec)、传输层安全 (TLS)以及和代码签名。证书还可以从一个证书颁发机构(CA) 颁发给另一个证书颁发机构,以便创建证书层次结构。.
接收证书的实体是证书的“主题”。证书的颁发者和签名者是证书颁发机构。 
通常,证书包含以下信息:
主题的公钥值 
主题标识符信息(如名称和电子邮件地址) 
有效期(证书的有效时间) 
颁发者标识符信息 
颁发者的数字签名,用来证实主题的公钥和主题的标识符信息之间绑定关系的有效性 
证书只有在指定的期限内才有效;每个证书都包含有效期的起止日期,它们是有效期的界限。一旦到了证书的有效期,到期证书的主题就必须申请一个新的证书。 
某些情况下有必要撤消证书中所声明的绑定关系,这时,可以由颁发者吊销该证书。每个颁发者维护一个证书吊销列表,程序可以使用该列表检查任意给定证书的有效性。 
证书的主要好处之一是主机不必再为单个主题维护一套密码,这些单个主题进行访问的先决条件的是需要通过身份验证。相反,主机只需在证书颁发者中建立信任。 
当主机(如安全 Web 服务器)指派某个颁发者为受信任的根颁发机构时,主机实际上是信任该颁发者过去常用来建立所颁发证书的绑定关系的策略。事实上,主机信任颁发者已经验证了证书主体的身份。主机通过将包含颁发者公钥的颁发者自签名证书放到主机的受信任根证书颁发机构的证书存储区,将该颁发者指定为受信任的根颁发机构。中间的或从属的证书颁发机构受到信任的条件是,他们拥有受信任根证书颁发机构的有效证书路径。
有关证书的详细信息,请参阅理解证书。

证书使用

因为证书通常用来为实现安全的信息交换建立身份并创建信任,所以证书颁发机构 (CA) 可以把证书颁发给人员、设备(例如计算机)和计算机上运行的服务(例如 IPSec)。
某些情况下,计算机必须能够在高度信任涉及交易的其他设备、服务或个人的身份的情况下进行信息交换。某些情况下,人们需要在高度信任涉及交易的其他设备、服务或个人的身份的情况下进行信息交换。运行在计算机上的应用程序和服务也频繁地需要确认它们正在访问的信息来自可信任的信息源。
当两个实体(例如设备、个人、应用程序或服务)试图建立身份和信任时,如果两个实体都信任相同的证书颁发机构,就能够在它们之间实现身份和信任的结合。一旦证书主题已呈现由受信任的 CA 所颁发的证书,那么,通过将证书主题的证书存储在它自己的证书存储区中,并且(如果适用)使用包含在证书中的公钥来加密会话密钥以便所有与证书主题随后进行的通讯都是安全的,试图建立信任的实体就可以继续进行信息交换,。
例如,使用 Internet 进行联机银行业务时,知道您的 Web 浏览器正在与银行的 Web 服务器直接和安全地通讯就是很重要的。在发生安全的交易之前,您的 Web 浏览器必须能够签定 Web 服务器的身份。就是说,进行交易之前,Web 服务器必须能够向您的 Web 浏览器证明它的身份。Microsoft Internet Explorer 使用安全套接字层 (SSL) 来加密消息并在 Internet 上安全地传输它们,而大多数其他新式 Web 浏览器和 Web 服务器也使用该技术。
当您使用启用 SSL 的浏览器连接到联机银行的 Web 服务器时,如果该服务器拥有证书颁发机构(例如 Verisign)颁发的服务器证书,那么将发生如下事件:
您使用 Web 浏览器访问银行的安全联机银行登录网页。如果使用的是 Internet Explorer,一个锁形图标将出现在浏览器状态栏的右下角,以表示浏览器连接到的是安全 Web 站点。其他浏览器以其他方式表示安全连接。 
银行的 Web 服务器将服务器证书自动地发送到您的 Web 浏览器。 
为了验证 Web 服务器的身份,您的 Web 浏览器将检查您计算机中的证书存储区。如果向银行颁发证书的证书颁发机构是可信任的,则交易可以继续,并且将把银行证书存储在您的证书存储区中。 
要加密与银行 Web 服务器的所有通讯,您的 Web 浏览器可创建的会话密钥。您的 Web 浏览器用银行 Web 服务器证书来加密该会话密钥,以便只有银行 Web 服务器可以读取您的浏览器所发送的消息。(这些消息中的一部分将包含您的登录名和密码以及其他敏感信息,所以该等级的安全性是必需的。) 
建立安全会话,并且在您的 Web 浏览器和银行的 Web 服务器之间以安全方式发送敏感信息。 
详细信息,请参阅证书安全性
当您将软件代码从 Internet 下载、从公司 intranet 上安装、或者购买光盘并安装在计算机上时,还可以用证书来确认在这些软件代码的真实性。无签名软件(没有有效的软件发布商证书的软件)可以威胁到计算机和存储在计算机上的信息。
如果用信任的证书颁发机构所颁发的有效证书对软件进行了签名,您就知道软件代码没有被篡改,可以安全安装在计算机上。在软件安装期间,系统会提示您确认是否信任软件制造商(例如,Microsoft Corporation)。您还可以看到其他选项,问您是否始终信任来自特定软件制造商的软件内容。如果您选择信任该制造商的内容,那么他们的证书将存入您的证书存储区,并且它们的其他软件产品就可以在预定义的信任环境下安装到您的计算机。在预定义信任的环境中,您可以安装制造商的软件,而不会被提示是否信任它们,因为您的计算机上的证书已声明您信任该软件的制造商。
与其他证书一样,这些用来确认软件真实性和软件发布商身份的证书可还以用于其他目的。例如,如果把“证书”管理单元设置为按目的查看证书,则“代码签名”文件夹可能包含由 Microsoft Root Authority 颁发给 Microsoft Windows Hardware Compatibility 的证书。这个证书有三个目的:
确保软件来自该软件发布商 
保护软件在发布之后不发生改变 
提供 Windows 硬件驱动程序确认


在组织中的证书使用

很多组织安装有自己的证书颁发机构,并将证书颁发给内部的设备、服务和雇员,以创建更安全的计算环境。大型组织可能有多个证书颁发机构,它们被设置在指向某个根证书颁发机构的分层结构中。这样,雇员的证书存储区中就可能有多个由各种内部证书颁发机构所颁发的证书,而所有这些证书颁发机构均通过到根证书颁发机构的证书路径共享一个信任连接。
当雇员利用虚拟专用网络 (VPN) 从家里登录到组织的网络时,VPN 服务器可以提供服务器证书以建立起自己的身份。因为公司的根颁发机构被信任,而公司根证书颁发机构颁发了 VPN 服务器的证书,所以,客户端计算机可以使用该连接,并且雇员知道其计算机实际上连接到组织的 VPN 服务器。
在数据可以经过 VPN 连接进行交换之前,VPN 服务器还必须能够验证 VPN 客户端的身份。或者通过交换计算机证书发生计算机级别的身份验证,或者通过使用点对点协议 (PPP) 身份验证方法,发生用户级别的身份验证。对于 L2TP(第二层隧道协议)/IPSec 连接,客户端和服务器双方均需要计算机证书。
客户端计算机证书可以服务于多个目的,这些目的大多数是基于身份验证的,这就允许客户端使用很多组织的资源,而不需要为每个资源分别准备证书。例如,客户端证书可能允许 VPN 连接,还允许访问公司存储 intranet 网站、产品服务器以及存储雇员数据的人力资源数据库。
VPN 服务器证书还可能服务于多个目的。相同的证书可能各种目的:确认电子邮件服务器、Web服务器或者应用程序服务器的身份。颁发证书的证书颁发机构决定每个证书的用途数目。

颁发给个人的证书

您可以向商业证书颁发机构(例如 Verisign)购买证书,以便发送经过安全加密或数字签名以证明真实性的个人电子邮件。
一旦您购买了证书并且用它来数字签名电子邮件,则邮件收件人就可以确认邮件在传输过程中没有发生改变,并且邮件来自于您,当然,先要假设邮件收件人信任向您颁发证书的证书颁发机构。
如果您加密了电子邮件,则没有人可以在传输过程中阅读邮件,而只有邮件收件人可以解密和阅读邮件。


证书管理单元

可以使用证书管理单元来管理用户、计算机或服务的证书。 
用户和管理员可使用证书管理单元向 Windows 2000 企业证书颁发机构申请新证书。另外,用户还可以从证书存储区查找、查看、导入和导出证书。但是在大多数情况下,用户不必亲自管理他们的证书和证书存储区。而是通过管理员、策略设置以及使用证书的程序来完成。
管理员是“证书”管理单元的主要用户,同样,他们能够在其个人证书存储区,以及那些他们有权管理的计算机或服务的证书存储区中,执行多种证书管理任务