MariaDB(或MySQL)是否需要SSL证书以确保安全

发布时间:2021-02-25 16:18

是否可以在没有 SSL/TLS 协议的情况下拦截到 MariaDB(或 MySQL)数据库的本地主机连接。

回答1

对我来说解决方案很简单:

我了解到与 PHP(MariaDB 和 MySQL)和作为主机的 localhost 的未加密连接将通过 UNIX 套接字连接,因此安全
但是,使用SSL 证书。这对于通过其他编程语言(例如 Java)的应用程序进行连接尤为重要。
即使网络存在内部危险,也建议选择加密连接。 (TLS 比 SSLv3 更安全。

就我而言,我不需要使用 SSL 或 TLS。

回答2

通常一个数据库服务器应该只接受来自一个由 IP 配置的应用程序服务器的连接。如果数据库被多个应用程序使用,则能够连接到数据库的服务器必须拥有可用于访问数据库的 Web 服务。

无需从不同的服务器连接到数据库。因此,您不需要任何会减慢传输速度的安全连接。

回答3

是的,如果您担心恶意用户访问您的网络,您应该使用 SSL 在应用和数据库服务器之间建立连接。

在我的公司,一切都必须是 SSL。每个应用到应用的连接都必须是 https。每个数据库连接都必须是 SSL。它位于我们内部网络中的多层防火墙后面并不重要。这是纵深防御。

我们确实使用 SSL 证书,用于验证 SSL 加密和身份验证。它比使用密码更强大的身份验证。

我们说 SSL 是因为 MySQL 选项使用了该术语。但我们确实使用了 TLS。

请注意,MySQL 的 bind-address 在限制可以连接到数据库服务器的客户端的同时,并不能阻止窃听者拦截 TCP 数据包。他们无需连接到数据库服务器即可执行此操作,只需在同一网络上即可。

回答4

SSL(最新版本为 SSLv3)被认为是易受攻击的,并且最近版本的 MariaDB(和 MySQL)不再支持。

不要使用后继 TLS(传输层安全),而是使用被认为是安全的首选协议版本 TLSv1.2 或 TLSv1.3。 此外,MariaDB 还为 TLS 连接提供额外的安全检查,例如

客户:

  • 检查服务器证书中的名称是否与连接字符串中的主机名匹配
  • 验证服务器证书的指纹
  • 为连接指定密码套件(或排除某些密码套件)

服务器:

  • 需要来自客户端的 X509 证书
  • 检查客户证书的主题和/或颁发者。
  • 为连接指定密码套件(或排除某些密码套件)

更多信息请查看