什么是 HTTPS?
HTTPS 是超文本传输协议 (HTTP) 用于在 Web 浏览器和网站之间发送数据的主要协议。HTTPS 使用 TLS(传输层安全)来加密 HTTP 请求和响应,使其成为同一协议的安全版本(因此称为“S”)。其用于各种应用,例如帐户登录、电子商务和 Web 邮件应用等。
注意:TLS 证书通常称为 TLS/SSL 证书。
HTTPS 的作用原理是什么?(基础知识)
HTTPS 是在 HTTP 协议之上实施 TLS 加密。因此,当用户访问支持 HTTPS 的网站时,他们将获得以下安全优势:
- 身份验证: 帮助验证网站的身份。 例如,如果浏览器栏显示 https://www.entrust.com,则可以确信其归 Entrust Corporation 所有。
- 加密:对第三方隐藏动态数据。
- 完整性:验证数据未被篡改。
为什么 HTTPS 中的身份验证如此重要?
网站的身份验证至关重要,因为其允许网站访问者验证网站的身份和所有权,从而帮助他们区分真实网站和潜在的虚假或欺诈网站。
网站访问者可能会通过各种攻击向量(例如 DNS 中毒、恶意软件或钓鱼网站),最终访问错误的网站。
将身份与网站关联通常由遵循严格行业准则的第三方组织(如证书颁发机构 (CA))执行。
HTTPS 中的身份工作原理是什么?
连接网站的 Web 浏览器将使用证书颁发机构(如 Entrust)颁发的 TLS/SSL 证书,对 HTTPS 网站进行身份验证。
请求 TLS/SSL 证书
若要向网站添加身份,网站所有者必须申请 TLS/SSL 证书,并由公众信任的证书颁发机构(如 Entrust)颁发。TLS/SSL 证书类似于企业的数字护照,因为其包含经验证的详细信息,例如:
- 网站 URL
- 拥有该网站的组织
- 证书颁发和到期日
- 颁发证书的证书颁发机构名称
- 公钥(用于加密数据)
若要获取 TLS/SSL 证书,网站所有者必须执行以下步骤:
- 生成证书签名请求 (CSR),其中包括公钥/私钥对
- 向证书颁发机构证明他们控制要包含在 TLS/SSL 证书中的域
- 证明组织身份,以及他们有权代表组织申请 TLS/SSL 证书
完成验证流程后,将颁发 TLS/SSL 证书,然后由网站所有者将其安装在相应网站上。之后,每当网站访问者通过 https:// 连接网站 URL 时,都会显示 TLS/SSL 证书
网站如何与网站访问者共享其身份
当网站访问者访问 HTTPS 网站时,他们的 Web 浏览器会收到 TLS/SSL 证书的副本。单击 URL 栏左侧的挂锁图标,然后选择连接安全和证书有效将显示类似于下图的网站证书。
网站访问者可以打开详细信息选项卡,以查看更多有关拥有该网站之组织的信息,如下图所示。
entrust.com 的 SSL 证书详情
如果证书显示网站所有者的公司详细信息(公司名称、位置),则该证书为扩展验证 (EV) 证书或组织验证 (OV) 证书。
浏览器如何验证 TLS/SSL 证书
浏览器将执行一系列检查,以验证网站显示的 TLS/SSL 证书的准确性和合法性。浏览器将:
- 检查证书颁发机构的数字签名,以验证证书是否由浏览器受信的根存储区上的证书颁发机构颁发
- 验证 SSL 证书中的域是否与网站访问者正在访问的网站的域相匹配
- 验证 SSL 证书是否有效且未过期或已被吊销
完成这些检查后,网站访问者的浏览器将在网站 URL 前面显示 https:// 和挂锁图标。
下图显示了网站证书由 Entrust 颁发,其中包含 Entrust 的电子签名,网站访问者的浏览器可以利用该签名来验证证书是否有效以及是否由 Entrust 颁发。
Entrust 证书颁发机构颁发的 SSL 证书上的数字签名
根存储区
为了验证网站的 TLS/SSL 证书,浏览器需要证书颁发机构的公钥副本,该副本存储于浏览器的根存储区中。
根存储区包含其信任的每个证书颁发机构的数字证书和关联公钥。
Entrust.com 的 SSL 证书认证路径
- 高级证书为根证书。其已预先加载到浏览器的根存储区中。
- 中级证书为中间证书。其由根证书 CA 进行电子签名,因此浏览器对此也十分信任。浏览器使用预加载之根证书的 Entrust 公钥来验证签名。
- 底层证书为最终实体证书,是浏览器连接站点时,由 Web 服务器发送的 Entrust TLS/SSL 证书。浏览器可以使用中间证书的电子签名来验证最终实体证书。
HTTPS 中的加密工作原理是什么?
在将数据从浏览器发送至服务器之前,在网站访问者输入信息(信用卡详细信息、登录详细信息、填写表单等)的任何 HTTPS 网站上,浏览器将利用该网站 TLS/SSL 证书中的公钥对数据进行加密。
加密流程是对传输中的数据进行加扰的一种方法,因此只有授权方才能读取这些数据。因此,加密会将人类可读的纯文本转换为难以理解的密文。
加密使数据看起来很随机,但加密的数据都遵循逻辑和可预测的模式。但接收数据的网站必须拥有正确的私钥来解密数据。
加密和解密过程的简要概述
加密的关键是什么?
加密密钥是在加密算法中使用的一串字符,用于改变纯文本数据,使其看起来很随机。加密密钥用于加密和解密数据。
四类加密有哪些?
加密主要有两种类型:
对称加密
对称加密只包括一个密钥,所有通信方都使用和共享该密钥,以加密和解密通信。虽然对称加密比非对称加密更快,但由于与安全分配密钥相关的复杂性,其并非一种可扩展的加密形式。
非对称加密
非对称加密(也称为公钥加密)包括两个单独的密钥。任何人都可以访问其中一个密钥(公钥),用于加密。第二个密钥(私钥)由接收者安全保管,用于解密。非对称加密比对称加密要慢,但在多个用户之间分配密钥更容易。
什么是加密算法?
加密算法是将纯文本转换为密文的一种方法。当加密算法使用私钥,以可预测的方式更改数据时,纯文本将转换为密文。这可实现使用解密密钥将密文转换回纯文本。
受欢迎的对称加密算法包括:
- AES
- 3-DES
- SNOW
受欢迎的非对称加密算法包括:
- RSA
- 椭圆曲线密码学 (ECC)
什么是 TLS/SSL 握手?
TLS 连接按照通常称为 TLS/SSL 握手的顺序启动。当网站访问者打开使用 TLS/SSL 证书的网站时,将启动此流程。该流程始于用户设备和其正在连接的网站。
步骤 1-2:握手协议和加密算法协商
网站访问者的浏览器和 Web 服务器都会握手并就使用哪种密码套件(加密算法)达成一致。
步骤 3-4:证书和密钥交换
Web 服务器将其 TLS/SSL 证书和中间证书的副本连同公钥一起发送至网站访问者的浏览器。网站访问者的浏览器将根据 TLS/SSL 证书的数字签名和浏览器证书根存储区中的根证书来验证 TLS/SSL 证书的有效性。
步骤 5:服务器握手完成
如果浏览器的所有检查均通过,则会建立从浏览器到 Web 服务器的单向安全通信信道。
步骤 6-10:客户端密钥交换和密码标准更改
Web 浏览器和 Web 服务器通过设置新的共享加密密钥,利用安全的单向通信信道(因为其更快且更高效),从非对称加密切换为对称加密。如何创建此共享会话密钥取决于步骤 2 中进行密码套件协商后达成一致的密码套件。
生成会话密钥后,将完成 TLS 握手流程,Web 浏览器和 Web 服务器将使用会话密钥对交换的所有数据进行加密和解密。