Feature Request: Add libnnzsrv.so (Oracle) TLS master secret extraction support
#999 opened on May 7, 2026
Description
Feature Request: Support Oracle's libnnzsrv.so (nz* symbols) for Master Secret Extraction
Background:
Currently, eCapture's OpenSSL probe targets the standard OpenSSL API (e.g., SSL_do_handshake, SSL_SESSION_get_master_key) and attaches uprobes to those symbols to extract TLS master secrets. However, Oracle's libnnzsrv.so library, as used in Oracle Database clients and some proprietary apps, does not expose those OpenSSL symbols. Instead, it uses custom symbols with an nz* prefix for its own TLS implementation, causing eCapture's current uprobes to miss these flows entirely.
Proposed Solution:
- Use
readelf -sornm -Donlibnnzsrv.soto identifynz*symbols that are analogous to the OpenSSL functions currently hooked by eCapture. - Create a new probe following the pattern of the existing OpenSSL probe, but targeting these
nz*symbols instead. - Implement a custom uprobe for the key extraction logic in Oracle's TLS implementation.
- Optionally, document any gotchas or kernel-version-specific caveats encountered during development.
Expected Outcome:
- Enable extraction of TLS master secrets from Oracle flows that use
libnnzsrv.so. - Allow community contributions and feedback to help refine coverage for less common enterprise TLS stacks.
Reference:
- Related maintainer feedback (from CFC4N): libnnzsrv is too niche for official roadmap but community PRs are encouraged!
Notes:
- This feature is not on the official roadmap due to the niche nature of Oracle TLS usage.
- Upstream focus will remain on OpenSSL, GnuTLS, BoringSSL, and other mainstream stacks, but this enhancement will help users in specialized environments like Oracle DB deployments.
If anyone in the community has Oracle DB internals experience or sample binaries, help is welcome!