【HTTPS】对称加密和非对称加密

news2024/11/15 4:11:02

HTTPS 是什么

HTTPS 是在 HTTP 的基础上,引入了一个加密层(SSL)。HTTP 是明文传输的(不安全)

当下所见到的大部分网站都是 HTTPS 的,这都是拜“运营商劫持”所赐

运营商劫持

下载⼀个“天天动听“:

  • 未被劫持的效果,点击下载按钮,就会弹出天天动听的下载链接 image.png|454
  • 已被劫持的效果,点击下载按钮,就会弹出 QQ 浏览器的下载链接 image.png|465

image.png

即使运营商不劫持,如果被黑客盯上了,也是可能会对你的信息安全造成一些影响的

有些商场、饭店会提供 WiFi

  • 你连他们的 WiFi,你的请求就要经过他的路由器设备
  • 你能连,黑客就也能连,黑客就可能把路由器给黑了
  • 黑客可能用自己的设备伪造一个“商场 WiFi”
    一旦你的数据经过了黑客的设备,并且没有加密,那就非常危险了。尤其是“各种密码”

加密

解决安全问题,最核心的要点,就是“加密”。黑客领域的攻防,都是“相对”的概念,这是一个对抗的过程。但是可以做到,即使数据被黑客拿到了,他也解析不了/无法篡改,也能起到安全的效果

  • 你加密的数据,理论上来说,也可能被黑客破解,但加密的成本很低,但破解的成本很高
  • 只要破解成本超出了要保护的数据价值本身,就是安全的

引入加密,是保证数据安全的有效手段

密码学中的几个重要概念:

明文:要传输的真实数据,要表达的实际的意思
密文:针对明文加密后,得到的结果。往往是不直观的,不易理解的
密钥:加密和解密过程中的关键道具

对称加密:加密和解密用的是同一个密钥
非对称加密:加密和解密用的不是同一个密钥,这两个密钥 k1k2是成对的

  • 可以使用 k1 加密,k2 解密
  • 可以使用 k2 加密,k1 解密

两个密钥,可以一个公开出去,称为“公钥”,另一个自己保存,称为“私钥”
手里只有一把的话,是无法知道另一把是什么的(是有一定的数学原理的)

HTTPS 工作过程(面试)

只要针对 HTTPS 的数据进行解密了,就能够得到 HTTP 格式的数据

上述的运营商劫持,无论是修改 referer 还是修改返回的链接(body),本质上都是明文传输惹的祸。需要引入加密,对上述传输的数据进行保护,主要就是要针对 headerbody 进行加密

1. 引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作,这样网络上传输的就是密文了 image.png|673

  1. 对称加密的时候,客户端和服务器需要使用同一个密钥

  2. 不同的客户端需要使用不同的密钥

    • 如果所有的客户端的密钥都一样,加密就形同虚设,黑客就很容易拿到密钥
    • 这就意味着,每个客户端连接到服务器的时候,都需要自己生成一个随机的密钥,并且把这个密钥告知服务器。(也不一定非得是客户端生成,服务器生成也行,但也是要告诉客户端的)

问题的关键: 密钥需要传输给对方,一旦黑客拿到了密钥,意味着加密操作就没意义了image.png|513

  • 这样即使你传输的是密文,但黑客也能解密

2. 引入非对称加密

使用非对称加密主要的目的是为了加密“对称密钥”,确保对称密钥的安全性

不能使用非对称加密针对后续传输的各种 headerbody 等进行加密,而是只能对对称加密的密钥进行加密

  • 因为非对称加密的加密解密成本(消耗的 CPU 资源)远远高于对称加密
  • 少来少去的用点还可以,但是如果大规模的使用,就难以承担了

image.png

  • 此处就让服务器持有私钥(只有服务器知道);客户端持有公钥(黑客也知道)
  • 客户端就可以使用公钥,对生成的对称密钥进行加密
  • 黑客虽然有公钥,但是对密钥加密的密文只有通过私钥才能解密,黑客拿不到私钥,也就无法对这个数据解密,也就拿不到 888888 对称密钥了
  • 只要 888888 安全到达服务器,后续服务器和客户端之间就可以使用 888888 作为对称加密的密钥,此时黑客就无法破解后续的数据了

客户端向服务器要公钥和通过公钥传输对称加密的密钥的两步操作就是 SSL 内部完成的操作。使用 HTTPS 的时候,磁层也是 TCP,先进行 TCP 三次握手,TCP 连接打通之后,就要进行 SSL 的握手了(交换密钥的过程)。后面才是真正的传输业务数据。(完整的 HTTPS 的请求/响应)

