浅析HTTP与HTTPS的区别

HTTP协议

超文本传输协议HTTP(Hypertext Transfer Protocol)是一个用于在客户端(通常是浏览器)和服务器之间传输数据的协议。它是Web通信的基础协议,主要用于在客户端和服务器之间交换各种资源(如HTML文件、图片、视频等)。

HTTP协议的局限性

1、明文传输

  • HTTP使用明文传输数据,任何中间人都可以轻易截获并查看通信内容
  • 无法保护敏感信息(如密码,银行卡号等)

2、无法验证通信方的身份

  • HTTP协议无法确认通信对方是否是可信的服务器,容易遭受黑客的攻击

3、无法保证数据的安全性

  • HTTP协议无法检测数据是否被篡改

HTTPS协议

HTTPS协议就是在HTTP协议的基础上添加了TLS/SSL协议,来对数据进行加密,保证数据的机密性和完整性。

二者的区别

1、数据传输的安全性:HTTP数据使用明文传输,容易被监听和篡改。HTTPS通过TLS和SSL协议对数据进行加密传输,保证了数据的机密性和完整性。

主要手段包括:在建立连接时使用非对称加密,在家里连接以后使用对称加密,通过服务器证书来确认服务器的身份

2、默认端口号不同:HTTP协议使用80端口,HTTP协议使用443端口

3、性能:HTTP无需加密,建立连接速度更快,HTTPS需要加上TLS协议进行加密传输,增加了计算开销,但是差距很小。

4、加密方式:HTTP无加密机制,HTTPS使用混合加密的方式 (对称加密(建立连接前)+非对称加密(建立连接时))

HTTPS建立连接过程

HTTPS协议分为HTTP+TLS两个过程:

1、HTTP:负责数据的传输

2、TLS/SSL:负责加密、身份认证和数据完整性校验

TLS 和 SSL协议的基本流程:

1、客户端向服务器索要并且验证服务器的公钥

2、双方生成 会话秘钥

3、使用 会话秘钥 进行加密通信

TLS 四次握手的流程:

1、客户端向服务器发起加密通话请求,并且包含以下信息:

  • 客户端支持的 TLS 版本
  • 客户端支持的 加密算法列表
  • 客户端生成的 随机数(作为会话秘钥之一)

2、服务器收到客户端请求后,回复请求,包含以下信息:

  • 确认通信的 TLS 版本
  • 确定通信使用的 加密算法
  • 客户端生成 随机数(作为会话秘钥之一)
  • 将服务器的 公钥 发送给客户端, 客户端根据公钥来确认服务器的身份

3、客户端验证证书的真实性,并且回复服务器,包括以下信息:

  • 客户端向浏览器中的CA来验证服务器数字证书的真实性,如果真是就进行以下操作
  • 取出服务器的公钥,并使用公钥加密报文进行回复
  • 生成 第三个随机数(作为会话密钥之一)
  • 通知服务器使用会话密钥进行加密

4、服务器对客户端进行确认,并使用会话密钥进行通信,包括以下信息:

  • 通知客户端,后续通信使用会话密钥进行加密(密钥为三个随机数)
  • 通知客户端 TLS 握手结束

注意:在握手后的通信中,服务器和客户端使用协商好的加密算法和会话密钥进行加密传输,通过对称加密的方式进行传输,只有在TLS握手时,使用非对称加密的方式进行通信,这么做的目的是为了防止被中间人监听。

重点分析

1、TLS 使用四次握手的方式来保证 HTTP 协议的安全性

2、使用非对称加密的方式来交换会话密钥,来防止会话密钥被中间人监听和截获

3、采用3次随机数作为会话密钥

4、使用对称加密的方式进行通信,来提高通信的性能

5、采用数字证书来保证客户端的真实性,避免中间人伪造成服务器

相关推荐
Oneslide21 分钟前
Vmware WorkStation Pro 下载和使用指南
后端
神奇小汤圆24 分钟前
SwiftClockCache:一个高性能并发缓存的设计与实现
后端
神奇小汤圆40 分钟前
学完 Spring Boot 再看 FastAPI,我破防了
后端
用户987409238871 小时前
deepspeed zero3 + llamafactory 保存checkpoint后第一step 就 OOM
后端
长大19881 小时前
ggplot2 高阶美化:SCI 期刊级论文图表从零绘制全流程
后端
墩墩大魔王丶2 小时前
macOS Rust 安装教程:自定义 CARGO_HOME 和 RUSTUP_HOME
后端
进阶的小名3 小时前
Spring Boot SSE + Nginx 配置:解决 EventSource 不实时返回、连接超时、流式响应被缓冲问题
spring boot·后端·nginx
摇滚侠3 小时前
SpringMVC 入门到实战 RESTFul 49-55
java·开发语言·后端·spring·intellij-idea·restful
PinkSun4 小时前
Spring AI RAG踩坑:我骂了半年的FilterExpression,其实是背锅侠
后端·ai编程
我登哥MVP4 小时前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven