我对 HTTPS 工作原理的理解(例如 gmail)

信息安全 tls http
2021-08-18 04:18:57

我想问一下我对我们正在访问的网页使用的 HTTPS 的以下理解是否正确。

我将以 Gmail 为例:

  1. 我的笔记本电脑尝试连接到 Gmail 服务器并发送 http 请求
  2. Gmail 服务器回复了建立 https 连接的请求(发送 https 请求)
  3. 我的笔记本电脑检查了Gmail服务器的https认证,同意使用https连接
  4. 我的笔记本电脑找到了Gmail 服务器的公钥,并用它来加密我的 gmail 帐户密码并将其发送到 Gmail 服务器
  5. Gmail 服务器使用 Gmail 服务器的私钥验证我的密码并确认我的电子邮件登录
  6. Gmail 服务器通过使用笔记本电脑的公钥对其进行加密,将电子邮件信息发送到我的笔记本电脑
  7. 我的笔记本电脑通过使用笔记本电脑的私钥对其进行解密来读取加密的电子邮件信息
  8. 依此类推,直到我的笔记本电脑注销 Gmail 服务器。

摘要:此https连接涉及4个密钥。Gmail 服务器公钥/私钥 (2pc) + 我的笔记本电脑公钥/私钥 (2pc)

1个回答

是的,你在正确的轨道上!但事情实际上与你概述的有点不同。

特别是,步骤 4-8 并不是 SSL 的工作原理。SSL 的工作方式略有不同。以下是它的实际工作原理(我将做一些小的简化,但这应该能正确理解这个想法的要点):

  • Gmail 服务器向您的客户端发送一个证书该证书包括 Gmail 服务器的公钥,以及该公钥实际上属于gmail.com.

  • 您的浏览器会验证证书中的证据,以确认它具有正确的gmail.com.

  • 您的浏览器会随机选择一个新的对称密钥K 用于连接到 Gmail。它使用 Gmail 的公钥加密K。

  • Gmail使用其私钥解密K。现在您的浏览器和 Gmail 服务器都知道K,但没有其他人知道。

  • 每当您的浏览器想要向 Gmail 发送内容时,它都会在K下对其进行加密;Gmail 服务器在收到后对其进行解密。每当 Gmail 服务器想要向您的浏览器发送某些内容时,它都会在K下对其进行加密。

您的步骤 1-3 大致正确,但并不完全正确,细节在一定程度上取决于您使用的浏览器以及您在地址栏中键入的 URL 或您首先如何访问 Gmail —— 但您写的足够接近理解基本概念。对于政府工作来说已经足够了。

以下是一些额外的阅读材料:

观察正在建立的 HTTPS 连接的人怎么可能不知道如何解密呢?

数字证书、签名和 ssl 的流程如何工作?

CA 签署和信任的证书的用途

为什么伪造 SSL 证书很困难?

为什么 HTTPS 不是默认协议?

在公共热点上访问 HTTPS 网站是否安全?

我认为这些文章应该让您对 SSL、它的工作原理以及它的设计方式有一个很好的理解。

如果这还不够,你必须有更多更多,这里有一些来自维基百科的文章:

证书的工作原理

SSL 的工作原理

然而,它们的技术细节可能比你想知道的要多得多,而且它们并不是对概念或基本思想的第一次介绍。