【计算机网络】HTTPS协议的加密流程

news2024/12/25 9:29:04

文章目录

  • HTTPS简介
  • 关于加密过程中的名词
  • SSL中的加密操作
    • 对称加密
    • 非对称加密
    • 证书
  • HTTPS执行流程总结

HTTPS简介

HTTPS协议也是应用层的协议,它是在HTTP协议的基础上引入了加密层,称为SSL(旧的叫法)或TLS(新的叫法)

为什么需要加密呢?

HTTP协议是以明文方式传输的,在传输数据的过程中,数据有可能被篡改,如我们在下载软件的时候,下载的软件有时候不是我们预期的软件,这就是臭名昭著的运营商劫持

数据在进行网络传输的过程中,会经过路由器,交换机(运营商的网络设备)等,那么运营商的设备就会解析出你传输的数据然后进行篡改,除了运营商,其他黑客也可以用类似手段进行窃取用户信息或篡改内容,所以在互联网上,明文传输比较危险的,所以HTTPS协议就在HTTP协议的基础上进行加密来保证用户的信息安全

关于加密过程中的名词

  • 明文就是传输的原始数据
  • 密文就是经过加密后的数据,别人看到了也看不出啥结果
  • 加密就是把明文经过一系列转换变成密文
  • 解密就是把密文经过一些列转换变成明文
  • 加密和解密过程需要一个辅助数据,该数据称为密钥

SSL中的加密操作

对称加密

对称加密就是客户端和服务端持有一个相同的密钥,通过该密钥可以将明文加密成密文,也可以将密文解密为明文

一个服务端是为多个客户端服务的,如果所有的客户端的密钥都相同,那么黑客也就很容易拿到这个密钥(通过构造一个客户端就可以拿到),所以所有客户端都必须是不同的密钥,既然需要不同的密钥,那就要让服务端记录不同客户端对应的密钥而且客户端和服务端可以传递这个密钥

但是如果把密钥明文传输,那么黑客也就能拿到密钥了,那加密等于加了个寂寞,如:

在这里插入图片描述
所以密钥也要进行密文传输,如果对密钥进行对称加密(这不就开始套娃了),此时就需要引入非对称加密

非对称加密

非对称加密需要用到两个密钥,一个是公钥,一个是私钥,公钥和私钥是配对的,此时就可以使用公钥加密,私钥解密(或者反过来)

服务端持有私钥,将公钥发送给客户端,客户端生成对称加密的密钥,使用公钥对这个密钥进行加密,黑客拿到了这个密文,由于没有私钥是不能进行解密的,也就不知道对称密钥是啥,也就不能获取到明文数据了,服务器通过私钥加密获取到客户端发送的对称密钥,通过这个密钥可以对返回客户端的响应数据加密,后续客户端和服务端的通信只需用对称加密即可,因为此时的密钥只有客户端和服务器知道,其他的网络设备不知道,截获数据也没有意义

那为啥不直接使用非对称加密,还需要用对称加密干啥?

因为非对称加密的开销远大于对称加密的开销,非对称加密只在传输密钥的时候使用,当双方都知道密钥是啥了,使用对称加密即可,没必要使用非对称加密浪费更大的开销

上述过程还存在一个问题,中间人攻击

在这里插入图片描述
为了解决上述问题,需要引入证书

证书

为了解决上述“中间人攻击”问题,引入了第三方公信机构来证明这个公钥是可信的,客户端自身包含了一些公信机构信息(内置在操作系统中)

证书就包含了公钥和网站的身份信息,这个证书就好比人的身份证,作为这个网站的身份标识,搭建一个 HTTPS 网站要在CA机构先申请一个证书(类似于去公安局办个身份证)

在这里插入图片描述

当客户端获取到这个证书会对证书进行校验,证书上有一些校验机制,如:

  • 证书发布机构
  • 证书有效期
  • 公钥
  • 证书所有者
  • 签名

通过校验证书就可以解决上述问题,于此也保证了数据传输的安全性

