# 数据传输与存储完整性与保密性核查指南

LLMS index: [llms.txt](/wikis/llms.txt)

---

# 数据传输与存储完整性与保密性核查指南

> 面向信息资产全类型的实现与核查方法。

**适用标准：** GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》

**测评维度：** 数据传输完整性 / 数据存储完整性 / 数据传输保密性 / 数据存储保密性

**版本：** V1.0  
**日期：** 2026 年 3 月

## 1. 概述

本报告依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》（三级），系统阐述面向操作系统、数据库、中间件、应用系统、网络设备、安全设备等信息资产的数据完整性与保密性的实现方法及核查操作流程。

### 1.1 基本概念

#### 1.1.1 数据完整性

数据完整性指保证数据在传输、存储和处理过程中不遭受非授权的篡改（修改、删除、重排序、替换）。实现机制包括：

1. 消息鉴别码（MAC）：如 HMAC-SHA256、CBC-MAC，可防止恶意篡改。
2. 数字签名：基于公钥密码算法，同时提供完整性与不可否认性。
3. 密码杂凑算法（SHA-256 / SM3 等）：单独使用仅防范无意传输错误，须配合 MAC 或数字签名方能抵御恶意攻击。

#### 1.1.2 数据保密性

数据保密性指保证数据不会泄露给非授权实体。实现机制包括：

1. 对称加密：AES-256（GCM / CBC 模式）、SM4——适用于大量数据加密。
2. 非对称加密：RSA / SM2——适用于密钥交换与数字信封。
3. 传输层协议：TLS 1.2 / 1.3（HTTPS / SSH / RDP）——集成密钥协商与加密。
4. 注意：哈希运算（SHA-256 / SM3 等）属于完整性保护机制，不属于保密性机制。

### 1.2 测评范围

覆盖以下四个测评维度：

1. 数据传输完整性（测评项 a）
2. 数据存储完整性（测评项 b）
3. 数据传输保密性（测评项 a）
4. 数据存储保密性（测评项 b）

核查对象涵盖：网络设备、安全设备、服务器/终端、数据库、中间件、应用系统。

## 2. 核查范围矩阵

### 2.1 数据传输完整性 — 核查范围

下表标注各类信息资产需核查的数据类型（`✓` = 需核查，`—` = 不适用）：

| 数据类型 | 网络设备 | 安全设备 | 服务器/终端 | 数据库 | 中间件 | 应用系统 |
| --- | --- | --- | --- | --- | --- | --- |
| 鉴别数据（口令、密钥等） | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要审计数据 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要配置数据 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要业务数据 | — | — | — | — | — | ✓ |
| 重要视频数据 | — | — | — | — | — | ✓ |
| 重要个人信息 | — | — | — | — | — | ✓ |

说明：鉴别数据指口令、密钥、证书等身份认证信息。重要业务数据、重要视频数据、重要个人信息仅适用于应用系统层面。

### 2.2 数据存储完整性 — 核查范围

存储完整性与传输完整性的核查范围相同，适用于同等核查对象和数据类型：

| 数据类型 | 网络设备 | 安全设备 | 服务器/终端 | 数据库 | 中间件 | 应用系统 |
| --- | --- | --- | --- | --- | --- | --- |
| 鉴别数据（口令、密钥等） | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要审计数据 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要配置数据 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要业务数据 | — | — | — | — | — | ✓ |
| 重要视频数据 | — | — | — | — | — | ✓ |
| 重要个人信息 | — | — | — | — | — | ✓ |

### 2.3 数据传输保密性 — 核查范围

传输保密性核查对象：全类型资产核查鉴别数据；应用系统额外核查重要业务数据和重要个人信息：

| 数据类型 | 网络设备 | 安全设备 | 服务器/终端 | 数据库 | 中间件 | 应用系统 |
| --- | --- | --- | --- | --- | --- | --- |
| 鉴别数据（口令、密钥等） | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 重要业务数据 | — | — | — | — | — | ✓ |
| 重要个人信息 | — | — | — | — | — | ✓ |

### 2.4 数据存储保密性 — 核查范围

存储保密性核查对象：全类型资产核查鉴别数据；应用系统额外核查重要业务数据和重要个人信息（同传输保密性矩阵）。

