网络协议与攻击模拟_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

网络协议与攻击模拟_17HTTPS 协议_第1张图片

2、非对称加密算法

(1)非对称加密算法特点

加密和解密使用的是不同的密钥(公开密钥、私钥),每个用户都可以有自己的公钥和私钥,公钥是公开的,私钥是自己保存,只要一个密钥加密必须使用另一个密钥解密。

加密算法比较复杂,对于大规模的数据进行加密比较影响效率。

(2)常见的非对称加密算法

  • Elgamal:基于DH密钥的交换算法来的
  • RSA
  • ECC
  • Rabin

为了解决使用非对称加密算法后进行大规模数据传输会影响效率的问题,我们采用对称加密和非对称加密算法结合的方式。

网络协议与攻击模拟_17HTTPS 协议_第2张图片

三、PKI体系

1、基本概念

(1)公钥基础设施

通过使用公钥技术(非对称加密算法)和数字签名来确保信息安全

公钥加密技术(非对称加密算法)、数字证书、CA(证书颁发机构)和RA(证书注册机构)组成

实现功能:

  • 身份验证
  • 数据完整性
  • 数据机密性
  • 操作不可否认性

(2)身份认证技术

原始数据通过摘要算法(哈希)计算出信息摘要,使用发送方的私钥进行签名得到数字签名

发送方将携带数字签名的原始信息通过网络传输一起传给接收方

接收方收到后,使用发送方的公钥对数字签名进行验证,得到信息摘要,将原始数据通过相同的摘要算法(哈希)得到信息摘要,然后比对接收到的摘要和自己生成的摘要是否相等。

发送方首先将原始数据通过在摘要

网络协议与攻击模拟_17HTTPS 协议_第3张图片

 发送方首先将原始数据通过摘要算法(SHA)算出信息摘要,并且用自己的私钥进行签名得到数字签名,将数字签名和袁术数据发送给接受方

接收方收到发送方发来的原始数据和数字签名,将原始数据通过摘要算法(SHA)得出信息摘要,再使用发送方的公钥将数字签名解开得到发送方的信息摘要(这里就完成了对发送方的身份认证),比对两个摘要信息是否一致,如果一致,说明数据再传输过程中没有被篡改。

(3)数字证书

  • 保证密钥的合法性
  • 证书的主体可以是用户、计算机、服务等
  • 证书包含的信息
  • 使用者的公钥
  • 使用者的标识
  • 有效期
  • 颁发者的标识信息
  • 颁发者的数字签名

2、数据传输案例

原始信息通过某种摘要算法得到摘要信息,然后使用发送者的私钥得到数字签名,然后把数字签名+原始信息+发送者的证书 通过对称加密算法(公共密钥)进行加密得到密文,然后用接受方的公钥对公共密钥进行加密得到密钥信封,最后,将密文+密钥信封 通过网络传输给接收方。

接收方首先用自己的私钥对密钥信封进行解密得到密钥公共密钥,然后使用公共密钥解开密文得到原始信息+发送方的数字签名+发送方的证书(证书中有发送方的公开密钥),接收方将接收到的数字签名通过证书中的发送方的公开密钥算法得到发送方的摘要,接收方通过和发送方相同的摘要算法得出自己的摘要,然后将另两个摘要信息进行比对看是否相同。

网络协议与攻击模拟_17HTTPS 协议_第4张图片

网络协议与攻击模拟_17HTTPS 协议_第5张图片

3、数字证书颁发机构

  • CA主要是进行颁发和管理数字证书

四、证书服务器和HTTPS服务器

1、部署证书服务器

windows active directory  基于域的,这里用独立的

固定IP Vmnet4

 网络协议与攻击模拟_17HTTPS 协议_第6张图片

证书颁发机构web注册:可以通过web注册颁发证书。

网络协议与攻击模拟_17HTTPS 协议_第7张图片

默认会把web服务器装上

网络协议与攻击模拟_17HTTPS 协议_第8张图片

下一步安装

 安装好之后,点一下这里的感叹号,配置目标服务器的ActiveDirectory证书服务器所需的配置网络协议与攻击模拟_17HTTPS 协议_第9张图片

如果是独立的就是属于Administrators组,如果是企业呢就必须是域管理源 

网络协议与攻击模拟_17HTTPS 协议_第10张图片 勾选 证书颁发机构和证书颁发机构Web注册

网络协议与攻击模拟_17HTTPS 协议_第11张图片

这里选的是独立CA

