eBPF, а точнее observability зашифрованного трафика с помощью этой технологии – статья "What Insights Can eBPF Provide into Real-Time SSL/TLS Encrypted Traffic and How?" как раз об этом.Автор рассматривает две функции –
SSL_write() для записи данный (используется для перехвата данных, записанных клиентом, но еще не зашифрованных) и SSL_read() для чтения данных из SSL соединения. Эта функция позволяет перехватить расшифрованные данные, а также разобрать код ответа.Самое интересное, что даже не нужны сертификаты
TLS/SSL для расшифровки или шифрования трафика. Это позволяет наблюдать за протоколом приложения как до шифрования, так и после расшифровки.Если говорить про перформанс, то такой способ даёт оверхед, хоть и всего 0.2 мкс. Кроме того, средняя нагрузка на процессор, создаваемая каждым хуком, выглядит следующим образом: 0,1% для
uprobe/SSL_write*, 0,007% для uprobe/SSL_read* и 0,3% для uretprobe/SSL_read. Замеры проводились на 1000 запросах для каждого HTTP метода.