## 3. 实现方法

### 3.1 数据传输完整性实现

#### 3.1.1 鉴别数据与重要配置数据（全类型资产）

**要求：** 采用 SSH、RDP、HTTPS 或等效密码技术，在传输层提供完整性保护。

1. **SSH（Secure Shell）**：适用于网络设备、服务器、数据库远程管理。使用 HMAC-SHA2-256 等算法对传输数据进行消息认证。
2. **RDP over TLS**：Windows 远程桌面须启用 Network Level Authentication（NLA）并使用 TLS 加密。
3. **HTTPS / TLS 1.2+**：Web 管理界面、API 接口的标准安全传输协议，TLS 握手内置完整性保护。
4. **SNMPv3（AuthPriv 模式）**：适用于网络设备、安全设备审计数据采集，使用 HMAC-MD5 或 HMAC-SHA 进行认证。

#### 3.1.2 重要审计数据（全类型资产）

**要求：** 采用 SNMPv3（v2c 及以上）、Syslog over TLS、HTTPS，或有测评证据的密码技术。

1. **SNMPv3 AuthPriv 模式**：同时提供认证（完整性）和加密（保密性），推荐使用 SHA / AES 组合。
2. **Syslog over TLS（RFC 5425）**：日志传输采用 TLS 保护，防止审计日志被篡改。
3. **HTTPS 日志采集接口**：Web 类日志系统通过 HTTPS 传输审计数据。

#### 3.1.3 重要业务数据、重要个人信息、重要视频数据（应用系统）

**要求：** 采用 HTTPS / TLS 1.2+，禁用 TLS 1.0 / 1.1 及弱密码套件。

1. **TLS 1.2 / 1.3**：业务接口全程 HTTPS，禁用 RC4、DES、MD5 等弱算法。
2. **视频流加密**：RTSP over TLS 或 HLS with AES-128，确保视频数据传输完整性。
3. **API 接口签名**：业务 API 采用 HMAC-SHA256 对请求参数签名，防止请求被篡改。

### 3.2 数据存储完整性实现

#### 3.2.1 鉴别数据（口令存储）

**要求：** 采用 SHA-256 及以上或 SM3 算法，并结合加盐（Salt）机制。

1. **哈希 + 盐值**：口令存储使用 bcrypt / scrypt / PBKDF2 或 SHA-256 + 随机盐，禁用 MD5、SHA-1。

> **示例：云平台 RDS MySQL 版（8.0）**  
> 经访谈，数据库采用 `caching_sha2_password` 插件加密存储鉴别信息，是加盐后按照 SHA-256 处理后存储，可以确保鉴别信息在存储过程中的完整性，配置数据和审计数据的完整性由云平台自有的安全能力实现。

2. **SM3 算法**：国密标准，输出 256 位摘要，可替代 SHA-256 用于国产化环境。
3. **注意**：单纯哈希存储口令属于存储完整性保护，在等保中可以给存储完整性符合；不属于保密性（口令本身无法从哈希还原）。

#### 3.2.2 重要配置数据与重要审计数据

**要求：** 有测评证据证明已使用密码技术（如密码机、HMAC 签名、数字签名）保护存储完整性。

1. **密码机（HSM）**：配置文件签名存储，利用 HSM 生成 HMAC 或数字签名，核查时提供签名验证证据。
2. **数据库触发器 + HMAC**：关键配置表存储时自动计算 HMAC 并存入校验字段。
3. **文件完整性监控（FIM）**：对配置文件、审计日志计算哈希值并定期比对，如 OSSEC、Tripwire。

#### 3.2.3 重要业务数据与重要个人信息（应用系统）

**要求：** 有测评证据的密码技术，如数据库加密存储 + HMAC 完整性校验或密码机。

1. **数据库字段级 HMAC**：敏感字段在写入时计算 HMAC 并存储，读取时验证。
2. **密码机集成**：调用密码机 API 对业务数据进行签名，证明数据未被篡改。
3. **区块链 / 哈希链**：重要业务记录采用链式哈希，任意篡改均可被检测。

### 3.3 数据传输保密性实现

#### 3.3.1 鉴别数据（全类型资产）

