加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 酷站推荐 > 酷站 > 正文

为了抢口罩,我竟然把 https 的原理整明白了

发布时间:2020-03-11 16:51:31 所属栏目:酷站 来源:站长网
导读:疫情当下,口罩难抢啊,没有口罩的我不能出门。在 52 破解上看到了一个口罩查询余量的软件。 软件类似这样子: 我用这软件蹲点抢来好久,也没抢到。于是我寻思着,能不能把这个软件的口罩消息来源给搞到。由于是一枚菜鸡 web 狗,俺也不会逆向。通过 wires

对于这种情况,由于 Premaster Secret 无需交换,中间人就算有私钥也无法获得 Premaster Secret 和 Master Secret。也就是说 Wireshark 无法通过配置 RSA Private Key 的方式解密「使用 ECDHE 进行密钥交换」的加密流量。

第二种 SSLKEYLOGFILE

在系统环境变量加入SSLKEYLOGFILE这个变量,并选择导出目录

为了抢口罩,我竟然把 https 的原理整明白了

Firefox 和 Chrome 都会在系统环境变量存在 SSLKEYLOGFILE 文件路径时,将每个 HTTPS 连接产生的 Premaster Secret 或 Master Secret 存下来。有了这个文件,Wireshark 就可以轻松解密 HTTPS 流量

然后打开 wireshark,ctrl+shift+P 在 Protocols 选择 TLS 协议,并导入即可

为了抢口罩,我竟然把 https 的原理整明白了

即可解除加密

为了抢口罩,我竟然把 https 的原理整明白了

可是这两种对我都没用啊。这个是程序与服务器连接,弄不出来 HTTPS 连接产生的 Premaster Secret 或 Master Secret。而且每次连接的 Secret 都是随机的啊。

下面就要说到另外一种。学安全的大家都知道,burp 在抓取 https 流量的时候,需要信任 burp 的证书。那么大家可想过,这是为何?

burp,Charles,fildder这些抓包工具,主要是利用了中间人攻击的思想,

为了抢口罩,我竟然把 https 的原理整明白了

正常的通信只有 Client,Server。

中间人攻击的时候,加入了一个中间方。Client 信任中间方的证书后,就会和中间方进行通信。然后中间方拿到 Client 发送的请求,就会伪装成 Client 对服务方建立请求。监听双方的通信。

所以只要 Client 信任了 burp 的证书,Client 会和 burp 建立 Https 连接。burp 收到 Client 的请求后,则会去和 Server 建立连接,伪造 Client 通信。

想必看到这里你们脑海中浮现一个疑问:不是说 Https 可以验证通信双方的身份?

是这样子的。Https 有单端验证和双端验证

为了抢口罩,我竟然把 https 的原理整明白了

图片来源:https://www.jianshu.com/p/a2a7ddce7075

一般 Web 应用都是采用 SSL 单向认证的,原因很简单,用户数目广泛,且无需在通讯层对用户身份进行验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端(相对而言)做身份验证。这时就需要做 SSL 双向认证。

为了抢口罩,我竟然把 https 的原理整明白了

客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。

服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书

客户端使用服务端返回的信息验证服务器的合法性,包括:证书是否过期、发型服务器证书的CA是否可靠、返回的公钥是否能正确解开返回证书中的数字签名、 服务器证书上的域名是否和服务器的实际域名相匹配、验证通过后,将继续进行通信,否则,终止通信

客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择

服务器端在客户端提供的加密方案中选择加密程度最高的加密方式。

服务器将选择好的加密方案通过明文方式返回给客户端

客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器

服务器收到客户端返回的加密信息后,使用自己的私钥进行解密,获取对称加密密钥。在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

为了抢口罩,我竟然把 https 的原理整明白了

客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。

服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书

客户端使用服务端返回的信息验证服务器的合法性,包括:证书是否过期、发型服务器证书的CA是否可靠、返回的公钥是否能正确解开返回证书中的数字签名、服务器证书上的域名是否和服务器的实际域名相匹配、验证通过后,将继续进行通信,否则,终止通信

服务端要求客户端发送客户端的证书,客户端会将自己的证书发送至服务端

验证客户端的证书,通过验证后,会获得客户端的公钥

客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择

服务器端在客户端提供的加密方案中选择加密程度最高的加密方式

将加密方案通过使用之前获取到的公钥进行加密,返回给客户端

客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端

服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全

工具是:Burp+Proxiey

设置好规则

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读