HTTPS

article/2025/8/12 20:59:09

HTTPS 是什么

它其实就是网站的保镖版 HTTP。平常你用普通HTTP上网,你浏览器和网站服务器之间传的东西,不管是密码、聊天内容还是信用卡号,都是“裸奔”的,谁都能半路偷看或者篡改。

HTTPS 就不同了,它在你们开始传东西之前,先让浏览器和服务器互相打个招呼、对对暗号。搞明白身份无误后,它们就一起用只有它们俩懂的“密码本”把信息变成一堆乱码再传。这样即使有人半路偷看,看到的也是谁也看不懂的乱码,完全不知道你在看啥、干啥、输啥。

另外,它还有“身份证”认证那套。正经用HTTPS的网站,都得先去专门的、大家信得过的发证机关申请一个数字证书,证明“我就是我,不是假冒的”。你浏览器访问时,会先把这个“身份证”拿出来核对一下。要是身份没问题,地址栏旁边会显示个小锁标志,告诉你现在是安全连接。所以,HTTPS最主要就是解决了三个痛点:一是防止坏人偷看隐私;二是防止坏人在半路偷偷改内容;三是帮你确认这网站是真网站,不是骗子仿冒的。

臭名昭著的 "运营商劫持" 

简单说,这就是你交钱用的宽带公司(移动、电信、联通这些),在你毫不知情、也没同意的情况下,偷偷在你打开网页或者手机APP时动手脚。你正刷着网页或者用着APP呢,它们会在你看的内容里面硬塞进它们想让你看的东西,最常见的就是各种烦人的弹窗广告、悬浮广告,或者强行把你的搜索转到它们合作的页面。

为什么它们能这么干呢?因为它就像是你上网必经之路的“收费站”。你从家里或手机到任何一个网站的所有数据都要经过它们控制的服务器。这个特殊位置给了它们动手脚的机会。它们可以趁信息在你电脑/手机和网站之间传输时,偷偷拦截、查看,甚至修改里面的内容,硬生生插进它们的广告或者推广链接,然后才让你看到被篡改后的页面。

这种行为最讨厌的地方在于它偷偷摸摸、强行介入,完全不顾你的意愿。它不仅严重干扰你正常上网,加载那些乱七八糟的广告拖慢网速,更关键是侵犯你的知情权和选择权,有些强行跳转的链接甚至可能不安全。好在现在很多大网站(尤其是银行、购物那些)都用了HTTPS加密,能有效防止这种中间环节的偷看和篡改,对这种劫持是有力的遏制。

 

"加密" 是什么 

本质上,加密就是一种把信息“上锁”的操作。它用一套特定的数学规则和一把“钥匙”(专业叫密钥),把你原本看得懂的东西(比如一句话、一个文件、甚至一次网络操作),变成一堆完全看不出含义的乱码。想象一下,你把“你好”这两个字,用只有你和朋友知道的规则打乱重排,变成比如“*#G$L”这种谁都看不懂的样子,这就是加密过程。

为什么要这么做?核心目的就是​​保密和防篡改​​。比如你在网上输密码、刷银行卡、或者发私密消息,这些信息在传输或存储时,如果被人截获或偷看,原始内容就暴露了。而加密之后,即使别人拿到了这个加密结果(密文),没有正确的那把“钥匙”,他们对着这堆乱码也只能干瞪眼,完全不知道原来的信息是啥。

要想把这堆乱码变回有用的信息,就得用对应的“钥匙”进行反向操作,这叫​​解密​​。这个“钥匙”特别关键,只有授权的人或系统才有。比如你登录一个加密的网站,你的浏览器和网站的服务器会安全地交换“钥匙”,然后它们就能互相看懂对方发过来的加密信息了,旁边的人却无法解读。所以,加密就是保护信息安全最基本也最重要的一道防线。

在加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为密 钥 (正确发音 yue 四声, 不过大家平时都读作 yao 四声) .

加密解密到如今已经发展成一个独立的学科: 密码学. 而密码学的奠基人, 也正是计算机科学的祖师爷之一, 艾伦·麦席森·图灵 

 

另一位祖师爷冯诺依曼 

如果1938年图灵答应担任冯·诺依曼的助手,无法想象这两位大佬的合作会给人类社会带来怎样的光明,但是历史就是这么戏剧,1954年6月8日早晨,图灵被管家发现死于英国曼彻斯特家中的床上,享年41岁.