HTTPS执行流程总结

  1. 客户端使用HTTPS协议访问服务器
  2. 服务器返回证书,该证书包含了使用非对称加密的公钥
  3. 客户端校验证书是否有效,如果无效终止访问,如果有效:
    a. 使用对称加密生成共享密钥
    b. 使用共享密钥加密数据
    c. 使用非对称加密的公钥加密共享密钥
    d. 发送加密后的数据和共享密钥给服务器
  4. 服务器使用私钥解密出客户端使用对称加密的共享密钥,再使用共享密钥解密数据
  5. 之后客户端和服务器使用密钥对数据进行对称加密数据就可以进行交互

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

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

相关文章

如何用卡片翻转动画制作一个星座运势页面

效果展示:前置准备: 图片素材 有文案素材的detail页面 配置按钮组件触发器 具体步骤: 添加配置按钮、图片组件 配置图片组件动画和触发器步骤分解: 添加配置轮播图基础组件 添加 按钮 组件 添加 图片 组件 选中 按钮 组件 在 数据…

【菜鸡读论文】Learning-based Video Motion Magnification

Learning-based Video Motion Magnification 哈喽,大家好呀! 这周有点开心,看到了一篇很有趣的论文。最近天气好热,明明已经十一月了,最近的温度却一直在25度以上,甚至有种可以过夏天,穿裙子的…

怎么给图片添加贴纸?介绍几个简单的方法

不知道大家会不会跟我有同样的想法,不论是经过精心调整拍摄出来的照片,还是平时随手一拍的照片,要发到社交软件上时,都想要添加一些有趣的贴纸或者文字进去。如果照片的内容过于空乏,添加贴纸文字进去会增加照片的趣味…

数学基础之博弈论

1.移棋子游戏 mex为最小的不存在的自然数 #include<bits/stdc.h> using namespace std; const int N2e310,M2e410; int h[N],e[M],ne[M],idx; int n,m,k; int f[N]; void add(int a,int b) {e[idx]b,ne[idx]h[a],h[a]idx; } int sg(int u)//求sg函数 {if(f[u]!-1) return…

Ubuntu16.04搭建UbertoothOne环境

Ubuntu16.04搭建UbertoothOne环境 【支持原创&#xff0c;转载需经过作者同意&#xff0c;否则追究相关责任】 相关链接 ubertoothone 主页ubertoothone github 环境说明 操作系统&#xff1a;Ubuntu 16.04.3 LTSUbertooth软件版本&#xff1a;ubertooth 2020-12-R1Libbtb…

想要精通算法和SQL的成长之路 - 跳跃游戏系列

想要精通算法和SQL的成长之路 - 跳跃游戏系列前言一. 跳跃游戏二. 跳跃游戏II前言 想要精通算法和SQL的成长之路 - 系列导航 一. 跳跃游戏 原题链接 给定一个非负整数数组 nums &#xff0c;你最初位于数组的第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。…

TCP、UDP API调用(实时聊天)

1. TCP连接 服务器创建ServerSocket&#xff0c;并指定端口进行监听&#xff1b; ServerSocket通过accept()接受用户请求并返回Socket&#xff0c;否则一直处于监听状态&#xff0c;线程阻塞&#xff1b; 客户端创建Socket&#xff0c;需要指定服务器的ip和端口&#xff0c;向服…

OpenGL之纹理映射

1.1 Texture Mapping 1.1.1 在OpenGL编程中&#xff0c;应用纹理主要分为四步&#xff1a; 创建纹理对象&#xff0c;并为它装载一个纹理&#xff1b; glGenTexture(1,&texName); //为每个纹理编号&#xff0c;1代表生成一个编号 glBindTexture(GL_TEXTURE_2D,texNam…

一道题学习node.js中的CRLF注入

前言 这几天刷题遇到在node.js题目中注入CRLF实现ssrf的题目&#xff0c;对于我来说知识听新颖。在此记录一下。 CRLF注入 学习过http请求走私漏洞的师傅对于这个CRLF肯定不会陌生。所谓的CRLF就是回车加换行。常用于http数据包。字段之间用一个CRLF分割&#xff0c;首部和主…

【MySQL篇】约束语法及演示总结(全)

目录 理解约束&#xff1a; 约束语法及添加、删除约束语法&#xff1a; 约束总览&#xff1a; ​1、非空约束 2、唯一约束 3、主键约束 4、默认约束 5、外键约束 案例演示&#xff1a; 加深格式记忆&#xff1a; 理解约束&#xff1a; 约束实际上就是我们对表中数据的…

