【计算机网络之HTTP篇】HTTPS与HTTP的区别

news2024/11/25 7:08:45

目录

HTTPS产生的原因

HTTPS工作原理

对称加密

非对称加密

引入数字证书

HTTPS完整工作流程

 高频面试题:HTTPS与HTTP的区别


HTTPS产生的原因

  HTTP协议是按照文本的形式来明文传递数据的,因此数据很容易被黑客劫持,发生泄密可能。  HTTPS协议则可以解决HTTP不安全的缺陷,HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层SSL。(可以理解为HTTPS=HTTP+SSL)

HTTPS工作原理

        HTTPS要保证数据的安全传输,就需要对数据进行加密,这样网络上就不在直接传输明文了而是加密过的密文。加密方式整体上可以分为两种:对称加密非对称加密

对称加密

        对称加密使用一个密钥来对数据进行加密,这样可以得到一个密文,于是客户端就可以传输这个密文给服务器,服务器再使用这个密钥来解密密文,于是就可以避免数据被截取了。需要注意的是:客户端和服务器使用同一个密钥来进行加密和解密。 

        引入对称加密之后, 即使数据被截获 , 由于黑客不知道密钥是啥 , 因此就无法进行解密 , 也就不知道请求的真实内容是啥了。
        由于对称加密过程中,客户端和服务器都使用同一个密钥来进行加密和解密,因此在传递数据之前就需要客户端先向服务器传输一个密钥,约定好用同一个密钥来加密和解密。
        密钥的传输也必须加密传输,如果直接把密钥明文传输 , 那么黑客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了。
        此时如果使用对称加密来传输密钥的话,就需要先确定传输这个密钥的密钥,这样就演变成相互“套娃”了,因此便引入了 非对称加密来传输密钥。

非对称加密

        非对称加密需要使用到两个密钥:一个是公钥,一个是私钥。公钥和私钥是配对的,一个公钥只能配对一个私钥。服务器会生成一对公钥和私钥。非对称加密是为了解决对称加密的密钥安全传输,不被黑客截取。

        非对称加密最大的缺点就是运算速度非常慢 ,比对称加密要慢很多。

公钥和私钥可以互相反着用:

  1. 公钥加密,私钥解密
  2. 私钥加密,公钥解密

非对称加密过程:

  • 客户端向服务器发起建立连接请求,服务器会把公钥传输给客户端
  • 客户端使用公钥对密钥进行加密得到密文,把密文传输给服务器
  • 服务器使用私钥对密文进行解密得到密钥,服务器得到这个密钥就可以和客户端进行对称加密传输
  • 由于对称加密的效率比非对称加密高很多, 因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密

 

        非对称加密的目的主要是使用服务器发送过来的公钥对称加密传输的密钥进行加密来传输给服务器,保证客户端和服务器进行对称加密的密钥不被截取。

        那么客户端在使用公钥对密钥进行加密的时候,怎么判断客户端使用的公钥是服务器发来的而不是黑客伪造的?客户端是怎么拿到这个公钥的?

于是就引出了数字证书来验证公钥的合法性

