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.mzph.cn/news/949033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KeyShot许可分析软件推荐

在3D渲染领域,KeyShot以其卓越的性能和广泛的应用场景受到用户的广泛欢迎。然而,随着企业规模的扩大和项目的复杂性增加,如何高效地管理许可证资源成为了一项重要挑战。为了帮助您应对这一挑战,本文将向您推荐一款…

P6147 [USACO20FEB] Delegation G 题解

记录和 这篇题解 一样的 trick。 发现通过一个点的有若干条以这个点为 LCA 的链以及最多一条通过这个点通往其父亲的一条向上的链。 那么我们考虑把通向父亲的这条链的信息向上传,即向上传这条链的长度。(如果有多条…

AI元人文:大语言模型、世界模型与AI元人文模型的文明三重奏

AI元人文:大语言模型、世界模型与AI元人文模型的文明三重奏 笔者:岐金兰 日期:2025年10月28日 摘要:本文提出AI元人文、大语言模型与世界模型构成的"文明三角"架构。大语言模型作为历史知识的"图书…

6G通讯技术的应用场景和关键技术

6G通讯技术的应用场景和关键技术6G的应用场景和关键技术点 6G快速发展方向感觉是:高带宽,低时延,泛在,并作为AI的接入口(用量子加密);即:带宽更宽,反应更快,接入更多,信息更安全,更智能; 一、6G的应用场景…

全球1-18级的瓦片数量

要计算全球1-18级的瓦片数量,我们需要了解Web墨卡托切片地图系统(如Google Maps、OpenStreetMap等使用的)的工作原理。 核心结论 全球1到18级瓦片的总数量为: 2,284,817,622,175 (约 2.28 万亿个) 这个数字是各级别…

2025年U型科氏质量流量计最新推荐榜:微弯型科氏质量流量计/直管型科氏质量流量计/科氏质量流量计助力产业智能化升级

随着工业自动化、智能化进程加速,以及各行业对生产精度、能效管理和环保合规要求的不断提高,工业过程测量仪表已成为石油、化工、冶金、食品、制药等领域不可或缺的关键设备。2025年,过程测量仪表市场预计将持续增长…

2025年火锅底料工厂厂家权威推荐榜单:袋装火锅底料/餐饮火锅底料/企业火锅底料源头厂家精选

中国火锅市场已突破6000亿元规模,门店数量超50万家,火锅底料作为产业链核心环节,其品质与供应链稳定性直接关系到餐饮企业的核心竞争力。 火锅底料行业近年来持续高速发展,2024年市场需求增长率达15.6%,推动着工厂…

收藏版:Phinx 数据库迁移完全指南

一篇能直接上手的 Phinx 数据库迁移完整指南,涵盖表结构创建、字段类型、参数说明与实用技巧。不用翻文档,照着写就能跑最近在维护老项目时,又一次用到了 Phinx。 这个工具我已经用了很多年,几乎每个项目都会用上它…

react打包优化和配备优化都有哪些?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年港口动态沙盘模型厂家 权威推荐榜单:物流教学实训沙盘/港口演示实训模型/智能港口实训模型源头厂家精选

港口动态沙盘模型作为现代物流教育与港口规划的重要教具,近年来市场需求持续增长。行业数据显示,2024年中国港航教育装备市场规模已达12.8亿元,其中智能实训模型年增长率稳定在15%-18%之间。为帮助院校及企业精准选…

2025年电力机动绞磨厂家权威推荐榜单:快速机动绞磨/柴油机动绞磨机/机动绞磨机源头厂家精选

在电力、通信及基建工程领域,机动绞磨机作为牵引、组塔、立杆的核心设备,其性能可靠性直接影响工程效率与安全。根据行业数据,2025年国内机动绞磨市场规模预计增长12% 以上,其中智能化、低能耗、高适应性设备需求占…

数据库国产化替换后,Oracle还有没有学习的价值?

我国数据库国产化替代是国家推动信息技术自主可控、保障数据安全的核心战略,近年来取得显著进展,拿Oracle数据库来说,它在国的市场份额已经大幅下降,但是一些人已经注意到,其下降的趋势已经缓慢下来,国内依然还有…

怎么自己架设魔域服务器?魔域服务器架设教程

新手小白注意啦,如果你是第一次接触魔域(从来没玩过),需要先下载《魔域》官方客户端魔域端游搭建之前需准备: 1)一台Windows 操作系统服务器 2)魔域商业版本(包括数据库和补丁) 3)服务端引擎、网关、登录器生…

为什么Android游戏画面在30帧运行时有抖动现象

1)为什么Android游戏画面在30帧运行时有抖动现象2)团结引擎VS Skinning开启ENABLE_VS_SKINNING_MORE_BONES后,性能反而下降这是第450篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等…

RT-DETR 百度目标检测 cvpr2023 - MKT

RT-DETR 百度目标检测 cvpr2023 https://github.com/lyuwenyu/RT-DETR https://docs.ultralytics.com/zh/models/rtdetr/#pre-trained-models

Nginx中正确配置SSE(Server-Sent Events)服务

让我们深入探讨如何在Nginx中正确配置SSE(Server-Sent Events)服务。SSE是一种基于HTTP的服务器推送技术,需要特殊的Nginx配置来维持长连接。 核心配置要点代理缓冲与分块传输 location /sse-endpoint { proxy_pass…

电子烟上的关键芯片推荐(NFC、MCU、电源管理)

随着电子烟市场的快速发展,消费者对产品的智能化、安全性和用户体验提出了更高要求。本文将围绕NFC、MCU和电源管理三大核心器件探讨其在电子烟中的应用方案: 一、NFC技术在电子烟中的应用 NFC(近场通信)技术为电子…

应用程序无法正常启动(0xc0000142)怎么办?3个方法彻底解决【2025最新图文教程】

当你打开软件或游戏时,突然弹出“应用程序无法正常启动(0xc0000142)”的错误提示,是不是一脸懵? 本文将详细介绍该问题的常见原因,并提供三种行之有效的解决方法:使用一键修复工具自动处理系统错误手动更新 Visua…

基于二维熵阈值分割与遗传算法结合的图像分割

一、算法原理框架 1. 二维熵阈值分割基础\(p_{ij}\):灰度值i与邻域均值j的联合概率 \(w_0,w_b\):目标和背景的累积概率 目标:最大化总熵\(H=H_o+H_b\)2. 遗传算法优化流程 graph TD A[初始化种群] --> B[适应度计…

10进制转2进制

string decimalToBinary2(int n) { if (n == 0) return "0"; string binary = ""; while (n > 0) {binary = to_string(n % 2) + binary;n /= 2; } return binary;} 注意binary = to_string(n …