计算机网络(6) --- https协议

计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm=1001.2014.3001.5501

目录

1.HTTPS的出现

1.HTTPS协议介绍

2.补充概念

1.加密

1.解释

2.原因

3.加密方式

对称加密

非对称密钥

2.数据摘要和数字签名

数据摘要

数字签名

3.加密方案

1.只使用对称密钥加密

2.只使用非对称密钥加密

只用一对密钥

用两对密钥

3.对称密钥加密和非对称密钥加密组合

4.中间人攻击

3.证书

1.证书介绍

2.理解数据签名

3.检查证书

4.解决安全问题

证书+对称加密+非对称加密


1.HTTPS的出现

http是明文发送的,也就是说其安全性难以保证。

1.HTTPS协议介绍

1.HTTPS也是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层ssl/tls.
2.HTTP协议内容都是按照⽂本的⽅式明⽂传输的。这就导致在传输过程中出现⼀些被篡改的情况,其端口号为443。

2.补充概念

1.加密

1.解释

1.加密就是把明⽂(要传输的信息)进⾏⼀系列变换,⽣成密⽂.
2.解密就是把密⽂再进⾏⼀系列变换,还原成明⽂
3.在这个加密和解密的过程中,往往需要⼀个或者多个中间的数据,辅助进⾏这个过程,这样的数据称为密钥
4.发送数据前要加密,这样网络上传输的都是密文,最终到达目的主机被解密就得到原始数据了

2.原因

因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双⽅察觉,这就是中间⼈攻击,所以我们才需要对信息进⾏加密。

3.加密方式

对称加密

1.加密和解密使用的是同一个密钥。

2.算法公开、计算量⼩、加密速度快、加密效率⾼

3.常⻅对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等

非对称密钥

1.需要两个密钥来进⾏加密和解密。这两个密钥是公开密钥(publickey,简称公钥)和私有密钥(privatekey,简称私钥)。

2.算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快

3.常⻅⾮对称加密算法(了解):RSA,DSA,ECDSA

2.数据摘要和数字签名

数据摘要

1.数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改,唯一性非常强。
2.摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)
3.摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常⽤来进⾏数据对⽐

数字签名

摘要经过加密,就得到数字签名

3.加密方案

1.只使用对称密钥加密

即客户端和服务端之间只有一个密钥进行加密和解密。当浏览器访问服务端时,服务端将密钥发送给客户端,客户端就拥有了解密的能力。

但是,这样的设置是无法满足安全要求的,因为中间人劫持能直接连接两边,服务端将密钥给了中间人,中间人再给客户端,那么客户端的安全就不能保证了。

2.只使用非对称密钥加密

只用一对密钥

服务端有公钥和私钥。当浏览器请求时,服务端发送给客户端公钥,那么此时服务器将信息发送给客户端就用私钥进行加密,即保证了客户端向服务端发送的安全性;但是我们无法保证服务端发给客户端的安全性,因为每一个客户端的公钥完全一致,那么劫持服务端发给客户端的信息,中间人也能解密。

用两对密钥

服务端和客户端都有私钥和公钥。连接时,客户端发送公钥给服务端,服务端也将公钥给服务器。这样两边的数据都能被保护起来了。客户端发信息先用服务端的公钥解密再发送;服务端发送思路同理。

缺点:1.发送速度慢 2.安全问题依然无法解决

3.对称密钥加密和非对称密钥加密组合

服务端有一对密钥,客户端只有公钥。客户端发送请求,服务端发送公钥给客户端。客户端形成对称密钥,客户端拿着服务端发来的公钥加密密钥,这样到服务端能得到加密后的对称密钥。但是,安全问题依然无法解决

4.中间人攻击

只要当链接未完成建立,中间人在开始就已经进行攻击。此时对于上面的方法依然存在安全问题。中间人在中间生成两个密钥针对服务端和客户端,这样客户端的所有请求其实都能被中间人轻而易举的获取。由于它有两边的密钥,那么破解也十分容易。

