http、https、https原理

2024-09-05 13:44
文章标签 http https 原理

本文主要是介绍http、https、https原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. HTTP是超文本传输协议,明文传输,在传输的过程中可以对数据进行篡改或拦截
2. HTTPS是超文本传输安全协议,协议的主要功能都依赖于 SSL/TLS 协议实现的,SSL/TLS的功能实现主要涉及到三种算法:摘要算法、对称加密和非对称加密。
3. https中包含3种加密方法,对称加密、非对称加密、散列函数
4. 由于对称加密的计算量小、加密解密速度快,适合处理大量数据,因此客户端与服务端通信时传输数据使用对称加密的方式
5. 为了防止第三方也可以获取到对称加密的密钥,对密钥也需要进行加密。采用非对称加密对密钥进行加密,服务端生成一对公钥和私钥,公钥需要传递给客户端进行存储,用于对对称加密的密钥进行加密,那么如何确定该公钥是由服务端发送而不是其他人的呢?
  • 首先服务器向CA机构进行申请认证,提交服务端的公钥和服务方的相关信息。
  • CA利用单向散列函数(Hash函数)对公钥和服务方的信息进行运算,生成一串固定长度的数字摘要,同时这也是数字指纹,可用于判断数据有没有被篡改。
  • CA机构拥有一对公钥和私钥,CA使用私钥对数字摘要进行加密形成数字签名,数字签名和证书的明文信息共同组成数字证书。

‌SSL数字证书的内容包括多个关键信息,这些信息共同确保了证书的有效性和可信度。‌

  • 证书版本‌:指证书遵循的版本标准,如X.509v3。
  • 序列号‌:由CA(证书颁发机构)分配的唯一序列号,用于识别证书。
  • 签名算法‌:证书使用的签名算法,如SHA-256 with RSA。
  • 签发者‌:证书由哪个CA签发。
  • 有效期‌:证书的开始和结束日期。
  • 主题‌:证书所绑定的实体,通常是服务器的域名或IP地址。
  • 主题公钥‌:服务器用于加密通信的公钥。 ‌主题公钥算法‌:公钥使用的加密算法。
6. https的客户端向服务端发起请求后,会得到一份数字证书,客户端需要校验该证书的真实性、有效性。
  • 判断证书的有效期是否过期;
  • 判断证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构);
  • 验证证书是否被篡改,从系统中拿到该证书发布机构的公钥,对数字签名解密,得到一个hash值(称为数据摘要),然后使用与CA机构同样的单向散列函数(Hash函数)计算整个证书的hash值,对比两个hash值是否相等,如果相等,则说明证书是没有被篡改过的;(如何确保与CA机构使用的是相同的hash函数,主要是通过公钥基础设施(PKI)的标准和规范来实现的,这些标准规定了证书的格式和验证方法,包括使用的hash算法)
  • 校验证书合法后,会随机生成密钥R
7. 对需要发送到服务器的数据使用密钥R进行加密,同时使用证书中的服务器的公钥对密钥R进行加密,将加密后的数据和密钥一起发送到服务端,服务端使用私钥解密得到密钥R后对接收的数据进行解密,并将密钥进行存储,至此以该密钥开始正式的资源交换。

这篇关于http、https、https原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139129

相关文章

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据