Product Requirements Document (PRD)

Description

go-ebpf-proxy is a sidecar that transparently redirects an unmodified application's outbound IPv4 TCP egress using eBPF (cgroup/connect4, no iptables) to a pass-through L4 relay, and passively extracts the app's TLS session keys via an LD_PRELOAD interposer that registers OpenSSL's own keylog callback — producing NSS-format keylogs so the captured (still end-to-end encrypted) TLS 1.2/1.3 traffic can be decrypted and inspected offline. No TLS termination, no MITM CA.

Problem to solve

Developers and security engineers need to inspect the plaintext of an application's encrypted egress without modifying the application, without iptables (blocked by policy/missing modules), and without a MITM CA (defeated by certificate pinning and weakening the app's trust), including TLS 1.3 flows that forward secrecy makes impossible to decrypt with static keys.

Goals

Success criteria

curl <https://example.com> in the app container succeeds end-to-end through the relay (validating the real server certificate, no -k); the resolved original destination matches; and the captured pcap decrypts to plaintext HTTP using the preload-interposer-emitted NSS keylog.

MVP Scope & Constraints

Delivery milestones (vertical slices)