HTTPS工作原理
一、概念
简单来说,HTTPS=HTTP+SSL/TLS
HTTP:超文本传输协议
SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。
二、工作原理
1、在进行通信前,首先会进行 HTTP 的三次握手,握手完成后,再进行 TLS 的握手过程
2、可以分为两个阶段:证书验证阶段和数据传输阶段
3、包含两个加密算法:RSA和AES。使用非对称加密算法RSA来协商对称加密算法AES所需的密钥。最终的数据传输使用AES加密,因为RSA加密解密比较损坏性能。
4、CA认证机构颁发的证书保证RSA公钥的权威性,防止中间人攻击


三、常见问题
1、HTTPS URL是否被加密

在HTTPS通信中,传输的数据是被加密的,包括HTTP请求和响应的内容。然而,URL(统一资源定位符)的某些部分在传输过程中并不完全加密。具体来说:
1. **域名**:由于TLS握手发生在HTTP请求之前,服务器的域名(例如,在URL中的`https://example.com/path`中的`example.com`)在DNS查询和TLS握手过程中是可见的。这意味着网络中间人(如互联网服务提供商或在公共Wi-Fi上监听的攻击者)可以看到用户正在访问哪个网站,尽管他们无法看到用户在该网站上做了什么。
2. **完整的URL路径和查询字符串**:URL的路径(`/path`)和查询字符串(例如`?query=parameters`)部分在HTTPS加密之后才被发送到服务器。这意味着这些部分对于中间人是不可见的,只有用户和目标服务器知道完整的URL。
3. **HTTP头和正文**:请求和响应的HTTP头部以及正文内容都是经过加密的。这包括发送的数据、cookies、用户代理字符串等。
总结来说,虽然HTTPS确保了用户与服务器之间传输的数据内容的安全性,但是域名信息在某些情况下是可以被网络上的其他参与者看到的,而URL的路径和查询字符串则是加密的,不会暴露给第三方。这种设计允许网络基础设施(如DNS服务器和路由器)正确地将用户的请求路由到目标服务器,同时保护通信内容的隐私。

浙公网安备 33010602011771号