【计算机网络】应用层——HTTPS协议

news2024/11/16 6:37:29

目录

  • HTTPS协议
  • 加密
    • 对称加密
    • 非对称加密
  • 数据摘要(数据指纹)
  • HTTPS安全问题
    • 对称加密+非对称加密
  • 证书
    • 客户端认证
    • 查看客户端证书
  • 解决数据安全问题(引入证书)

HTTPS协议

HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的情况.

在网络上搜索资料时,会看到有人把HTTPS叫HTTPS协议(全称:Hypertext Transfer Protocol over Secure Socket Layer),这种叫法不能说是错的。但严格来说HTTPS不是一个新的独立协议,他是HTTP协议加上安全协议(SSL/TLS)的统称。

其中SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。
在这里插入图片描述

加密

加密就是把 明文 (要传输的信息) 进行一系列变换,生产 密文。

解密就是把 密⽂再进⾏⼀系列变换,还原成 明⽂.

在这个加密和解密的过程中,往往需要⼀个或者多个中间的数据,辅助进⾏这个过程,这样的数据称为密钥。

对称加密

采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的

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

特点:算法公开、计算量⼩、加密速度快、加密效率⾼


问题:对称加密看上去好像完美地实现了机密性,但其中有一个很大的问题:如何把密钥安全地传递给对方,术语叫“密钥交换”。如何在最开始的时候将密钥传输给服务器,很容易被截获,所以并不安全。
在这里插入图片描述

非对称加密

基于对称加密的问题,就引入了另一种加密机制,即非对称加密。这个加密机制有两个密钥,一个叫“公钥”(public key),一个叫“私钥”(private key)。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。

公钥和私钥有个特别的“单向”性,虽然都可以用来加密解密,但公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。


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

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

问题:非对称加密面临同样的问题,会被中间人截获,换为自己的密钥和公钥。
在这里插入图片描述

数据摘要(数据指纹)

数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。

摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)

摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常⽤来进⾏数据对⽐

应用场景:

1.注册和登录:注册某讯的账户,用户先将username+password传输给server端,server此时需要对该信息进行保存,为了防止监守自盗和被攻击导致用户信息泄露的问题,此时服务器会通过特定的hash函数将信息生成一串固定长度的摘要,将该数据摘要存储到数据库中。当下一次用户登录的时候,只需要将该信息也通过特定的hash函数得到数据摘要,用该摘要和数据库中的信息进行比较即可判断是否登录成功!

2.某盘的数据存储:对于多用户进行网盘存储资源的时候,server端先将要存储的资源通过hash函数生成数据摘要,和数据库中存储的数据摘要进行比较。如果存在,直接创建一个新的映射关系(如:硬连接或者软连接),如果不存在,才对数据进行真正的存储,这样同样的数据在网盘中只需要存储一份即可。这就是所谓的秒存!

HTTPS安全问题

我们通过学习对称加密和非对称加密知道,无论单独使用哪个加密还会存在安全问题。
接下来我们继续探究对称加密和非堆成加密组合使用。

对称加密+非对称加密

在这里插入图片描述

此时数据传输是安全的嘛,答案还是不安全的。
在这里插入图片描述
这种情况下,出现不安全的原因在哪里? 本质上就是客户端获取的服务器的公钥被替换了。
如何解决这一问题,需要引入证书

证书

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

这个 证书 可以理解成是⼀个结构化的字符串, ⾥⾯包含了以下信息:

在这里插入图片描述
需要注意的是:申请证书的时候,需要在特定平台⽣成查,会同时⽣成⼀对⼉密钥对⼉,即公钥和私钥。这对密钥对⼉就是⽤来在⽹络通信中进⾏明⽂加密以及数字签名的。
其中公钥会随着CSR⽂件,⼀起发给CA进⾏权威认证,私钥服务端⾃⼰保留,⽤来后续进⾏通信(其实主要就是⽤来交换对称秘钥)

数据签名

在这里插入图片描述

当服务端申请CA证书的时候,CA机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如下:

CA机构拥有⾮对称加密的私钥A和公钥A’
CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要

然后对数据摘要⽤CA私钥A’加密,得到数字签名S 服务端申请的证书明⽂和数字签名S共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了

证书如何保证安全的?

1.通过某种公开的散列函数将数据进行运算得到一个散列值,如果中间人修改数据内容,会导致最后算出来的结果与签名中通过加密保存的散列值不同,可以发现已经修改数据内容。
2.如果中间人要修改签名,客户端在进行使用CA公钥进行解密时,由于CA的密钥只有CA持有,所以中间人修改的签名不能通过CA的公钥进行解密,此时也会发现已经修改内容。

客户端认证

当客⼾端获取到这个证书之后, 会对证书进⾏校验(防⽌证书是伪造的).

判定证书的有效期是否过期
判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
验证证书是否被篡改:从系统中拿到该证书发布机构的公钥,对签名解密,得到⼀个hash值(称为数据摘要),设为hash1.然后计算整个证书的hash值,设为hash2.对⽐hash1和hash2是否相等.如果相等,则说明证书是没有被篡改过的.

查看客户端证书

在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述

中间⼈没有CA私钥,所以对任何证书都⽆法进⾏合法修改,包括⾃⼰的

解决数据安全问题(引入证书)

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Promise 对象与 Promises/A+ 规范

目录 前言 什么是 Promise 对象? Promises/A 规范是什么? 逻辑 示例 用法 结论 参考资料 前言 在现代JavaScript编程中,Promise对象是一种用于处理异步操作的重要工具。它们被广泛用于处理网络请求、文件读取、定时任务等异步操作。本…

学习笔记---更进一步的双向链表专题~~

目录 1. 双向链表的结构🦊 2. 实现双向链表🐝 2.1 要实现的目标🎯 2.2 创建初始化🦋 2.2.1 List.h 2.2.2 List.c 2.2.3 test.c 2.2.4 代码测试运行 2.3 尾插打印头插🪼 思路分析 2.3.1 List.h 2.3.2 List.…

一张图系列 - “kv cache“

我觉得回答这个问题需要知道3个知识点: 1、multi-head-attention是如何计算的?attention的数学公式? kv cache是如何存储和传递的? 2、kv cache 的原理步骤是什么?为什么降低了消耗? 3、kv cache 代码模…

Matlab神经网络工具箱——一个例子搞定神经网络算法

本文用到的数据来自于matlab神经网络 数据的文件提取码以及链接会放在评论区 分析数据 这里大致是整个数据的样子,下面来分析数据: ①整个数据一共有401个输入,这里体现的也就是有401种吸光度 ②前五十组数据,既有输入也有输出&a…

2023阿里云双十一服务器优惠价格87元/年,你敢信吗?

2023阿里云双十一服务器优惠价格87元/年,你敢信吗?确实是87元一年,轻量应用服务器2核2G3M带宽,不限制月流量,自带50GB系统盘。活动阿里云服务器网:aliyunfuwuqi.com/go/1111 阿里云轻量应用服务器2核2G3M带…

逆向第一课---安装ADB工具,并使用夜神模拟器连接

1、安装ADB 如果安装了Android SDK可以直接去android_sdk/platform-tools/目录下使用ADB命令。 如果没有安装Android SDK,需要先通过下面的地址下载ADB https://adbdownload.com/ 根据自己的系统点击下载,我这里使用Windows系统,所以下载Wi…

电商接口api数据比价接口推荐

当前,受诸多因素的影响,经济下行,在日趋激烈的市场竞争中,很多企业也都面临着越来越大的生存压力,企业的盈利空间也逐渐被压缩。因此,越来越多的企业在控制成本方面更下功夫,这也就对企业采购提…

SiC器件概念

来源:A SiC Trench MOSFET concept offering improved channel mobility and high reliability SiC MOSFET设计挑战 虽然碳化硅的使用由于是一种宽带隙材料而具有许多优点,但与硅也存在一些值得注意的差异,这导致在制造基于4H-SiC多晶型的Si…

