HTTP和HTTPS的区别和联系

目录

  • 1. 简介
  • 2. TLS 握手过程
  • 3. 常见的加密算法
    • 3.1 对称加密算法
    • 3.2 非对称加密算法

1. 简介

HTTPS在HTTP的基础上引入了一个TLS层,采用密文进行传输,结合对称加密技术和非对称加密技术来实现数据的安全性和完整性。

客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的密钥,再用它加密应用消息。(公钥如何获取:CA证书里)

  • CA证书:保证密钥发售者身份的真实性
  • 非对称加密技术:保证消息不被冒充
  • 对称密钥传送:保证消息不被泄露
  • 为什么要采用非对称加密技术:保证密钥分发给通信双方的安全性

2. TLS 握手过程

  1. 第一次握手:客户端首先会发一个「Client Hello」消息。消息里面有客户端使用的 TLS 版本号、支持的密码套件列表,以及生成的随机数(Client Random)
  2. 第二次握手:当服务端收到客户端的「Client Hello」消息后,会发送 「Server Hello」消息:包含确认 TLS 版本号是否支持,和从密码套件列表中选择一个密码套件,以及生成随机数(Server Random)。然后,服务端为了证明自己的身份,会发送「Server Certificate」给客户端,这个消息里含有数字证书。最后,服务端发了「Server Hello Done」消息,目的是告诉客户端,我已经把该给你的东西都给你了。客户端拿到证书后, 使用CA 公钥确认服务器的数字证书的真实性。
  3. 第三次握手:如果证书没有问题(通过 CA 的公钥解密),客户端会从数字证书中取出服务器的公钥,生成一个新的随机数 (pre-master),用服务器的 RSA 公钥加密该随机数。向服务器发送如下信息:随机数、加密算法改变通知、客户端握手结束通知。
  4. 第四次握手:服务端收到后,用 RSA 私钥解密,得到客户端发来的随机数。双方根据已经得到的三个随机数,生成会话密钥(Master Secret),它是对称密钥,用于对后续的 HTTP 请求/响应的数据加解密。然后,向客户端发送最后的信息:加密通信算法改变通知、服务器握手结束通知,表示服务器的握手阶段已经结束。

3. 常见的加密算法

3.1 对称加密算法

在对称加密算法中,加密和解密使用的是同一个密钥

AES (Advanced Encryption Standard):
AES是目前最广泛使用的对称加密标准之一,提供了128、192和256位的密钥长度,因其高度的安全性和效率,在许多安全协议和系统中被采用。

DES (Data Encryption Standard):
DES是较早的加密标准,使用56位密钥,因其密钥长度较短,已被认为不够安全,容易受到暴力破解攻击,已逐渐被AES所取代。
非对称加密算法

3.2 非对称加密算法

使用一对密钥,一个公钥用于加密,一个私钥用于解密

RSA (Rivest-Shamir-Adleman):
RSA是最早和最著名的非对称加密算法之一,广泛用于数据传输和数字签名。RSA的安全性基于大数分解的难题。

ECC (Elliptic Curve Cryptography):
ECC是基于椭圆曲线数学的一种加密技术,相比于RSA,ECC可以在较短的密钥长度下提供相同或更高的安全性,在移动设备和IoT设备中特别受欢迎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让 计算机 将 数学 公式 表达式 的计算过程绘制出来 【mathematical-expression(MAE)】

目录 文章目录 目录介绍开始实战引入数学表达式计算库引入流程图代码生成库开始进行生成 介绍 大家好 今天我们来分享一个新知识,将数学表达式的整个计算过程,以及计算繁多结果在 Java 中绘制出来,计算机中的数学表达式计算的功能很常见了&a…

react 对输入做出反应与状态

React 提供了一种操作 UI 的声明性方式。您无需直接操作 UI 的各个部分,而是描述组件可能处于的不同状态,并在它们之间切换以响应用户输入。 声明式 UI 与命令式 UI 的比较 在设计 UI 交互时,可能会考虑 UI 如何响应用户操作而更改。考虑一…

[C语言]总览

目录 1. 框架、默认数据类型 2. 分支结构 (1). if ... else ... (2). switch ... case ... 3. 循环结构 (1). while (2). for (3). do ... while 4. 函…

区块链的跨链交互:从学校间交流看跨链技术

区块链是一种去中心化的分布式账本技术,它通过加密学和共识机制来确保数据的安全性和不可篡改性。每个区块链就像一所独立的学校,有自己的制度、学生和重点专业。它们各自运行,有时在同一领域展开不同的活动。随着区块链技术的不断发展&#…

【组合博弈】Outcome Classes

Outcome Classes 一个游戏 G G G的outcome函数代表这个游戏最终的结果,就是说这个游戏最后的赢家是谁。outcome函数是一个从游戏 G G G映射到四个结果的函数,四个结果分别是 L , R , P , N L, R, P, N L,R,P,N。意义如下表: ClassNameDefin…

学习笔记:Adaptive Platform(AP)适配到RTOS

