电子档案系统全链路保密实操指南 覆盖部署运维数据管理全场景
一、前置准备
1.1 环境要求
硬件:服务器需搭载TPM2.0安全芯片,存储介质采用企业级加密SSD,独立硬件加密狗1个
软件依赖:OpenSSL 1.1.1+、Nginx 1.20+、JDK 11+,所有依赖官方下载地址如下:
- OpenSSL:https://www.openssl.org/source/
- Nginx:http://nginx.org/en/download.html
- JDK11:https://adoptium.net/zh-CN/temurin/releases/?version=11
- 国家档案局官方开源电子档案基础框架:http://www.saac.gov.cn/xxgk/tzgg/202306/t20230612_159788.html
1.2 依赖安装命令(CentOS7/8环境)
``` yum install -y openssl nginx java-11-openjdk-devel cryptsetup ```二、部署阶段保密配置实操
2.1 存储层加密配置
所有电子档案存储分区必须做全盘加密,操作步骤如下:
- 执行分区加密命令,按提示输入加密密钥(密钥长度不低于16位,包含大小写、数字、特殊字符):
cryptsetup luksFormat /dev/sdb1 - 映射加密分区:
cryptsetup luksOpen /dev/sdb1 archive_encrypted - 格式化分区:
mkfs.ext4 /dev/mapper/archive_encrypted - 配置开机自动挂载,编辑/etc/fstab添加如下内容:
/dev/mapper/archive_encrypted /data/archive ext4 defaults 0 0
禁止将加密密钥存储在服务器本地磁盘,必须存储在独立硬件加密狗中,密钥仅限保密管理员1人掌握
2.2 传输层加密配置
所有对外访问必须配置国密SM2 SSL证书,证书申请地址:https://jzszc.gjzwfw.gov.cn/ ,Nginx配置如下:
``` server { listen 443 ssl http2; server_name 你的档案系统域名; ssl_certificate /etc/nginx/conf.d/sm2.crt; ssl_certificate_key /etc/nginx/conf.d/sm2.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-SM2-GMSSL-SM4-CBC-SM3:ECDHE-ECDSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; root /data/archive/web; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; } } 强制HTTP跳转HTTPS server { listen 80; server_name 你的档案系统域名; return 301 https://$host$request_uri; } ```禁止开放HTTP 80端口对外访问,所有内网接口调用也必须走HTTPS协议
2.3 身份鉴权配置

所有用户必须开启双因素认证,采用“密码+TOTP动态验证码”模式,SpringBoot项目集成依赖如下:
```权限配置遵循最小权限原则:档案查阅岗仅开放查询权限,无下载、修改、删除权限;档案编辑岗仅开放权限范围内档案的编辑权限,无删除、批量导出权限;管理员账号仅允许在内网环境登录
三、运维阶段保密管控实操
3.1 访问审计配置
全操作日志留存周期不低于180天,采用ELK stack存储审计日志,Logstash配置如下:
``` input { beats { port => 5044 } } filter { if [fields][type] == "archive_audit" { mutate { add_field => { "index_prefix" => "archive_audit_log" } } } } output { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "%{index_prefix}-%{+YYYY.MM.dd}" } } ```审计日志仅支持只读查询,禁止任何修改、删除操作,日志导出必须经保密管理员审批
3.2 数据脱敏配置
前端展示、日志输出、接口返回均需做数据脱敏,通用脱敏工具类如下:
```java public class DesensitizationUtil { // 身份证号脱敏:前6后4 public static String idCardDesensitize(String idCard) { if (idCard == null || idCard.length() != 18) return idCard; return idCard.replaceAll("(\\d{6})\\d{8}(\\d{4})", "$1$2"); } // 手机号脱敏:前3后4 public static String phoneDesensitize(String phone) { if (phone == null || phone.length() != 11) return phone; return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1$2"); } // 绝密档案内容全部脱敏 public static String secretContentDesensitize(String content) { return "该档案为绝密级,请提交申请后查看原文"; } } ```3.3 定期漏洞巡检
每周执行1次全系统漏洞扫描,巡检脚本如下,设置crontab每周一0点自动执行:
``` !/bin/bash 安装依赖 yum install -y nmap 扫描端口漏洞 nmap -sV --script vuln 你的档案系统域名 > /var/log/archive_vuln_$(date +%Y%m%d).log 发送邮件告警 mail -s "电子档案系统每周漏洞巡检报告" admin@xxx.com < /var/log/archive_vuln_$(date +%Y%m%d).log ```四、泄密风险应急处置流程
- 发现疑似泄密风险第一时间断开服务器外网连接,保留现场所有日志、进程状态
- 用提前备份的只读快照恢复系统数据,验证数据完整性
- 溯源审计日志定位异常操作人、操作时间、操作内容,固定证据
- 24小时内上报当地保密行政管理部门,配合开展调查
五、落地验证标准
- 存储加密验证:执行
blkid /dev/sdb1,输出包含TYPE="crypto_LUKS"即为合格 - 传输加密验证:执行
curl -v http://你的域名,返回301跳转HTTPS,证书为国密SM2证书即为合格 - 权限验证:用普通查阅岗账号尝试下载绝密档案,返回无权限提示即为合格
- 审计验证:执行任意查询操作,10秒内可在审计系统查询到对应操作记录即为合格