HTTPS 的工作过程

既然要保证数据安全, 就需要进行 "加密". 网络传输中不再直接传输明文了, 而是加密之后的 "密文". 加密的方式有很多, 但是整体可以分成两大类: 对称加密和非对称加密

引入对称加密

这其实是最简单直接的一种加密方式。简单理解就是:​​加密和解密都用同一把钥匙(专业术语叫“密钥”)​​。就像你有一把钥匙,既能锁门(加密),也能开门(解密)。你想把一段信息(比如一封信、一个文件)变成只有特定人能看懂的东西,你就用这把特定的“密钥”配合一套数学规则把它打乱成乱码(加密)。对方收到乱码后,再用一模一样的“密钥”和规则,把它变回你原来的信息(解密)。

这种方式最大的好处就是​​速度快、效率高​​。因为它背后的数学计算通常比别的加密方式(比如非对称加密)简单得多。所以当你需要加密非常大量的数据,比如要加密你电脑硬盘上的所有文件,或者网站和浏览器之间传输大量网页内容时,对称加密就显得非常有用,速度快、不卡顿。

但它也有个关键的​​缺点或者说挑战:如何安全地把这把共同的“密钥”交给对方?​​ 因为既然加密解密都是用同一把密钥,那在通信开始前,你和对方都必须先安全地拥有这把密钥。如果这把钥匙在传递过程中被坏人截获了,那他就能轻易地解密你们所有加密的信息。想象一下,你配了一把家门钥匙,得怎么才能绝对安全地送到朋友手里?这就是对称加密的核心安全问题,通常需要借助其他方法(比如非对称加密)来解决“密钥配送”的问题。常见的对称加密算法有AES(现在用的最多)、DES(较老)等等。

 

引入非对称加密 

它和对称加密最大的不同点在于,它用的是​​两把钥匙,一套组合:一把是公开的(公钥),一把是绝对私有的(私钥)​​。想象一下,公钥就像是你家专用的信箱投递口——谁都可以往里投信件(加密信息),但只有你有私人钥匙(私钥)才能打开信箱取出里面的信(解密信息)。反过来也行不通,用公钥加密的东西,公钥自己是解不开的。

它解决了对称加密那个最头疼的问题:​​密钥的安全配送​​。因为公钥是可以光明正大地给全世界看的,不需要藏着掖着。比如一个网站想接收加密信息,它就把自己的公钥发给你。你用这个公钥把你要发的敏感信息(比如密码、信用卡号)加密成一堆乱码,只有拥有对应私钥的那个网站才能解开。即使有人中途截获了加密信息和公钥,没有私钥也毫无办法。

这把私钥的角色极其关键,必须牢牢保管在主人手里,绝不外泄。它除了能解开用自己公钥加密的信息,还有一个超级能力:​​数字签名​​。主人可以用私钥对一段信息(比如一份合同、一封邮件)生成一个独一无二的“签名”。别人用主人的公钥可以验证这个签名确实是主人用私钥签的,并且能确认信息在签名后没有被篡改过。这就像盖了一个只有主人才能盖的特殊印章,证明了来源和完整性。

所以非对称加密的核心就是:利用两把匹配钥匙的数学关系,解决了安全通信中“怎么安全获得开锁工具”这个难题,并且额外提供验证身份和防篡改的能力(签名)。常见的算法就是RSA(最老牌)和ECC(椭圆曲线,效率高更省资源)。

 

 但是接下来问题又来了: 客户端如何获取到公钥? 客户端如何确定这个公钥不是黑客伪造的?

比如黑客可以当双面间谍,假扮先服务器向客户端发消息,然后假扮服务器向客户端发消息

 

引入证书 

简单说,证书就是一个网站或者服务在网络上的“电子身份证”。它最主要的作用就是​​向访问者证明“我就是我,不是冒牌货”​​。比如你想上某个银行的官网,证书就是银行向全世界喊话:“看,这确实是我的网站,这是我的公钥,你们要信就信它!”

这个证书里面核心包含了几样东西:持有者的身份信息(比如网站域名)、这个实体使用的​​公钥​​(还记得非对称加密的公钥吧?)、以及一个​​有效期​​(表明这个证不是永久有效的)。最关键的是,证书是由一个大家都(相对)信得过的第三方权威机构,也叫​​证书颁发机构(CA)​​,用它们的私钥对这个信息组合做了一个​​数字签名​​盖了个章。

