网络协议九 应用层 HTTPS

一 什么是 HTTPS

前面我们看到HTTP 有很多安全问题,因此引出了 对称加密 和 不对称加密。

那么这个对称加密和不对称加密,我们怎么和HTTP结合起来呢?HTTPS 就是弄好的 HTTP 和 加密结合的协议。

通过HTTP加密后的数据,整个传输过程中 请求报文  和 响应报文 所有的东西都是加密的。

也就是说:请求行,请求头,请求体,状态行,回复头,回复体 都是加密的

二 什么是 SSL/TLS 协议 ,TLS 是 SSL 升级后的名字

三. TLS 协议 工作在那一层

四 。OpenSSL 是 SSL/TLS协议的开源实现。

五。重点 HTTPS 的通讯过程

六 TLS 1.2 的连接过程

1. client hello 是浏览器发送给服务器的第一条信息,包括我的TLS版本,客户端的随机数,客户端支持的加密组件

是客户端发送给 服务器的第一条信息,里面存储的当前浏览器的 对于 TLS的支持情况。

当前的浏览器使用的TLS 版本是1.2,

我发送给你的 随机数是 Random Bytes: d5b62595427fa641557ee9d4ef5d83eca2619b2e3fe253dae25d85df

我支持的的 加密组件列表有 16组

使用wireshark 的 捕获 过滤器,注意语法,和显示过滤器的语法不一样

由于https 的端口是443,因此我们port 要等于443

我们访问www.baidu.com 抓到的包分析

注意这是 客户端浏览器发送给 baidu 服务器的。在发送 client hello 的时候,我们告诉baidu 的服务器:

当前的浏览器使用的TLS 版本是1.2,

我发送给你的 随机数是 Random Bytes: d5b62595427fa641557ee9d4ef5d83eca2619b2e3fe253dae25d85df

我支持的的 加密组件列表有 16组

            Cipher Suites (16 suites)Cipher Suite: Reserved (GREASE) (0x5a5a)Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302)Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)Cipher Suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)

实际上,发送给服务器端 client hello 后,服务器端会立即回复一个 ack ,这个在PPT 中并没有显示出来,这里知道就好

2. server hello 是服务器发送给客户端浏览器的信息,包括我的TLS版本,服务器端的随机数,服务器端从客户端端传递过来的加密组件中选择的一种加密方式

版本号

Version: TLS 1.2 (0x0303)

随机数:

Random: 66bc17ae770ed0e9e115d372a6eb527a875334bf53e7f71ad4fdba0479a34470

从客户端传递的加密列表中 选择一种 加密组件作为 服务器端和 客户端 的加密规则:

加密组件是一组加密规则的 统称
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)

3. Certificate,从服务器发送过来的公钥证书(该证书被CA签名过)

4. Server Key Exchange

将 实现加密算法的一个参数传递给 客户端

第三步和第四步和第五步的数据是一次发过来的

5. server hello done

截止第五步完成我们已经得到了如下的信息

6.clientKey Exchange

将 实现加密算法的一个参数传递给 服务器端

截止第六步完成,就有了会话密钥

7.change Cipher spec

第七步 客户端 浏览器 告诉 服务器 之后的通讯我们会通过 会话密钥 进行通讯,仅仅是一个通知

8.finished

第八步的作用是 校验。

会将前面的

9.change Cipher spec

第9步 服务器 告诉 浏览器 客户端 之后的通讯我们会通过 会话密钥 进行通讯,仅仅是一个通知

10.finished

然后效验

那么下来的通讯就是可以使用加密的通讯了

使用wireshark部分解密HTTPS

把服务器改成 https- 配置HTTPS,使用java 工具生成 证书,并改送tomcat 的 server.xml文件

keytool 是 java bin 目录下自带的一个工具

将生成的mj.jks 文件放在 tomcat 的conf 目录下,并改动server.xml文件

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

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

相关文章

Fly Catcher:通过监测恶意信号来检测飞机欺骗

Fly Catcher 的开发者 Angelina Tsuboi 是一名飞行员、网络安全研究员和发明家。 她决定着手一个将这三个不同兴趣结合起来的项目,以解决航空雷达系统的一个重大问题。 ADS-B 系统最初用于基本的飞机定位和跟踪,Tsuboi 对该系统的网络安全方面进行了深…

Java语言程序设计——篇十四(1)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…

日撸Java三百行(day25:栈实现二叉树深度遍历之中序遍历)

目录 一、栈实现二叉树遍历的可行性 二、由递归推出栈如何实现中序遍历 1.左子树入栈 2.根结点出栈 3.右子树入栈 4.实例说明 三、代码实现 总结 一、栈实现二叉树遍历的可行性 在日撸Java三百行(day16:递归)中,我们讲过…