引入数字证书

        1、在使用HTTPS协议前,服务器会先向权威机构申请数字证书,数字证书中包含了权威机构自己独有的私钥1加密的数字签名(系统效验和:验证是否被篡改)和一对新的公钥2、私钥2

        2、当客户端向服务器发送请求数字证书时,服务器会把新的公钥2放入数字证书中一起传输给客户端

        3、客户端拿到数字证书后,会使用权威机构的公钥1(客户端的操作系统中会内置权威机构的公钥1来解密数字签名得到一个校验和num1,另外对证书使用同样的算法来计算得到一个新的校验和num2,对比 num1  num2 是否相等,如果相等, 则说明证书是没有被篡改过的

HTTPS完整工作流程

总结:引入数字证书非对称加密都是围绕这个对称加密的密钥工作的。

  • 引入数字证书是为了让客户端确保拿到服务器的非对称加密的公钥,防止公钥被篡改
  • 客户端拿到非对称加密的公钥是为了确保对称加密的密钥传输给服务器,不被黑客获取

 

 高频面试题:HTTPS与HTTP的区别

1、HTTP协议是超文本传输协议,数据是明文传输,具有安全风险,HTTPS是具有安全性的SSL加密传输协议,对数据进行加密传输

2、HTTPS协议需要向权威机构申请数字证书,保证服务器的身份是可信的

3、HTTP的连接相对简单,只需要经过TCP的三次握手就可以进行数据传输,而HTTPS的连接需要经过TCP的三次握手后,再经过SSL的握手才能进行加密数据传输

4、两者的默认端口不一样,HTTP的默认端口是80,HTTPS的默认端口是443

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

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

相关文章

AlmaLinux 8.8 发布 - RHEL 下游免费发行版(CentOS 稳定版的替代品)

AlmaLinux 8.8 发布 - RHEL 下游免费发行版(CentOS 稳定版的替代品) AlmaLinux OS 是一个开源、社区驱动的项目,旨在提供 CentOS 稳定版的替代品。 请访问原文链接:https://sysin.org/blog/almalinux-8/,查看最新版。…

Linux系统编程——多线程[补充]:懒汉模式自旋锁读者写者问题

0.关注博主有更多知识 操作系统入门知识合集 目录 1.单例设计模式 1.1将线程池设计为懒汉方式实现的单例模式 1.2线程安全版本的懒汉方式 2.STL、智能指针与线程安全 3.自旋锁 4.读者写者问题 1.单例设计模式 在一些软件设计场景当中,要求某些类只能具有一…

五一后“实在高校行”紧锣密鼓走进四所高校,校企合作硕果累累!

近年来,随着人工智能科技的快速发展,越来越多高校加快了与先进企业在培养优秀人才的合作步伐。实在智能一直注重校园生态发展及在人才培养,不断引进数字化人才,做强培训师资;同时积极走出去,在全社会范围内…

2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么?

2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么? 答案2023-05-20: go语言的slice扩容流程 go版本是1.20.4。 扩容流程见源码见runtime/slice.go文件中的growslice 函数。 growslice 函数的大致过程如下: 1.如果元…

Mybatis Plus之DQL(条件查询方式、查询投影、查询条件设定、字段映射与表名映射)

文章目录 1 条件查询1.1 条件查询的类1.2 环境构建1.3 构建条件查询1.4 多条件构建1.5 null判定 2 查询投影2.1 查询指定字段2.2 聚合查询2.3 分组查询 3 查询条件3.1 等值查询3.2 范围查询3.3 模糊查询3.4 排序查询 4 映射匹配兼容性问题1:表字段与编码属性设计不同步问题2:编…

你真的知道怎么使用vs吗?把把手教你实用调试小技巧

实用调试小技巧 1.什么是bug?2.调试是什么?有多重要?3.debug和release的介绍。4.windows环境调试介绍。4.1常见调试快捷键4.2 调试的时候查看程序当前信息4.2.1监视:4.2.2内存4.2.3调用堆栈4.2.4反汇编4.2.5寄存器 5.一些调试的实…

HNU-计算机系统-实验4-ShellLab

ShellLab 计科2102 梅炳寅 202108010206 写在前面 作为一份实验报告,我希望阅读者能够比较好地看到这份报告有价值的部分。私以为更为有价值的部分体现在: 报告中打★的部分,最后的代码中,我在代码中加入了大量的中文注释、函数原型、参数解读、以及个人对代码的推断与理…

网易云音乐开发--音乐播放暂停切换上下首功能实现

音乐播放暂停功能实现 封装一个控制音乐播放/暂停的功能函数 看一下文档,我需要用的api 这个接口好像没有音频的url,查看一下,换个api 这样就能拿到id,并可以播放了 但是音乐并没有播放 我们少了这个 现在可以播放了&#xff…

[CTF/网络安全] 攻防世界 view_source 解题详析

[CTF/网络安全] 攻防世界 view_source 解题详析 查看页面源代码方式归类总结 题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。 查看页面源代码方式归类 单击鼠标右键,点击查看页面源代码: …

Linux 指令(三)+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 涓滴之水终可磨损大石,不是由于它的力量强大,而是由于昼夜不舍的滴坠。今天我们继续学习Linux指令。 话不多说安全带系好,发车啦(建议电脑观看)。 附:红色,部分为重点部分;蓝颜…

由斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名

由 Stanford Blockchain Accelerator、Zebec Protocol、 Nautilus Chain、Rootz Lab 共同主办的黑客松活动,现已接受优秀项目提交参赛申请。 在加密行业发展早期,密码极客们就始终在对区块链世界基础设施,在发展方向的无限可能性进行探索。而…

四、easyUI中的tabs(选项卡)组件

1.tabs(选项卡)组件的概述 选项卡会显示一批面板,但在同一个时间只会显示一个面板。每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他自定义按钮。 2.tabs(选项卡)组件的使用 在项目新…

【C++】——内存管理(new和delete)

文章目录 1. 前言2. C/C内存分布3. C语言动态内存管理方式4. C内存管理方式4.1 内置类型4.2 自定义类型 5. operator new与operator delete函数6. new和delete的实现原理7. 定位new表达式(placement-new)8. 结尾 1. 前言 在学习C语言的时候,我们学习了动态内存管理…

物联网协议之MQTT

MQTT 简介 MQTT 可以简单看做一个网络协议,用于机器对机器的通信(与客户端到服务器的传输有点区别)。智能传感器、可穿戴设备和其他物联网(IoT)设备通常必须通过带宽有限的资源受限网络传输和接收数据。这些物联网设…

更新cuda和 pytorch==1.12.1版本,更新到cuda11.3.1

nvidia-smi 查看gpu支持的最高cuda版本 nvcc -V 查看当前cuda版本 卸载旧版本cuda 除了NVIDIA Geforce、NVIDIA PhysX、NVIDIA图形驱动程序,将电脑中其他NVIDIA开头的全部卸载 安装cuda 下载适合的cuda版本 https://developer.nvidia.com/cuda-toolkit-ar…

基于QT开发的使用OPC_UA与西门子1200,1500系列PLC通信的工业监控Demo

目录 一,总体介绍 二,需要的软件 三,需要的硬件 四,QT程序代码 五,西门子PLC代码 一,总体介绍 先看一下图1-1的QT运行界面图,界面中服务器地址就是OPC_UA服务器地址,整个项目作…

图解LeetCode——19. 删除链表的倒数第 N 个结点

一、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 二、示例 2.1> 示例 1: 【输入】head [1,2,3,4,5], n 2 【输出】[1,2,3,5] 2.2> 示例 2: 【输入】head [1], n 1 【输出】[] 2.3> 示例…

数值计算 - 误差的来源

误差的来源是多方面的,但主要来源为:过失误差,描述误差,观测误差,截断误差和舍入误差。 过失误差 过失误差是由设备故障和人为的错误所产生的误差,在由于每个人都有“权利”利用机器进行数值计算,所以在计算…

#include <archive.h>报错

#include <archive.h>报错 archive配置 Linux环境下&#xff0c;在C项目.cpp文件中存在如下语句&#xff0c;导致无法运行~ #include <archive.h> #include <archive_entry.h>由于C编译器默认不包含archive&#xff0c;所以我们需要自行配置。 Libarchiv…

Java 基础--interview经典(个人认为)题目

1&#xff09;多线程中 synchronized 锁升级的原理是什么&#xff1f; synchronized 锁升级原理&#xff1a;在锁对象的对象头里面有一个 threadid 字段&#xff0c;在第一次访问的时候 threadid 为空&#xff0c;jvm 让其持有偏向锁&#xff0c;并将 threadid 设置为其线程 i…