向客户颁发 MySQL 服务器的客户端 SSL 证书 - 这安全吗?

向客户颁发 MySQL 服务器的客户端 SSL 证书 - 这安全吗?

我在 VPS 上安装了 MySQL,我将使用它为客户托管多个数据库,客户将从前端使用这些数据库。

我已强制与每个数据库的所有通信都通过 SSL 进行,并且我将为每个不同的客户生成一组单独的客户端 SSL 证书/密钥。

我的问题是:MySQL 服务器守护进程使用相同的 SSL 服务器证书/密钥与每个不同的客户进行通信。每个客户拥有不同的客户端证书是否足以确保他们无法窃听彼此与数据库服务器的通信?

答案1

简短的回答:是的。

较长的回答:是的,因为两个都客户端和服务器密钥对涉及交换用于保护特定交易的随机数会话密钥。如果客户端 B 掌握了客户端 A 和服务器之间的完整密文会话,她可以解密该会话(前提是她有服务器的私钥或客户端 A 的私钥)。但客户端 B 只有她自己的私钥和服务器的公钥;这无助于她解密客户端 A 与服务器的交易。

答案2

据我了解,服务器的 SSL/TLS 连接足以防止窃听。客户端证书不提供额外的加密(握手期间除外),它用于对客户端进行身份验证。

无论您是否拥有客户端证书,客户端和浏览器都将使用它们都支持的最高加密级别进行通信。客户端证书只是确保客户端的身份与其声称的身份相符。

MySQL 服务器使用相同的 TLS/SSL 证书与所有客户端通信是可以的,因为每个客户端的握手都不同。就像使用 Web 服务器一样,您可以使用相同的证书与多个客户端通信。

相关内容