tencent cloud

数据安全审计

产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
购买方式
欠费说明
退费说明
快速入门
操作指引
Agent 部署
实践教程
等保实践教程
MySQL 加密审计实践教程
轻量应用服务器实践教程
容器服务实践教程
故障处理
无法在审计日志页面查询到日志
常见问题
相关协议
Service Level Agreement
隐私协议
数据处理和安全协议
文档数据安全审计实践教程MySQL 加密审计实践教程

MySQL 加密审计实践教程

PDF
聚焦模式
字号
最后更新时间: 2024-10-16 16:43:53

应用场景

数据安全审计自6.0.2版本起,已支持自建 MySQL、MariaDB 的 SSL 加密审计。本文档对该功能的限制、配置、常见问题做必要说明。

功能限制

本功能限制如下:
仅支持自建的 MySQL、MariaDB;云数据库 MySQL 通过云原生审计方式可支持加密审计,无需单独配置。
支持的加密算法:TLS_RSA_WITH_AES_128_CBC_SHA 、TLS_RSA_WITH_AES_256_CBC_SHA 、TLS_RSA_WITH_AES_128_CBC_SHA256、 TLS_RSA_WITH_AES_256_CBC_SHA256。

检测方式

步骤1:检测是否开启加密

1. 在数据库中,输入如下命令,确认是否开启了 SSL 加密。
show global variables like '%ssl%';
2. 若 have_ssl 的值为 YES,则表明已经开启了 SSL,需要关闭 SSL 后才能审计到。
dba:(none)> show global variables like '%ssl%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | YES |
| have_ssl | YES | #已经开启了SSL
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+---------------+-----------------+

步骤2:检测加密算法

1. 在数据库中,输入如下命令,检测加密算法。
show global variables like 'ssl_cipher';
2. 若 ssl_cipher 的值中只包含 AES128-SHA、AES256-SHA、AES128-SHA256、AES256-SHA256 四个中的一个或多个,则表示是支持的,否则表示不支持,需要进行修改。
dba:(none)> show global variables like 'ssl_cipher';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| ssl_cipher | | #此处为空,需要修改
+---------------+-----------------+

修改方式

通过修改数据库的相关配置,使数据安全审计可以审计到数据库语句。可根据实际情况,任意选择如下一种修改方式。

关闭 SSL 加密

MySQL 的 SSL 虽然提高了安全性,但也牺牲了部分性能。如果用户单位没有必须开启 SSL 加密的规定,可以考虑直接关闭 SSL 加密。
注意:
该方法需要重启数据库。
1. 修改配置文件 my.cnf,在[mysqld]下增加如下内容:
[mysqld]
# disable_ssl
skip_ssl
2. 输入如下指令,重启 MySQL。
service mysqld restart
3. 使用上述 检测方式,验证是否修改成功。
dba:(none)> show global variables like '%ssl%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | DISABLED |
| have_ssl | DISABLED | #已经关闭了SSL
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+---------------+-----------------+

设置加密算法

在配置文件中,设置加密算法,该方法可以对数据库的所有连接生效。
注意:
该方法需要重启数据库。
1. 修改配置文件 my.cnf,在[mysqld]下增加如下内容:
[mysqld]
# 设置加密算法
ssl_cipher="AES128-SHA:AES256-SHA:AES128-SHA256:AES256-SHA256"
2. 输入如下指令,重启 MySQL。
service mysqld restart
3. 使用上述 检测方式,验证是否修改成功。
dba:(none)> show global variables like 'ssl_cipher';
+---------------+--------------------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------------------+
| ssl_cipher | AES128-SHA:AES256-SHA:AES128-SHA256:AES256-SHA256|
+---------------+--------------------------------------------------+

在客户端连接时指定参数

若不想修改数据库配置,可以在客户端建立连接时,指定参数,如:
mysql -u root -pxxxx -h10.3.1.17 --ssl-cipher=AES128-SHA
说明:
该方法只针对本连接,不会影响其他连接。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