此处公钥和私钥可以这样理解

  • 有些老的楼里带有信箱
  • 你的手里有信箱钥匙(私钥),邮递员手里有锁头(公钥

可以让服务器生成公钥私钥。私钥就只有服务器自己知道,公钥可以告诉任何人

  • 客户端要传输数据的时候,就向服务器要公钥

上述操作,其实仍然存在严重的漏洞,黑客仍然有办法破解掉其中的加密操作

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

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

相关文章

剖析枚举类型的使用与优点

枚举类型顾名思义——就是把所有的值一一列举出来 列如星期 把每一项都列举出来就是枚举 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值, 要是在某一项赋初值之后,后面的就会…

客户转化预测以及关键因素识别_支持向量机与相关性分析

数据入口:数字营销转化数据集 - Heywhale.com 数据集记录了客户与数字营销活动的互动情况。它涵盖了人口统计数据、营销特定指标、客户参与度指标以及历史购买数据,为数字营销领域的预测建模和分析提供了丰富的信息。 数据说明: 字段说明Cu…

JavaEE: 创造无限连接——网络编程中的套接字

文章目录 Socket套接字TCP和UDP的区别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP api的使用UDPDatagramSocketDatagramPacketInetSocketAddress练习 TCPServerSocketSocket练习 Socket套接字 Socket是计算机网络中的一种通信机制&#xff0…

Clion使用vcpkg管理C/C++包

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Clion安装vcpkg二、使用步骤1.切换到清单模式2.开始安装包 三、测试代码总结 前言 Linux上的库基本都可以通过apt或yum等包管理工具来在线安装包&#xff…

cgroup基本原理与使用

Linux cgroups是Linux内核中的一项强大功能,允许用户对进程进行**资源限制、优先级控制、监控和隔离。它主要用于管理和控制计算资源的分配,特别是在容器技术(如 Docker 和 LXC)中得到了广泛应用。 1. Cgroups的基本概念和原理 …

Qwen-2.5 + ClaudeDev + Aider:这套免费的AI编程工具链,简直太棒了!

Qwen-2.5 ClaudeDev Aider:这套免费的AI编程工具链,简直太棒了! 原创 Aitrainee AI进修生 🍹 Insight Daily 🪺 Aitrainee | 公众号:AI进修生 Hi,这里是Aitrainee,欢迎阅读本…

AI字幕翻译器行业分析:前五大厂商占有大约29.5%的市场份额

AI 字幕翻译器正在彻底改变我们使用不同语言消费媒体的方式,使内容可以普遍访问。这些先进的技术利用机器学习和自然语言处理,将口语对话实时翻译成字幕。这一功能不仅打破了语言障碍,提升了观众的体验,而且还使内容创作者能够毫不…

比 Kimi 更强!用 Claude 仿写头条文章,轻松过原创(附完整指令)

最近,我有个做头条号的朋友跟我吐槽,说每天都要更新内容,经常写文章写到半夜,他已经快撑不住了。我听完实在有点不忍心,就告诉他,其实可以用 AI 来帮忙写头条文章。 朋友一脸怀疑,说“怎么可能&…

消灭病毒gamedemo

DestoryVirus 一、AudioSourceManager using System.Collections; using System.Collections.Generic; using UnityEngine;public class AudioSourceManager : MonoBehaviour {public static AudioSourceManager Instance { get; private set; }public SoundPlayer soundPla…

【C++】智能指针模拟实现及详解

目录 什么是智能指针: 为什么要有智能指针: auto_ptr: unique_ptr: shared_ptr: shared_ptr的缺陷: weak_ptr: 什么是智能指针: 概念: 智能指针是一种特殊的类模板,用于自动…

Java律师法律咨询小程序

技术:Java、Springboot、mybatis、Vue、Mysql、微信小程序 1.代码干净整洁,可以快速二次开发和添加新功能 2.亮点可以添加AI法律咨询作为 创新点 系统分:用户小程序端,律师web端和管理员端 用户可以在小程序端登录系统进入首…

机器学习之非监督学习(二)异常检测(基于高斯概率密度)

机器学习之非监督学习(二)异常检测(基于高斯概率密度) 0. 文章传送1.案例引入2.高斯正态分布3.异常检测算法4.异常检测 vs 监督学习5.算法优化 0. 文章传送 机器学习之监督学习(一)线性回归、多项式回归、…

VMware安装CentOS7及其初始化配置教程

安装准备 VMware Workstation Pro 17:下载及安装教程 CentOS 7下载地址:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 创建虚拟机 安装CentOS7 鼠标点一下屏幕中间,就可以进入虚拟机,按向上箭头选择安装&#xff0…

EECS498 Deep Learning for Computer Vision (一)软件使用指南

#最近开始学习深度学习的相关基础知识,记录一下相关笔记及学习成果# learning:building artificial systems that learn from data and experience deep learning(a set of machine learning): hierarchical learning algorithms with many "laye…

【基础算法总结】模拟篇

目录 一,算法介绍二,算法原理和代码实现1576.替换所有的问号495.提莫攻击6.Z字形变换38.外观数列1419.数青蛙 三,算法总结 一,算法介绍 模拟算法本质就是"依葫芦画瓢",就是在题目中已经告诉了我们该如何操作…

helm安装promethues

1、添加 Helm 仓库: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update 2、安装 Prometheus:安装promtheus到monitor名称空间中 kubectl create ns monitor helm search repo prometheus #查…

【WSL迁移】将WSL2迁移到D盘

首先查看WSL状态:wsl -l -v 以压缩包的形式导出到其他盘。 wsl --export Ubuntu D:\Ubuntu_WSL\ubuntu.tar 注销原有的linux系统 wsl --unregister Ubuntu 导入系统到D盘 wsl --import Ubuntu D:\Ubuntu_WSL D:\Ubuntu_WSL\Ubuntu.tar 恢复默认用户 Ubuntu co…

Python编码系列—Python策略模式:灵活应对变化的算法策略

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

后端-navicat查找语句(单表与多表)

表格字段设置如图 语句&#xff1a; 1.输出 1.输出name和age列 SELECT name,age from student 1.2.全部输出 select * from student 2.where子语句 1.运算符&#xff1a; 等于 >大于 >大于等于 <小于 <小于等于 ! <>不等于 select * from stude…

大学生必看!60万人在用的GPT4o大学数学智能体有多牛

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作者&#x1…