什么是https(详细),http和https

article/2025/9/28 2:19:31

文章目录

    • 1:什么是https
    • 2:使用http协议的问题
        • 2.1:http是明文传输。
        • 2.2:http不会验证对方身份。
        • 2.3:http无法验证报文的完整性。
    • 3:密钥的问题
    • 4:SSL 四次握手
        • 4.1:第一次握手
        • 4.2:第二次握手
        • 4.3:第三次握手
        • 4.4:第四次握手
    • 5:SSL 的作用
        • 5.1:通过将通信加密解决http明文传输问题
        • 5.2:验证通信方的身份
        • 5.3:保证报文完整性,防止被篡改
        • 5.4:确保服务端公钥安全到达客户端。
    • 6:SSL 速度慢

1:什么是https

https并不是应用层的一种新协议。

https协议是指:http协议+加密处理+身份认证+完整性保护(http协议+SSL协议/TLS协议)

通常,http协议会直接和TCP通信,而使用https,则变成了http先和SSL通信,再由SSL和TCP通信。一般,将SSL统称SSL+TLS。

在这里插入图片描述

2:使用http协议的问题

  1. http协议使用明文传输数据,内容有可能会被窃听。
  2. http协议不会验证对方身份,可能会遭遇伪装。
  3. 无法验证报文的完整性,可能会遭遇篡改。

在这里插入图片描述

2.1:http是明文传输。

网络环境是错综复杂的,你的信息要经过许多层才能到达目的地,比如光缆,各级路由,代理服务器等,任何一个步骤被劫持都会导致你的信息内容暴露。

你总不想把你的隐私内容数据暴露在公众眼中吧。

2.2:http不会验证对方身份。

在这里插入图片描述

由于http不会验证对方身份,攻击者可以伪造你的身份与服务端通信。造成用户的损失。

除此之外,攻击者也可以根据此特性,不断对服务器发起请求占用服务器资源,造成 DOS 攻击。(Denial of Service,拒绝服务攻击)

2.3:http无法验证报文的完整性。

在这里插入图片描述
由于http无法验证报文的完整性,可能导致我们的数据被篡改。(中间人攻击)

3:密钥的问题

流行的加密方式:

  • 共享密钥(对称密钥:公钥+公钥)
  • 公开密钥(非对称密钥:私钥+公钥)

共享密钥:服务端将公钥传给客户端,客户端使用该公钥加密,服务端使用该公钥解密。

公开密钥:将公钥传给客户端,客户端接收到公钥,使用该公钥对数据加密,服务端使用私钥解密。

公开密钥的公钥谁都能获取,但由公钥加密的内容,只有服务端的私钥可以解密。

遗憾的是无论共享密钥还是公开密钥,都存在相应的问题。

共享密钥 存在怎么把密钥安全发送给对方的窘境。因为http协议是明文传输的,密钥由服务端发送给客户端的时候,存在密钥暴露的风险,无法判断从而导致加密失去意义。

公开密钥 无法判断公开的公钥本身是否是货真价实公钥。因为公钥在传输过程中有可能会被篡改。

https使用混合加密方式,因为共享密钥比公开密钥效率要快。在保证公钥能安全到达对方的时候,使用共享密钥,否则使用公开密钥。

4:SSL 四次握手

在这里插入图片描述

4.1:第一次握手

  1. 发送客户端支持的SSL版本及所使用的加密组件(加密算法等信息)。

4.2:第二次握手

  1. 发送服务端支持的SSL版本及所使用的加密组件(根据客户端发送过来的加密组件筛选得出)
  2. 发送公开密钥证书。
  3. 告知客户端已发送完毕。

4.3:第三次握手

  1. 通过服务端返回的公开密钥计算得出 PreMasterSecret(包含RSA加密算法,DH密钥交换算法等) 的随机密码串。
  2. 提示服务端接下来的通信使用 PreMasterSecret 密钥加密。
  3. 告知服务端发送完毕,接下来,根据服务端的回复来判断服务端是否可以正常解密。

4.4:第四次握手

  1. 告知客户端是否可以解密 PreMasterSecret 密钥加密的内容。
  2. 结束握手,SSL连接建立完毕。

