【计算机网络】https的工作原理以及和http的区别

目录

前言

[1. HTTP协议存在的问题](#1. HTTP协议存在的问题)

[2. 什么是HTTPS协议?](#2. 什么是HTTPS协议?)

[3. HTTP和HTTPS有哪些区别?](#3. HTTP和HTTPS有哪些区别?)

[4. HTTPS的工作原理](#4. HTTPS的工作原理)

加密方式


前言

在日常的Web项目练习中,我们会发现老师会让我们在打开服务器之后使用 http://localhost/...进行项目效果测试和预览,偶尔会有同学尝试使用 https://localhost/... 进行服务请求,但出现"无法访问"的情况,这是为什么呢?当时也没有学习"《计算机网络》",对此一无所知,只知道https是通信安全的协议;现今,我们将对 http 和 https 进行学习理解。

本栏其他文章:什么是http?


1. HTTP协议存在的问题

  • 使用明文进行通信,内容可能会被窃听,比如抓包。
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装,比如钓鱼网站。
  • 无法证明报文的完整性,报文有可能遭篡改,比如强制在线广告植入。

2. 什么是HTTPS协议?

HTTPS 全称是超文本传输安全协议( Hypertext Transfer Protocol Secure**),是以安全为目标的 HTTP 通信协议。**

  • HTTPS 使用HTTPS 隧道进行通信,让HTTP 先和 SSL(Secure Sockets Layer)通信,由 SSL 负载在服务器与浏览器之间,使用非对称加密算法(RSA)完成一个随机密钥的交换,在随后的数据传输当中,使用该随机密钥进行数据内容的对称式加密(AES)。
  • 通过使用SSL,HTTPS 具有 加密(防窃听)、认证(防伪装)和完整性保护(防篡改)等功能特定。

3. HTTP和HTTPS有哪些区别?

  1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 解决了 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL 安全协议,使得报文能够加密传输。
  2. HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTP 在 TCP 三次握手 之后,还需进行 SSL 的握手过程,才可进行加密报文传输。
  3. HTTP 的端口号是 80 ,HTTPS 的端口号是 443。
  4. HTTPS 协议需要想证书权威机构申请数字证书,来保证服务器的身份是可信的。

4. HTTPS的工作原理

**1.浏览器发起连接请求:**浏览器向服务器发送连接请求,请求建立 HTTPS 连接。

**2.服务器返回数字证书:**服务器收到浏览器的连接请求后,选择浏览器支持的加密和 hash 算法,返回自己的数字证书(公钥、证书颁发机构等信息)给浏览器。

**3.浏览器验证证书(非对称式加密算法 | 公钥加密):**浏览器收到服务器返回的数字证书后,会验证证书的合法性。

注:主要用于安全地传输会话密钥,保证会话密钥只有服务器能够获取,同时也保证了数据传输的机密性。

**4.浏览器生成会话密钥:**如果证书验证通过,浏览器会生成一个随机的会话密钥 X,并使用服务器的公钥进行加密,然后将加密的会话密钥发送给服务器。

**5.服务器解密会话密钥(对称式加密算法):**服务器收到之后,使用私钥解密,得到随机密钥 X ,然后使用随机密钥 X 对网页内容进行加密,返回给浏览器。

注:服务器使用私钥解密浏览器发送的会话密钥之后,浏览器与服务器之间会使用这个随机密钥 X 进行对称式加密通信,对称式加密算法的加密和解密速度更快,适合大量数据的加密传输。

**6.浏览器解密会话密钥:**浏览器使用随机密钥 X 和之前约定的加密算法进行解密,得到最终的网页内容。
HTTPS工作原理

加密方式:

  • 对称式加密(Symmetric-Key Encryption):加密和解密使用同一把密钥的加密算法。
    • 优点:运算速度快。
    • 缺点:无法安全地将密钥传输给通信方。
    • 常见算法:AESDES
  • 非对称式加密(Public-Key Encryption):公开密钥加密算法,加密和解密使用不同的密钥。公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方接受到通信内容后使用私有密钥解密。
    • 优点:可以更安全地将公开密钥传输给通信发送方;
    • 缺点:运算速度慢。
    • 常见算法:RSA
相关推荐
zhu128930355627 分钟前
网络安全的重要性与防护措施
网络·安全·web安全
仙女很美哦30 分钟前
Flutter视频播放、Flutter VideoPlayer 视频播放组件精要
websocket·网络协议·tcp/ip·http·网络安全·https·udp
网络研究院1 小时前
ChatGPT 的新图像生成器非常擅长伪造收据
网络·人工智能·安全·chatgpt·风险·技术·欺诈
路由侠内网穿透1 小时前
本地部署开源流处理框架 Apache Flink 并实现外部访问
大数据·网络协议·tcp/ip·flink·服务发现·apache·consul
Amos_ FAT2 小时前
关于串口协议的一点知识
经验分享·网络协议
小吃饱了2 小时前
TCP可靠性传输
网络·网络协议·tcp/ip
q567315232 小时前
使用puppeteer库编写的爬虫程序
爬虫·python·网络协议·http
写代码的小王吧2 小时前
【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~
java·开发语言·网络·安全·web安全·网络安全·jar
孪生质数-2 小时前
SQL server 2022和SSMS的使用案例1
网络·数据库·后端·科技·架构
IT小馋猫3 小时前
Linux 企业项目服务器组建(附脚本)
linux·服务器·网络