网络协议与攻击模拟_17HTTPS 协议
HTTPS=http+ssl/tls
1、加密算法
2、PKI(公钥基础设施)
3、证书
4、部署HTTPS服务器
- 部署CA证书服务器
5、分析HTTPS流量
- 分析TLS的交互过程
一、HTTPS协议
- 在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性
1、TLS
- 传输层安全协议,SSL和TLS其实是一个协议,SSL2.0版本,自SSL3.0版本后,更名为TLS1.0,目前最高版本是TLS1.3,使用最为广泛的是TLS1.2版本
- 设计目标
- 保密性:所有信息都加密传输
- 完整性:校验机制
- 认证:双方都配备证书,防止冒充
- 互操作、通用性
- 可扩展
- 高效率
- 发展史
- SSL2.0 SSL3.0 TLS1.0 TLS1.1 TLS1.2 TLS1.3
2、http的缺陷
明文传输
只对传输数据的长度进行完整性校验,数据是否有被篡改是不做确认的
3、HTTPS的好处
在传输数据之前,客户端会和服务器端协商数据在传输过程中的加密算法,包含自己的非对称加密算法(RSA/DH),数据签名的摘要算法(MD5/SHA ),加密传输数据的对称加密算法(DES/3DES/AES)
客户端会生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。服务端接收到之后,使用自己的私钥解密得到该字符串,在随后的数据传输中,使用这个字符串作为密钥进行对称加密。
二、加密算法
1、对称加密算法
(1)对称加密算法特点
加密和解密的密钥相同(只有一个公共密钥,发送方和接收方一起使用)
(密钥如何传输问题,密钥多难管理的问题)
由于对称加密算法比较简单,所以在大数据(数据量比较大)传输的时候,使用对称加密算法传输是比较快的。
但是会出现密钥多难管理的情况,发送方针对不同的接收方有不同的密钥,因此会面临密钥多难管理的问题。
(2)常见的对称加密算法
- DES/3DES
- AES
- RC
- IDEA
2、非对称加密算法
(1)非对称加密算法特点
加密和解密使用的是不同的密钥(公开密钥、私钥),每个用户都可以有自己的公钥和私钥,公钥是公开的,私钥是自己保存,只要一个密钥加密必须使用另一个密钥解密。
加密算法比较复杂,对于大规模的数据进行加密比较影响效率。
(2)常见的非对称加密算法
- Elgamal:基于DH密钥的交换算法来的
- RSA
- ECC
- Rabin
为了解决使用非对称加密算法后进行大规模数据传输会影响效率的问题,我们采用对称加密和非对称加密算法结合的方式。
三、PKI体系
1、基本概念
(1)公钥基础设施
通过使用公钥技术(非对称加密算法)和数字签名来确保信息安全
公钥加密技术(非对称加密算法)、数字证书、CA(证书颁发机构)和RA(证书注册机构)组成
实现功能:
- 身份验证
- 数据完整性
- 数据机密性
- 操作不可否认性
(2)身份认证技术
原始数据通过摘要算法(哈希)计算出信息摘要,使用发送方的私钥进行签名得到数字签名
发送方将携带数字签名的原始信息通过网络传输一起传给接收方
接收方收到后,使用发送方的公钥对数字签名进行验证,得到信息摘要,将原始数据通过相同的摘要算法(哈希)得到信息摘要,然后比对接收到的摘要和自己生成的摘要是否相等。
发送方首先将原始数据通过在摘要
发送方首先将原始数据通过摘要算法(SHA)算出信息摘要,并且用自己的私钥进行签名得到数字签名,将数字签名和袁术数据发送给接受方
接收方收到发送方发来的原始数据和数字签名,将原始数据通过摘要算法(SHA)得出信息摘要,再使用发送方的公钥将数字签名解开得到发送方的信息摘要(这里就完成了对发送方的身份认证),比对两个摘要信息是否一致,如果一致,说明数据再传输过程中没有被篡改。
(3)数字证书
- 保证密钥的合法性
- 证书的主体可以是用户、计算机、服务等
- 证书包含的信息
- 使用者的公钥
- 使用者的标识
- 有效期
- 颁发者的标识信息
- 颁发者的数字签名
2、数据传输案例
原始信息通过某种摘要算法得到摘要信息,然后使用发送者的私钥得到数字签名,然后把数字签名+原始信息+发送者的证书 通过对称加密算法(公共密钥)进行加密得到密文,然后用接受方的公钥对公共密钥进行加密得到密钥信封,最后,将密文+密钥信封 通过网络传输给接收方。
接收方首先用自己的私钥对密钥信封进行解密得到密钥公共密钥,然后使用公共密钥解开密文得到原始信息+发送方的数字签名+发送方的证书(证书中有发送方的公开密钥),接收方将接收到的数字签名通过证书中的发送方的公开密钥算法得到发送方的摘要,接收方通过和发送方相同的摘要算法得出自己的摘要,然后将另两个摘要信息进行比对看是否相同。
3、数字证书颁发机构
- CA主要是进行颁发和管理数字证书
四、证书服务器和HTTPS服务器
1、部署证书服务器
windows active directory 基于域的,这里用独立的
固定IP Vmnet4
证书颁发机构web注册:可以通过web注册颁发证书。
默认会把web服务器装上
下一步安装
安装好之后,点一下这里的感叹号,配置目标服务器的ActiveDirectory证书服务器所需的配置
如果是独立的就是属于Administrators组,如果是企业呢就必须是域管理源
勾选 证书颁发机构和证书颁发机构Web注册
这里选的是独立CA
根CA
创建私钥
加密:默认是RSA加密算法,也可以用其他的。
指定CA名称
有效期
证书数据库位置及日志位置
确认配置
进度
然后再开始菜单,Windows管理工具->证书颁发机构
里面有吊销的证书,颁发的证书、挂起的申请、失败的申请
主要是审核管理证书,包括吊销和批准。
服务器自己的证书
然后,我们看下证书颁发机构Web注册
下面有虚拟目录
看下服务器,它是有自己的证书的
CA颁发给CA的一个证书
双击点开
你有一个该证书对应的私钥,证书里面 会有:
证书的颁发者、算法以及公钥、私钥等信息,它对应的私钥是可以拷贝下来的,点击 复制到文件
私钥受密码保护,如果要将私钥跟证书一起导出,你必须在后面键入密码。
设置密码123456
默认是个人信息交换(.pfx文件 )
2、创建自签名证书
web服务器自己颁发给自己的
3、创建CA颁发给Web的证书
创建证书申请
加密方式,有DHC 和RSA可以随便选,默认是RSA
指定申请名称
创建了一串证书申请,会生成一串码。
去证书申请页面申请证书
证书申请页面:
CA注册页面
申请证书
高级申请
使用base64编码申请
然后再证书颁发机构->挂起的申请,这里有一个申请
颁发之后
再次访问,就可以下载证书了
下载CA证书
保存下打开看下它是颁发给web的
有了证书之后就是可以来到web旧服务器,完成证书申请
这里就有了新导入的证书
证书搞定之后,就可以再网站绑定https了
添加
添加https之后,证书这里可以去选
有三个证书,分别是自己颁发的证书、CA颁发的证书和CA颁发给web的证书。
如果想要实现网站只能通过https的443端口的访问,不能通过默认端口访问,可通过修改SSL设置来实现。
虚拟机与服务器之间HTTPS访问测试
开一台windows虚拟机,设置网络vmnet4、设置下IP和web服务器在同一网段,然后ping测试一下网络,
使用http访问下看能否访问
https访问
由于不是权威机构颁发的证书,
这里会提示不安全
客户机在访问网站的时候,服务器把证书传到客户机了,所以这里可以看到服务器的证书。
五、分析HTTPS流量
1、winshark流量分析
打开Windows上的cwinshark抓包
使用HTTPS访问网站
直接看TLS报文、追踪流
TCP三次握手
客户机向服务器发TLS握手报文
client hello握手报文
这个报文里面的内容会比较多,重点关注两个内容
第一个客户机会生成一个随机数,第二个
会列出所支持的加密算法
第二步serverhello
服务器把自己的证书创维客户机,进行密钥交换
server hello done,服务器表示serverhello握手结束
证书无效
客户机向服务器发送断开连接请求
服务器向客户机发送RST报文
然后客户机和服务器会重新建立TCP连接
追踪这个流
服务器密钥交换
客户机密钥交换,更爱加密方式,设置密钥
服务器更改加密方式
紧接着才是Application Data开始数据交换
2、TLS握手过程
如果你有一个winshark抓出来的报文,且有一个密钥,那就是可以对抓到的TLS加密报文进行解密
前提是你得有正确的密钥,这个密钥一般是公共密钥,因为使用的是对称加密算法进行加密的。
‘
winshark编辑->首选项->protocols->TLS,把公共密钥导入进去
导入进去之后,只要密钥正确,winshark会自动把报文解开。
相关文章:

