HTTPS(超文本传输安全协议)工作过程

news2024/11/25 2:08:34

一、简述HTTPS

HTTPS超文本传输协议(全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性  。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

二、HTTP和HTTPS区别

显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)。有了这个安全层,就确保了互联网上通信双方的通信安全。 

三、工作过程

以客户端访问服务器为例:

1、TCP三次握手

2、"client hello"消息:客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码套件,还有一个"client random"随机字符串。

3、"server hello"消息:服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码套件和"server random"随机字符串。

证书:包含服务端的公钥、版本号以及证书的相关内容等,CA机构使用自己的私钥进行加密形成数字证书。然后服务器会把自己的公钥连同证书一起发送给客户端,私钥则由服务器自己保存以确保安全。

4、 "premaster secret"字符串:客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)",这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。

客户端用CA公钥解密数字证书,对含有服务器公钥的摘要值进行哈希运算,将前后结果进行比对是否一样

一样则取出服务器公钥,并使用该公钥加密生成premaster secret并发送给服务器

5、服务器使用自己的私钥解密获取premaster secret

6、生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY

7、客户端就绪:客户端发送经过共享密钥 KEY加密过的"finished"信号。

8、服务器就绪:服务器发送经过共享密钥 KEY加密过的"finished"信号。

9、达成安全通信握手完成,双方使用对称加密进行安全通信。

至此双方达到稳定且安全的传输 

四、注意

1、HTTPS的核心技术为:用非对称密钥加密对称密钥的密钥,双方通过对称密钥来进行文件或数据的传输。

2、公钥加密,私钥解密————称为加密过程

      私钥加密,公钥解密 ————称为解密过程

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

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

相关文章

最大异或对(trie树)

题目描述: 思路: 1、首先此题我们要知道异或的规则,这里不赘述了,可以百度 2、如果利用trie树去找到一个数字与其异或能得到最大值 比如二进制数:1010.....是一个很大的数 我们想要异或得到的值更大,就需…

GitLab 面试题及答案整理,最新面试题

GitLab 在持续集成/持续部署(CI/CD)中的角色是什么? GitLab 在持续集成/持续部署(CI/CD)中扮演的角色非常关键,主要体现在以下几个方面: 1、自动化构建和测试: GitLab 可以自动化执行代码的构建和测试过程,确保代码提…

java: JDK isn‘t specified for module ‘XXX‘

java: JDK isn’t specified for module ‘XXX’ 问题解决备忘,修改位置

Java高级互联网架构师之路:排查当前JVM错误的步骤

程序 这个程序是有问题的,我们通过一些命令来分析这个程序究竟是哪里出了问题。首先把当前的程序通过SSH工具传输到centos系统中,之后我们就可以在linux环境下编译和执行。 注意一点:上面类的名字是Z,但是在linux环境下,我们将其改为了AA,并且文件名改为了AA,所以文章下…

CSS其他属性

文章目录 1. vertical-align1.1. 概念1.2. 常用值1.3. 作用1.4. 出现的情况一1.4.1. 原因1.4.2. 解决方案 1.5. 出现情况二1.5.1. 解决方案一1.5.2. 解决方案二1.5.3. 解决方案三 1.6. 出现情况三1.6.1. 原因1.6.2. 解决方案 2. 溢出效果2.1. 作用2.2. 属性名 3. 隐藏效果3.1. …

GitHub Actions持续部署

一、概述 1.1Github Action介绍 什么是Github Action ? GitHub Actions是GitHub提供的CI/CD(持续集成/持续部署)服务。它允许你在GitHub仓库中自动化、定制和执行你的软件开发工作流。你可以发现、创建和分享用于执行任何你想要的工作的操作&#xff0…

实现HBase表和RDB表的转化(附Java源码资源)

实现HBase表和RDB表的转化 一、引入 转化为HBase表的三大来源:RDB Table、Client API、Files 如何构造通用性的代码模板实现向HBase表的转换,是一个值得考虑的问题。这篇文章着重讲解RDB表向HBase表的转换。 首先,我们需要分别构造rdb和hba…

