网络通信的安全性(HTTPS)

news2024/10/5 17:28:35

网络通信的安全性(HTTPS)

互联网是由无数网络节点组成的,两点之间的通信一般会经过很多个网络节点,因此,我们难免会有疑问:

  1. 作为发送方,我发送的消息内容会不会被中间人看到?(数据窃听
  2. 作为接收方,我收到的消息内容会不会是假的?(数据篡改)
  3. 对方的身份是不是真实的?(身份冒充)

本文就从网络通信的安全性出发,解密HTTPS原理。

数据窃听

如果你把消息内容暴露在互联网传输,中间人是有办法拦截偷看的。所以要加密: 发送方把消息内容放在箱子里面锁起来发送出去,接收方再用对应的钥匙解锁。别人没有钥匙,自然就无法知道箱子里面的消息内容。这就达到了防止数据被窃听的目的。

1. 对称加密

image.png

这里加密和解密用的是同一个秘钥,所以叫对称加密。常用的对称加密算法有AES。

对称加密最大的问题就是秘钥交换秘钥管理。因为加解密用的是同一个密钥,所以当你把加密的秘钥告诉别人的同时,就有可能泄漏了解密的秘钥。另外,如果是多个发送方对一个接收方的场景,接收方就需要维护多个秘钥,不方便管理。

2. 非对称加密

把加密和解密的密钥分开管理: 接收方自己保管好解密的密钥(私钥),然后把加密的密钥提供给发送方(公钥),从而解决秘钥交换的问题,这就是非对称加密。常见的算法有RSA。

首先,为了保证只有接收方能够解密,应该由接收方创建密钥对。其次,接收方自己保管私钥,并把公钥告诉发送方。最终,发送方用公钥加密的数据,只有接收方的私钥能够解密。

实际应用中不会直接用非对称加密对话,因为其算法复杂计算耗时长。更常见的是用非对称加密完成秘钥交换,再用对称加密会话。在正式会话之前,接收方创建一个随机的对称加密的秘钥。然后,通过非对称加密方式发给发送方。最后,用这个秘钥进行对称加密会话。即保证了数据传输的安全性,又能高效地处理加解密。

小结

为了防止数据被窃听,需要对数据进行加密传输。对称加密使用同一个秘钥进行加解密,简单高效,不足之处是存在秘钥交换和秘钥管理的问题。因此,非对称加密把加密和解密的密钥分开管理: 接收方自己保管好解密的密钥(私钥),然后把加密的密钥提供给发送方(公钥);缺点是算法复杂计算耗时长。综上,一般使用非对称加密来完成秘钥交换,然后用对称加密进行会话。即保证了数据传输的安全性,又能高效地处理加解密。

数据篡改

平时我们收到快递,可以核对防伪码来防止东西被调包。在网络通信中,也有一个类似防伪码的机制来防止数据被篡改,这就是摘要

1.摘要

摘要是对原始数据进行压缩生成的唯一标识,不同的数据生成的摘要是不同的。如果原始数据生成的摘要跟报文中的摘要不匹配,则说明数据已被篡改。常用的摘要算法有MD5和SHA-1。

如果中间人修改了原始数据,再生成新的摘要,也是能验证通过的。所以怎么验证报文中的摘要就是发送方生成的呢?

2.数字签名

前面讲到了非对称加密,用公钥加密只有私钥能解密,反过来也是成立的,即能用公钥解密的数据一定是用私钥加密的因为私钥只有一个人知道,所以就能确定发送方身份。首先,为了验证摘要是发送方生成的,应该由发送方生成密钥对。其次,发送方自己保管私钥,并且把公钥提供给接收方。最后,发送方用私钥加密摘要,接收方用公钥解密得到摘要,确认对方身份,然后再进行摘要验证。这样就能有效验证数据完整性身份验证,这就是数字签名

小结

身份冒充

在建立HTTPS安全链接时,服务器会返回一个公钥给浏览器,用于非对称加密完成密钥交换。那么,浏览器怎么核实公钥的有效性呢?

我们都知道乘坐高铁时,工作人员会要求乘客出示身份证以便核实身份。身份证是由具有权威性的公安机关颁发的,所以能够有效证明公民身份。

1. 数字证书

在网络通信中,也有类似身份证的机制来核实公钥的有效性,这就是数字证书

首先,网站要找CA机构申请数字证书: CA机构用私钥对服务器的公钥做加密,生成数字证书。其次,在开始建立HTTPS安全链接时,服务器返回数字证书。最后,浏览器用CA机构的公钥对数字证书做解密,得到服务器的公钥。因为只有CA机构知道私钥,所以能够解密成功就说明证书内容是合法的,即服务器公钥是有效的。

最后一步可能同学会有疑问: 浏览器是怎么知道CA机构的私钥的?因为全球权威的CA机构并不多,所以他们的私钥是直接内嵌在浏览器内核的。

HTTPS

image.png

总结

互联网环境错综复杂,网络通信的安全性更是不容小嘘。首先,使用非对称加密完成秘钥交换,再用对称加密传输,防止数据被窃听; 其次,用数字签名来验证数据完整性和身份验证,防止数据被篡改; 最后,通过数字证书核实网站身份,防止身份冒充。综上所述,这三个核心技术保障了HTTPS通信的安全性。

参考资料

什么是 HTTPS 的证书信任链?自己给自己发行不行?

一直没明白的 HTTPS,今天懂了!

了解 HTTP 看这一篇就够

(建议收藏)前端面试必问的十六条HTTP网络知识体系

爱奇艺海外版HTTPS效率是如何提升的?

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

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

相关文章

4.2 矩阵乘法的Strassen算法

1.伪代码以及用到的公式 ​ ​ ​ 2.代码 package collection; ​ public class StrassenMatrixMultiplication {public static int[][] multiply(int[][] a, int[][] b) {int n a.length;int[][] result new int[n][n]; ​if (n 1) {result[0][0] a[0][0] * b[0][0]…

为什么是毫末智行成为了DriveGPT的破壁人?

作者 | 魏启扬 来源 | 洞见新研社 毫末智行有着天生的紧迫感。 很多科技公司一年才举办一次的品牌日活动,毫末智行硬是办成了一个季度一次,活动频次的提高,则意味着组织内部新陈代谢的提速,从研发到落地乃至运营,都要…

ChatGPT 这个风口,普通人怎么抓住?

最近在测试ChatGPT不同领域的变现玩法,有一些已经初见成效,接下来会慢慢分享出来。 今天先给大家分享一个,看完就能直接上手的暴力引流玩法。 所需工具: 1)ChatGPT(最好是plus版,需要保证快速…

一个开源的大型语言模型LLaMA论文简单解读,LLaMA: Open and Efficient Foundation Language Models

一个开源的大型语言模型LLaMA论文解读,LLaMA: Open and Efficient Foundation Language Models返回论文和资料目录 1.导读 LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 …

ASEMI代理AD8638ARJZ-REEL7原装ADI车规级AD8638ARJZ-REEL7

编辑:ll ASEMI代理AD8638ARJZ-REEL7原装ADI车规级AD8638ARJZ-REEL7 型号:AD8638ARJZ-REEL7 品牌:ADI /亚德诺 封装:SOT-23-5 批号:2023 安装类型:表面贴装型 引脚数量:5 类型&#xff1…

初谈 ChatGPT

引子 最近,小编发现互联网中的大 V 突然都在用 ChatGPT 做宣传:“ChatGPT不会淘汰你,能驾驭ChatGPT的人会淘汰你”、“带领一小部分人先驾驭ChatGPT”。 确实,ChatGPT这个新生事物,如今被视为蒸汽机、电脑、iPhone 般的…

【ChatGPT 】国内无需注册 openai 即可访问 ChatGPT:ChatGPT Sidebar 浏览器扩展程序的安装与使用

一、前言 问题:国内注册 openai 账号麻烦,新必应有部分人也无法登录成功,存在域名单点登录失败等问题,所以无法真正使用 ChatGPT 解决:大部分人仅需使用 ChatGPT 的搜索功能,无需真正对话,需要…

云计算技术的现状和未来发展趋势分析

近年来,随着互联网、物联网、大数据等技术的不断发展,云计算技术也随之崛起并迅速发展。云计算技术作为一种新的计算模式,不断地改变着我们的生活和工作方式,成为了当今IT产业的一股强大的力量。本文将详细探讨云计算技术的现状和…

第十天面试实战篇

目录 一、springboot的常用注解? 二、springmvc常用注解? 三、mysql的内连接和外连接有什么区别?比如有两张表:A和B内连接只返回两个表A和B的交集部分 四、redis分布式锁的缺点有哪些? 五、如何使用reddssion解决r…

多个渠道成功销售的秘诀速递

将您的电子商务业务扩展到多个渠道销售似乎是一项艰巨的任务吗?但如果有了正确的多渠道增长战略,这可能是实现快速增长的好方法。当然,您需要考虑借助一些工具与策略,而SaleSmartly(ss客服)可以为您提供。 …

Python做个猫狗识别系统,给人美心善的邻居

嗨害大家好鸭!我是爱摸鱼的芝士❤ 宠物真的看着好治愈 谁不想有一只属于自己的乖乖宠物捏~ 这篇文章中我放弃了以往的model.fit()训练方法, 改用model.train_on_batch方法。 两种方法的比较: model.fit():用起来十分简单&#…

【剧前爆米花--爪哇岛寻宝】java文件操作和io流

作者:困了电视剧 专栏:《JavaEE初阶》 文章分布:这是一篇关于文件操作的文件,介绍了文件读写以及相关对象的内容,希望对你有所帮助! 目录 文件操作 文件路径 绝对路径 相对路径 File类 File类的构造方…

REDIS Hash 槽 与 一致性hash

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

Spring boot+Vue3博客平台:文章发布与编辑功能的技术实现

本文将详细介绍如何实现一个博客平台中的文章发布与编辑功能,包括前端的Vue组件设计和后端的Spring Boot接口实现。在阅读本文后,您将了解如何设计和实现高效、易用的文章发布与编辑功能。 一、发布文章 设计思路 在设计文章发布功能时,我们…

vscode中调试rust程序

文章目录一、vscode运行和调式rust程序二、常见问题1.rust: Request textDocument/formatting failed.2.cargo命令3.使用rust-gdb调试rust程序4.cargo build太慢一、vscode运行和调式rust程序 环境:在WSL(ubuntu20.04)中使用vscode &#xf…

数据技术嘉年华星光璀璨,云和恩墨全栈数据技术能力闪耀会场

导语 2023年4月7-8日,由中国DBA联盟(ACDU)和墨天轮社区联合主办的第十二届『数据技术嘉年华』(DTC 2023)在北京成功举办。云和恩墨作为大会的协办方和深度参与者,以6场演讲2大展台全面呈现公司的全栈数据技…

几何算法——4.交线(intersection curve)的表达与参数化、微分性质

几何算法——4.曲面求交的交线(intersection curve)的表达与参数化、微分性质1 关于曲面求交的交线表达2 交线的微分性质3 交线的参数化4 修正弦长参数化的微分性质1 关于曲面求交的交线表达 两个曲面求交,比较经典的方法是用跟踪法&#xf…

wsl使用vscode搭建自己的MySQL

装wsl装MySQL装wsl 我已经装好了,就不说了 装MySQL 安装 MySQL 服务器:终端命令行输入sudo apt install mysql-server 安装完成后,MySQL 服务器会自动启动并在 Ubuntu 启动时启动。您可以使用以下命令检查 MySQL 服务器是否正在运行:sudo ser…

【三十天精通Vue 3】第六天 Vue 3 计算属性和监听器详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 计算属性概述1.1 计算属性的简介1.2 计算属性的分类…

第二十章 案例TodoList之动态数据

我们之前已经实现了静态的组件拆分,既然是静态说明数据就是死的,显然这不是我们需要的结果,之前我们学习了React组件,知道组件里面的状态数据驱动了页面的显示,每个组件都有属于自己的状态数据。接下来我们改造组件使得…