HTTPS

HTTPS是什么

HTTPS 属于应用层协议,其原理是通过SSL/TLS协议在HTTP和TCP之间插入一层安全机制。通过SSL/TLS握手过程,客户端和服务器协商出一个对称密钥,用于后续的数据加密和解密,从而保证数据的机密性和完整性。

为什么会需要HTTPS

因为HTTP 比较严重的缺点就是不安全!
因为HTTP的内容是明文传输的,明文数据会经过路由器、wifi热点、通信服务运营商、代理服务
器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传
输的信息且不被双方察觉,所以我们才需要对信息进行加密。

HTTPS的工作原理

非对称加密 + 对称加密 + CA证书认证

非对称加密

想象一把锁和一把钥匙。在非对称加密中,有两个特殊的“钥匙”:公钥和私钥。想象你把一个公钥放在一个盒子里,然后把盒子送给别人。任何人都可以获得这个盒子,打开它,获得这个公钥。但是,只有你拥有与之配对的“私钥”。

当别人想要给你发加密的信息时,他们可以用你的公钥来锁住信息。只有拥有私钥的人才能解锁并读取这个信息。这意味着你可以安全的接受信息不用担心数据被篡改或者被窃取。其适用于加密小量的重要信息,例如验证身份、数字签名等。

对称加密

对称加密更像是一个密码。想象你和朋友有同样的密码,你们都可以使用这个密码来加密和解密信息。但是,这个密码必须保密,因为任何知道密码的人都可以使用它。这就是为什么对称加密需要更好的密码管理和保护机制。

对称加密的关键是,同一个密钥用于加密和解密数据。这种方法在加密大量数据时非常高效,因为加密和解密过程都使用相同的操作。然而,对称加密需要确保密钥的安全性,以免被不良人士获取。

CA证书认证

当你在互联网上访问一个网站时,你可能会注意到浏览器地址栏前面有一个小锁图标,或者网站的网址以 “https://” 开头。这表示网站使用了加密来保护你的信息。而这种加密是通过一个叫做CA证书认证的方式实现的。
在这里插入图片描述

CA是什么?

CA代表“Certificate Authority”,翻译成中文就是“证书颁发机构”。CA就像是一个安全守门员,负责确保网站的身份是真实可信的。

CA证书如何获取

  1. 申请证书: 网站所有者想要使用加密来保护其网站,就需要向一个CA申请一个证书。这个证书就像一个身份证,确认了这个网站的身份。

  2. 验证身份: CA不会轻易发放证书,它会仔细验证网站所有者的身份,确保这不是一个欺诈行为。这是为了防止恶意人士伪造证书。

  3. 颁发证书: 一旦CA验证了网站所有者的身份,它就会颁发一个数字证书。这个证书包含了网站信息、公钥等。

  4. 使用证书: 网站将获得的数字证书安装在自己的服务器上。这个证书中包含了一个公钥,用于加密信息。