网络协议与攻击模拟_17HTTPS 协议
HTTPShttpssl/tls 1、加密算法 2、PKI(公钥基础设施) 3、证书 4、部署HTTPS服务器 部署CA证书服务器 5、分析HTTPS流量 分析TLS的交互过程 一、HTTPS协议 在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性 1、TLS …...

【linux系统体验】-ubuntu简易折腾
ubuntu 一、终端美化二、桌面美化2.1 插件安装2.2 主题和图标2.3 美化配置 三、常用命令 以后看不看不重要,咱就是想记点儿东西。一、终端美化 安装oh my posh,参考链接:Linux 终端美化 1、安装字体 oh my posh美化工具可以使用合适的字体&a…...
Android 判断通知是进度条通知
1.需求: 应用监听安卓系统中的通知,需要区分出带进度条的通知. 当使用NotificationCompat.Builder构建一个通知时,可以通过调用setProgress(max, progress, indeterminate)方法来添加一个进度条。这里的max参数表示最大进度值,progress表示当前进度值&a…...
学习数据结构和算法的第8天
顺序表的实现 顺序表 本质就是数组 概念及结构 顺序表是用一段物理地址连续的储存单元依次储存数据元素的线性结构,一般情况下采用数组储存,在数组上完成数据的增删。 顺序表就是数组,但是在数组的基础上,它还要求数据…...

