密钥 SSL 概念
为认证对等体的身份,SSL 协议使用了称为数字证书的 X.509 证书。数字证书本质上是由可信方发出的电子标识卡,这种卡使用户能够通过使用公用密钥密码术来验证证书的发送方和接收方。
公用密钥密码术使用两种不同的密码术密钥:专用密钥和公用密钥。公用密钥密码术也称为非对称密码术,因为您可以使用给定公用-专用密钥对中的一个密钥加密信息,而用补充密钥解密信息。公用-私用密钥对仅仅是充当用户加密方案的长串数据。用户将专用密钥保存在一个安全位置(例如,在计算机的硬盘驱动器上加密),并向该用户希望进行通信的任何人提供公用密钥。专用密钥用于以数字方式签署来自用户的所有安全通信,而公用密钥由接收方用来验证发送方的签名。
公用密钥密码术是基于信任而构建的:公用密钥的接收方需要相信该密钥确实属于发送方而不是冒名顶替者。数字证书提供了这种信任。因此,共享 SSL 会话的 IBM Tivoli Workload Scheduler 工作站必须已在本地安装 X.509 证书库,这种证书将在 SSL 会话建立期间交换,以认证会话。
数字证书由称为认证中心(CA)的可信机构签发。已签署的数字证书包含:
- 所有者的专有名称
- 所有者的公用密钥
- 认证中心(签发者)的专有名称
- 认证中心在这些字段上的签名
发送到认证中心以进行签署的证书请求包含:
- 所有者(请求者)的专有名称
- 所有者的公用密钥
- 所有者自己在这些字段上的签名
如果认证中心(例如 VeriSign 或 Thawte)的根证书(即包含认证中心签名的证书)列在客户机(服务器)可信 CA 列表中,则表示客户机(或服务器)应用程序信任该认证中心。应用程序创建其可信 CA 列表的方式取决于 SSL 实现。如果使用 OpenSSL(例如),则可信 CA 列表仅仅是一个包含所有应信任的 CA 的并置证书的文件。如果使用 OS/390 密码服务系统 SSL,则可信 CA 列表是一个包含可信 CA 的证书的专有数据库。认证中心使用数字证书中的公用密钥验证此签名,以确保证书请求在申请者与 CA 间传递时没有被修改,并确保申请者拥有与证书请求中的公用密钥相匹配的专用密钥。
CA 还负责某些级别的身份验证。这可能涉及从很小的论证到完全确定所有者的身份。自签署数字证书是特定类型的证书。它包含:
- 所有者的专有名称
- 所有者的公用密钥
- 所有者自己在这些字段上的签名
根 CA 的数字证书是自签署数字证书的一个示例。用户也可以为测试用途而创建他们自己的自签署数字证书。
以下示例简略地描述了在建立 SSL 会话时如何使用数字证书。在此方案中,Appl1 是一个客户机进程,它打开与服务器应用程序 Appl2 的 SSL 连接:
- 客户机 Appl1 要求打开与服务器 Appl2 的 SSL 会话。
- Appl2 启动 SSL 握手协议。它使用它的专用密钥加密信息,并将其证书及相匹配的公用密钥发送给 Appl1。
- Appl1 接收来自 Appl2 的证书,并验证它是由可信认证中心签署的。如果证书是由可信 CA 签署的,则 Appl1 可以选择性地抽取存储在证书中的某些信息(例如专有名称),并对 Appl2 执行附加的认证检查。
- 此时,服务器进程已经过认证,且客户机进程开始了它的部分认证过程;也就是说,Appl1 使用其专用密钥加密信息,并将证书及其公用密钥发送给 Appl2。
- Appl2 接收来自 Appl1 的证书,并验证该证书是由可信认证中心签署的。
- 如果证书是由可信 CA 签署的,则 Appl2 可以选择性地抽取存储在证书中的某些信息(例如专有名称),并对 Appl1 执行附加的认证检查。