**要求：** SSH / RDP / HTTPS，禁止口令、密钥等在明文协议（Telnet / HTTP / FTP）中传输。

1. **SSH v2**：替代 Telnet / rlogin，使用 AES / ChaCha20 加密传输管理数据。
2. **HTTPS / TLS 1.2+**：Web 管理界面强制 HTTPS，HTTP 请求 301 重定向。
3. **RDP + NLA**：Windows 远程桌面启用网络级身份验证，传输内容加密。
4. **禁用明文协议**：关闭 Telnet（23）、HTTP（80 管理端口）、SNMPv1 / v2c（如涉及口令）。

#### 3.3.2 重要业务数据与重要个人信息（应用系统）

**要求：** HTTPS / TLS 1.2+，业务接口全链路加密，禁止 HTTP 明文传输敏感数据。

1. **TLS 1.2 / 1.3**：推荐密码套件 `TLS_AES_256_GCM_SHA384`（TLS 1.3）或 `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`（TLS 1.2）。
2. **HSTS（HTTP Strict Transport Security）**：防止协议降级攻击。
3. **证书管理**：使用可信 CA 签发的证书，定期轮换，避免使用自签名证书。

### 3.4 数据存储保密性实现

#### 3.4.1 鉴别数据

**要求：** SHA-256 / SM3 加盐哈希存储，或等效密码技术。MD5 / SHA-1 安全强度不足。

1. **强哈希算法**：bcrypt（cost ≥ 12）、Argon2id、PBKDF2-SHA256（迭代次数 ≥ 100,000）。
2. **禁止明文存储**：任何情况下不得将口令以明文或可逆加密方式存储。
3. **密钥存储**：API 密钥、证书私钥使用密码机（HSM）或加密密钥库（如 HashiCorp Vault）存储。

#### 3.4.2 重要业务数据与重要个人信息（应用系统 / 数据库）

**要求：** AES-256 / SM4 对称加密，或密码机加密，需有密钥管理方案。

1. **数据库字段级加密**：对姓名、身份证号、手机号、银行卡号等敏感字段单独加密存储。
2. **透明数据加密（TDE）**：数据库整体加密，如 Oracle TDE、SQL Server TDE、MySQL InnoDB 加密。
3. **应用层加密**：加密在应用层完成，密钥不由数据库管理，防止 DBA 越权访问。
4. **密码机（HSM）**：密钥托管在 HSM，数据加解密通过 HSM API 调用，最高安全级别。
5. **密钥管理**：主密钥（KEK）与数据密钥（DEK）分离，定期轮换，密钥访问审计。

## 4. 分类核查方法

### 4.1 综合核查方法速查表

以下汇总所有测评维度的核查要点，可作为现场测评的参考清单：

| 核查维度 | 数据类型 | 核查对象 | 实现技术要求 | 核查方法 |
| --- | --- | --- | --- | --- |
| 传输完整性 | 鉴别数据 重要配置数据 | 全类型信息资产 | SSH/RDP/HTTPS或等效密码技术 | 查看协议配置；抓包验证 |
| 传输完整性 | 重要审计数据 | 全类型信息资产 | SNMPv3/HTTPS或等效密码技术 | 核查SNMP版本；查传输配置 |
| 传输完整性 | 重要业务数据 重要个人信息 重要视频数据 | 应用系统 | HTTPS/TLS或等效密码技术 | 核查API/接口证书；扫描端口 |
| 存储完整性 | 鉴别数据 | 全类型信息资产 | SHA-256/SM3或以上 | 查数据库口令字段；核查哈希算法 |
| 存储完整性 | 重要配置/审计 重要业务/个人 | 全类型信息资产 | 密码机/HMAC等密码技术 | 查密码机使用证据；查日志签名 |
| 传输保密性 | 鉴别数据 | 全类型信息资产 | SSH/RDP/HTTPS | 核查管理协议；禁用明文协议 |
| 传输保密性 | 重要业务数据 重要个人信息 | 应用系统 | HTTPS/TLS 1.2+ | SSL证书核查；禁用弱密码套件 |
| 存储保密性 | 鉴别数据 | 全类型信息资产 | SHA-256/SM3+加盐 | 查口令存储方式；确认盐值机制 |
| 存储保密性 | 重要业务数据 重要个人信息 | 应用系统/数据库 | AES-256/SM4或密码机 | 查字段加密；核查密钥管理 |