接下来,通信的内容将会收到SSL的保护。

我们统称的SSL包含SSL协议与TLS协议。
SSL最初由网景通信公司倡导,开发了SSL3.0之前的版本,之后主导权交给IETF的手中。
后来,IETF在SSL3.0版本的基础上制定了TLS协议。所以我们通常统一称之为SSL。

5:SSL 的作用

5.1:通过将通信加密解决http明文传输问题

注意:这里的加密指的是将报文主体(内容)加密,报文首部(通用首部,自定义首部,请求行等)并不会加密。

5.2:验证通信方的身份

通过验证对方证书来判断对方身份。
证书是由值得信赖的第三方机构颁发。
因此要产生一定额外的费用交给颁发证书的第三方机构。

5.3:保证报文完整性,防止被篡改

通过加密及身份验证。

5.4:确保服务端公钥安全到达客户端。

首先,我们需要向第三方CA机构申请一张证书。

在这里插入图片描述
证书中包含了我们的名称,公钥等信息。

此外,浏览器或操作系统会内置一些可靠的第三方机构的公钥。

在这里插入图片描述
CA机构使用自己的私钥(不公开)对证书数据进行加密,生成签名:abcdefg

在这里插入图片描述

浏览器使用内置的公钥解密证书的签名,如果解密出来的信息与证书信息明文相同,则证明证书没有被篡改。

在这里插入图片描述
需要注意的是,CA机构生成的证书签名,是根据机构自己私钥生成的,在没有使用正确的私钥生成的签名,就会出现浏览器公钥解密签名解析出来的明文与实际明文不同的问题,然后浏览器就可以提醒用户。

可以看出,浏览器厂商的角色也很重要,前提也需要你信任浏览器厂商。

在这里插入图片描述

6:SSL 速度慢

SSL 虽然能保证通信的安全,但对服务器的内存和流量的消耗都会增大。

对于非敏感的信息,我们可以依旧使用 http 协议。

涉及个人信息等隐私以及重要数据的时候可以选择 https。

SSL 不仅可以用于http协议,其他应用层像 SMTP 和 Telnet 等协议均可配合 SSL协议使用。


http://chatgpt.dhexx.cn/article/kqV3gwd9.shtml

相关文章

[HTTP] HTTP是什么

HTTP是什么 HTTP是什么 HTTP全称为HyperText Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的一种网络协议。 HTTP协议是在Web上进行数据交换的基础,是一种“客户端–服务器端”协议。也就是说,请求通常是由像浏览器这样…

HTTP 请求是什么?

文章目录 HTTP请求一,请求行二,请求头三,空行四,请求体五,HTTP请求示例 HTTP请求 请求是由客户端向服务器发送的,一般可以分为请求行、请求头、空行和请求体四个部分,如下图所示: …

HTTP 与 HTTPS 的理解

区别:HTTP 是明文传输的,容易泄漏信息,所以大多数应用都会升级为 HTTPS HTTP 底层是用 TCP 传输的,HTTPS 就是在 TCP 和 HTTP 之间加了一层加密和认证的协议,这一层叫做 SSL/TLS。 为什么叫这个名字呢? 因…

什么是HTTP协议、与HTTPS的区别?

一.HTTP协议的定义: http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。…

HTTP和HTTPS

1. 前言 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTT…

HTTP到底是什么?

HTTP简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,基于 TCP/IP 通信协议来传递数据。 HTTP原理…

HTTP是什么

HTTP是什么 ​ HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的一种网络协议。 ​ HTTP协议是在Web上进行数据交换的基础,是一种“客户端–服务器端”协议。也就是说,请求通常是由像浏览…

HTTP协议的详解(简单易懂)

HTTP是什么 一、HTTP是什么 HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的—种网络协议。**HTTP协议是在Web上进行数据交换的基础,是一种“客户端-服务器端”协议。**也就是说,请求通…

手机销售系统的设计和实现

技术:Java、JSP等摘要:手机销售系统作为手机信息管理系统的一个分支,已逐渐成为信息化建设的重要组成部分,提供了一个功能强大,使用成本低廉,操作简捷的实时销售管理系统。本文通过手机销售系统的建设以实现…

jsp课程设计:“智多星”智能手机销售网

系统后台开发 一、主页 indexx.jsp <%@ page contentType="text/html;charset=GB2312" %> <HTML> <HEAD> <!--<%@ include file="head.txt" %>--><link rel="StyleSheet" href="dtree.css" ty…

2023年1月手机热门品牌型号排行榜(手机行业趋势分析)

近期苹果降价引起人们的关注&#xff0c;并且优惠较大&#xff0c;iPhone 14 Pro系列在苹果官方授权渠道均降价&#xff0c;线下授权门店普遍降价700元左右。iPhone Pro与Pro Max作为苹果的旗舰产品&#xff0c;通常被认为是更为保值的机型&#xff0c;一般来说&#xff0c;不会…

基于JSP+MySQL的手机在线销售平设计与实现

目 录 摘 要 I Abstract II 1 引言 1 2 需求分析 2 2.1 需求概述 2 2.2 需求规格 4 2.3 功能详细需求描述 6 2.4 界面需求 7 2.5非功能性需求 8 3 平台设计 10 3.1 阐述 10 3.2 关键技术和算法 11 3.3 平台架构 12 3.4 平台类图 13 3.5 平台流程图 14 3.6 数据结构设计 16 3.7 …

Web开发——手机销售网

手机销售网 功能包括用户注册、登录、浏览手机、查询手机、查看购物车、查看订单、退出、返回主页这8个功能,添加了后台管理功能。 一、简单介绍前台功能: 用户注册: 注册成功: 用户登录: 登录成功: 浏览手机: 提交: 查看细节: 放入购物车: 查看购物…

手机销售系统设计与实现

其他项目&#xff0c;点击作者主页 目录 1 系统简介 2 系统相关技术 2.1Java简介 2.2 JavaScript简介 2.3 MySQL简介 2.4 Spring Boot简介 3 需求分析 3.1需求概述 3.2可行性分析 3.2.1经济可行性 3.2.2 技术可行性 3.2.3社会可行性 3.3系统功能分析 3.3.1登…

智能手机销售网后台管理系统手机销售网程序设计

智能手机销售网后台管理系统手机销售网程序设计 信管117136钟晓威 数据库设计功能实现后台设计dtree实现树形菜单数据库设计 数据库连接try { String uri= "jdbc:mysql://127.0.0.1/mobileshop"; String user="root"; String password=""; con…

手机销售网后台设计

《JSP程序设计》手机销售网后台设计 学号&#xff1a;201711671215 本次实验设计以《JSP程序设计》课本第十章的例子项目为基础进行设计添加后台功能&#xff0c;后台页面分成左右两个框&#xff0c;左边显示一个树形菜单&#xff0c;右边根据菜单选择显示相应的交互界面。以…

手机销售网jsp程序设计

一、系统主要模块 二、前端 首页&#xff1a; 注册&#xff1a; 登录&#xff1a; 浏览手机&#xff1a; 查询手机&#xff1a; 查看购物车&#xff1a; 查看订单&#xff1a; 后台管理&#xff1a; 三、后端&#xff08;后台管理&#xff09; 在后台管理当中&#xff0c;主要…

2022年度手机行业排行榜(年度手机行业分析)

如今&#xff0c;随着手机普及率的不断增长&#xff0c;当前手机市场在逐渐饱和。在这一的态势下&#xff0c;手机行业中细分市场成为发展的必然趋势&#xff0c;随着市场细分和目标人群锁定的不断明确&#xff0c;手机市场中中小品牌手机的生存空间在逐渐被挤压&#xff0c;手…

手机销售平台

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

“智多星”智能手机销售网

信管1172谢胜祥 该销售网的全部代码文件及用到的图片均在如下百度网盘内 链接&#xff1a;https://pan.baidu.com/s/14KRdjH7Hk_rX2njRT6OB1w 提取码&#xff1a;8oda 由于以上链接有所有代码&#xff0c;故接下来的报告内容只出现少部分代码&#xff0c;较多的是…