内容提要
eCapture是一个无需CA证书的HTTPS/TLS明文抓包工具,支持Linux和Android。最新版本提升了性能10倍,支持OpenSSL 3.2。
延伸解读
性能优化:从30秒到7秒的突破
文章提到,用户反馈在TLS模式下,执行一千万次SSL_write操作,开启eCapture后耗时从6秒增加到30秒。作者通过分析OpenSSL源码,针对Server和Client模式选择合适的HOOK函数,减少SSL_write和SSL_read高频调用的触发机制,最终将耗时降低到7秒。这表明性能优化主要源于HOOK函数的选择,而非底层架构的大改。
OpenSSL 3.2支持:快速响应社区需求
OpenSSL 3.2.0于2023年11月底发布,其核心ssl_st结构体发生较大变化,导致eCapture捕获TLS通讯密钥的功能失效。作者在确认后迅速重新实现密钥提取代码,并在v0.7.3版本中提供支持。尽管该版本可能尚未被大型应用广泛采用,但eCapture的快速适配体现了对社区反馈的重视。
未来计划:QUIC TLS明文捕获
文章透露,eCapture计划支持QUIC TLS的明文内容捕获,预计在春节后安排。目前,OpenSSL 3.2.0已新增对QUIC TLS的支持,但eCapture尚未实现。届时,eCapture将能在无需CA证书的情况下捕获QUIC TLS的明文内容,进一步扩展其应用场景。
Q&A
eCapture是什么工具?它支持哪些平台?
eCapture是一个无需CA证书、无侵入的HTTPS/TLS明文抓包工具,支持Linux 4.18以上版本和Android arm64 5.5以上版本。
eCapture v0.7.3版本有哪些主要更新?
eCapture v0.7.3版本性能提升10倍,支持OpenSSL 3.2,千万次调用仅增加2秒耗时。
eCapture在TLS模式下对性能有什么影响?如何优化的?
在TLS模式下,开启eCapture后,执行一千万次SSL_write写数据,耗时从6秒增加到30秒,性能影响显著。通过分析OpenSSL类库,选择合适的HOOK函数(如SSL_get_wbio、SSL_in_before等),减少SSL_write和SSL_read高频调用下的触发机制,将耗时从30秒降低到7秒。
eCapture为什么需要更新以支持OpenSSL 3.2?
因为OpenSSL 3.2.0中核心ssl_st结构体发生很大变化,导致eCapture捕获TLS通讯密钥的功能无法使用,所以需要更新以适配新版本。
eCapture未来有什么计划?
eCapture计划支持QUIC TLS的明文内容捕获,预计春节后安排。
eCapture在GitHub上的星数增长情况如何?
eCapture在GitHub上的星数从7K增加到7.8K,未能达到年底1万颗星的目标。