### 网络设备

**核查对象：** 路由器、交换机、防火墙等网络设备的鉴别数据、重要审计数据、重要配置数据。

#### 传输完整性

- **核查内容：** 管理协议是否使用SSH/HTTPS/SNMPv3
- **合规实现方式：** 启用SSHv2管理，禁用Telnet；Web管理启用HTTPS；审计数据采集使用SNMPv3 AuthPriv
- **核查操作步骤：** 1. show run | include ssh/telnet 2. 验证SSH版本：ssh -V 3. 核查SNMP配置：show snmp 4. 抓包验证无明文协议流量

#### 存储完整性

- **核查内容：** 配置文件/审计日志是否有完整性保护
- **合规实现方式：** 配置导出时附带哈希校验值；审计日志有签名或存入密码机
- **核查操作步骤：** 1. 导出配置并核查是否提供MD5/SHA256校验文件 2. 询问备份机制是否含完整性校验 3. 查看日志存储方案

#### 传输保密性

- **核查内容：** 管理口令是否通过加密通道传输
- **合规实现方式：** 禁用所有明文管理协议，启用SSH/HTTPS
- **核查操作步骤：** 1. 尝试Telnet登录，应无法连接 2. 核查enable password是否使用Secret（MD5） 3. 扫描23/80等明文端口

#### 存储保密性

- **核查内容：** 本地口令是否加密存储
- **合规实现方式：** enable secret（MD5/Type 9）；不使用enable password明文
- **核查操作步骤：** 1. show run | include enable secret/password 2. 核查口令加密类型（$1$=MD5,$9$=scrypt） 3. 查看service password-encryption配置


### 安全设备

**核查对象：** IDS/IPS、WAF、堡垒机、日志审计系统等安全设备。

#### 传输完整性

- **核查内容：** 管理通道是否加密；告警/日志传输是否有完整性保护
- **合规实现方式：** Web管理控制台HTTPS；日志外发使用Syslog TLS或HTTPS
- **核查操作步骤：** 1. 访问管理界面确认HTTPS（查看证书） 2. 核查告警外发配置（Syslog/HTTPS） 3. 查看TLS版本配置

#### 存储完整性

- **核查内容：** 内置日志是否有防篡改机制
- **合规实现方式：** 日志存储配合WORM（一次写多次读）介质或签名机制
- **核查操作步骤：** 1. 询问日志存储是否支持WORM或签名 2. 查看是否有完整性基线报告 3. 核查日志导出校验值

#### 传输保密性

- **核查内容：** 管理口令传输是否加密
- **合规实现方式：** HTTPS管理界面；API调用使用Token/TLS
- **核查操作步骤：** 1. 确认管理界面强制HTTPS 2. HTTP访问是否302/301重定向 3. 禁止HTTP明文登录

#### 存储保密性

- **核查内容：** 本地账号口令存储方式
- **合规实现方式：** 使用bcrypt/SHA-256+Salt存储，禁止明文或MD5
- **核查操作步骤：** 1. 查阅厂商安全白皮书 2. 通过技术问询确认哈希算法 3. 查询配置文件中的口令格式


### 服务器与终端

**核查对象：** Linux / Windows 服务器、工作站、管理终端的鉴别数据、审计数据、配置数据。

#### 传输完整性 （SSH/HTTPS）

- **核查内容：** 远程管理是否使用SSH/RDP+TLS；系统日志传输是否加密
- **合规实现方式：** Linux：启用SSH，禁用rsh/rlogin；Windows：RDP+NLA+TLS；日志传输使用rsyslog TLS
- **核查操作步骤：** Linux： 1. systemctl status sshd 2. grep PermitRootLogin /etc/ssh/sshd_config 3. ss -tlnp | grep 22 Windows： 1. 核查RDP Security Layer（TLS） 2. 确认NLA已启用 3. 检查rsyslog配置

#### 存储完整性