JCIM | MD揭示PTP1B磷酸酶激活RtcB连接酶的机制
Background 内质网应激反应(UPR) 中的一个重要过程。UPR是由内质网中的三种跨膜传感器(IRE1、PERK和ATF6)控制的细胞应激反应,当内质网中的蛋白质折叠能力受到压力时,UPR通过减少蛋白质合成和增加未折叠或错…...

基于Java (spring-boot)的音乐管理系统
一、项目介绍 播放器的前端: 1.首页:点击歌单中的音乐播放列表中的歌曲进行播放,播放时跳转播放界面,并显示歌手信息,同时会匹配歌词,把相应的歌词显示在歌词面板中。 2.暂停:当歌曲正在播放时…...
在 MacOS M系列处理器上使用 Anaconda 开发 Oralce 的Python程序
在 MacOS M系列处理器上使用 Anaconda 开发 Oralce 的Python程序 因oracle官方驱动暂无 苹果 M 系列处理器版本,所以使用Arm的python解释器报驱动错误: cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlop…...

四、OpenAI之文本生成模型
文本生成模型 OpenAI的文本生成模型(也叫做生成预训练的转换器(Generative pre-trained transformers)或大语言模型)已经被训练成可以理解自然语言、代码和图片的模型。模型提供文本的输出作为输入的响应。对这些模型的输入内容也被称作“提示词”。设计提示词的本质是你如何对…...

CSS之flex布局
flex布局 CSS的Flex布局(Flexible Box Layout)是一种用于在页面上布置元素的高效方法,特别适合于响应式设计。Flex布局使得元素能够伸缩以适应可用空间,可以简化很多原本需要复杂CSS和HTML结构才能实现的布局设计。 flex布局包括…...
UnityShader——02三大主流编程语言
三大主流编程语言 Shader Language Shader language的发展方向是设计出在便携性方面可以与C/JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“利用图形硬件的并行性,提高算法的效率” Shader language目前主要有 3 种语言&…...

Centos7安装nginx yum报错
Centos7安装nginx yum报错,yum源报错解决办法: 1、更新epel源后,出现yum报错 [roothacker117 ~]# yum install epel-release(安装成功) [roothacker117 ~]# yum install nginx(安装失败,提示如…...

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
🌈个人主页:Sarapines Programmer🔥 系列专栏:《机组 | 模块单元实验》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 一、实验目的 二、实验要求 …...

Asp .Net Core 系列:Asp .Net Core 集成 NLog
简介 NLog是一个基于.NET平台编写的日志记录类库,它可以在应用程序中添加跟踪调试代码,以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点,支持在任何一种.NET语言中输出带有上下文的调试诊断信息…...

一个基于 .NET 7 + Vue.js 的前后端分离的通用后台管理系统框架 - DncZeus
前言 今天给大家推荐一个基于.NET 7 Vue.js(iview-admin) 的前后端分离的通用后台权限(页面访问、操作按钮控制)管理系统框架:DncZeus。 官方项目简介 DncZeus是一个基于 .NET 7 Vue.js 的前后端分离的通用后台管理系统框架。后端使用.NET 7 Entity Framework…...
更换商品图片日期JSON格式报错 - 序列化与反序列化日期格式设置
报错信息 msg: “服务端异常,请联系管理员JSON parse error: Cannot deserialize value of type java.util.Date from String “2023-11-13 13:13:35”: not a valid representation (error: Failed to parse Date value ‘2023-11-13 13:13:35’: Cannot parse da…...

FastJson、Jackson使用AOP切面进行日志打印异常
FastJson、Jackson使用AOP切面进行日志打印异常 一、概述 1、问题详情 使用FastJson、Jackson进行日志打印时分别包如下错误: 源码: //fastjon log.info("\nRequest Info :{} \n", JSON.toJSONString(requestInfo)); //jackson …...
嵌入式大厂面试题(2)—— 富士康
从本篇开始将会更新历年来各个公司的面试题与面经,题目来自于网上各个平台以及博主自己遇到的,如果大家有所帮助,帮忙点点赞和关注吧! 岗位:嵌入式软件工程师。 面试时间:30分钟。 岗位职责:官网…...
力扣_字符串4—编辑距离
题目 给你两个单词 w o r d 1 word1 word1 和 w o r d 2 word2 word2, 请返回将 w o r d 1 word1 word1 转换成 w o r d 2 word2 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 方法—动…...

MySQL篇----第二十篇
系列文章目录 文章目录 系列文章目录前言一、NULL 是什么意思二、主键、外键和索引的区别?三、你可以用什么来确保表格里的字段只接受特定范围里的值?四、说说对 SQL 语句优化有哪些方法?(选择几条)前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍…...
Promise 基础
Promise 基础 理解 抽象表达: Promise 是一门新的技术(ES6 规范)Promise 是 Js 中进行异步编程的新的解决方案(旧方案是使用回调函数) 具体表达 从语法上来说,Promise 是一个构造函数从功能上来说&#x…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...