为什么要搞这个第三方盖章呢?就是为了解决信任问题。如果没有CA,网站自己给自己发一个证书说自己是谁就是谁,那骗子网站也能这么做,你根本没法分辨真假。CA在发证之前,会先(理论上)去核实申请者的真实身份。然后,当你的浏览器访问一个使用HTTPS的网站时,它会把这个网站提供的证书拿过来。

浏览器会做一系列验证:检查证书上的签名是不是某个它信任的根CA用私钥签的(这个根CA的公钥早就装在浏览器里了)、证书上的域名和你正在访问的网站域名是否一致、证书是否还在有效期内等等。只有这些都通过了,浏览器才认为这个证书有效,才会信任网站的身份并建立安全连接(比如显示那个小锁图标)。如果验证不过,它就会弹出警告。所以,证书的核心就是靠可信的第三方背书,让你能确认网站的真实身份,并把公钥安全地交到你手里,是建立网络信任关系的基础设施。

 

总结

HTTPS 工作过程中涉及到的密钥有三组.

第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公 钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的 签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过.

第二组(非对称加密): 用于协商生成对称加密的密钥. 服务器生成这组 私钥-公钥对, 然后通过证书把公钥 传递给客户端. 然后客户端用这个公钥给生成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解 密获取到对称加密密钥.

第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密.

 


http://www.hkcw.cn/article/tvcOSYoLVv.shtml

相关文章

LTSPICE仿真电路:(三十)压流变换器