其问题的最初问题其实是:服务端发送密文的公钥时,中间人有可能获取并且篡改,但是客户端无法辨别得到的公钥的真假。

3.证书

1.证书介绍

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性

1.企业将申请认证的资料提交给CA机构。信息包括:公钥和私钥,域名,申请者等。

2.审核后,将证书发送给企业。证书的信息时明文的。

3.最后,就是每次客户端访问服务端时,服务端都会发证书给客户端,客户端确认无误再进行连接。

2.理解数据签名

1.企业发送给CA机构的证书,经过哈希得到数据摘要,数据摘要又通过CA提供的私钥进行加密变成数据签名。数据签名和证书合并就是所谓的带签名的证书。

2.数据签名是为了防篡改

3.检查证书

 

 将带签名的证书分离出数据签名和证书。签名可以通过公钥得到数据摘要。证书也可以通过哈希得到数据摘要。这两份数据摘要一致则说明安全。

因为CA的私钥只有CA有,那么CA形成的数据摘要只有CA机构可以判断

4.解决安全问题

1.客户端请求服务端,服务端将证书发给客户端。

2.证书中有服务端的公钥。为了保证公钥的正确性,客户端会分离出证书和数据签名,证书直接哈希得到数据摘要,CA在浏览器中加入了公钥,该公钥用于数据签名,数据签名解码得到数据摘要,要知道CA的私钥只有CA有,也就意味着数据签名转换的数据摘要是绝对正确的,两个数据摘要一对比就能知道是否有中间人攻击了

证书+对称加密+非对称加密

1.首先客户端发送请求,服务器发送证书,客户端检查证书。此时客户端就得到了服务器的公钥

2.客户端生成了对称加密密钥,通过服务器的公钥加密给服务器。服务器的私钥只有服务器拥有,那么也就只有服务器能够解密出对称加密的密钥。最终得到了安全的要求

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

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

相关文章

【Linux】网络基础1

文章目录 网络基础11. 计算机网络背景1.1 网络发展 2. 认识协议2.1 网络协议2.2 OSI七层模型2.3 TCP/IP五层(或四层)模型 3. 网络传输基本流程3. 1 数据报封装和分用 4. 网络中的地址管理4.1 认识IP地址 5. 认识MAC地址 网络基础1 1. 计算机网络背景 1…

Flink-串讲面试题

1. 概念 有状态的流式计算框架 可以处理源源不断的实时数据,数据以event为单位,就是一条数据。 2. 开发流程 先获取执行环境env,然后添加source数据源,转换成datastream,然后使用各种算子进行计算,使用s…

数据结构 | 树的定义及实现

目录 一、树的术语及定义 二、树的实现 2.1 列表之列表 2.2 节点与引用 一、树的术语及定义 节点: 节点是树的基础部分。它可以有自己的名字,我们称作“键”。节点也可以带有附加信息,我们称作“有效载荷”。有效载荷信息对于很多树算法…

【学习FreeRTOS】第5章——FreeRTOS任务挂起与恢复

1.任务的挂起与恢复的API函数 vTaskSuspend() ——挂起任务(类似暂停,可恢复,但删除任务,无法恢复)vTaskResume() ——恢复被挂起的任务xTaskResumeFromISR()—— 在中断中恢复被挂起的任务 1.1.任务挂起函数vTaskSu…

leetcode19. 删除链表的倒数第 N 个结点

题目:leetcode19. 删除链表的倒数第 N 个结点 描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 思路: 让前面的节点比后面的节点先走n1步,因为从链表的尾节点的下一个节点开始&…

【BASH】回顾与知识点梳理(二十二)

