https的中间人攻击和防范

本文详细介绍了如何在Windows平台下实施HTTPS的中间人攻击,包括使用OpenSSL制作证书、编写代理程序以及将根证书添加到受信任的发布机构。同时,阐述了防范中间人攻击的主要策略——通过证书双向认证来防止伪造服务器。了解这一攻击方式有助于提升网络安全意识和防护能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https的中间人攻击和防范

这里的中间人场景主要是Windows平台下的C/S架构劫持,技术指的是SSL劫持攻击,即SSL欺骗,剥离攻击暂不涉及。整体原理是伪造证书,既充当请求方的server角色,又充当真正server的请求方。以此来获取和篡改通信的明文报文数据。
在这里插入图片描述

整体流程

  1. 使用openSSL制作证书
  2. 编写代理程序
  3. 根证书添加到可信任发布机构
  4. 设置系统代理

证书制作

首先装个openSSL,安装包下载地址:http://slproweb.com/products/Win32OpenSSL.html

  1. 生成CA证书(root ca证书)
    生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.crt)(CA给自已颁发的证书)
  2. 用上一步生成的根证书签发应用证书
    生成私钥(.key)–>生成证书请求(.csr)–>用CA根证书签名得到证书(.crt)

到这里,证书就已经准备完成,在Windows平台下把刚用到的ca证书添加到可信任的证书颁发机构,生成的应用证书在下一步代理server中使用。

代理server

  • 首先这个程序角色是一个https的server,加载上一步的应用证书,搭建https 本地server,对需要劫持的接口作响应,给请求方返回符合协议格式的假数据;
  • 其次,这个程序角色也是个假的请求方,向真实的服务器请求劫持的接口,获得真正的服务器返回数据;
  • 代理程序完成之后,需要设置端口转发,好让请求方先跟我们的代理通信。这里简单的方法可以是改hosts文件,但是改hosts收到权限等诸多限制,正统一些的方法是设置系统代理,这就需要代理程序只拦截我们感兴趣的报文,对于其它的通信则进行单纯的转发。

防范思路

以上是https中间人攻击大致实现过程,其根本原理是利用https建立连接的特性,自签证书实现伪造server的目的。针对这种方式,证书的双向认证会很好地解决这一风险。客户端向服务端请求证书时做判断,服务器也对请求方的证书做校验,防止中间人伪造证书的攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值