当我拥有所有相关证书时,如何解密 SSL 加密的 MongoWire 协议以进行检查?

当我拥有所有相关证书时,如何解密 SSL 加密的 MongoWire 协议以进行检查?

我有一个标准MongoDB SSL 环境其中,mongo wire 协议使用 RSA 密钥通过 SSL/TLS 加密。我通过 捕获了 MongoDB 服务器和客户端之间的通信数据包tcpdump。我拥有加密所涉及的证书的所有权。

我捕获了握手信号,在这种情况下,DHE / ECDHE / PFS 不起作用。

如何解密现有数据包捕获中的信息来检查数据包的 mongo wire 协议部分的内容?

答案1

由于前向保密,你几乎肯定不能这样做。

MongoDB,出于某种原因,有一个硬编码 SSL 密码列表HIGH:!EXPORT:!aNULL@STRENGTH结果取决于它所针对的 OpenSSL 版本,但在现代系统上,将导致使用前向保密比那些没有的人更受青睐。

您可以在目标系统上使用以下命令查看生成的密码列表:

openssl ciphers -v 'HIGH:!EXPORT:!aNULL@STRENGTH'

当 SSL/TLS 连接使用前向保密时,即使您拥有 SSL 证书私钥,也无法解密会话。这是前向保密的重点;它可以防止过去的会话被解密,即使一名攻击者(无论是你、犯罪分子还是国家安全局)都会控制你的私钥。

相关内容