Назад | Перейти на главную страницу

Как я могу расшифровать протокол mongo, зашифрованный ssl, для проверки, если у меня есть право собственности на все задействованные сертификаты?

У меня есть стандарт Среда 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. В этом весь смысл прямой секретности; он предотвращает расшифровку прошлых сеансов, даже если злоумышленник (будь то вы, преступник или АНБ) получает контроль над вашим закрытым ключом.