1.文本的方式读写文件

文章目录 写入文件代码运行结果 读出文件代码运行结果 文件打开模式标记(查表) 写入文件 ------读写文件一共五步:------ 第一步:包含头文件 第二步:创建流对象 第三步:指定方式打开文件 第四步&#xff1…

三.使用java的API文档

在Java中,API是指“应用程序接口”(Application Programming Interface)。Java API是Java编程语言中提供的类和接口的集合,用于开发各种类型的应用程序。类比C的STL(标准模板库)。 通俗理解就当做些封装好…

【django framework】ModelSerializer+GenericAPIView接口数据流

GenericAPIView数据从序列化到最终返回响应的数据流 // 以ModelSerializergenerics.CreateAPIView为例 程序终归是为了处理数据,怎么处理,以怎样的顺序和方法去处理,就涉及到了具体的业务流程。当我们是用了一个牛掰的框架,发现原…

uniapp 写安卓app,运行到手机端 调试

手机 设置》关于手机》点击版本号 4-5次,弹出手机锁屏页面,输入手机锁屏密码 2.手机 设置中 》搜索 开发人员选项 》 调试》打开USB调试 同页面 找到 选择USB配置》选择 MIDIhbuilder 编辑器 点击 》运行》运行到手机或模拟器》运行到Android App基座 》…

Linux内存管理--系列文章貮

接上文,用户态写完,本章写内核态内存空间。 3.2内核态内存 大家会发现用户态空间不管32还是64位,这种内存分布是相差不大的。是因为使用虚拟内存的系统,会让应用程序感到和别的程序是相互独立的,互不干扰&#xff0c…

网络编程套接字——实现简单的UDP网络程序

目录 1、预备知识 1.1、认识端口号 1.2、端口号 vs 进程pid 1.3、认识TCP协议 1.4、认识UDP协议 1.5、网络字节序 2、socket编程接口 2.1、socket常见API 2.2、sockaddr结构 3、实现一个简易的UDP服务器和客户端通信 log.hpp UdpServer.hpp UdpClient.cc Main.cc…

pytorch CV入门 - 汇总

初次编辑:2024/2/14;最后编辑:2024/3/9 参考网站-微软教程:https://learn.microsoft.com/en-us/training/modules/intro-computer-vision-pytorch 更多的内容可以参考本作者其他专栏: Pytorch基础:https…

力扣热题100_矩阵_240_搜索二维矩阵 II

文章目录 题目链接解题思路解题代码 题目链接 240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入&#xf…

计算机网络 |内网穿透

其实内网穿透,也挺好玩的,如果在大学的时候,那个时候讲计算机网络的老师能横向延展,估计课也会更有趣不少,本来计算机网络这门课就是计算机课程中可玩性最搞的。 只能说,怪可惜的 回到正题,内网…

提高安全投资回报:威胁建模和OPEN FAIR™风险分析

对大多数人和企业来说,安全意味着一种成本。但重要的是如何获得适合的量,而不是越多越好。然而,你如何决定什么时候可以有足够的安全性,以及你如何获得它?则完全是另一回事。 该篇文章是由The Open Group安全论坛主办&…

k8s之图形界面DashBoard【九】

文章目录 9. DashBoard9.1 部署Dashboard9.2 使用DashBoard 镇场 9. DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard&…

leetcode 热题 100_环形链表 II

题解一: 哈希表:遍历链表,用哈希表存储遍历过的链表节点,判断链表节点是否在哈希表中存在,如果存在说明链表出现过,第一个重复出现的节点即为开始入环的第一个节点。 import java.util.HashSet;public cla…

第八阶段:uni-app小程序 --首页开发(2)

一:分析页面布局 1.1: 功能 搜索框: 轮播图: 分类的导航区: 楼层区: 二: 利用命令创建home分支 git branch git checkout -b home git branch 三: 配置网络请求(main.js 入口函数&#x…