一、背景 1、AP版本 Adaptive Platform AUTOSAR R20-11版本标准支持C14。CM模块支持DDS、SOME/IP协议 2、RTOS RTOS-A核,当前完全支持POSIX PSE51、POSIX PSE52接口,POSIX PSE53部分支持,POSIX PSE54基本不支持。详细接口参考&#xff1a…

第十四天:PHP 开发,输入输出类留言板访问 IPUA 头来源

1.PHP-全局变量$_SERVER 2.MYSQL-插入语法INSERT 3.输入输出-XSS&反射&存储 4.安全问题-XSS跨站&CSRF等 1.输入输出类安全问题 反射性xss 这个先准备一个数据,随便弄一个表名字,在随便弄一点数据存入即可 作为连接的数据库&#xff0c…

排序-归并排序(merge sort)

归并排序(Merge Sort)是一种分而治之的算法,它将原始数组分成越来越小的子数组,直到每个子数组只有一个元素,然后将这些子数组两两合并,过程中保持排序状态,最终合并成一个完全有序的数组。归并…

《一》Word文字编辑软件---架构设计分析

1,简单介绍 今天,我们来模拟offic软件中的word文档,运行如图: 运行程序后会出现主界面,顶端的菜单栏包括“文件”“编辑”“格式”“窗口”和“帮助五个主菜单。 菜单栏下面是工具栏,包含了系统常用的功能按…

如何判断海外住宅ip的好坏?

在海外IP代理中,住宅IP属于相对较好的资源,无论是用于工作、学习、还是娱乐,都能得到较好的使用效果。作为用户,该如何判断海外住宅IP的好坏呢? 稳定性与可靠性:海外住宅IP相比动态IP地址,通常具…

Java全局异常处理,@ControllerAdvice异常拦截原理解析【简单易懂】

https://www.bilibili.com/video/BV1sS411c7Mo 文章目录 一、全局异常处理器的类型1-1、实现方式一1-2、实现方式二 二、全局异常拦截点2-1、入口2-2、全局异常拦截器是如何注入到 DispatcherServlet 的 三、ControllerAdvice 如何解析、执行3-1、解析3-2、执行 四、其它4-1、设…

电脑提示找不到ffmpeg.dll无法继续执行代码怎么办?

电脑提示找不到找不到ffmpeg.dll无法继续执行代码怎么办,有什么好的解决办法,出现这样的弹出就会导致软件无法打开或者是异常关闭,找不到dll文件,是一个非常重要的电脑使用问题,会给使用者带来许多的麻烦。那么找不到d…

LeetCode746:使用最小花费爬楼梯

题目描述 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 代码 …

MongoDB和AI 赋能行业应用:制造业和汽车行业

欢迎阅读“MongoDB和AI 赋能行业应用”系列的第一篇。 本系列重点介绍AI应用于不同行业的关键用例,涵盖制造业和汽车行业、金融服务、零售、电信和媒体、保险以及医疗保健行业。 随着人工智能(AI)在制造业和汽车行业的集成,传统…

CDN的工作原理及流程

CDN(Content Delivery Network,内容分发网络)是一种构建在数据网络上的分布式内容分发网络。 CDN利用全局负载均衡技术,将用户的访问请求指向离用户最近且工作正常的流媒体服务器上,由流媒体服务器直接响应用户的请求…

Tableau学习2.0版——复习

官网下载链接:https://www.tableau.com/zh-cn/support/releases 学生账户申请链接:https://www.tableau.com/zh-cn/academic/students。直接去学信网下载学籍在线验证作为申请证明。 目录 1、可视化原理 2、基础图表制作 2.1 对比分析(比…

@游戏行业er!MongoDB广州线下沙龙邀您报名!

随着游戏和应用程序的发展,数据变得越来越重要。在为您的下一个游戏选择数据库时,数据库管理者常常会面对灵活性、可扩展性、可靠性、运营效率等问题或挑战。 MongoDB在游戏开发领域有着广泛的应用,灵活数据模型可以存储和处理各种类型的数据…

JPA ENTITY EXTEND

1. Overview Relational databases don’t have a straightforward way to map class hierarchies onto database tables. To address this, the JPA specification provides several strategies: MappedSuperclass – the parent classes, can’t be entitiesSingle Table …

webpack处理js和css模块化导入导出示例:

webpack默认并不能处理js模块化的导入和导出,依赖于ts-loader和babel-loader webpack.config,js module.exports {entry: ./src/index.ts,output: {filename: main.js,},mode: development, // 或者 productionmodule: {rules: [{test: /\.ts/,exclude: /(node_modules)/,use:…

二维平移矩阵 (2D translate matrix)

2D translate matrix 推荐阅读正文推荐阅读 矢量旋转矩阵 正文 之前我们介绍了矢量旋转矩阵的形式,这里我们来介绍一下平移矩阵的形式。比如,我们我们有一个点,其坐标为 (0,1)。那么我们如何操作才能够将这个点沿着 x 轴正方向平移 1 个单位长度呢? 这里我们以向右移动…