【聊聊WiFi那些事】HTTPS抓包原理一

作者: mymdeep | 来源:发表于2018-04-18 14:27 被阅读102次
image

【聊聊Wifi那些事专题】已经写了两三篇,demo也放出去了,接下来会介绍的就是抓包,说到抓包不可避免的要说到https,如果想抓到https的包就要先了解https的原理。这篇文章就要对https进行简单介绍,下一篇文章会介绍具体抓包方案。

加密

对称加密

对称加密就是加密解密使用同一个秘钥,也就是一把钥匙开一把锁,用哪把钥匙锁上的,就用哪把钥匙打开。

常见的对称加密算法:DES,AES,3DES等等。

非对称加密

非对称加密是指加密和解密用不同的秘钥,一个公开的公钥,一个只有自己知道的私钥,公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。一把加锁的钥匙,一把解锁的钥匙。

常见的非对称加密算法:RSA,ECC

与HTTP的几点区别

1. https协议需要到证书颁发机构(Certificate Authority,简称CA)申请证书,一般免费证书很少,需要交费。

2. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

3. http和https使用的是完全不同的连接方式,使用的端口也不一样,前者是80,后者是443。

HTTPS设计原理

为什么不使用http

想这样一个场景,客户端需要输入账号密码,将账号密码发给服务器进行登录,这些账号都是明文的,肯定不行,那只要抓包就能看到内容对吧。局域网内很容易窃取账号密码。

那好吧,只能加密了,假设加密规则为A,服务器解密规则也为A,这就是上面提到的对称加密,这样总没问题了吧。这时会遇到两种情况:

1. 客户端是某个app,服务器的接口只有该app能访问,这样加密规则只有这个app公司内部的人能知道,这个没有关系

2. 客户端是浏览器,浏览器要求能够打开各个服务器的网页,那么加密规则就要求所有的浏览器都得知道,而且需要知道所有的网站的加密规则,如果这样的话,加密规则就不再是秘密了,既然不是秘密,那也就没意义了。

试试非对称加密

根据刚才讲过的非对称加密原则,客户端只要有公钥,就可以对内容加密,而且每个客户端的公钥都是不一样的,而且公钥还不能解密,解密的私钥只有服务器才有。这样看似安全了。

但是新的问题产生了,客户端怎么拿到公钥。

也有两种形式:

1. 服务端下发给客户端,但是中间可能被拦截,然后掉包。

2. 还可以直接配置在客户端,但是一个客户端配置所有网站的公钥,似乎不大现实。

那么看来只能用第一种,而且为了防止掉包,我们可以去做个验证。就好比,你通过x宝买了一个钻石,X宝给你发的是真货,有证书的,但是钻石在运送过程中可能会被掉包,怎么办,只能我们收到钻石之后,去相关检测机构,拿着证书跟这个钻石去检测。

检测机构

看一下下面这张图,大家可能会好理解一些。


image.png

网站好比是T包,用户是客户端,公钥相当于钻石,网络就是物流公司,那么检测机构是什么呢?如果有了这个检测机构不就可以对公钥进行验证了。

假设有一个机构,可以对所有的网站证书进行规则的统一,客户端也能对证书的规则进行校验了。

这个机构就是数字证书签发机构(CA),好像久仰大名了,对就是你经常听说的那个机构。那么上面提到的证书就是HTTPS中数字证书,证书编号就是数字签名。

每一个正规的网站都要去这个机构申请证书,这个机构来保证规则,这里需要再假设一下这个规则是G,待会需要用到这个G。

客户端怎么去这个机构验证从网站拿到的证书呢?

请求这个机构的接口,显然链路太长,不合理,那么只能是放在客户端了。

这里有人可能会问,世界上那么多机器(手机,电脑),检测机构怎么放进去呢。

其实,不管什么机器,但凡操作系统或者浏览器,都会维护一个第三方机构的列表,客户端收到服务端的证书,就去表里查,由于这个机构给服务器的都有一个规则G,那么根据本地的就可以根据这个规则G,生成对应的公钥。这个公钥可不是请求的公钥,咱们假设这个是公钥A吧,客户端接收到的证书编号是用机构的私钥加密,这样,机构只要配置公钥即可。客户端拿着本地的公钥去解密机构加密的证书编号,根据规则验证证书正确,ok,可以相信服务器给的公钥B了,然后再拿公钥B去请求即可。如下图所示:

image.png

好了这基本就是HTTP的设计历程了,接下来再讲抓HTTPS包的原理就会好理解的多。

无证书的网站访问

很多网站或者服务器是没有CA机构颁发的证书的(毕竟申请要花钱的),所以他们传给客户端的证书是不受信任的,那怎么办?

上面提到过系统会维护一个第三方机构的列表,客户端收到服务端的证书,会去表里查,那么我在这个列表中添加一个证书即可。添加完毕,收到服务器返回的证书,我也可以同样拿到公钥验证服务器的证书了。

总结

了解了上面说到的原理,接下来再来讨论如何抓包就好说多了,在这里要声明,我不是介绍抓包工具,要介绍抓包原理。

相关推荐

【聊聊Wi-Fi那些事】系列专题一

【聊聊Wi-Fi那些事】各类网络协议简介

【聊聊Wi-Fi那些事】WiFi相关几个小功能

一起分享技术的点滴,关注公众号加入我们吧。

image

相关文章

  • 【聊聊WiFi那些事】HTTPS抓包原理一

    【聊聊Wifi那些事专题】已经写了两三篇,demo也放出去了,接下来会介绍的就是抓包,说到抓包不可避免的要说到ht...

  • https抓包原理

    首先关于http/https的原理,以及抓包原理,请移步这篇文章http/https的原理[https://www...

  • 抓包设置及原理

    使用Charles抓包https 手机和Mac连上同一wifi(或手机连上Mac的共享wifi),按照 https...

  • https原理

    1.关于https原理思考和charls抓包https原理 HTTP与HTTPS的区别

  • HTTPS 抓包原理以及 Android 端如何防止抓包

    抓包原理 抓包的基本原理就是中间人攻击 HTTPS 的握手过程。Mac 上可使用 Charles 进行抓包。本质上...

  • Charles 抓包HTTPS原理

    客户端向服务器发起HTTPS请求 Charles拦截客户端的请求,伪装成客户端向服务器进行请求 服务器向“客户端”...

  • Charles 抓包HTTPS原理

    客户端向服务器发起HTTPS请求 Charles拦截客户端的请求,伪装成客户端向服务器进行请求 服务器向“客户端”...

  • iOS 如何防止抓包

    iOS 如何防止抓包 1、抓包原理 为了防止被抓包那么就要了解抓包的原理。 其实原理很是简单:一般抓包都是通过代理...

  • HTTPS那些事(一)HTTPS原理

    谣言粉碎机前些日子发布的《用公共 WiFi 上网会危害银行账户安全吗?》,文中介绍了在使用 HTTPS 进行网络加...

  • Android端Charles抓包

    目录介绍 01.下载安装 02.抓包代理设置 03.抓包Https操作 04.抓包原理介绍 05.抓包数据介绍 0...

网友评论

    本文标题:【聊聊WiFi那些事】HTTPS抓包原理一

    本文链接:https://www.haomeiwen.com/subject/zjvvkftx.html