ASO优化之如何提高在本地搜索时的可见度

应用本地化是让我们的应用安装量、转化率实现增长的最佳策略之一。通过本地化,可以让我们的应用程序匹配更广泛的受众,甚至可以使其对不同国家/地区的用户更具吸引力。 1、如何使用搜索优化进行本地搜索? 本地化实际上是应用搜索优化的一部分…

公司电脑如何限制安装软件

公司电脑如何限制安装软件 安企神终端管理系统下载使用 在企业环境中,电脑已经成为企业中必不可少的办公工具,确保员工的生产力和公司的信息安全是至关重要的。为了实现这一目标,公司可能会限制员工在某些情况下安装软件或者由管理员来为终…

Linux——文件权限属性和权限管理

文件权限属性和权限管理 本章思维导图: 注:本章思维导图对应的Xmid文件和.png文件都以传到“资源” 文章目录 文件权限属性和权限管理1. sudo提权和sudoers文件1.1 sudo提权和成为root的区别 2. 权限2.1 Linux群体2.1.1 为什么要有所属组2.1.2 修改文件…

拥抱AI-ChatGPT:人类新纪元

最近大模型通用智能应用持续发酵,各大科技公司都陆续推出了基于通用大模型的智能应用产品,典型的如OpenAI的ChatGPT、微软的BingChat、百度的文心一言、360的智脑、阿里的通义千问等。当然最火的要属于ChatGPT了,从去年年底推出到现在已经有很…

模型工具实现数据库批量追加到空的数据库

一. 下载: http://dt1.8tupian.net/2/29913a50b1000.pg3二. 介绍:许多时候我们的作业数据库需要批量追加到标准的汇交数据库,手动一个层一个层的追加比较麻烦,本工具实现将空间图层和属性数据自动追加到标准空库。

【psychopy】【脑与认知科学】认知过程中的面孔识别加工

目录 实验描述 实验思路 python实现 实验描述 现有的文献认为,人们对倒置的面孔、模糊的面孔等可能会出现加工时长增加、准确率下降的问题,现请你设计一个相关实验,判断不同的面孔是否会出现上述现象。请按照认知科学要求,画…

详细介绍如何使用 NeRF 进行 3D 体积渲染-附源码下载

介绍 在此示例中,我们展示了 Ben Mildenhall 等人的研究论文 NeRF:将场景表示为用于视图合成的神经辐射场的最小实现 。等人。作者提出了一种巧妙的方法,通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助您直观地理解这一点,让我们从以下问题开始: 是…

1819_ChibiOS的互斥信号与条件变量

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于会吃信号与条件变量的全局配置提供了4个配置信息,分别是互斥信号的使能、互斥信号的递归支持、条件变量的使能、条件变量的超时使…

jQuery图像查看插件Zoom.js

效果图 图片点击放大,再次点击或者滚动窗口或者按 ESC 键即可恢复原始大小,非常流畅,使用方法也非常简单,引入zoom.js和zoom.css文件之后,对图片添加data-action"zoom"属性即可。 使用方法 1,将…

【网络】详解http协议

目录 一、认识URLurlencode和urldecode 二、HTTP协议HTTP协议格式HTTP的方法HTTP的状态码HTTP常见Header 一、认识URL URL叫做统一资源定位符,也就是我们平时俗称的网址,是因特网的万维网服务程序上用于指定信息位置的表示方法。 urlencode和urldecode …

21.10 Python 使用CRC32校验文件

CRC文件校验是一种用于验证文件完整性的方法,通过计算文件的CRC值并与预先计算的CRC校验值进行比较,来判断文件是否发生变化,此类功能可以用于验证一个目录中是否有文件发生变化,如果发生变化则我们可以将变化打印输出&#xff0c…

初次学习dubbo记录

---------------------------------------10.17---------------------------------------- 集群和分布式概念 集群:很多"人"做的相同的一件事,即使有一个人挂掉了,也不会对系统造成致命影响 分布式:很多"人"…