Adding End-to-End Encryption for Proxied Data

blog.px.dev
3 min read
standard
End-to-end encryption has become increasingly popular as users demand that any data they send - a file, email, or text message - is not decipherable by any…
End-to-end encryption has become increasingly popular as users demand that any data they send - a file, email, or text message - is not decipherable by any unauthorized recipients. This consumer trend is evident in the recent surge in popularity of Signal, an encrypted instant messaging service.

In this post, we'll cover what end-to-end encryption is and walk you through how we implemented it in our system.

Why End-to-End Encryption?

Pixie is designed with a hybrid cloud architecture where data is collected and stored on the customer's environment. The cloud component is used for user management, authentication and proxying data.

This is a simplified architecture diagram of our system before end-to-end encryption.

We use standard security practices to secure data in transit; all network communication between the cluster, proxy and client is TLS encrypted.

But TLS encryption is only point-to-point. When data passes internally through our proxy, the data is temporarily unencrypted. Pixie is an open source project, so users might deploy Pixie Cloud (and the accompanying proxy) in a variety of environments. We wanted to provide privacy guarantees for users given the heterogeneity of deployment scenarios.

By adding end-to-end encryption, we can ensure that the proxy only sees an encrypted form of the telemetry data.

Implementation

Pixie…
Vihang Mehta, Omid Azizi, Pete Stevenson
Read full article