- **核查内容：** 配置文件/审计日志是否有完整性保护
- **合规实现方式：** 关键配置文件（/etc/passwd等）使用FIM工具监控；日志文件启用append-only
- **核查操作步骤：** 1. 检查是否部署AIDE/Tripwire/OSSEC 2. aide --check输出结果 3. 检查/var/log权限与append-only属性 4. chattr +a /var/log/audit/audit.log

#### 传输保密性

- **核查内容：** 是否禁用明文管理协议
- **合规实现方式：** 禁用Telnet/rlogin/rsh；SSH强制密钥认证或双因素认证
- **核查操作步骤：** Linux： 1. grep -r telnet /etc/inetd.conf /etc/xinetd.d/ 2. 确认23端口关闭 Windows： 1. 确认RDP加密级别 2. 检查NTLM vs Kerberos使用情况

#### 存储保密性

- **核查内容：** 系统口令存储是否安全
- **合规实现方式：** Linux：/etc/shadow使用SHA-512（$6$）；Windows：NTLM Hash存储，启用Credential Guard
- **核查操作步骤：** Linux： 1. grep 口令账号 /etc/shadow | cut -d: -f2 2. 确认$6$=SHA-512 Windows： 1. 查看LmCompatibilityLevel注册表 2. 确认Credential Guard状态


### 数据库

**核查对象：** Oracle、MySQL、SQL Server、PostgreSQL、MongoDB 等数据库系统。

#### 传输完整性

- **核查内容：** 数据库连接是否使用TLS加密通道
- **合规实现方式：** 启用数据库TLS/SSL连接；禁止明文TCP连接
- **核查操作步骤：** Oracle： 1. 检查sqlnet.ora：SQLNET.ENCRYPTION_SERVER=REQUIRED MySQL： 1. SHOW VARIABLES LIKE 'have_ssl'; 2. SHOW STATUS LIKE 'Ssl_cipher'; SQL Server： 1. 检查Force Encryption=YES PostgreSQL： 1. 检查pg_hba.conf：hostssl

#### 存储完整性

- **核查内容：** 数据库口令/敏感字段是否有完整性保护
- **合规实现方式：** DBA口令使用强哈希；重要表字段使用HMAC校验列
- **核查操作步骤：** 1. Oracle：查看DBA_USERS.PASSWORD_VERSIONS（推荐11G/12C） 2. MySQL：SELECT user,plugin FROM mysql.user; (应为caching_sha2_password) 3. 核查是否有HMAC校验字段 4. 询问是否对接密码机

#### 传输保密性

- **核查内容：** 应用到数据库的连接串是否加密
- **合规实现方式：** 连接串启用SSL=True/Encrypt=yes，证书验证
- **核查操作步骤：** 1. 核查应用配置文件中的连接串 2. 检查SSL模式（require/verify-full） 3. 网络抓包确认无明文SQL流量

#### 存储保密性

- **核查内容：** 敏感业务数据是否加密存储
- **合规实现方式：** 字段级加密（AES-256/SM4）或TDE全库加密，密钥管理独立
- **核查操作步骤：** 1. 核查是否启用TDE 2. 检查敏感字段（身份证/手机号）存储格式 3. 询问加密密钥存储位置 4. 核查应用层解密逻辑


### 中间件

**核查对象：** Nginx、Apache、Tomcat、WebLogic、RabbitMQ、Kafka 等中间件。

#### 传输完整性

- **核查内容：** 管理控制台和服务接口是否使用HTTPS；消息队列传输是否加密
- **合规实现方式：** Web中间件：启用HTTPS，禁用HTTP；消息中间件：启用TLS
- **核查操作步骤：** Nginx/Apache： 1. 检查server配置中listen 443 ssl 2. ssl_protocols TLSv1.2 TLSv1.3 3. 禁用SSLv3/TLSv1.0 Tomcat： 1. 检查server.xml中Connector port=8443 Kafka： 1. 检查listeners=SSL:// 2. security.protocol=SSL

#### 存储完整性

- **核查内容：** 配置文件/访问日志是否有完整性保护
- **合规实现方式：** 配置文件纳入版本控制（Git+签名）；日志文件FIM监控
- **核查操作步骤：** 1. 检查是否有配置版本控制 2. 核查日志文件权限（属主为服务账号） 3. 检查FIM工具是否监控中间件配置目录

#### 传输保密性