【BASH】回顾与知识点梳理 二十二 二十二. Linux 账号管理22.1 Linux 的账号与群组使用者标识符: UID 与 GID使用者账号/etc/passwd 文件结构/etc/shadow 文件结构 关于群组: 有效与初始群组、groups, newgrp/etc/group 文件结构有效群组(effective grou…

传值与传址问题

传值与传址实例 2023年上半年软考真题: 22、设函数foo和hoo的定义如下图所示,在函数foo中调用函数hoo,hoo的第一个参数采用传引用方式(call by reference),第二个参数传值方式(call by value),那么函数foo中的print(a…

go错误集(持续更新)

1.提示以下报错 Build Error: go build -o c:\Users\Administrator\Desktop__debug_bin2343731882.exe -gcflags all-N -l . go: go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决办法: go …

Elasticsearch 与 OpenSearch:揭开性能差距

作者:George Kobar, Ugo Sangiorgi 对于任何依赖快速、准确搜索数据的组织来说,强大、快速且高效的搜索引擎是至关重要的元素。 对于开发人员和架构师来说,选择正确的搜索平台可以极大地影响你的组织提供快速且相关结果的能力。 在我们全面的…

opencv实战项目 实现手势跟踪并返回位置信息(封装调用)

OpenCV 是一个基于 Apache2.0 许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 需要提前准备opencv 和 mediapipe库 pip --default-timeout5000 install -i https://pypi.tuna.tsi…

拂袖一挥,zipfile秒列zip包内容

使用wxpython列出文件夹中的zip文件及内容 最近在做一个文件管理的小工具,需要列出选择的文件夹下的所有zip压缩文件,并在点击某个zip文件时能够显示其中的内容。为此我使用了wxpython来实现这个功能。 1. 导入需要的模块 首先导入程序需要的模块: import wx import os imp…

设计模式之工厂模式

简单工厂 由一个工厂生产多个产品。 一般工厂 每个产品都有一个单独的工厂专门生产。 抽象工厂 不同工厂生产不同种类的产品,每个工厂生产的同类产品又可以再次分类。比如一个鼠标工厂和一个键盘工厂,他们可以为不同的品牌生产鼠标和键盘。

CTF流量题解http1.pcapng

使用Wireshark工具打开流量文件http1.pcapng,如下图所示。 在过滤检索栏输入http,wireshark自动进行过滤。 选中其中一条记录后,wireshark 下方显示若干信息。 Frame 81: 925 bytes on wire (7400 bits), 925 bytes captured (7400 bits) …

从数据仓库到数据结构:数据架构的演变之路

在上个世纪,从电子商务巨头到医疗服务机构和政府部门,数据已成为每家组织的生命线。有效地收集和管理这些数据可以为组织提供宝贵的洞察力,以帮助决策,然而这是一项艰巨的任务。 尽管数据很重要,但CIOinsight声称&…

DL_20无线串口模块

今日介绍一块最近入手的无线串口模块,40r左右,精简好用,虽然感觉配置波特率啥的并不智能化,但250米的通信距离还是很顶的!它的升级版甚至有1000米的通信距离(空旷地带) 这篇文章不多讲其余话&am…

【C++】开源:abseil-cpp基础组件库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍abseil-cpp基础组件库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…

什么,你说你不会通过jdbc一次性创建10个数据库???

小朋友你是否有很多问号???????????? 1、在资源文件中建一个文件,填入连接数据库的基本信息。 2、通过反射拿到资源文件。…

数据库新闻速递 -- POSTGRESQL 正在蚕食数据库市场 (翻译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群&#xff…

机器学习笔记 - 使用 YOLOv5、O​​penCV、Python 和 C++ 检测物体

一、YOLO v5简述 YOLO v5虽然已经不是最先进的对象检测器,但是YOLOv5 使用了一个简单的卷积神经网络 CNN架构(相对YOLO v8来讲,不过v8精度是更高了一些),更易理解。这里主要介绍如何轻松使用 YOLO v5来识别图像中的对象。将使用 OpenCV、Python 和 C++ 来加载和调用我们的…

K8S系列文章之 一键部署K8S环境

部署的原理是基于自动化部署工具 Ansible 实现的,需要提前安装Ansible 并配置下主机节点环境 1. 安装 Ansible 首先ansible基于python2.X 环境,默认centos都已经安装好了python2环境 // 最好更新下库 // yum update yum install -y epel-release yum i…