网络协议与攻击模拟_17HTTPS 协议_第12张图片

根CA

网络协议与攻击模拟_17HTTPS 协议_第13张图片 创建私钥

网络协议与攻击模拟_17HTTPS 协议_第14张图片

加密:默认是RSA加密算法,也可以用其他的。 

网络协议与攻击模拟_17HTTPS 协议_第15张图片

指定CA名称

网络协议与攻击模拟_17HTTPS 协议_第16张图片

 有效期

网络协议与攻击模拟_17HTTPS 协议_第17张图片

证书数据库位置及日志位置

网络协议与攻击模拟_17HTTPS 协议_第18张图片

确认配置

网络协议与攻击模拟_17HTTPS 协议_第19张图片

进度

网络协议与攻击模拟_17HTTPS 协议_第20张图片

网络协议与攻击模拟_17HTTPS 协议_第21张图片

 然后再开始菜单,Windows管理工具->证书颁发机构

里面有吊销的证书,颁发的证书、挂起的申请、失败的申请

主要是审核管理证书,包括吊销和批准。

网络协议与攻击模拟_17HTTPS 协议_第22张图片

服务器自己的证书

然后,我们看下证书颁发机构Web注册

下面有虚拟目录

网络协议与攻击模拟_17HTTPS 协议_第23张图片

看下服务器,它是有自己的证书的

网络协议与攻击模拟_17HTTPS 协议_第24张图片

CA颁发给CA的一个证书

网络协议与攻击模拟_17HTTPS 协议_第25张图片

双击点开

网络协议与攻击模拟_17HTTPS 协议_第26张图片

你有一个该证书对应的私钥,证书里面 会有:

证书的颁发者、算法以及公钥、私钥等信息,它对应的私钥是可以拷贝下来的,点击 复制到文件

网络协议与攻击模拟_17HTTPS 协议_第27张图片

私钥受密码保护,如果要将私钥跟证书一起导出,你必须在后面键入密码。

网络协议与攻击模拟_17HTTPS 协议_第28张图片

网络协议与攻击模拟_17HTTPS 协议_第29张图片

设置密码123456

网络协议与攻击模拟_17HTTPS 协议_第30张图片

网络协议与攻击模拟_17HTTPS 协议_第31张图片

默认是个人信息交换(.pfx文件 )

网络协议与攻击模拟_17HTTPS 协议_第32张图片

网络协议与攻击模拟_17HTTPS 协议_第33张图片

网络协议与攻击模拟_17HTTPS 协议_第34张图片

网络协议与攻击模拟_17HTTPS 协议_第35张图片

网络协议与攻击模拟_17HTTPS 协议_第36张图片

2、创建自签名证书

web服务器自己颁发给自己的

网络协议与攻击模拟_17HTTPS 协议_第37张图片

网络协议与攻击模拟_17HTTPS 协议_第38张图片

3、创建CA颁发给Web的证书

创建证书申请

网络协议与攻击模拟_17HTTPS 协议_第39张图片

网络协议与攻击模拟_17HTTPS 协议_第40张图片

加密方式,有DHC 和RSA可以随便选,默认是RSA

网络协议与攻击模拟_17HTTPS 协议_第41张图片

指定申请名称

网络协议与攻击模拟_17HTTPS 协议_第42张图片

网络协议与攻击模拟_17HTTPS 协议_第43张图片

网络协议与攻击模拟_17HTTPS 协议_第44张图片

创建了一串证书申请,会生成一串码。

网络协议与攻击模拟_17HTTPS 协议_第45张图片

去证书申请页面申请证书

证书申请页面:

网络协议与攻击模拟_17HTTPS 协议_第46张图片

CA注册页面

申请证书

网络协议与攻击模拟_17HTTPS 协议_第47张图片

高级申请

网络协议与攻击模拟_17HTTPS 协议_第48张图片

使用base64编码申请

网络协议与攻击模拟_17HTTPS 协议_第49张图片

网络协议与攻击模拟_17HTTPS 协议_第50张图片

网络协议与攻击模拟_17HTTPS 协议_第51张图片

网络协议与攻击模拟_17HTTPS 协议_第52张图片

然后再证书颁发机构->挂起的申请,这里有一个申请

网络协议与攻击模拟_17HTTPS 协议_第53张图片

网络协议与攻击模拟_17HTTPS 协议_第54张图片

颁发之后

网络协议与攻击模拟_17HTTPS 协议_第55张图片

再次访问,就可以下载证书了

