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

相关文章

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI