708 lines
32 KiB
HTML
708 lines
32 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="generator" content="pandoc" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||
<meta name="author" content="系统设计团队" />
|
||
<title>福建水务营收系统-敏感数据加密方案</title>
|
||
<style>
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
/* The extra [class] is a hack that increases specificity enough to
|
||
override a similar rule in reveal.js */
|
||
ul.task-list[class]{list-style: none;}
|
||
ul.task-list li input[type="checkbox"] {
|
||
font-size: inherit;
|
||
width: 0.8em;
|
||
margin: 0 0.8em 0.2em -1.6em;
|
||
vertical-align: middle;
|
||
}
|
||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||
</style>
|
||
<link rel="stylesheet" href="output/document_style.css" />
|
||
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
</head>
|
||
<body>
|
||
<header id="title-block-header">
|
||
<h1 class="title">福建水务营收系统-敏感数据加密方案</h1>
|
||
<p class="author">系统设计团队</p>
|
||
<p class="date">2024年12月19日</p>
|
||
</header>
|
||
<nav id="TOC" role="doc-toc">
|
||
<ul>
|
||
<li><a href="#用户敏感数据加密存储技术方案"
|
||
id="toc-用户敏感数据加密存储技术方案"><span
|
||
class="toc-section-number">1</span> 用户敏感数据加密存储技术方案</a>
|
||
<ul>
|
||
<li><a href="#文档信息" id="toc-文档信息"><span
|
||
class="toc-section-number">1.1</span> 文档信息</a></li>
|
||
<li><a href="#一方案背景" id="toc-一方案背景"><span
|
||
class="toc-section-number">1.2</span> 一、方案背景</a>
|
||
<ul>
|
||
<li><a href="#为什么要做加密" id="toc-为什么要做加密"><span
|
||
class="toc-section-number">1.2.1</span> 为什么要做加密?</a></li>
|
||
<li><a href="#涉及哪些数据" id="toc-涉及哪些数据"><span
|
||
class="toc-section-number">1.2.2</span> 涉及哪些数据?</a></li>
|
||
</ul></li>
|
||
<li><a href="#二技术方案概述" id="toc-二技术方案概述"><span
|
||
class="toc-section-number">1.3</span> 二、技术方案概述</a>
|
||
<ul>
|
||
<li><a href="#核心思路" id="toc-核心思路"><span
|
||
class="toc-section-number">1.3.1</span> 核心思路</a></li>
|
||
<li><a href="#采用的技术" id="toc-采用的技术"><span
|
||
class="toc-section-number">1.3.2</span> 采用的技术</a></li>
|
||
</ul></li>
|
||
<li><a href="#三加密存储方案" id="toc-三加密存储方案"><span
|
||
class="toc-section-number">1.4</span> 三、加密存储方案</a>
|
||
<ul>
|
||
<li><a href="#加密前后对比" id="toc-加密前后对比"><span
|
||
class="toc-section-number">1.4.1</span> 加密前后对比</a></li>
|
||
<li><a href="#mybatis-plus-加密插件原理"
|
||
id="toc-mybatis-plus-加密插件原理"><span
|
||
class="toc-section-number">1.4.2</span> MyBatis-Plus
|
||
加密插件原理</a></li>
|
||
</ul></li>
|
||
<li><a href="#四搜索功能方案" id="toc-四搜索功能方案"><span
|
||
class="toc-section-number">1.5</span> 四、搜索功能方案</a>
|
||
<ul>
|
||
<li><a href="#为什么加密后还能搜索" id="toc-为什么加密后还能搜索"><span
|
||
class="toc-section-number">1.5.1</span> 为什么加密后还能搜索?</a></li>
|
||
<li><a href="#支持的查询类型" id="toc-支持的查询类型"><span
|
||
class="toc-section-number">1.5.2</span> 支持的查询类型</a></li>
|
||
<li><a href="#查询流程示例" id="toc-查询流程示例"><span
|
||
class="toc-section-number">1.5.3</span> 查询流程示例</a></li>
|
||
</ul></li>
|
||
<li><a href="#五数据库表设计" id="toc-五数据库表设计"><span
|
||
class="toc-section-number">1.6</span> 五、数据库表设计</a>
|
||
<ul>
|
||
<li><a href="#表结构说明" id="toc-表结构说明"><span
|
||
class="toc-section-number">1.6.1</span> 表结构说明</a></li>
|
||
<li><a href="#字段对照表" id="toc-字段对照表"><span
|
||
class="toc-section-number">1.6.2</span> 字段对照表</a></li>
|
||
</ul></li>
|
||
<li><a href="#六等保符合性说明" id="toc-六等保符合性说明"><span
|
||
class="toc-section-number">1.7</span> 六、等保符合性说明</a>
|
||
<ul>
|
||
<li><a href="#安全控制措施对照" id="toc-安全控制措施对照"><span
|
||
class="toc-section-number">1.7.1</span> 安全控制措施对照</a></li>
|
||
<li><a href="#安全架构" id="toc-安全架构"><span
|
||
class="toc-section-number">1.7.2</span> 安全架构</a></li>
|
||
</ul></li>
|
||
<li><a href="#七实施计划" id="toc-七实施计划"><span
|
||
class="toc-section-number">1.8</span> 七、实施计划</a>
|
||
<ul>
|
||
<li><a href="#实施时间表" id="toc-实施时间表"><span
|
||
class="toc-section-number">1.8.1</span> 实施时间表</a></li>
|
||
<li><a href="#实施步骤" id="toc-实施步骤"><span
|
||
class="toc-section-number">1.8.2</span> 实施步骤</a></li>
|
||
</ul></li>
|
||
<li><a href="#八风险控制" id="toc-八风险控制"><span
|
||
class="toc-section-number">1.9</span> 八、风险控制</a>
|
||
<ul>
|
||
<li><a href="#风险识别与应对" id="toc-风险识别与应对"><span
|
||
class="toc-section-number">1.9.1</span> 风险识别与应对</a></li>
|
||
<li><a href="#应急预案" id="toc-应急预案"><span
|
||
class="toc-section-number">1.9.2</span> 应急预案</a></li>
|
||
</ul></li>
|
||
<li><a href="#九方案优势总结" id="toc-九方案优势总结"><span
|
||
class="toc-section-number">1.10</span> 九、方案优势总结</a>
|
||
<ul>
|
||
<li><a href="#核心优势" id="toc-核心优势"><span
|
||
class="toc-section-number">1.10.1</span> 核心优势</a></li>
|
||
<li><a href="#投入产出分析" id="toc-投入产出分析"><span
|
||
class="toc-section-number">1.10.2</span> 投入产出分析</a></li>
|
||
</ul></li>
|
||
<li><a href="#十结论与建议" id="toc-十结论与建议"><span
|
||
class="toc-section-number">1.11</span> 十、结论与建议</a>
|
||
<ul>
|
||
<li><a href="#方案结论" id="toc-方案结论"><span
|
||
class="toc-section-number">1.11.1</span> 方案结论</a></li>
|
||
<li><a href="#建议" id="toc-建议"><span
|
||
class="toc-section-number">1.11.2</span> 建议</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
</ul>
|
||
</nav>
|
||
<h1 data-number="1" id="用户敏感数据加密存储技术方案"><span
|
||
class="header-section-number">1</span> 用户敏感数据加密存储技术方案</h1>
|
||
<h2 data-number="1.1" id="文档信息"><span
|
||
class="header-section-number">1.1</span> 文档信息</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>项目信息</th>
|
||
<th>详情</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>项目名称</strong></td>
|
||
<td>福建水务营收系统</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>文档类型</strong></td>
|
||
<td>技术方案汇报</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>适用范围</strong></td>
|
||
<td>用户个人信息加密存储与搜索</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>编写日期</strong></td>
|
||
<td>2025年12月</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>文档版本</strong></td>
|
||
<td>V1.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h2 data-number="1.2" id="一方案背景"><span
|
||
class="header-section-number">1.2</span> 一、方案背景</h2>
|
||
<h3 data-number="1.2.1" id="为什么要做加密"><span
|
||
class="header-section-number">1.2.1</span> 为什么要做加密?</h3>
|
||
<p>根据<strong>等保测评要求</strong>,用户的敏感个人信息(身份证、手机号、银行卡等)必须<strong>加密存储</strong>,否则无法通过安全检查。</p>
|
||
<pre class="text"><code> ┌─────────────────────────────────────┐
|
||
│ 等保测评要求 │
|
||
└─────────────────────────────────────┘
|
||
│
|
||
┌──────────────────────────────┼──────────────────────────────┐
|
||
▼ ▼ ▼
|
||
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
|
||
│ 存储加密 │ │ 传输加密 │ │ 访问控制 │
|
||
│ ✓ 必须做 │ │ ✓ 已完成 │ │ ✓ 已完成 │
|
||
└───────────────┘ └───────────────┘ └───────────────┘</code></pre>
|
||
<h3 data-number="1.2.2" id="涉及哪些数据"><span
|
||
class="header-section-number">1.2.2</span> 涉及哪些数据?</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>敏感数据类型</th>
|
||
<th>示例</th>
|
||
<th>加密要求</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>身份证号</td>
|
||
<td>350xxx19900101xxxx</td>
|
||
<td>✅ 必须加密</td>
|
||
</tr>
|
||
<tr>
|
||
<td>手机号</td>
|
||
<td>138xxxx8888</td>
|
||
<td>✅ 必须加密</td>
|
||
</tr>
|
||
<tr>
|
||
<td>银行卡号</td>
|
||
<td>6222xxxxxxxx1234</td>
|
||
<td>✅ 必须加密</td>
|
||
</tr>
|
||
<tr>
|
||
<td>邮箱地址</td>
|
||
<td>xxx@xxx.com</td>
|
||
<td>✅ 必须加密</td>
|
||
</tr>
|
||
<tr>
|
||
<td>真实姓名</td>
|
||
<td>张xx</td>
|
||
<td>✅ 必须加密</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h2 data-number="1.3" id="二技术方案概述"><span
|
||
class="header-section-number">1.3</span> 二、技术方案概述</h2>
|
||
<h3 data-number="1.3.1" id="核心思路"><span
|
||
class="header-section-number">1.3.1</span> 核心思路</h3>
|
||
<p><strong>“先加密存储,再建立索引”</strong> ——
|
||
既保证安全,又保证能搜索</p>
|
||
<pre class="text"><code>┌─────────────────────────────────────────────────────────────────────┐
|
||
│ 技术方案整体架构 │
|
||
├─────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ 应用层 │ ──────► │ 加密插件 │ ──────► │ 数据库 │ │
|
||
│ │ (业务代码) │ │(MyBatis-Plus)│ │ (加密存储) │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌─────────────┐ │
|
||
│ │ 搜索索引 │ │
|
||
│ │ (支持查询) │ │
|
||
│ └─────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────┘</code></pre>
|
||
<h3 data-number="1.3.2" id="采用的技术"><span
|
||
class="header-section-number">1.3.2</span> 采用的技术</h3>
|
||
<table>
|
||
<colgroup>
|
||
<col style="width: 37%" />
|
||
<col style="width: 25%" />
|
||
<col style="width: 37%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>技术组件</th>
|
||
<th>说明</th>
|
||
<th>选择理由</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>MyBatis-Plus 加密插件</strong></td>
|
||
<td>自动对数据进行加密和解密</td>
|
||
<td>框架自带功能,改造成本低</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>SM4 加密算法</strong></td>
|
||
<td>国产加密算法,符合等保要求</td>
|
||
<td>安全等级高,符合等保要求</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>搜索索引技术</strong></td>
|
||
<td>支持加密后的数据查询</td>
|
||
<td>保证业务搜索功能正常使用</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h2 data-number="1.4" id="三加密存储方案"><span
|
||
class="header-section-number">1.4</span> 三、加密存储方案</h2>
|
||
<h3 data-number="1.4.1" id="加密前后对比"><span
|
||
class="header-section-number">1.4.1</span> 加密前后对比</h3>
|
||
<p><strong>加密前(明文存储,不安全):</strong> | id | real_name |
|
||
id_card | phone | |—-|———–|———|——-| | 1 | 张三 | 350102199001011234 |
|
||
13812345678 |</p>
|
||
<p><strong>加密后(密文存储,安全):</strong> | id | real_name |
|
||
id_card | phone | |—-|———–|———|——-| | 1 | aGF4ZmRz… | YmVydGlu… |
|
||
c2VjdXJl… |</p>
|
||
<h3 data-number="1.4.2" id="mybatis-plus-加密插件原理"><span
|
||
class="header-section-number">1.4.2</span> MyBatis-Plus
|
||
加密插件原理</h3>
|
||
<pre class="text"><code> 【自动加密/解密流程】
|
||
|
||
┌──────────┐ ┌──────────┐
|
||
│ 保存数据 │ │ 查询数据 │
|
||
└────┬─────┘ └────┬─────┘
|
||
│ │
|
||
▼ ▼
|
||
┌──────────┐ ┌──────────┐
|
||
│ 明文数据 │ │ 密文数据 │
|
||
│ 张三 │ │ aGF4ZmRz │
|
||
└────┬─────┘ └────┬─────┘
|
||
│ │
|
||
│ 【加密插件自动处理】 │ 【加密插件自动处理】
|
||
│ │
|
||
▼ ▼
|
||
┌──────────┐ ┌──────────┐
|
||
│ 密文数据 │ │ 明文数据 │
|
||
│ aGF4ZmRz │ │ 张三 │
|
||
└────┬─────┘ └────┬─────┘
|
||
│ │
|
||
▼ ▼
|
||
┌──────────┐ ┌──────────┐
|
||
│ 数据库 │ ◄────────────────────────── │ 数据库 │
|
||
└──────────┘ └──────────┘</code></pre>
|
||
<p><strong>优势说明:</strong> - ✅ <strong>对业务代码透明</strong> ——
|
||
开发人员无需修改业务逻辑 - ✅ <strong>自动加密解密</strong> ——
|
||
框架自动处理,不易出错 - ✅ <strong>改造成本低</strong> ——
|
||
只需添加配置和注解</p>
|
||
<hr />
|
||
<h2 data-number="1.5" id="四搜索功能方案"><span
|
||
class="header-section-number">1.5</span> 四、搜索功能方案</h2>
|
||
<h3 data-number="1.5.1" id="为什么加密后还能搜索"><span
|
||
class="header-section-number">1.5.1</span> 为什么加密后还能搜索?</h3>
|
||
<p>加密后的数据是乱码,无法直接用SQL的 <code>LIKE</code>
|
||
查询。我们的解决方案是:<strong>建立搜索索引</strong>。</p>
|
||
<pre class="text"><code>┌───────────────────────────────────────────────────────────────────┐
|
||
│ 搜索索引设计思路 │
|
||
├───────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 原始数据 索引数据 用途 │
|
||
│ ────── ────── ──── │
|
||
│ 身份证:350102199001011234 ➜ 哈希值:a1b2c3... 精确查询 │
|
||
│ 手机号:13812345678 ➜ 前7位:1381234 前缀查询 │
|
||
│ 姓名:张三 ➜ 拼音:zhangsan 模糊查询 │
|
||
│ │
|
||
└───────────────────────────────────────────────────────────────────┘</code></pre>
|
||
<h3 data-number="1.5.2" id="支持的查询类型"><span
|
||
class="header-section-number">1.5.2</span> 支持的查询类型</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>查询类型</th>
|
||
<th>适用场景</th>
|
||
<th>实现方式</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>精确查询</strong></td>
|
||
<td>身份证查用户</td>
|
||
<td>哈希索引(完全匹配)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>前缀查询</strong></td>
|
||
<td>手机号前几位</td>
|
||
<td>前缀索引(部分匹配)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>模糊查询</strong></td>
|
||
<td>姓名搜索</td>
|
||
<td>拼音索引(支持模糊)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.5.3" id="查询流程示例"><span
|
||
class="header-section-number">1.5.3</span> 查询流程示例</h3>
|
||
<p><strong>场景:根据身份证号查询用户</strong></p>
|
||
<pre class="text"><code>用户输入身份证号
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ 计算哈希索引 │ ──────► a1b2c3d4e5...
|
||
└──────────────┘
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ 查询索引字段 │ ──────► SELECT * FROM user WHERE id_card_hash = 'a1b2c3d4e5...'
|
||
└──────────────┘
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ 返回匹配记录 │ ──────► 找到用户张三
|
||
└──────────────┘</code></pre>
|
||
<hr />
|
||
<h2 data-number="1.6" id="五数据库表设计"><span
|
||
class="header-section-number">1.6</span> 五、数据库表设计</h2>
|
||
<h3 data-number="1.6.1" id="表结构说明"><span
|
||
class="header-section-number">1.6.1</span> 表结构说明</h3>
|
||
<pre class="text"><code>┌─────────────────────────────────────────────────────────────────────┐
|
||
│ 用户信息表 (user_info) │
|
||
├─────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 【加密存储的字段】 【搜索索引字段】 │
|
||
│ ──────────────── ──────────────── │
|
||
│ • real_name(真实姓名) • id_card_hash(身份证哈希) │
|
||
│ • id_card(身份证号) • phone_prefix(手机号前缀) │
|
||
│ • phone(手机号) • name_pinyin(姓名拼音) │
|
||
│ • email(邮箱) • bank_card_prefix(银行卡前缀)│
|
||
│ • bank_card(银行卡号) │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────┘</code></pre>
|
||
<h3 data-number="1.6.2" id="字段对照表"><span
|
||
class="header-section-number">1.6.2</span> 字段对照表</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>敏感字段</th>
|
||
<th>存储方式</th>
|
||
<th>对应索引字段</th>
|
||
<th>索引用途</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>id_card</td>
|
||
<td>SM4加密</td>
|
||
<td>id_card_hash</td>
|
||
<td>精确匹配</td>
|
||
</tr>
|
||
<tr>
|
||
<td>phone</td>
|
||
<td>SM4加密</td>
|
||
<td>phone_prefix</td>
|
||
<td>前缀查询</td>
|
||
</tr>
|
||
<tr>
|
||
<td>real_name</td>
|
||
<td>SM4加密</td>
|
||
<td>name_pinyin</td>
|
||
<td>模糊搜索</td>
|
||
</tr>
|
||
<tr>
|
||
<td>bank_card</td>
|
||
<td>SM4加密</td>
|
||
<td>bank_card_prefix</td>
|
||
<td>前缀查询</td>
|
||
</tr>
|
||
<tr>
|
||
<td>email</td>
|
||
<td>SM4加密</td>
|
||
<td>—</td>
|
||
<td>不支持搜索</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h2 data-number="1.7" id="六等保符合性说明"><span
|
||
class="header-section-number">1.7</span> 六、等保符合性说明</h2>
|
||
<h3 data-number="1.7.1" id="安全控制措施对照"><span
|
||
class="header-section-number">1.7.1</span> 安全控制措施对照</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>等保要求</th>
|
||
<th>我们的方案</th>
|
||
<th>符合性</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>个人信息加密存储</strong></td>
|
||
<td>SM4算法加密</td>
|
||
<td>✅ 完全符合</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>数据传输安全</strong></td>
|
||
<td>HTTPS + 加密字段</td>
|
||
<td>✅ 完全符合</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>访问权限控制</strong></td>
|
||
<td>数据库权限 + 应用权限</td>
|
||
<td>✅ 完全符合</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>安全审计</strong></td>
|
||
<td>操作日志 + 加解密审计</td>
|
||
<td>✅ 完全符合</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>密钥安全管理</strong></td>
|
||
<td>配置加密 + 独立存储</td>
|
||
<td>✅ 完全符合</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.7.2" id="安全架构"><span
|
||
class="header-section-number">1.7.2</span> 安全架构</h3>
|
||
<pre class="text"><code> ┌─────────────────────────────────────┐
|
||
│ 密钥管理中心 │
|
||
│ (独立安全存储) │
|
||
└─────────────────────────────────────┘
|
||
│
|
||
│ 获取密钥
|
||
▼
|
||
┌─────────────┐ HTTPS ┌─────────────────┐ 加密写入 ┌─────────────┐
|
||
│ 前端应用 │ ────────► │ 应用服务器 │ ────────────► │ 数据库 │
|
||
│ │ ◄──────── │ (加密/解密) │ ◄──────────── │ (密文存储) │
|
||
└─────────────┘ 脱敏显示 └─────────────────┘ 解密读取 └─────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ 审计日志系统 │
|
||
│ (记录所有操作) │
|
||
└─────────────────────────────────────┘</code></pre>
|
||
<hr />
|
||
<h2 data-number="1.8" id="七实施计划"><span
|
||
class="header-section-number">1.8</span> 七、实施计划</h2>
|
||
<h3 data-number="1.8.1" id="实施时间表"><span
|
||
class="header-section-number">1.8.1</span> 实施时间表</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>阶段</th>
|
||
<th>工作内容</th>
|
||
<th>时间</th>
|
||
<th>负责人</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>第一阶段</strong></td>
|
||
<td>基础加密功能开发</td>
|
||
<td>1-2天</td>
|
||
<td>开发团队</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>第二阶段</strong></td>
|
||
<td>搜索索引功能开发</td>
|
||
<td>2-3天</td>
|
||
<td>开发团队</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>第三阶段</strong></td>
|
||
<td>历史数据迁移加密</td>
|
||
<td>1天</td>
|
||
<td>运维 + 开发</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>第四阶段</strong></td>
|
||
<td>测试与验收</td>
|
||
<td>1天</td>
|
||
<td>测试团队</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>合计</strong></td>
|
||
<td>—</td>
|
||
<td><strong>5-7个工作日</strong></td>
|
||
<td>—</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.8.2" id="实施步骤"><span
|
||
class="header-section-number">1.8.2</span> 实施步骤</h3>
|
||
<pre class="text"><code> 第1-2天 第3-5天 第6天 第7天
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
||
│ 加密功能 │ ────► │ 搜索功能 │ ────► │ 数据迁移 │ ────► │ 测试验收 │
|
||
│ 开发 │ │ 开发 │ │ 执行 │ │ 上线 │
|
||
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
配置加密器 精确搜索 备份数据 功能测试
|
||
添加注解 前缀搜索 执行迁移 性能测试
|
||
测试验证 模糊搜索 验证完整 安全测试</code></pre>
|
||
<hr />
|
||
<h2 data-number="1.9" id="八风险控制"><span
|
||
class="header-section-number">1.9</span> 八、风险控制</h2>
|
||
<h3 data-number="1.9.1" id="风险识别与应对"><span
|
||
class="header-section-number">1.9.1</span> 风险识别与应对</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>风险类型</th>
|
||
<th>风险描述</th>
|
||
<th>应对措施</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>密钥泄露风险</strong></td>
|
||
<td>加密密钥被窃取</td>
|
||
<td>密钥独立存储,定期轮换</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>数据迁移风险</strong></td>
|
||
<td>迁移过程数据丢失</td>
|
||
<td>先备份后迁移,分批执行</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>性能影响风险</strong></td>
|
||
<td>加解密影响系统性能</td>
|
||
<td>添加索引,使用缓存优化</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>功能影响风险</strong></td>
|
||
<td>现有功能受影响</td>
|
||
<td>充分测试,灰度发布</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.9.2" id="应急预案"><span
|
||
class="header-section-number">1.9.2</span> 应急预案</h3>
|
||
<pre class="text"><code>┌───────────────────────────────────────────────────────────────────┐
|
||
│ 应急处理流程 │
|
||
├───────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 发现问题 ────► 评估影响 ────► 启动回滚 ────► 恢复服务 │
|
||
│ │
|
||
│ · 监控告警 · 影响范围 · 数据回滚 · 验证功能 │
|
||
│ · 用户反馈 · 业务影响 · 代码回滚 · 恢复上线 │
|
||
│ │
|
||
└───────────────────────────────────────────────────────────────────┘</code></pre>
|
||
<hr />
|
||
<h2 data-number="1.10" id="九方案优势总结"><span
|
||
class="header-section-number">1.10</span> 九、方案优势总结</h2>
|
||
<h3 data-number="1.10.1" id="核心优势"><span
|
||
class="header-section-number">1.10.1</span> 核心优势</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>优势</th>
|
||
<th>说明</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>✅ <strong>安全性高</strong></td>
|
||
<td>采用SM4国产加密算法,符合等保要求</td>
|
||
</tr>
|
||
<tr>
|
||
<td>✅ <strong>搜索能力强</strong></td>
|
||
<td>加密后仍支持精确、前缀、模糊多种搜索</td>
|
||
</tr>
|
||
<tr>
|
||
<td>✅ <strong>改造成本低</strong></td>
|
||
<td>使用MyBatis-Plus插件,对业务代码侵入小</td>
|
||
</tr>
|
||
<tr>
|
||
<td>✅ <strong>实施周期短</strong></td>
|
||
<td>5-7个工作日可完成全部改造</td>
|
||
</tr>
|
||
<tr>
|
||
<td>✅ <strong>运维友好</strong></td>
|
||
<td>自动加解密,无需人工干预</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.10.2" id="投入产出分析"><span
|
||
class="header-section-number">1.10.2</span> 投入产出分析</h3>
|
||
<pre class="text"><code>┌───────────────────────────────────────────────────────────────────┐
|
||
│ 投入产出分析 │
|
||
├───────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 【投入】 【产出】 │
|
||
│ ──── ──── │
|
||
│ · 开发工时:5-7个工作日 · 通过等保测评检查 │
|
||
│ · 测试工时:1-2个工作日 · 符合数据安全法规要求 │
|
||
│ · 运维工时:1个工作日 · 降低数据泄露风险 │
|
||
│ · 提升用户数据安全保障 │
|
||
│ │
|
||
│ 【总计:约7-10个工作日】 【价值:等保合规 + 安全保障】│
|
||
│ │
|
||
└───────────────────────────────────────────────────────────────────┘</code></pre>
|
||
<hr />
|
||
<h2 data-number="1.11" id="十结论与建议"><span
|
||
class="header-section-number">1.11</span> 十、结论与建议</h2>
|
||
<h3 data-number="1.11.1" id="方案结论"><span
|
||
class="header-section-number">1.11.1</span> 方案结论</h3>
|
||
<p>本方案采用<strong>MyBatis-Plus加密插件 +
|
||
搜索索引</strong>的技术路线,能够:</p>
|
||
<ol type="1">
|
||
<li>✅ <strong>满足等保要求</strong> —— 敏感数据全部加密存储</li>
|
||
<li>✅ <strong>保持业务功能</strong> —— 加密后仍可正常搜索查询</li>
|
||
<li>✅ <strong>低成本实施</strong> —— 对现有系统改动小,周期短</li>
|
||
<li>✅ <strong>安全可控</strong> —— 密钥独立管理,审计可追溯</li>
|
||
</ol>
|
||
<h3 data-number="1.11.2" id="建议"><span
|
||
class="header-section-number">1.11.2</span> 建议</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>建议事项</th>
|
||
<th>说明</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>1. 尽快启动</strong></td>
|
||
<td>等保测评时间紧迫,建议尽快安排实施</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>2. 分阶段实施</strong></td>
|
||
<td>先完成核心功能,再优化性能</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>3. 充分测试</strong></td>
|
||
<td>上线前做好功能和性能测试</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>4. 保留回滚方案</strong></td>
|
||
<td>确保出现问题可快速回滚</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<p><strong>如有疑问,请随时沟通!</strong></p>
|
||
</body>
|
||
</html>
|