Decrypting SSL at scale with eBPF, libbpf and K8s(containiq.com) |
Decrypting SSL at scale with eBPF, libbpf and K8s(containiq.com) |
Wait, how can this be? Doesn't OpenSSL need to encrypt and decrypt all of the data that goes across the connection, for the connection's entire lifetime?
This is in process, we are using eBPF to read the keys out of memory in process and then write them into a pcapng file that tshark can use.
The handshake is only partially encrypted, the public keys and client random can be traced from the network, but the private keys need to be read from memory.
Some of the keys necessary to decrypt the stream are only found in memory for a limited time after which they are overwritten, if the keys are not retrieved in this time window the connection cannot be decrypted by tshark.