RSA -适用于数字签名和密钥交换。Rivest-Shamir-Adleman (RSA) 加密算法是目前应用最广泛的公钥加密算法,特别适用于通过 Internet 传送的数据。这种算法以它的三位发明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大数字时的困难(就计算机处理能力和处理时间而言)。在常用的公钥算法中,RSA 与众不同,它能够进行数字签名和密钥交换运算。
DSA-仅适用于数字签名。数字签名算法 (Digital Signature Algorithm, DSA) 由美国国家安全署 (United States National Security Agency, NSA) 发明,已经由美国国家标准与技术协会 (National Institute of Standards and Technology, NIST) 收录到联邦信息处理标准 (Federal Information Processing Standard, FIPS) 之中,作为数字签名的标准。DSA 算法的安全性源自计算离散算法的困难。这种算法仅用于数字签名运算(不适用于数据加密)。
证书颁发机构 (CA) 是一个向个人、计算机或任何其它申请实体颁发证书的可信实体。CA 受理证书申请,根据该 CA 的策略验证申请人的信息,然后使用它的私钥把其数字签名应用于证书。然后,CA 将该证书颁发给该证书的主体,作为 PKI 内部的安全凭据。由于不同的 CA 使用不同的方法验证公钥与主体之间的绑定,在选择信任该颁发机构之前,理解该 CA 的策略是非常重要的。
CA 可以是远程的第三方机构,如 VeriSign。作为选择,也可以是您创建的供您所在组织使用的 CA,例如,通过安装 Windows 2000 证书服务即可创建一个 CA。每个 CA 对证书申请人可能有完全不同的身份凭据要求,如 Windows 2000 域帐户、职员标记、驾驶执照、公证请求或实际住址。
CA 策略
CA 根据也已确立的一套标准向申请人颁发证书。CA 在受理证书请求(以及颁发证书、吊销证书和发布 CRL)时所采用的一套标准被称为 CA 策略。通常,CA 以一种叫做证书惯例声明 (Certification Practice Statement, CPS) 的文档发布其策略。
证书颁发机构的类型
CA 的类型包括以下三种:
自签名 CA。在自签名 CA 中,证书中的公钥和用于验证证书的密钥是相同的。一些自签名 CA 是根 CA
从属 CA。在从属 CA 中,证书中的公钥和用于核实证书的密钥是不同的。一个 CA 向另一个 CA 颁发证书的过程叫做交叉认证。
根 CA。根 CA 是一种特殊的 CA,它受到客户无条件地信任,位于证书层次结构的最高层。所有证书链均终止于根 CA。根颁发机构必须对它自己的证书签名,因为在证书层次结构中再也没有更高的认证机构了。
所有自签名 CA 都是根 CA,因为到自签名 CA 时证书链就终止了。
不可更改的 CA 层次结构
管理员可以创建 CA 的层次结构,从根 CA 证书开始,然后添加中级 CA,每一个 CA 都可以为其从属 CA 颁发证书。当 CA 向最终实体(用户)颁发证书时,证书链就终止了。
根 CA 证书的分发费用最高,因为如果您开始改变根证书,就必须重建整个PKI。如果根证书改变了,就必须吊销组织内所有客户端的旧的根证书,并添加新的根证书。另外,必须重新颁发由根 CA 颁发的、再由从属 CA 颁发给最终实体的所有证书。因此,在部署 CA 层次结构时,使用少量的长寿命根CA可提供最经济的解决方案。根CA非常重要-因为它们被无条件地信任,因为它们是证书链的顶点-因此,在分发证书时要有一个圈外的身份验证。也就是说,由于根 CA 是自签名的,所以必须有人来证明根证书是真品。
因为最终实体要比 CA 多得多,所以向最终实体颁发证书的 CA 使用私钥在大量的数据上签名。用来对数据签名的密钥使用得越频繁,加密数据受到攻击的可能性就越大。因此,为了保持安全,向最终实体颁发证书的联机 CA 必须经常更换其签名密钥。
向最终实体颁发证书的 CA 具有的吊销证书列表,要比中级或根 CA 的列表大得多(这些 CA 仅向其它 CA,更多的是从属 CA 颁发证书)。其部分原因是因为最终实体要比 CA 证书多得多。另外,有许多理由可以解释为什么必须吊销最终实体的证书,如职员改变了工作或离开了公司。
CA 发布吊销证书列表(CRL),其中列出了不应再使用的证书。被吊销证书的有关条目将一直保留在 CRL 列表中,直至证书的有效期 结束之后,CA 才可将该证书从列表中删除。CRL 中的条目越多,CRL 就越大,其下载时间就越长。通常,只有使用较慢的网络链路(如拨号连接)的用户才会遇到下载时间问题。CA 还可以管理 CRL 列表的大小。一种方法是维护多个列表,称为分区 CRL。另一种方法是,缩短已颁发证书的有效期,从而加快 CA 从列表中删除吊销证书的速度。
许多应用程序必须能够查明证书最近的吊销状态信息。只有一个联机 CA 能够发布有关证书状态的当前信息。由脱机CA公布的吊销状态,必须使用圈外的方法发布到联机位置。
大多数容易受到攻击的 CA 都是处于联机状态的、物理安全措施较差并签署了大量证书的 CA。因此,建立根 CA和从属CA时,应该平衡一下安全性和可用性。通常,建议采用三级层次结构,即一个脱机的独立根 CA、一个脱机的独立从属策略 CA 和一个联机从属颁发企业 CA。
脱机根CA。 在设计 CA 的层次结构时,根CA的安全级别应设为最高。根CA应以脱机状态保存在安全的位置,并且用它只签署少量证书。可能的话,应该将CA和密钥保存在专门的保管库中,并且至少同时有两位操作员进入该保管库,一位执行规定的操作,另一位审核其操作。(在Windows 2000 网络中,设计了独立的 CA,以便它们脱机运行。)
脱机中级CA。在一个根CA下面可以有一个或多个从属CA。将中级从属CA设为脱机的机器,可以提高该 CA 的安全性。
联机颁发CA。 CA 链中最后一级的 CA 必须处于联机状态,因此可用于受理来自众多客户机的证书申请。根 CA下面的联机 CA 也可以经常发布最新的吊销状态信息。管理员可以频繁地更改这种 CA 的密钥,因为颁发新证书的开销(管理方面的开销)是最低的。从属 CA 并不完全是可任意使用的,但通过攻击从属 CA 并不能得到多少有价值的东西,而且高级 CA 通过吊销证书即可轻而易举地阻挡这种攻击。
注册
注册 就是主体向 CA 自我介绍的过程。在申请证书时,注册可以是隐含的,或通过为主体提供担保的另一个可信实体(如智能卡登记站)来完成,或者在收到来源可信(如来自域管理员)的信息时自动完成。一旦向 CA 进行了注册,只要符合按照 CA 策略建立的标准,证书即被颁发给该主体。
证书登记
证书登记 就是最终实体进行证书申请并从 CA 接收证书的过程。证书申请就是向 CA 提供身份信息,该信息随后将成为所颁发证书的一部分。CA 根据一套标准受理申请,该标准可能要求进行脱机的、非自动的身份验证(圈外的身份验证)。如果申请被成功受理,CA 随后将向该用户颁发证书。
通过注册机构进行证书登记
一种特殊的证书登记可通过注册机构 (Registration Authority, RA) 来完成,RA 可为 CA 提供担保,以便将公钥与预期的证书持有人的身份及属性绑定在一起。RA 是拥有特殊证书的主体。这种特殊的证书包含有可以向CA表明主体身份的信息。通常,RA 在公钥和主体之间建立绑定,然后在主体生成的申请上签名,以便向 CA 提供该 RA 即将为绑定担保的证据。本质上,使用 RA 是管理委派的一种形式-CA 委派 RA 执行验证公钥和实体之间绑定的任务。
RA 生成在主体和公钥之间建立的牢固绑定的证书。在 Windows 2000 操作系统中,证书服务使用域身份验证来识别申请大多数类型证书的用户身份。创建智能卡登录证书的 Windows 2000 智能卡登记站由 RA 使用。RA 可验证智能卡收件人的身份,同时提供比域身份验证单独完成的主体与公钥之间的绑定更加牢固的绑定。
证书吊销
证书具有一个指定的寿命,但 CA 可通过称为证书吊销的过程来缩短这一寿命。CA 发布一个证书吊销列表 (CRL),列出被认为不能再使用的证书的序列号。CRL 指定的寿命通常比证书指定的寿命短得多。CA 也可以在 CRL 中加入证书被吊销的理由。它还可以加入被认为这种状态改变所适用的起始日期。
可将下列情况指定为吊销证书的理由:
泄露密钥
泄露 CA
从属关系改变
被取代
业务终止
证书持有(这是唯一让您能够改变被吊销证书状态的理由码,在证书状态有问题的情况下非常有用)
Microsoft CryptoAPI 提供了一个标准的框架,应用程序可用此框架来获得加密服务和数字证书服务。除了 CryptoAPI 为 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供的标准服务以外,第三方供应商可开发并销售他们自己的插件模块,提供附加的加密服务。
在 Windows 网络中,为新证书生成一个请求时,该请求中的信息首先被从请求程序传递给 CryptoAPI。然后,CryptoAPI 把相应的数据传递给一个称为加密服务提供程序 (CSP)的程序,该程序安装在您的计算机上,或安装在您的计算机可以访问的某种设备(如智能卡)上。CSP 是一个执行诸如机密密钥交换、数据的数字签名以及公钥身份验证之类的加密操作的独立软件模块。(end)