当前位置: 首页 > news >正文

MySQL 数据加密整改文档(TDE + 字段加密 + 密码哈希)

MySQL 数据加密整改文档(TDE + 字段加密 + 密码哈希)

适用环境:

  • MySQL 版本:8.0.26
  • 数据库:hnp
  • 关键表:sys_user
  • 存储路径示例:/mnt/sdc/mysql

1. 背景与问题

等保测评要求:

安全控制点:数据保密性
控制项:应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

核查结果:

  • MySQL 数据库未采用校验技术或密码技术保证鉴别数据、个人信息、业务数据在存储过程中的保密性。
  • 符合情况:不符合

整改目标:

  1. 确保数据库在静态存储层(表空间)加密,防止数据文件泄露。
  2. 对鉴别数据(如密码)进行哈希处理,防止明文存储。
  3. 对敏感字段(如手机号、身份证号)可选字段级加密。

2. 解决方案

方案一:透明数据加密(TDE)

  • 加密整个表空间文件,不影响应用查询。
  • MySQL 内部自动加解密,SQL 查询结果仍为明文。
  • 防止数据文件被拷贝后泄露。

方案二:字段级加密(AES/SM4)

  • 针对敏感字段加密,如身份证号、手机号等。
  • 插入数据需用 AES_ENCRYPT(),查询时用 AES_DECRYPT()
  • 适合对 DB 管理员或 SQL 层不可见的数据。

方案三:鉴别数据哈希(SHA512)

  • 密码字段存储哈希值而非明文。
  • 可加盐增强安全性。
  • 验证时计算哈希比对。

3. 操作步骤(方案一 TDE)

3.1 配置 keyring 插件

/etc/my.cnf 添加:

[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/var/lib/mysql-keyring/keyring

可修改 keyring_file_data 路径到安全目录,如 /mnt/sdc/mysql/keyring

3.2 重启 MySQL

systemctl restart mysqld

3.3 验证 keyring 插件

SHOW PLUGINS LIKE 'keyring%';

输出示例:

+---------------+--------+-------+---------+---------+
| Name          | Status | Type  | Library | License |
+---------------+--------+-------+---------+---------+
| keyring_file  | ACTIVE | KEYRING | NULL  | GPL     |
+---------------+--------+-------+---------+---------+

3.4 给表启用加密

ALTER TABLE hnp.sys_user ENCRYPTION='Y';

3.5 验证表是否加密

SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'hnp' AND TABLE_NAME = 'sys_user';

输出示例:

+--------------+-----------+----------------+
| TABLE_SCHEMA | TABLE_NAME| CREATE_OPTIONS |
+--------------+-----------+----------------+
| hnp          | sys_user  | ENCRYPTION='Y' |
+--------------+-----------+----------------+

3.6 整库加密查看

SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS
FROM information_schema.tables
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';

4. 字段加密示例(可选)

-- 插入敏感字段加密
INSERT INTO hnp.sys_user (name, mobile) 
VALUES ('张三', AES_ENCRYPT('13800001234', 'MyStrongKey!'));-- 查询解密
SELECT name, CAST(AES_DECRYPT(mobile, 'MyStrongKey!') AS CHAR) AS mobile
FROM hnp.sys_user;

5. 鉴别数据哈希示例

-- 插入用户密码哈希
INSERT INTO hnp.sys_user (account, pwd_hash)
VALUES ('admin', SHA2('PlainPassword', 512));-- 验证密码
SELECT * FROM hnp.sys_user
WHERE account='admin' AND pwd_hash=SHA2('PlainPassword', 512);

推荐加盐处理:

SHA2(CONCAT('PlainPassword','随机盐'), 512)

6. 验证与报告模板

整改说明(报告用):

已启用 MySQL 透明数据加密(TDE)功能,通过 keyring_file 插件加载加密密钥;
hnp 数据库中存储鉴别信息和个人信息的表(如 sys_user)执行了 ALTER TABLE ... ENCRYPTION='Y' 操作,
该表已加密存储。查询验证结果 CREATE_OPTIONS='ENCRYPTION=Y',符合数据在存储过程中的保密性要求。

验证SQL:

SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS
FROM information_schema.tables
WHERE TABLE_SCHEMA='hnp' AND TABLE_NAME='sys_user';

验证结果示例:

+--------------+-----------+----------------+
| hnp          | sys_user  | ENCRYPTION='Y' |
+--------------+-----------+----------------+

符合情况: 已整改,符合要求。


7. 建议

  1. 对全库表启用 TDE,保护数据文件。
  2. 对密码字段使用 SHA512 哈希(推荐加盐)。
  3. 对关键敏感字段,可使用 AES/SM4 加密,额外增强安全性。
  4. 定期备份 keyring 文件和数据库,防止密钥丢失造成数据不可用。

http://www.jsqmd.com/news/24860/

相关文章:

  • KeyShot许可分析软件推荐
  • P6147 [USACO20FEB] Delegation G 题解
  • AI元人文:大语言模型、世界模型与AI元人文模型的文明三重奏
  • 6G通讯技术的应用场景和关键技术
  • 全球1-18级的瓦片数量
  • 2025年U型科氏质量流量计最新推荐榜:微弯型科氏质量流量计/直管型科氏质量流量计/科氏质量流量计助力产业智能化升级
  • 2025年火锅底料工厂厂家权威推荐榜单:袋装火锅底料/餐饮火锅底料/企业火锅底料源头厂家精选
  • 收藏版:Phinx 数据库迁移完全指南
  • react打包优化和配备优化都有哪些?
  • 2025年港口动态沙盘模型厂家 权威推荐榜单:物流教学实训沙盘/港口演示实训模型/智能港口实训模型源头厂家精选
  • 2025年电力机动绞磨厂家权威推荐榜单:快速机动绞磨/柴油机动绞磨机/机动绞磨机源头厂家精选
  • 数据库国产化替换后,Oracle还有没有学习的价值?
  • 怎么自己架设魔域服务器?魔域服务器架设教程
  • 为什么Android游戏画面在30帧运行时有抖动现象
  • RT-DETR 百度目标检测 cvpr2023 - MKT
  • Nginx中正确配置SSE(Server-Sent Events)服务
  • 电子烟上的关键芯片推荐(NFC、MCU、电源管理)
  • 应用程序无法正常启动(0xc0000142)怎么办?3个方法彻底解决【2025最新图文教程】
  • 基于二维熵阈值分割与遗传算法结合的图像分割
  • 10进制转2进制
  • 沙姆镜头的工作原理及使用技巧
  • 全域感知,主动预警:视频汇聚平台EasyCVR打造水库大坝智慧安防视频监控智能分析方案
  • list列表 - 指南
  • 全域互联,统一管控:EasyCVR构建多区域视频监控“一网统管”新范式
  • 魔改frida
  • 云原生周刊:在 Kubernetes 上运行机器学习
  • ts相关
  • 从模型到智能体——OpenCSG 打造 AI 落地新范式
  • CF589H 题解
  • 2025年上海电动阀门厂最新推荐榜,气动阀门/高压阀门/真空阀门/自控阀门/调节阀门/聚焦产品实力与特色服务竞争力深度剖析