Sysql中的安全性/使用加密连接

第5章使用加密连接

通过MySQL客户端和服务器之间的未加密连接,可以访问网络的某人可以观看所有流量并检查客户端和服务器之间发送或接收的数据。

当您必须以安全的方式通过网络移动信息时,不可接受的连接是不可接受的。要使任何类型的数据不可读,请使用加密。加密算法必须包括安全元素来抵制多种已知攻击,例如更改加密消息的顺序或重放数据两次。

MySQL使用TLS(传输层安全性)协议支持客户端和服务器之间的加密连接。TLS有时被称为SSL(安全套接字层),但MySQL实际上没有使用SSL协议进行加密连接,因为它的加密很弱(见第5.2节“加密连接TLS协议和CIPHERS”)。

TLS使用加密算法来确保可以信任在公共网络上接收的数据。它有权检测数据变化,丢失或重放的机制。TLS还包含使用X.509标准提供身份验证的算法。

X.509可以在互联网上识别某人。在基本术语中,应该有一些名为a的实体证书颁发机构(或加利福尼亚州)为需要他们的任何人分配电子证书。证书依赖于具有两个加密密钥(公钥和密钥)的非对称加密算法。证书所有者可以将证书作为身份证明呈现给另一方。证书包括其所有者的公钥。使用此公钥加密的任何数据只能使用相应的密钥解密,该密钥由证书所有者持有。

使用OpenSSL提供对MySQL中的加密连接的支持。有关openssl支持的加密协议和CIPHERS的信息,请参阅第5.2节“加密连接TLS协议和CIPHERS”

笔记

从MySQL 8.0.11到8.0.17,可以使用wolfssl作为替代openssl的替代方案编译mysql。正如MySQL 8.0.18的那样,删除对Wolfssl的支持,所有MySQL构建都使用OpenSSL。

默认情况下,MySQL程序如果服务器支持加密连接,则尝试使用加密连接,如果无法建立加密的连接,则将返回到未加密的连接。有关影响使用加密连接的选项的信息,请参阅第5.1节“配置MySQL以使用加密连接”加密连接的命令选项

MySQL以每连接基础执行加密,并且对给定用户的加密可以是可选的或强制性的。这使您可以根据各个应用程序的要求选择加密或未加密的连接。有关如何要求用户使用加密连接的信息,请参阅对此的讨论要求条款的创建用户声明创建用户语句。另见描述Require_secure_transport.系统变量at.服务器系统变量

可以在源和副本服务器之间使用加密连接。看设置复制以使用加密连接

有关使用来自MySQL C API的加密连接的信息,请参阅支持加密连接

还可以使用从SSH连接中的加密连接到MySQL Server主机连接。例如,看到第5.4节“从Windows与SSH远程连接到MySQL”