25|技术解析:HTTPS跟踪详解(下)
倪朋飞

本节课音频暂缓更新
你好,我是倪朋飞。
上一讲我带你一起回顾了 HTTP 和 HTTPS 协议的工作原理,并以套接字 eBPF 程序为例带你学习了如何使用 eBPF 程序跟踪 HTTP 网络包。由于 HTTP 网络包传输的数据是明文的,所以我们可以直接从套接字中读取到 HTTP 请求和响应的具体内容。而 HTTPS 则不同,由于 TLS 加密的过程发生在用户态,从内核态看到的总是加密后的数据。所以,要跟踪 HTTPS 网络包,就必须要从用户态跟踪入手了。
那么, 该如何使用 eBPF 用户态程序跟踪 HTTPS 呢,今天,我就带你一起去看看这个问题。
如何确定用户态跟踪点
既然要使用用户态程序跟踪 HTTPS,那么我想进入你脑海的第一个问题就是有哪些用户态跟踪点可以使用呢?没错,这正是我们需要解决的第一个问题。
用户态不同于内核,每个应用程序的源码、编程语言、运行时等都不同,所以在选择跟踪点时需要考察它们有哪些共同的部分,这样跟踪共同的模块才可以涵盖更广的应用场景,避免为每一个应用再去做适配(当然,通用性也是 eBPF 的一个目标)。
对于我们今天的主题 HTTPS 来说,跟踪的主要难点在于 TLS 加密,而你一定听说过 TLS 加密协议最流行的开源库——OpenSSL。OpenSSL 是一个功能强大的开源加密库,广泛应用于加密通信、证书管理和数据安全中。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. HTTPS跟踪的主要难点在于TLS加密,需要从用户态跟踪入手。 2. 使用ldd命令可以确认应用程序是否使用了OpenSSL库,而具体的挂载点则是应用中所调用的函数,如SSL_read/SSL_write系列函数。 3. 用户态eBPF程序的开发步骤可以在课程内容中找到,可以回顾如何使用eBPF用户态跟踪排查应用程序。 4. 用户态前端程序的开发需要关注eBPF程序的挂载方式,以及动态查找动态链接库路径的实现。 5. 通过用户态eBPF程序成功跟踪到了HTTPS请求的详细内容,解决了无法对HTTPS进行抓包的问题。 6. OpenSSL的基本工作原理以及用户态eBPF程序的示例带领读者学习了如何跟踪HTTPS网络包。 7. 跟踪HTTPS请求的关键在于跟踪SSL_read/SSL_write函数,但要完整跟踪所有应用的HTTPS请求,还需要跟踪和支持其他主流的加密库。 8. 在访问HTTPS网站时,输出的内容可能会有乱码,需要改进跟踪程序以更好地支持这类访问请求。 9. 通过实战演练和交流进步,可以更好地理解和应用用户态eBPF程序进行HTTPS跟踪。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《eBPF 核心技术与实战》,新⼈⾸单¥59
《eBPF 核心技术与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论