IT评测·应用市场-qidao123.com技术社区
标题:
HTTPS SSL/TLS 工作流程
[打印本页]
作者:
勿忘初心做自己
时间:
2025-1-13 09:59
标题:
HTTPS SSL/TLS 工作流程
一、HTTP/HTTPS 简介
HTTP(超文本传输协议)是用于传输超媒体文档(如 HTML)的应用层协议,是互联网上应用最为广泛的一种网络协议。
1、HTTP协议相关内容
URL布局
:http://host[":"port][abs_path],此中host是主机名,port是端口(默认端口80),abs_path是绝对路径。例如http://www.example.com:8080/index.html,这里www.example.com是主机名,8080是端口(非默认),/index.html是绝对路径。
请求
:包罗请求行、消息报头、请求正文。
请求行
:如GET /index.html HTTP/1.1\r\n\r\n,GET是方法(表示请求资源),/index.html是请求的URI(统一资源标识符),HTTP/1.1是HTTP版本,\r\n\r\n是回车换行符,用于分隔请求行和消息报头。
消息报头
:包罗各种请求相关的信息,如User-Agent(用户署理,标识客户端信息)、Accept(可接受的内容类型)等。
请求正文
:一般在POST等请求方法中携带数据,如表单提交的数据等。
响应
:由状态行、消息报头、响应正文组成。
状态行
:如HTTP/1.1 200 OK\r\n,HTTP/1.1是版本,200是状态码(表示乐成),OK是状态描述。常见状态码还有404(未找到资源)、500(服务器内部错误)等。
消息报头
:例如Server: XHttpd\r\n(服务器软件信息)、Content-Type: text/html\r\n(响应内容类型)、Content-Length: 128\r\n\r\n(响应内容长度)等。
响应正文
:实际返回的数据,如网页的HTML代码等。
2、HTTPS协议
HTTPS是HTTP的安全版本,在HTTP的底子上通过SSL/TLS协议举行加密传输,默认端口是443。它可以保证数据传输的安全性和完整性,防止数据被盗取、篡改等。例如在举行网上银行交易、登录重要账号等场景中,通常使用HTTPS协议来确保信息安全。
3、HTTP版本差异:
HTTP 1.0
:默认使用短毗连,即每次请求都要建立一次TCP毗连,请求竣事后关闭毗连,效率较低。
HTTP 1.1
:默认使用长毗连,在肯定时间内保持TCP毗连不停开,多个请求可以复用同一个毗连,提高了传输效率。
二、HTTPS 协议工作流程解析
我们先通过流程图对 HTTPS 的工作机制做逐步解说:
1. 客户端请求 SSL 握手
当用户访问一个 HTTPS 网站时,客户端(如浏览器)会发起 SSL/TLS 握手请求。这是 HTTPS 工作的第一步,其目的是协商安全通讯所需的协议版本、加密算法和会话密钥。
关键点
:
客户端会发送支持的协议版本(如 TLS 1.2 或 TLS 1.3)和加密套件列表。
提供一个随机数(Client Random)以参与后续的密钥生成。
2. 服务端吸收 SSL 握手毗连
服务端响应握手请求,返回以下信息:
服务端随机数
:Server Random,与客户端随机数一起用于密钥生成。
数字证书
:由可信 CA 签发,包罗服务端的公钥,用于验证服务端身份。
选定的加密算法
:从客户端提供的加密套件中选择。
如果客户端验证数字证书失败(例如伪造网站证书或 CA 不可信),通讯会终止。
3. TLS 握手中的密钥协商
客户端生成会话密钥
:客户端生成一个 Pre-Master Secret,用服务端公钥加密后发送给服务端。
服务端解密 Pre-Master Secret
:服务端使用私钥解密得到 Pre-Master Secret。
对称密钥生成
:客户端和服务端通过 Client Random、Server Random 和 Pre-Master Secret 派生出类似的对称加密密钥,用于后续的加密通讯。
4. HTTP 数据的加密与解密
握手完成后,双方基于协商的对称密钥加密传输数据。
客户端
:将 HTTP 请求(包括请求头和数据)加密为 TLS 记录数据。
服务端
:吸收加密的 TLS 数据,解密后提取 HTTP 请求内容并处理。
服务端响应
:生成 HTTP 响应(例如网页 HTML 或 JSON 数据),加密后通过 TLS 通道返回客户端。
客户端解密
:解析 TLS 记录数据,提取 HTTP 响应内容并呈现给用户。
5. 安全性保障
HTTPS 的核心优势在于:
保密性
:防止数据被窃听。
完整性
:防止数据被篡改。
认证性
:验证通讯双方的身份。
三、HTTPS 协议的相关知识拓展
1. TLS 与 SSL 的区别
SSL(Secure Sockets Layer)
:由网景公司开发的早期版本(1.0-3.0)。
TLS(Transport Layer Security)
:SSL 的后续版本,主要包括 TLS 1.0、1.2 和最新的 TLS 1.3。
TLS 1.3 特性
:
简化握手流程,提升性能。
移除了一些不安全的算法(如 RSA 密钥互换)。
2. HTTPS 的性能优化
只管 HTTPS 增长了握手和加密的盘算开销,但今世优化技术(如 TLS Session Resumption 和 HTTP/2)使得其性能接近 HTTP:
TLS Session Resumption
:答应复用之前的会话密钥,避免重新握手。
HTTP/2
:多路复用、头部压缩等特性提升了 HTTPS 的性能。
3. HTTPS 的安全性
只管 HTTPS 非常安全,但仍需注意:
中心人攻击(MITM)
:通过伪造证书拦截通讯。
证书信任链题目
:不可信的 CA 可能签发伪造证书。
证书吊销与 OCSP
:浏览器需要验证证书是否被吊销,提升安全性。
四、深入学习 HTTPS 和网络安全的册本与资源
保举册本
《HTTP权威指南》(HTTP: The Definitive Guide)
一本深入解说 HTTP 协议的经典著作,得当理解 HTTPS 的底子原理。
《SSL和TLS协议详解》(SSL and TLS: Designing and Building Secure Systems)
深入解说 SSL/TLS 协议的握手流程、加密算法和实现细节。
《盘算机网络:自顶向下方法》(Computer Networking: A Top-Down Approach)
一本综合性的网络册本,涵盖 HTTPS、TLS 和加密协议等内容。
《Kali Linux 网络安全渗透测试》
方向实战,得当了解 HTTPS 安全漏洞的实际检测。
保举博客
Cloudflare Blog
高质量的网络技术博客,涵盖 HTTPS、TLS 1.3 等最新发展。
Mozilla Developer Network (MDN)
MDN 是学习 HTTP 和 HTTPS 的权威资源,内容详尽且直观。
Let’s Encrypt
聚焦于免费证书的颁发,资助开发者快速配置 HTTPS。
OWASP HTTPS Security Cheat Sheet
关于 HTTPS 实践的安全指南,得当开发者快速了解配置要点。
五、配置 HTTPS 的实践发起
1. 使用 Let’s Encrypt 免费证书
快速生成 HTTPS 证书并配置到服务器:
sudo certbot --nginx
复制代码
2. 逼迫 HTTPS
配置 Web 服务器(如 Nginx)重定向 HTTP 到 HTTPS:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
复制代码
3. 启用 HTTP/2
在 Nginx 中启用 HTTP/2:
server {
listen 443 ssl http2;
...
}
复制代码
六、进一步学习发起
深入研究 TLS 1.3 的性能优化。
实战配置 HTTPS,避免常见的安全漏洞。
关注新型的安全协议(如 QUIC 和 HTTP/3)的发展。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4