Redis命令及原理学习(一)

redis介绍 redis 是 Remote Dictionary Service 的简称&#xff1b;也是远程字典服务&#xff1b; 节点 通过tcp与redis建立连接交互请求回应模型 redis是一种内存数据库&#xff1a;数据都在内存中。redis是一种kv数据库&#xff1a; 存储方式操作方式 redis是一种数据结构数…

【访谈】Eotalk Vol.05: API 全生命周期管理,如何解决企业 API 安全问题

Eotalk 是由 Eolink 和各合作方一起发起的泛技术聊天活动&#xff0c;每期我们会邀请一些技术圈内的大牛聊聊天&#xff0c;聊一下关于技术、创业工作、投融资等热点话题。 本期 Eotalk 我们邀请到的嘉宾是来自星阑科技的 CTO 徐越~ &#x1f44f;&#x1f44f; 徐越是一位 90…

红黑树(4万字文章超详细,只为一个目的)

我写这篇文章的主要目的其次才是积累知识,主要是因为我想打一个同学的脸. 事情是这样的.我现在中学嘛,我们班上有一个同学他学了红黑树啊,就一副"不可一世"的样子.在我面前炫耀啊.当时我就想立马打他的脸,可是我有没有实力,所以才学习红黑树学到深夜,写了篇博客.言归…

深度解析:会用Excel,还有必要学Python吗?

前言 某站上有个问题&#xff1a; 我都会用Excel了&#xff0c;还有必要学Python吗&#xff1f; &#xff08;文末送读者福利&#xff09; 这个问题大概率可以说明问这个问题的这位同学目前还没有遇到非Python不可的场景&#xff0c;之所以产生了学Python的念头是因为这两年P…

今日分享:文字转语音软件哪个好

如今已经进入到了一个短视频时代&#xff0c;大家饭后或者闲暇时都会通过刷视频来消磨时间&#xff0c;而部分小伙伴看到一些有趣的内容&#xff0c;也想试着自己制作一下。但众所周知&#xff0c;视频拍摄容易&#xff0c;后期剪辑制作确实异常困难的&#xff0c;有许多道工序…

从boot引导到loader引导完整运行

此文针对该文章对loader引导进行了完善后的完整运行过程。&#xff08;具体细节请参见下文&#xff09; boot引导升级&#xff0c;成功引导运行loader_What’smean的博客-CSDN博客boot引导升级&#xff0c;成功引导运行loaderhttps://blog.csdn.net/weixin_42492218/article/d…

【数据结构】11道LeetCode链表OJ练习

文章目录1. 移除链表元素2. 反转链表3. 链表的中间节点4. 链表中倒数第k个节点5. 合并两个有序链表6. 链表分割7. 链表的回文结构8. 相交链表9. 环形链表10. 环形链表II11. 复制带随机指针的链表补充内容&#xff1a;浅谈顺序表和链表的区别1. 移除链表元素 移除链表元素OJ链接…

扫雷游戏优化详解——c语言实现

文章目录 一、扫雷游戏的简单认识与解释 二、扫雷游戏的代码及思路实现 一、扫雷游戏的思路 1、菜单打印 2、创建扫雷区 3、初始化雷区 4、打印雷区 5、布置雷区 6、排雷 三、扫雷游戏代码的整合 game.h game.c test.c 标题&#xff1a;猜数字小游戏 作者&#xff1a;Ggggg…

你适合考PMP还是软考?两者的区别是否清楚,分别能给你带来什么价值

PMP与软考之间有什么区别&#xff0c;应该考哪个更适合自己&#xff1f; 下面从9个方面给大家简单的介绍做一个对比&#xff0c;希望能帮上忙~ 软考和PMP哪个更适合自己&#xff1f; 01 考试介绍 PMP&#xff1a;PMP是项目管理专业人士资格认证&#xff0c;由美国项目管理协…

腾讯云相同配置8核16G的云服务器和轻量服务器该如何选择?

很多个人或者中小企业用户在选择云服务器的时候&#xff0c;已经确认配置的情况下&#xff0c;去选购的时候发现有出现了轻量应用服务器&#xff0c;那么轻量应用服务器和云服务器又有哪些区别&#xff0c;价格为啥又有那么大的差别&#xff0c;该如何选择呢&#xff1f; 从上边…