1.压流转换器(NPN型三极管) 压流转换器:将电压转换为电流信号。 直接看仿真 这个电路是负反馈电路,分析使用续断虚短,输入信号是3V,所以在Rset电阻处的电压始终是3V ,Uce为6V(发射…

电动机定子铁芯冲槽模设计与多物理场仿真优化

摘要 本文系统阐述电动机定子铁芯冲槽模的设计规范与仿真验证方法。通过分析冲裁机理,提出模具材料选型、间隙计算、结构优化的关键技术方案,并借助ANSYS Workbench平台进行应力-疲劳联合仿真,为高精度冲槽模设计提供理论依据和工程实践参考…

window 显示驱动开发-复制深度模具值

Microsoft Direct3D 运行时调用用户模式显示驱动程序的 Blt 函数,将深度模具值从视频内存复制到系统内存,反之亦然。 驱动程序和硬件必须从或转换到驱动程序支持的所有不透明深度模具格式 (,即 D3DDDIFORMAT 枚举类型定义的所有格式&#xff…

pc端小卡片功能-原生JavaScript金融信息与节日日历

代码如下 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>金融信息与节日日历</title><…

Redis最佳实践——购物车优化详解

Redis在电商购物车高并发读写场景下的优化实践 一、购物车业务场景分析 典型操作特征 读/写比例 ≈ 8:2高峰QPS可达10万单用户最大商品数500操作类型&#xff1a;增删改查、全选/反选、数量修改 技术挑战 高并发下的数据一致性海量数据存储与快速访问实时价格计算与库存校验分…

[网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)

文章目录 处理连接成功通知玩家就绪逻辑图问题 1&#xff1a;线程安全问题 2&#xff1a;先手判定错误两边都是提示&#xff1a;轮到对方落子![image.png](https://i-blog.csdnimg.cn/img_convert/c570cd26eadbe87ed467bc4edaa7945e.png) 处理连接成功 实现 GameAPI 的 afterC…

Python训练打卡Day39

图像数据与显存 知识点回顾 图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 一、图像数据的格式 1.1灰度图像 作为图像数据&#xff0c;相较于结构化数据&#x…

pycharm打印时不换行,方便对比观察

原来&#xff1a; 优化&#xff1a; import torch torch.set_printoptions(linewidth200) 优化结果&#xff1a;

Practice 2025.6.1—— 二叉树进阶面试题(2)

文章目录 二叉树进阶面试题(2)Leetcode_144 二叉树的前序遍历(使用非递归)Leetcode_94 二叉树的中序遍历(使用非递归)Leetcode_145 二叉树的后序遍历(使用非递归) 二叉树进阶面试题(2) 本篇文章将继续进行二叉树的进阶面试题的讲解&#xff0c;其中&#xff0c;本部分将重点针…

DOCKER使用记录

1、拉取镜像 直接使用docker pull <image>&#xff0c;大概率会出现下面的报错信息&#xff1a; (base) jetsonyahboom:~$ docker pull ubuntu:18.04 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while …

Vert.x学习笔记-EventLoop与Context的关系

Vert.x学习笔记 1. EventLoop 的核心作用2. Context 的核心作用3. EventLoop 与 Context 的关系1. 事件循环&#xff08;EventLoop&#xff09;的核心职责2. 上下文&#xff08;Context&#xff09;的核心职责3. 事件循环与上下文的关系&#xff08;1&#xff09;一对一绑定&am…

LTSPICE仿真电路:(三十一)HOWLAND电流源

1.HOWLAND电流源 推导过程&#xff1a;这个运放是正负反馈都存在&#xff0c;但负反馈是大于正反馈的&#xff0c;因正反馈多出一个Rload&#xff0c;所以可以使用虚短续断&#xff0c;运放的U等于U-&#xff0c;负反馈处得出Uout与U-的关系&#xff0c;再利用正相端节点电流算…

LLaMA-Factory - 批量推理(inference)的脚本

scripts/vllm_infer.py 是 LLaMA-Factory 团队用于批量推理&#xff08;inference&#xff09;的脚本&#xff0c;基于 vLLM 引擎&#xff0c;支持高效的并行推理。它可以对一个数据集批量生成模型输出&#xff0c;并保存为 JSONL 文件&#xff0c;适合大规模评测和自动化测试。…

引擎下线缺陷检测系统ENAgent

引擎下线缺陷检测系统ENAgent采用信号处理技术以及人工智能技术对引擎生产线下线的各种引擎在生产线上进行缺陷实时检测&#xff0c;通过振动信号、声纹信号等信号融合集成&#xff0c;在线实时判断其是否存在缺陷以及进行故障诊断。ENAgent系统采用全Python语言&#xff0c;以…

【量化交易学习】布林线(BOLL)指标

目录 1. 布林线&#xff08;BOLL&#xff09;指标定义与构成1.1 定义1.2 布林线的构成 2. BOLL&#xff08;布林线&#xff09;的应用场景3. BOLL指标的研判标准3.1 BOLL指标中的上、中、下轨线的意义3.2 BOLL指标中的上、中、下轨线之间的关系3.3 K线和布林线上、中、下轨之间…

ArcGIS Pro 创建渔网格网过大,只有几个格网的解决方案

之前用ArcGIS Pro创建渔网的时候&#xff0c;发现创建出来格网过大&#xff0c;只有几个格网。 后来查阅资料&#xff0c;发现是坐标不对&#xff0c;导致设置格网大小时单位为度&#xff0c;而不是米&#xff0c;因此需要进行坐标系转换&#xff0c;网上有很多资料讲了ArcGIS …

java27

1.IO流 FileOutPutStream字节输出流基本用法&#xff1a; 一次性写入一个字符串的内容&#xff1a; 注意&#xff1a;\r或者\n表示把普通的r或者n的字符转义成回车的意思&#xff0c;所以不需要\\ FileInputStream字节输入流基本用法 -1在ASCII码里面对应的符号&#xff1a; 不…

Windows设置之RDP文件用户密码

1、远程桌面另存为rdp文件 2、编辑rdp文件&#xff0c;添加用户名密码信息 username:s:<用户名> password 51:b:<加密后的密码> 3、<加密后的密码>通过PowerShell命令或者 ("<密码>" | ConvertTo-SecureString -AsPlainText -Force) | Conve…

day025-网络基础-DNS与ARP协议

文章目录 1. DNS服务1.1 DNS解析流程1.2 查看本地DNS缓存&#xff08;Windows&#xff09;1.3 查看详细DNS解析流程1.4 排查DNS故障 2. 面试题&#xff1a;用户访问网站过程2.1 抓包 3. ARP协议3.1 命令查看3.2 抓包 4. ICMP协议4.1 禁用ping 5. 踩坑记录1. **为什么解析域名时…

SEO长尾关键词优化实战

内容概要 在长尾关键词优化实践中&#xff0c;系统化的策略设计与执行路径直接影响流量获取效率与转化质量。本文从行业竞争度评估切入&#xff0c;通过多维指标拆解目标关键词的流量价值与操作成本&#xff0c;帮助从业者建立科学的资源分配模型&#xff1b;同时聚焦用户搜索…