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

相关文章

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Python如何实现 HTTP echo 服务器

《Python如何实现HTTPecho服务器》本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路... 一个用来做测试的简单的 HTTP echo 服务器。from http.server import HT

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于