信息安全
信息安全模块用于集中学习加密、签名、哈希、HTTPS、密钥管理、接口安全、数据脱敏、审计与合规等通用安全知识。它不是某个框架的子模块,而是 Spring Security、网关、开放 API、数据库字段加密、文件存储安全都会依赖的基础能力。
为什么要单独成模块
Spring Security 主要解决 Web 应用里的认证、授权、过滤器链、会话和权限控制;信息安全解决的是更底层、更通用的问题:
- 数据传输中怎么防窃听。
- 报文怎么防篡改。
- 调用方身份怎么证明。
- 敏感字段落库怎么保护。
- 密码为什么不能可逆加密。
- HTTPS 为什么要混合使用对称加密和非对称加密。
- 密钥怎么保存、轮换、审计和应急。
mermaid
flowchart TD
A["信息安全"] --> B["加密与签名"]
A --> C["传输安全 HTTPS/TLS"]
A --> D["接口安全"]
A --> E["数据安全"]
A --> F["密钥管理"]
A --> G["审计与合规"]
B --> H["对称加密 AES/SM4"]
B --> I["非对称加密 RSA/ECC/SM2"]
B --> J["哈希 SHA/SM3"]
B --> K["数字签名"]学习路线
| 顺序 | 文档 | 学什么 |
|---|---|---|
| 1 | 加密基础:对称加密与非对称加密 | AES、RSA、哈希、签名、HTTPS 混合加密、接口签名 |
| 2 | 从零到精通验收清单 | 按安全目标、原理、Demo、场景、排查、面试逐项验收 |
| 3 | 商业场景训练营 | 开放接口签名、敏感字段加密、密码哈希、JWT、密钥轮换如何落地 |
| 4 | HTTPS/TLS 全过程原理 | 证书、握手、信任链、HTTPS 为什么安全 |
| 5 | 开放接口签名与防重放 | appId、timestamp、nonce、签名、防重放、防篡改 |
| 6 | 从零到精通验收清单 | 字段加密、脱敏、数据分级、权限与审计 |
| 7 | 从零到精通验收清单 | KMS、密钥轮换、keyVersion、泄露应急 |
建议学习时先分清“加密、哈希、签名、编码”的边界,再看 TLS 如何保护传输链路,最后看开放接口为什么还需要业务级签名和防重放。
和其他模块的关系
| 相关模块 | 关系 |
|---|---|
| Spring Security | 认证授权依赖密码哈希、JWT 签名、HTTPS、安全上下文 |
| Spring Cloud Gateway | 网关常做 Token 校验、接口签名、防重放、限流 |
| Java 网络编程 | HTTPS/TLS 建立在 TCP 和 HTTP 之上 |
| 数据库 | 敏感字段加密、脱敏展示、审计日志 |
| 文件服务 | 文件摘要、签名 URL、权限校验 |
| DevOps/K8s | Secret、证书、密钥挂载、etcd 加密 |
医疗数据采集平台中的信息安全
医疗数据采集与资产平台通常会处理患者身份信息、就诊记录、检验检查报告、医院接口凭证、数据资产目录和用户权限。信息安全设计至少要覆盖:
- 医院到平台的数据传输使用 HTTPS。
- 开放接口使用签名、防重放和调用方身份识别。
- 身份证号、手机号等敏感字段按需加密或脱敏。
- 用户密码使用 BCrypt/Argon2 等慢哈希,不使用可逆加密。
- JWT 只放必要身份声明,不放敏感业务数据。
- 密钥不写入代码仓库,生产密钥独立管理和轮换。
- 查询、导出、下载敏感数据要记录审计日志。
mermaid
flowchart TD
A["医院系统"] --> B["HTTPS 传输"]
B --> C["接口签名验签"]
C --> D["timestamp + nonce 防重放"]
D --> E["业务数据解密或解析"]
E --> F["字段加密/脱敏落库"]
F --> G["权限控制和审计日志"]本章小结
信息安全不是“用了某个算法”就结束。真正安全的系统要同时考虑:算法选择、密钥管理、传输安全、身份认证、权限控制、防重放、防篡改、数据脱敏、审计和应急。
