网络协议与攻击模拟_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会自动把报文解开。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱3(附带项目源码)

效果演示 文章目录 效果演示系列目录前言丢弃物品源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中,我们将探索如何用unity制作一个3D背包、库存、制作、快捷栏、存…

netstat命令

netstat 是一个计算机网络命令行工具,用于显示网络连接、路由表和网络接口等网络相关信息。netstat 命令可以在各种操作系统上使用,包括 Windows、Linux 和 macOS 等。 在使用 netstat 命令时,可以提供不同的选项来显示不同类型的网络信息。…

助力智能化农田作物除草,基于轻量级YOLOv8n开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中,关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了,结合智能化的设备可以实现只能除草等操作,玉米作物场景下的杂草检测我们则少有涉及,这里本文的主要目的就是想要基于最新的YOLOv8下最轻量级…

微信问一问·流量赚钱专栏

微信问一问流量赚钱专栏 1493读者,104内容 看专栏解百惑,赚到钱 问一问免费涨粉利器 独家更新 100 篇「问一问」经验贴。带你入门,解惑,提效,涨粉,赚小钱 零成本单日公众号涨粉 1000 ,专栏成…

《Java 简易速速上手小册》第9章:Java 开发工具和框架 (2024 最新版)

文章目录 9.1 Maven 和 Gradle - 构建与依赖管理的神兵利器9.1.1 基础知识9.1.2 重点案例:使用 Maven 构建 Spring Boot 应用9.1.3 拓展案例 1:使用 Gradle 构建多模块项目9.1.4 拓展案例 2:利用 Gradle Wrapper 确保构建的一致性 9.2 Spring…

【数据结构】哈希表的开散列和闭散列模拟

哈希思想 在顺序和树状结构中,元素的存储与其存储位置之间是没有对应关系,因此在查找一个元素时,必须要经过多次的比较。 顺序查找的时间复杂度为0(N),树的查找时间复杂度为log(N)。 我们最希望的搜索方式:通过元素的…

计算x的平方根x含负数和复数cmath.sqrt(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算x的平方根 x含负数和复数 cmath.sqrt(x) cmath.sqrt(-4)输出的结果是? import cmath import math a 4 print("【显示】a ",a) print("【执行】math.sqrt(a)&…

InstantBox:开箱即用的临时 Linux 环境

在云计算和虚拟化技术日益成熟的今天,我们有时需要一个快速、简单、临时的 Linux 环境来进行各种任务。这就是 InstantBox 的用武之地。 什么是 InstantBox? InstantBox 是一个开源项目,它可以快速启动临时的 Linux 系统,并提供…

HeidiSQL安装配置(基于小皮面板(phpstudy))连接MySQL

下载资源 对于这款图形化工具,博主建议通过小皮面板(phpstudy)来下载即可,也是防止你下载到钓鱼软件,小皮面板(phpstudy)如果你不懂是什么,请看下面链接这篇博客 第二篇:…

Vision Transformer Pytorch 实现代码学习记录

目前运营的社交平台账号: CSDN 【雪天鱼】: 雪天鱼-CSDN博客哔哩哔哩 【雪天鱼】: 雪天鱼个人主页-bilibili.com 可能后续有更新,也可能没有更新,谨慎参考 V1.0 24-02-13 ViT 代码的基本训练, 预测推理脚本运行 1 学习目标 能用官方的 ViT…

React18原理: 核心包结构与两大工作循环

React核心包结构 1 ) react react基础包,只提供定义 react组件(ReactElement)的必要函数一般来说需要和渲染器(react-dom,react-native)一同使用在编写react应用的代码时, 大部分都是调用此包的api比如, 我们定义组件的时候,就是它提供的class Demo ext…

Stream Query Denoising for Vectorized HD Map Construction

参考代码:截止2024.02未开源 动机与出发点 这篇文章是在StreamMapNet的基础上做的,为了在局部地图感知任务上提升时序上的感知稳定性,参考DN-DETR中的去噪方案,为局部地图感知提出一种针对局部地图元素的加噪声方案以及去噪逻辑。…

在线JSON解析格式化工具

在线JSON解析格式化工具 - BTool在线工具软件,为开发者提供方便。JSON在线可视化工具:提供JSON视图,JSON格式化视图,JSON可视化,JSON美化,JSON美化视图,JSON在线美化,JSON结构化,JSON格式化,JSON中文Unicode等等。以清晰美观的结构化视图来展示json,可伸缩折叠展示,…

精品jsp+ssm人事办公管理系统OA考勤考核出入库

《[含文档PPT源码等]精品jspssm基于java的办公管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本&…

【Vue】Vue基础入门

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳重求进,晒太阳 Vue概念 是一个用于构建用户界面的渐进式框架优点:大大提高开发效率缺点:需要理解记忆规则 创建Vue实例 步骤: …

微信发送一条消息经历哪些过程。企业微信以及钉钉的IM架构对比

0.前言 微信和钉钉是经常会与到两个IM通讯软件,今天从技术角度对他们两个进行分析。这样也方便对于构建IM系统有更好的了解和认识。如果目标是想构建一个IM即时通信的app或者说想了解一下一条消息的收发会经历什么过程可以详细了解一下。 我们可以想想一下微信发送…

Linux中有名管道和无名管道

无名管道基础 进程间通信介绍 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共享内存(mmap) 套接字(socket)过时的IPC通信方式 System V IPC 共享内存(sh…

AI大模型开发架构设计(10)——AI大模型架构体系与典型应用场景

文章目录 AI大模型架构体系与典型应用场景1 AI大模型架构体系你了解多少?GPT 助手训练流程GPT 助手训练数据预处理2个训练案例分析 2 AI 大模型的典型应用场景以及应用架构剖析AI 大模型的典型应用场景AI 大模型应用架构 AI大模型架构体系与典型应用场景 1 AI大模型架构体系你…

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的,DT浏览器不同于普通意义上的浏览器,DT的含义就是数据资料的意思,更专注于资料的收集和管理,是一款资料管理类的浏览器,也是一款面向…

学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)

学生公寓管理系统目录 目录 基于Springboot的学生公寓管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、宿舍列表 2、宿舍公告信息管理 3、宿舍公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…