- **核查内容：** 管理界面和业务接口是否强制HTTPS
- **合规实现方式：** HTTP自动重定向到HTTPS；禁用弱密码套件
- **核查操作步骤：** Nginx： 1. 检查ssl_ciphers配置 2. curl -I http://host 查看301/302 Apache： 1. 检查mod_ssl配置 2. 检查SSLProtocol配置

#### 存储保密性

- **核查内容：** 中间件账号口令是否加密存储
- **合规实现方式：** 管理账号口令使用加密存储（非明文）；API密钥使用密钥管理服务
- **核查操作步骤：** Tomcat： 1. 检查tomcat-users.xml中口令是否明文 2. 推荐使用UserDatabase+CredentialHandler WebLogic： 1. 核查SerializedSystemIni.dat口令加密 Kafka： 1. 检查JAAS配置中口令是否加密


### 应用系统

**核查对象：** Web 应用、移动应用、API 接口、业务系统——覆盖所有六类数据类型。

#### 传输完整性 （鉴别/配置/审计）

- **核查内容：** 登录接口是否使用HTTPS；配置管理接口是否加密传输
- **合规实现方式：** 登录/认证接口强制HTTPS；配置API使用HTTPS+签名验证
- **核查操作步骤：** 1. 使用浏览器/Postman访问登录接口，确认HTTPS 2. 检查HTTP是否自动重定向HTTPS 3. 核查HSTS响应头：Strict-Transport-Security 4. 验证TLS版本：openssl s_client -connect host:443

#### 传输完整性 （业务/个人/视频）

- **核查内容：** 业务API和个人信息传输接口是否有完整性保护
- **合规实现方式：** API接口使用HTTPS+请求签名（HMAC-SHA256）；视频流RTSP TLS
- **核查操作步骤：** 1. 核查业务API文档，确认签名机制 2. 检查请求头中的签名字段（X-Signature等） 3. 视频系统核查推流/拉流协议配置

#### 存储完整性 （鉴别数据）

- **核查内容：** 用户口令存储方式
- **合规实现方式：** 使用bcrypt(cost≥12)/Argon2id/PBKDF2-SHA256（≥100000次）+随机盐
- **核查操作步骤：** 1. 查看用户表口令字段（应为不可识别的哈希字符串） 2. 核查代码/配置中的哈希算法 3. 确认盐值为随机生成（非固定） 4. 测试：相同口令两次存储值应不同

#### 存储完整性 （业务/个人信息）

- **核查内容：** 重要业务数据和个人信息是否有存储完整性保护
- **合规实现方式：** 数据库增加HMAC校验列；或对接密码机进行数据签名
- **核查操作步骤：** 1. 核查数据库表结构，查找完整性校验字段 2. 询问是否有数据完整性基线校验机制 3. 核查密码机接入日志/证书

#### 传输保密性 （鉴别数据）

- **核查内容：** 口令、Token等在传输中是否加密
- **合规实现方式：** HTTPS全程加密；禁止URL传参口令；使用Bearer Token
- **核查操作步骤：** 1. 核查登录请求，确认口令在请求体中（非URL） 2. 确认HTTPS（非HTTP） 3. 检查响应头Set-Cookie是否含Secure/HttpOnly标志

#### 传输保密性 （业务/个人信息）

- **核查内容：** 个人信息（姓名/手机/身份证）在传输中是否加密
- **合规实现方式：** HTTPS加密传输；前端展示时部分脱敏
- **核查操作步骤：** 1. 抓包分析业务接口响应数据 2. 确认敏感字段不在明文HTTP中传输 3. 核查API是否返回完整未脱敏数据

#### 存储保密性 （鉴别数据）

- **核查内容：** 口令、API密钥的存储是否加密
- **合规实现方式：** 口令使用强哈希+盐；API密钥使用AES-256加密或密钥管理服务
- **核查操作步骤：** 1. 直接查看数据库口令字段（不可逆哈希） 2. 核查API密钥存储表，应为密文 3. 询问密钥管理方案（HashiCorp Vault/KMS/HSM）

#### 存储保密性 （业务/个人信息）

