重要的安全术语

在迁移到 HTTPS 时,开发者面临的两个障碍是概念和术语。本指南将为您简要介绍概念和术语。

克里斯·帕尔默
Chris Palmer
Matt Gaunt

摘要

  • 使用公钥/私钥对浏览器与服务器之间的消息进行签名和解密。
  • 证书授权机构 (CA) 是一个组织,对公钥和公共 DNS 名称(例如“www.foobar.com”)之间的映射进行证实。
  • 证书签名请求 (CSR) 是一种数据格式,将一个公钥与拥有该公钥的实体的某些相关元数据绑定在一起

什么是公钥和私钥对?

公钥/私钥对是一对大数字,用作加密密钥和解密密钥,并且共用特殊数学关系。一种常见的密钥对系统是 RSA 加密系统公钥用于加密消息,且消息只能使用相应的私钥进行解密。您的网络服务器将其公钥公布到全球,而客户端(例如网络浏览器)会使用该密钥来建立与您的服务器安全通道。

什么是证书授权机构?

认证机构 (CA) 是一个组织,对公钥和公共 DNS 名称(例如“www.foobar.com”)之间的映射进行证实。例如,客户端如何知道特定公钥是否为 www.foobar.com 的真实公钥?从来讲,没有办法知道。CA 使用自己的私钥对该网站的公钥进行加密签名,以此保证特定密钥是特定网站的真实密钥。此签名在计算上不可伪。浏览器(和其他客户端)会维护包含知名 CA 拥有的公钥的信任锚存储区,并使用这些公钥对 CA 的签名进行加密验证

X.509 证书是一种数据格式,它将一个公钥与拥有该公钥的实体的某些相关元数据绑定在一起。对于 Web,密钥的所有者是网站运营商,重要的元数据是 Web 服务器的 DNS 名称。当客户端连接到 HTTPS Web 服务器时,Web 服务器提供其证书供客户端验证。客户端将验证证书未过期、DNS 名称与客户端尝试连接的服务器的名称一致,以及已知的信任锚 CA 已对证书签名。在大多数情况下,CA 并不直接对网络服务器证书进行签名;通常有一个证书链将信任锚链接到一个或多个中间签名者,并最终链接到网络服务器自己的证书(最终实体)。

什么是证书签名请求?

证书签名请求 (CSR) 是一种数据格式,就像证书一样,将公钥与拥有该公钥的实体的某些相关元数据绑定在一起。但是,客户端不会解读 CSR;而 CA 会解读。当您希望让 CA 证实您的 Web 服务器的公钥时,就向 CA 发送 CSR。CA 验证 CSR 中的信息并使用它来生成证书。然后,CA 向您发送最终证书,您在 Web 服务器上安装该证书(或更可能是证书链)和私钥。