网络协议与攻击模拟_17HTTPS 协议_第56张图片

下载CA证书

网络协议与攻击模拟_17HTTPS 协议_第57张图片

保存下打开看下它是颁发给web的

网络协议与攻击模拟_17HTTPS 协议_第58张图片

 有了证书之后就是可以来到web旧服务器,完成证书申请

网络协议与攻击模拟_17HTTPS 协议_第59张图片

网络协议与攻击模拟_17HTTPS 协议_第60张图片

这里就有了新导入的证书

网络协议与攻击模拟_17HTTPS 协议_第61张图片

证书搞定之后,就可以再网站绑定https了

网络协议与攻击模拟_17HTTPS 协议_第62张图片

添加

网络协议与攻击模拟_17HTTPS 协议_第63张图片

添加https之后,证书这里可以去选

网络协议与攻击模拟_17HTTPS 协议_第64张图片

有三个证书,分别是自己颁发的证书、CA颁发的证书和CA颁发给web的证书。

如果想要实现网站只能通过https的443端口的访问,不能通过默认端口访问,可通过修改SSL设置来实现。

网络协议与攻击模拟_17HTTPS 协议_第65张图片

网络协议与攻击模拟_17HTTPS 协议_第66张图片

虚拟机与服务器之间HTTPS访问测试

开一台windows虚拟机,设置网络vmnet4、设置下IP和web服务器在同一网段,然后ping测试一下网络,

使用http访问下看能否访问

网络协议与攻击模拟_17HTTPS 协议_第67张图片

https访问

由于不是权威机构颁发的证书,

网络协议与攻击模拟_17HTTPS 协议_第68张图片

这里会提示不安全

网络协议与攻击模拟_17HTTPS 协议_第69张图片

网络协议与攻击模拟_17HTTPS 协议_第70张图片

客户机在访问网站的时候,服务器把证书传到客户机了,所以这里可以看到服务器的证书。

五、分析HTTPS流量

1、winshark流量分析

打开Windows上的cwinshark抓包

使用HTTPS访问网站

直接看TLS报文、追踪流

TCP三次握手

网络协议与攻击模拟_17HTTPS 协议_第71张图片

客户机向服务器发TLS握手报文

网络协议与攻击模拟_17HTTPS 协议_第72张图片

client hello握手报文

网络协议与攻击模拟_17HTTPS 协议_第73张图片

这个报文里面的内容会比较多,重点关注两个内容

第一个客户机会生成一个随机数,第二个

网络协议与攻击模拟_17HTTPS 协议_第74张图片

会列出所支持的加密算法

网络协议与攻击模拟_17HTTPS 协议_第75张图片

第二步serverhello

服务器把自己的证书创维客户机,进行密钥交换

server hello done,服务器表示serverhello握手结束

网络协议与攻击模拟_17HTTPS 协议_第76张图片

证书无效

网络协议与攻击模拟_17HTTPS 协议_第77张图片

客户机向服务器发送断开连接请求

网络协议与攻击模拟_17HTTPS 协议_第78张图片

服务器向客户机发送RST报文

网络协议与攻击模拟_17HTTPS 协议_第79张图片

然后客户机和服务器会重新建立TCP连接

网络协议与攻击模拟_17HTTPS 协议_第80张图片

追踪这个流

服务器密钥交换

网络协议与攻击模拟_17HTTPS 协议_第81张图片

客户机密钥交换,更爱加密方式,设置密钥

网络协议与攻击模拟_17HTTPS 协议_第82张图片

服务器更改加密方式

网络协议与攻击模拟_17HTTPS 协议_第83张图片

紧接着才是Application Data开始数据交换

网络协议与攻击模拟_17HTTPS 协议_第84张图片

2、TLS握手过程

网络协议与攻击模拟_17HTTPS 协议_第85张图片

如果你有一个winshark抓出来的报文,且有一个密钥,那就是可以对抓到的TLS加密报文进行解密

前提是你得有正确的密钥,这个密钥一般是公共密钥,因为使用的是对称加密算法进行加密的。

网络协议与攻击模拟_17HTTPS 协议_第86张图片

winshark编辑->首选项->protocols->TLS,把公共密钥导入进去

网络协议与攻击模拟_17HTTPS 协议_第87张图片

网络协议与攻击模拟_17HTTPS 协议_第88张图片

导入进去之后,只要密钥正确,winshark会自动把报文解开。

你可能感兴趣的:(https,网络协议,http)