Можно ли извлечь ключи сеанса TLS из Lighttpd, чтобы мы могли расшифровать трафик, захваченный tcpdump?
В качестве альтернативы мы можем отключить PFS, но мы предпочитаем этого не делать.
Lighttpd не поддерживает это из коробки.
Стефан, разработчик lighttpd, предложил проверить следующий ответ:
Извлечение предварительных мастер-ключей из приложения openssl
вы можете найти закрытый ключ в файле, на который ссылается запись ssl.pemfile в файле /etc/lighttpd/lighttpd.conf
Ключ находится в начале перед сертификатом.
На вопрос расшифровки уже был дан ответ здесь:
как-расшифровать-ssl-трафик-с-анализатором-пакетов-когда-у-у-у-приват-ключа
Предполагается, что Ssldump сможет это сделать, но, похоже, он не поддерживается (в исходном архиве последней версии дата последней модификации всех файлов находится в 2002 году или раньше), поэтому вполне возможно, что он не будет поддержка нового SSL / TLS; На самом деле крайне маловероятно, чтобы программное обеспечение 2002 года могло обрабатывать новые форматы шифрования, определенные в TLS 1.2 (AES / GCM). TLS 1.1 был опубликован в 2006 году, а TLS 1.2 - в 2008 году.
OpenSSL - это библиотека, реализующая протокол, но не предназначенная для анализа записанного сеанса.
У вас может быть больше шансов с Wireshark, у которого есть обширная документация о том, как использовать его для дешифрования записанных сеансов.
Следует помнить о важном параметре: расшифровка пассивно записанного сеанса (с копией закрытого ключа сервера) работает только в том случае, если обмен ключами был типа RSA или статического DH; с наборами шифров «DHE» и «ECDHE» вы не сможете расшифровать такой сеанс, даже зная секретный ключ сервера. В этом случае вам понадобится либо согласованный «главный секрет», либо использование закрытого ключа сервера для активного перехвата соединения (в настройке Man-in-the-Middle).