CA证书如何工作

  1. SSL/TLS握手过程
  • 客户端向服务器发起HTTPS请求。
  • 服务器返回公开的SSL证书,其中包含服务器的公钥和其他信息。
  • 客户端的浏览器会验证证书的合法性,包括检查证书是否由受信任的证书颁发机构签署,证书是否过期,证书是否被篡改(从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash 值(称为数
    据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对比 hash1 和 hash2 是否相等. 如
    果相等, 则说明证书是没有被篡改过的)。
  • 如果证书验证成功,客户端生成一个随机的对称密钥(也称为会话密钥),用于后续的数据加密和解密。
  • 客户端使用服务器的公钥加密这个随机密钥,并将其发送给服务器。
  1. 建立安全连接
  • 服务器收到客户端发送的加密后的随机密钥后,使用服务器的私钥进行解密,获取到随机密钥。
  • 现在,服务器和客户端都拥有了相同的对称密钥,用于后续的数据加密和解密。
  • 客户端和服务器之间的数据传输将使用这个对称密钥来进行加密和解密,保证数据的机密性和完整性。
  1. 会话保持
  • 一旦SSL/TLS握手过程完成并建立了安全连接,客户端和服务器之间的通信会保持这个安全连接。
  • 在会话保持期间,客户端和服务器都可以使用相同的对称密钥来加密和解密数据。
  • 这样,每个后续的请求和响应都可以在安全的连接上进行,不需要重新进行SSL/TLS握手过程。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业,健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时,简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后,你还可以使用其他提示和措施来…

利用HTTP代理实现请求路由

嘿,大家好!作为一名专业的爬虫程序员,我知道构建一个高效的分布式爬虫系统是一个相当复杂的任务。在这个过程中,实现请求的路由是非常关键的。今天,我将和大家分享一些关于如何利用HTTP代理实现请求路由的实用技巧&…

Const的区别 学习笔记

C程序设计之const八大用法_哔哩哔哩_bilibili const优先修饰const左边,若左边没有东西,则修饰右边的东西 前两个a,b不是指针由于修饰的是int,是类型,所以a和b的值不能改变 c的类型的指针,const修饰的是int&#xff0…

【Apollo】阿波罗自动驾驶技术:引领汽车行业革新

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…

怎样通过本地电脑搭建SFTP服务器,并实现公网访问?

本地电脑搭建SFTP服务器,并实现公网访问 文章目录 本地电脑搭建SFTP服务器,并实现公网访问1. 搭建SFTP服务器1.1 下载 freesshd 服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2. 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内…

AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理

传送门 点击返回 ->AUTOSAR配置与实践总目录 AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理 一、 数据一致性问题引入二、 数据一致性的管理2.1 RTE管理 (SWC间)2.2 中断保护 (SWC内)2.3 变量保护IRVS (SWC内)2.4 Task分配2.5 任务抢占控制 一…

HTTP 握手过程

HTTP 握手过程 TCP 建立连接 3 次握手 客户端请求连接服务器服务器响应成功客户端回应服务器准备开始连接 TCP 结束连接 4 次挥手 客户端向服务器发送,断开请求服务器向客户端发送,还有数据没有传输完毕,请稍等服务器向客户端发送&#x…

Air780EG —— 合宙4G定位解决方案

定位模式: 外部单片机控制模式(常见于AT固件客户): 开机 -> 搜星 -> 定位成功 -> 上报 -> 关机 780E自行控制模式(常见于二次开发客户,AT用户也可以使用): 开机 -> 搜星 -> 定位成功 -> 模块休眠,关闭GP…

Brain:背内侧前额叶/背侧前扣带皮层(dmPFC/dACC)的相关争议

摘要 背内侧前额叶皮层/背侧前扣带皮层(dmPFC/dACC)是一个功能存在诸多理论和争议的脑区。甚至其精确的解剖边界也饱受争议。在过去的几十年里,dmPFC/dACC与15种以上的认知过程相关联,这些过程有时看起来完全无关(例如,身体感知、认知冲突)。…

志凌海纳 SmartX 携手灵雀云推出全栈云原生联合解决方案

近日,北京志凌海纳科技有限公司(以下简称“SmartX”)与北京凌云雀科技有限公司(以下简称“灵雀云”)联合推出全栈云原生联合解决方案,为客户提供从基础设施到容器云平台的一站式服务,加速客户云…

RK3399平台开发系列讲解(内核调试篇)Valgrind使用案例

🚀返回专栏总目录 文章目录 一、使用未初始化的内存案例二、内存泄露三、在内存被释放后进行读/写案例四、从已分配内存块的尾部进行读/写案例五、两次释放内存案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于…

电脑找不到MSVCR120.dll怎么办?MSVCR120.dll是什么?

在我们的日常生活和工作中,电脑故障是难以避免的问题。而MSVCR120.dll文件是Windows系统中的一个重要组件,如果出现损坏或丢失,可能会导致程序无法正常运行,这个问题可能是由于系统文件损坏、病毒感染等原因导致的。因此&#xff…

高忆管理:市盈率一般多少合理?

市盈率(PE Ratio)是衡量一只股票估值水平的重要目标,其计算公式为股票当前市价除以每股收益。一般来说,市盈率较低的股票被认为是具有出资价值的好股票,而市盈率较高的股票则或许被认为是过度投机或者受商场热潮影响的…

leetcode:字符串相乘(两种方法)

题目: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", nu…

linux部署kafka3.5.1(单机)

一、下载jdk17 kafka3.x版本需要jdk11以上版本才能更好的兼容,jdk11、jdk17都是LTS长期维护版本,而且jdk17支持springboot3.x,所以我选择了openjdk17。 下载地址: Archived OpenJDK GA Releaseshttps://jdk.java.net/archive/ 二、上传jdk安装包解压 …

docker tomcat时间少8小时问题解决

docker容器与系统时间一致并且正确,但是java程序在运行中通过log日志发现发了8小时 解决方法 修改docker容器中tomcat/bin/catalina.sh文件,添加一下内容 JAVA_OPTS"$JAVA_OPTS -Dfile.encodingUTF8 -Duser.timezoneGMT08" 附 操作命令 一…

SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第一天)Mybatis的学习

SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录(第一天)Mybatis的学习 一、当前的主流框架介绍(这就是后期我会发出来的框架学习) Spring框架 ​ Spring是一个开源框架,是为了解决企业应用程序开发复杂…

VMware虚拟安装Ubuntu,然后切换Ubuntu内核版本

无论你选择哪种方法,一旦进入 GRUB 引导菜单,你应该能够选择需要的内核版本并启动系统。 打开终端:你可以通过按下 Ctrl Alt T 快捷键来打开终端。 使用 sudo:切换内核需要管理员权限,因此你需要使用 sudo 命令。首…

【Spring Boot】构建RESTful服务 — 实战:实现Web API版本控制

实战:实现Web API版本控制 前面介绍了Spring Boot如何构建RESTful风格的Web应用接口以及使用Swagger生成API的接口文档。如果业务需求变更,Web API功能发生变化时应该如何处理呢?可以通过Web API的版本控制来处理。 1.为什么进行版本控制 …

C++--深入类和对象(下)

续接上篇,接着来谈我们的类和对象的深入的知识,话不多说,我们即刻出发...... 目录 1.友元 1.1友元函数 输出流运算符的重载 1.2友元类 2.再谈构造函数 2.1构造函数体赋值和初始化列表 构造函数体赋值为何不能叫做初始化? …