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

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

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

https

下面我用 wireshark 来抓一次 csdn 的 https 连接请求。

https

首先先看 ClientHello,TLS 版本信息,Session,以及支持的密码套件

https

随后的 ServerHello,不难发现选择了 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 的加密方法

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

可以看到,ServerHello 后面还跟着一个数据包。其中有三个关键字:Certificate 、Certificate Status 、Server Key Exchange

Certificate 就是证书信息:

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

从数据包可以看出是由 签发,并且采用 sha256WithRSAEncryption 进行签名

Certificate Status 则是证书的状态信息,包含证书的有效期至

https

最后 Server Key Exchange 则是 Server 的 Public Key 了

https

由于协商出来的是 ECDHE 密钥协商算法 ,所以 Server 把 ECDH 的参数和公钥发给 Client。这里的 ECDH 曲线是 secp256r1,公钥是 047b36092eb10...............

至此 ServerHello 结束。

由于是 ECDHE 协商算法,所以 Client 需要发送 ECC DH 公钥,也有三个关键字:

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

Client Key Exchange 不必多说,是 Client 发送的 ECCDH 公钥,其值是 04acb6e.....

ChangeCipherSpec 消息结构很简单,发送这条消息是为了告诉 Server ,Client 可以使用 TLS 记录层协议进行密码学保护了。第一条进行密码学保护的消息是 Finished 消息。

https

后面两个数据包则是流量控制。有助于确保只传播接受者需要使用的数据数据。之后就是新的 session 建立,Server 返回 ChangeCipherSpec 和 finish。这里还有一部分的 TLS 会话复用机制。请读者自行查阅。

目前为止 https 整个连接已经建立起来了。

现在我们已经解决了Https如何给数据加密的过程。

2. 现在来看第二个问题:如何验证通信双方的身份?

在上面的 wireshark 流量分析中,我们可以看到一个 Certificate 的身影。没错, HTTPS 通过使用 证书 来对通信方进行认证。

数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。

进行 HTTPS 通信时,服务器会把证书发送给客户端,客户端取得其中的公开密钥之后,先进行验证,如果验证通过,就可以开始通信。

举个例子

https

上图中的步骤 1、2、3、4 并不是每次都需要这样请求。1、2、3 步只需要在注册新的公钥的时候才会进行。第四步仅在第一次需要使用公钥密码的时候需要,之后保存到了电脑中,就不用每次都请求公钥了。

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

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

推荐文章
    热点阅读