У меня есть стандарт Среда MongoDB SSL где протокол mongo wire зашифрован с помощью SSL / TLS с использованием ключей RSA. У меня есть захват пакетов связи между сервером MongoDB и клиентом через tcpdump
. Я владею сертификатами, участвующими в шифровании.
У меня есть захват рукопожатия, и DHE / ECDHE / PFS в этом сценарии не участвуют.
Как я могу расшифровать информацию в существующих захватах пакетов, чтобы проверить содержимое части пакетов, относящейся к протоколу mongo wire?
Вы почти наверняка не можете из-за прямой секретности.
MongoDB по какой-то причине имеет список жестко закодированных шифров SSL из HIGH:!EXPORT:!aNULL@STRENGTH
. К чему это приведет, зависит от версии OpenSSL, для которой он был создан, но в современной системе это приведет к появлению шифров, использующих прямая секретность предпочтение перед теми, кто этого не делает.
Вы можете увидеть сгенерированный список шифров в целевой системе с помощью:
openssl ciphers -v 'HIGH:!EXPORT:!aNULL@STRENGTH'
Когда соединение SSL / TLS использует прямую секретность, невозможно расшифровать сеанс, даже если у вас есть закрытый ключ сертификата SSL. В этом весь смысл прямой секретности; он предотвращает расшифровку прошлых сеансов, даже если злоумышленник (будь то вы, преступник или АНБ) получает контроль над вашим закрытым ключом.