【C++11】入门基础

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目录…

minikube 实践练习4 - 滚动更新

1. 应用版本更新 #查看image kubectl describe pods#设置应用的image为新版本 v1 -> v2 kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcampdocker.io/jocatalin/kubernetes-bootcamp:v2#验证更新结果 export NODE_PORT"$(kubectl get services/…

糟糕界面集锦-控件篇11

GUI 的一个设计基本准则是:如果控件被禁用,那么就应该表现出来。这样不管是菜单项、命令按钮、列表框、下拉列表,我们只要一瞥就可以知道是否可用。奇怪的是为什么微软在按钮被禁用时不把它显示出来?这幅图片来自Office95 系列中的…

Redis操作--RedisTemplate(二)StringRedisTemplate

一、介绍 1、简介 由于存储在 Redis 中的 key 和 value 通常是很常见的 String 类型,Redis模块提供了 RedisConnection 和 RedisTemplate 的扩展,分是 StringRedisConnection 和 StringRedisTemplate,作为字符串操作的解决方案。 通过源码…

【区块链+金融服务】第一创业证券开发银行间报价 Dapp | FISCO BCOS应用案例

在银行间市场现券交易的过程中,通过银保监会发牌的代理机构进行报价交易,已解决无代理阶段存在的许多问题。 但是由于业务需要,使用以前模式进行报价交易的仍占有一定比例。 针对这一现状,第一创业证券基于 FISCO BCOS 区块链底层…

多种办公功能的WORD VBA程序

word的VBA办公助手 源代码 Option Explicit 需要引用 excel 16.0 库 所有内容仅供个人学习使用,严禁传播。1-公共变量-表格属性------------------------------------------------------------------------- Dim Hg% hg:行高 Const K1 0.1 Dim Flg_bh As Boolean …

专业技能——Redis常用命令和持久化策略,内存回收策略+主从模式,哨兵模式,集群模式+缓存穿透击穿雪崩

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings),散列(hashes)…

Kali Linux-设置系统24小时时间制

文章目录 设置系统24小时时间制 设置系统24小时时间制 在Kali Linux中,如果系统时间不是以24小时制显示,你可以通过修改系统时间格式配置文件来调整为24小时制。以下是具体的操作步骤: 1.编辑/etc/locale.conf配置文件。 vim /etc/locale.c…

微信云开发云存储 下载全部文件

一、安装 首先按照这个按照好依赖,打开cmd 安装 | 云开发 CloudBase - 一站式后端云服务 npm i -g cloudbase/cli 安装可能遇到的问题 ‘tcb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。-CSDN博客 二、登录 在cmd输入 tcb login 三、…

VirtualBox安装Oracle Linux 7.9全流程

1.准备工作 1.1 VirtualBox下载 下载地址1: Downloads – Oracle VM VirtualBoxhttps://www.virtualbox.org/wiki/Downloads 下载地址2: https://www.oracle.com/virtualization/virtualbox/ 选择以上的任意一个地址都可下载到。 1.2 Oracle Linux 操作…

JavaScript初级——基础知识

一、JS的HelloWord 1、JS的代码需要编写到script标签中 2、JS的执行是根据语句从上到下一次执行的。 二、JS的编写位置 1、可以将js代码编写到标签的onclick属性中,当我们点击按钮时,js代码才会执行。 2、可以将js代码写在超链接的href属性中&#xff0…

HDFS的透明加密

一、HDFS透明加密原理 Hadoop的透明加密(HDFS Transparent Data Encryption) - TDE 1.HDFS中的数据明文存储 HDFS中的数据会以block的形式保存在各台数据节点的本地磁盘中,但这些block都是明文的。 通过Web UI页面找到Block的ID和副本位于的机器信息 如果在操作系统中直接访…

csrf漏洞(二)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文依靠phpstudy以及dvwa靶场进行操作,具体搭建流程参考:xss漏洞(二,xss靶场搭建以及简单利用) 前篇…

docker 部署 遇到的一些问题

1. nacos 部署问题 1.1 问题 springboot 服务器启动失败 AnnotationNacosPropertySourceBuilder - There is no content for NacosPropertySource from dataId[rsa.yaml] , groupId[DEFAULT_GROUP] , properties[{accessKey${nacos.access-key:}, clusterName${nacos.cluster…

leetcode387. 字符串中的第一个唯一字符,哈希表

leetcode387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 示例 1: 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例…

Xilinx FPGA:vivado关于以太网的零碎知识点

一、OSI七层模型 为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。 OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、…

【leetcode】回文链表-25-3

方法:快慢指针递归遍历 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) …