- **核查内容：** 身份证、手机号、银行卡等敏感字段是否加密存储
- **合规实现方式：** 字段级AES-256/SM4加密；或TDE+应用层加密双层保护
- **核查操作步骤：** 1. 直接SELECT敏感字段，应为密文/乱码 2. 核查加密算法：应为AES-256-GCM或SM4 3. 核查密钥存储：应独立于数据库 4. 核查密钥轮换策略


## 5. 常见不符合项与整改建议

| 核查项 | 核查内容 | 合规实现方式 | 核查操作步骤 |
| --- | --- | --- | --- |
| 明文协议 | 使用Telnet/HTTP/FTP/SNMPv1管理设备或传输数据 | 全面替换为SSH v2/HTTPS/SNMPv3 AuthPriv | 禁用明文服务，启用加密替代协议；修改防火墙策略禁止明文端口对外开放 |
| 弱口令哈希 | 使用MD5、SHA-1或明文存储口令 | 迁移至bcrypt/Argon2id/PBKDF2-SHA256 | 制定口令哈希迁移方案，用户下次登录时强制重新设置并存储为强哈希 |
| 缺少完整性校验 | 敏感数据存储无完整性保护 | 为敏感字段增加HMAC校验列或对接密码机 | 评估引入HSM成本；短期可先实施HMAC，长期对接密码机 |
| TLS配置薄弱 | 支持TLS 1.0/1.1或弱密码套件（RC4/DES） | 仅启用TLS 1.2/1.3，使用AEAD密码套件 | 参考Mozilla SSL配置生成器，配置Intermediate或Modern级别 |
| 敏感数据明文存储 | 个人信息、业务数据在数据库中明文存储 | 实施字段级AES-256加密或TDE | 优先对最高敏感字段（身份证/银行卡）加密，制定密钥管理流程 |
| 缺少HSTS | HTTPS网站未配置HSTS头 | 添加Strict-Transport-Security响应头 | 添加：Strict-Transport-Security: max-age=31536000; includeSubDomains; preload |
| 密钥管理缺失 | 加密密钥与数据存储在同一位置 | 密钥存储于独立KMS/HSM，实施密钥轮换 | 引入HashiCorp Vault或云KMS；建立密钥生命周期管理制度 |

## 6. 附录：推荐密码算法参考

### 6.1 算法选型建议

| 场景 | 推荐算法（国际） | 推荐算法（国密） | 禁用算法 |
| --- | --- | --- | --- |
| 口令哈希 | bcrypt/Argon2id/PBKDF2-SHA256 | SM3+盐（配合KDF） | MD5/SHA-1/明文 |
| 数据完整性 | HMAC-SHA256/SHA3-256 | HMAC-SM3 | CRC32/Adler-32（非密码学） |
| 数字签名 | RSA-PSS-2048+/ECDSA-P256+ | SM2 | RSA-PKCS1v1.5/DSA-1024 |
| 对称加密 | AES-256-GCM/AES-256-CBC | SM4-GCM/SM4-CBC | DES/3DES/RC4/AES-128-ECB |
| 传输层 | TLS 1.3（优先）/TLS 1.2 | TLS+TLCP（GB/T 38636） | SSL 3.0/TLS 1.0/1.1 |
| 密钥交换 | ECDHE-P256/X25519 | SM2 | RSA静态密钥交换/DH-1024 |

### 6.2 测评证据收集清单

现场核查时应收集以下证据材料：

1. 网络设备：SSH / HTTPS 配置截图；SNMPv3 配置；禁用 Telnet 策略。
2. 安全设备：管理界面 TLS 证书截图；日志外发配置（Syslog TLS / HTTPS）。
3. 服务器：`/etc/shadow` 口令字段截图（Linux）；AIDE / FIM 工具安装证明；RDP 加密配置（Windows）。
4. 数据库：SSL / TLS 连接配置截图；用户表口令字段（哈希格式验证）；TDE 启用状态。
5. 中间件：`server.xml` / `nginx.conf` TLS 配置；HTTP 重定向验证；控制台 HTTPS 访问截图。
6. 应用系统：登录接口抓包截图（HTTPS）；敏感字段加密存储查询结果；加密算法说明文档；密钥管理方案。
7. 密码机：HSM 使用日志；接口调用证明；资质证书（商密局检测报告）。
