Skip to content

2)HTTPS

HTTPS 中对公钥的加解密是谁在做?

HTTPS 协议中,公钥加解密的操作是在 客户端(如浏览器)服务器 之间进行的。

  1. 公钥加密(客户端加密)
  2. 私钥解密(服务器解密)
  3. 对称加解密(双方进行加解密)
  • 具体步骤总结:
    • 客户端 获取 服务器的公钥(通过服务器发送的 SSL 证书)。
    • 客户端用公钥加密生成的 对称密钥。
    • 服务器 用自己的 私钥 解密得到对称密钥。
    • 双方使用 对称密钥 加解密实际数据。

我中间如果在对称加密的时候被黑客攻击,加了一层代理加解密,是不是 HTTPS 就不安全了?

如果在 对称加密(如 AES 密钥)阶段,数据传输中被黑客中间人攻击(即 中间人攻击,Man-in-the-Middle, MITM),并且攻击者能够插入自己作为代理进行加解密,那么 HTTPS 就会被破坏,安全性会受到威胁。

  • 如何保护 HTTPS 免受中间人攻击?
    • 证书验证:为了避免中间人攻击,HTTPS 协议依赖于 数字证书 来验证服务器的身份。客户端通过验证服务器提供的证书(由可信的证书颁发机构 CA 签发)来确保它与真实的服务器建立连接。
      • 证书颁发机构(CA)保证了只有合法的服务器拥有对应私钥,并且证书与公钥是匹配的。
    • HSTS(HTTP Strict Transport Security):通过 HSTS 策略,网站可以强制客户端只通过 HTTPS 协议与其通信,防止客户端在潜在的 MITM 攻击下使用 HTTP 协议。
    • 公钥钉扎(Pinning):这种技术通过将服务器的公钥硬编码到客户端应用程序中,即使 CA 被攻破,客户端也能确认服务器的公钥是否正确。

定义

HTTPS(Hypertext Transfer Protocol Secure,超文本传输协议安全版)是对 HTTP 协议的扩展,它通过加密机制(SSL/TLS)为 HTTP 协议提供安全性保障。HTTPS 用于在网络上安全地传输数据,防止数据被篡改、窃听和伪造。

工作原理

HTTPS 在 HTTP 的基础上,通过 SSL/TLS 协议为通信提供加密保护。其基本流程如下:

  1. 客户端发起请求:客户端(如浏览器)发起一个 HTTPS 请求,连接到服务器的 443 端口(HTTPS 默认端口)。
  2. 服务器响应 SSL/TLS 握手:服务器向客户端发送其证书(包括公钥等信息),证明其身份。客户端使用该公钥加密一个“对称密钥”,并发送给服务器。
  3. 加密通信建立:服务器使用其私钥解密该对称密钥。之后,双方使用该对称密钥进行加密通信。
  4. 数据传输:通过加密的连接传输 HTTP 数据,确保通信内容不会被窃取、篡改或伪造。
  5. 连接关闭:当通信结束后,SSL/TLS 连接会关闭。

HTTPS 的安全性特性

  1. 加密性:通过 SSL/TLS 协议对数据进行加密,防止数据在传输过程中被窃听或篡改。
  2. 身份验证:通过数字证书验证服务器的身份,防止伪造网站(如中间人攻击)。
  3. 数据完整性:使用消息认证码(MAC)确保数据在传输过程中不被篡改。

HTTPS 与 HTTP 的区别

特性HTTPHTTPS
协议类型明文传输加密传输
端口默认使用 80 端口默认使用 443 端口
安全性无加密,数据可能被窃听和篡改数据加密,防止窃听和篡改
性能较快,但不安全相对较慢,因为需要进行加密解密处理
证书无证书验证使用 SSL/TLS 证书进行身份验证
使用场景一般用于公开信息或不涉及敏感信息的应用用于处理敏感信息(如支付、登录)

HTTPS 的优势

  1. 数据加密:确保用户数据在传输过程中的安全性,防止信息被中途拦截或篡改。
  2. 防止钓鱼攻击:通过证书验证,确保用户连接的是合法的服务器,而不是伪造的钓鱼网站。
  3. SEO 优势:Google 等搜索引擎对 HTTPS 站点有更高的排名权重。
  4. 用户信任:HTTPS 站点通常会显示绿色的锁图标,提升用户的安全感和信任度。

HTTPS 的缺点

  1. 性能开销:由于加密和解密过程,HTTPS 比 HTTP 稍慢,虽然现代硬件和优化技术大大减少了这一差异,但仍然存在性能开销。
  2. 证书成本:部署 HTTPS 需要购买和配置 SSL/TLS 证书,虽然有些证书是免费的(如 Let’s Encrypt),但有些高信任度证书依然需要付费。
  3. 配置复杂性:如果证书配置不正确,可能导致安全漏洞或无法正常访问。

证书的种类

  1. 单域名证书:只能保护一个域名(如 www.example.com)。
  2. 多域名证书:可以保护多个不同的域名(如 www.example.com、api.example.com)。
  3. 通配符证书:可以保护某个域名下的所有子域名(如 *.example.com)。
  4. 扩展验证证书 (EV SSL):提供最高级别的身份验证,浏览器会显示公司名称,增加信任度。

HTTPS 的应用场景

  1. 支付系统:例如银行网站、电商平台等,确保交易数据的安全性。
  2. 登录与账户信息:保护用户登录信息、个人账户和密码等敏感数据。
  3. 电子邮件系统:加密邮件传输,确保邮件内容的安全。
  4. 在线表单提交:避免表单数据(如注册、调查、支付信息)被窃取。
  5. SEO 优势:谷歌等搜索引擎倾向于提高 HTTPS 网站的搜索排名。

如何使用 HTTPS

  1. 购买 SSL/TLS 证书:可以选择商业证书或免费的证书(如 Let's Encrypt)。
  2. 配置服务器:将证书安装到 Web 服务器上,配置正确的 HTTPS 设置。
  3. 强制 HTTPS:使用 HTTP Strict Transport Security (HSTS) 头部,强制客户端始终通过 HTTPS 访问站点。
  4. 验证配置:使用 SSL Labs 等工具检查服务器的 SSL 配置,确保其安全性。

总结

HTTPS 是 HTTP 的加密版本,通过使用 SSL/TLS 协议为数据传输提供加密、身份验证和数据完整性保障。它已成为现代网站的标准,尤其在处理敏感数据(如支付、登录等)时不可或缺。虽然它会增加一定的性能开销,但其带来的安全性和用户信任优势远远超过了这些开销。