HTTPS的双向认证(十)

这篇文章结合前面所学习的知识,接下来使用wireshark对「https的双向认证连接」进行协议分析。

首先按照前面文章所讲,使用docker-compose把做好的demo容器在host启动起来:

然后按照之前文章介绍的方法在host这边使用curl命令,加载所需证书,请求容器的https服务:

可以看到容器已经可以访问了。此时我们在host启动wireshark:

如上所示,我们启动wireshark,然后如上图所示点选Loopback: lo0这个interface开始侦听端口:

如上所示wireshark开启了数据包的侦听,此时在filter里面输入tls

这样让wireshark只显示抓取到的ssl/tls协议相关的数据包。因为https协议本身也是tls协议上面进行http通信,所以这样就可以抓取到https的数据包。此时我们再次使用curl访问docker容器的https服务,然后回到wireshark这边看数据包:

此时看到wireshark已经可以抓到通信过程了。从上面的数据分析来看,可以看到在Server Hello这里,「服务端」有一个要求「客户端」出示证书的请求:

然后可以看到下面一条「客户端」返回的数据,「客户端」向「服务端」出示了自己的「客户端证书」:

以上就是对「ssl双向握手的协议分析」。

如果我们故意把这个过程中一些环节破坏掉,可以看到上面的握手过程中的一些failures。这个后续再开一篇文章看,这篇就讲到这里。

My Github Page: https://github.com/liweinan

Powered by Jekyll and Theme by solid

If you have any question want to ask or find bugs regarding with my blog posts, please report it here:
https://github.com/liweinan/liweinan.github.io/issues