企業級安全五大核心需求
| 需求 | 通俗理解 | 典型技術手段 |
| 完整性驗證 | 數據未被竄改 | 消息摘要 (MD5/SHA)、HMAC、數字簽名 |
| 機密性保持 | 數據不被窺探 | 對稱加密 (AES)、非對稱加密 (RSA)、混合加密 |
| 認證與授權 | 確認身份、分配權限 | 用戶名/密碼、Token、證書、OAuth2、RBAC/ABAC |
| 不可抵賴性 | 操作不可否認 | 數字簽名、審計日誌、時間戳服務 |
| 審計證據 | 關鍵操作留痕 | 安全日誌、SIEM、資料庫審計、區塊鏈存證 |
加密技術全景
1. 消息摘要 (單向、無密鑰)
- MD5:128 位,已破解,**禁用於安全場景**,僅用於文件完整性校驗。
- SHA-1:160 位,理論碰撞風險,**逐步淘汰**。
- SHA-256/384/512:當前推薦標準,安全性高。
- HMAC:
HmacSHA256(key, data),引入密鑰防篡改,用於 API 簽名、Token 防偽。
2. 對稱加密 (單密鑰、高速、適合大數據)
| 算法 | 密鑰長度 | 狀態 | 典型用途 |
| DES | 56 位 | 已淘汰 | 歷史系統 |
| 3DES (TripleDES) | 112/168 位 | 兼容過渡 | 銀行老系統 |
| AES | 128/192/256 位 | 現役標準 | 數據加密、HTTPS、磁盤加密 |
| ChaCha20 | 256 位 | 新興優勢 | 移動端、TLS 1.3、無 AES-NI 硬件加速環境 |
模式選擇:GCM (認證加密) > CBC+HMAC > ECB (嚴禁)。AES-GCM 同時提供機密性與完整性,無需額外 MAC。
3. 非對稱加密 (雙密鑰、解決密鑰分發)
- RSA:2048/3072/4096 位,簽名/加密雙用,性能較慢。
- ECC (ECDSA/ECDH):256/384 位,同等安全性密鑰更短、速度更快,**現代首選** (TLS 1.3、JWT、區塊鏈)。
- Diffie-Hellman (DH/ECDH):密鑰協商,**不直接加密**,用於雙方協商出對稱會話密鑰。
4. 混合加密 (實戰標準)
- 發送方生成隨機對稱密鑰
K (AES-GCM)。
- 用接收方公鑰加密
K (RSA-OAEP / ECIES)。
- 用
K 加密業務數據。
- 發送
Enc(Pub, K) || Enc(K, Data)。
- 接收方私鑰解密
K,再解密數據。
HTTPS、PGP、S/MIME、Signal 協議均採用此模式。
認證技術演進
| 類型 | 代表 | 優點 | 缺點 | 適用場景 |
| 知識因子 | 密碼、PIN | 低成本、易部署 | 易洩露、弱口令、重放攻擊 | 基礎認證、輔助因子 |
| 擁有因子 | 硬件 Token、手機 OTP、U2F Key | 強綁定物理設備、抗網絡釣魚 | 成本高、分發維護複雜 | 高安全系統、MFA 第二因子 |
| 固有因子 | 指紋、人臉、虹膜、聲紋 | 不可轉讓、用戶體驗好 | 隱私風險、誤識/拒識、不可撤銷 | 移動端、物理門禁、MFA 第三因子 |
| 憑證因子 | X.509 數字證書 (CA 簽發) | 標準化、可攜帶屬性、支援單點登錄 | PKI 基建重、證書生命週期管理難 | 企業內網、雙向 TLS、代碼簽名 |
PKI 與數字證書核心流程
- 實體生成密鑰對,提交 CSR (含公鑰、主體信息) 給 CA。
- CA 驗證實體身份 (DV/OV/EV)。
- CA 用私鑰簽發證書:
Cert = Sign(CA_Priv, {Pub, Subject, Validity, Extensions})。
- 實體部署證書 + 私鑰。
- 驗證方:信任 CA 根證書 → 驗證證書鏈簽名 → 檢查有效期/吊廢列表 (CRL/OCSP) → 獲取可信公鑰。
SSL/TLS 協議精要 (HTTPS 基石)
TLS 1.2 簡化握手
- ClientHello:支援密碼套件、隨機數、SNI。
- ServerHello:選定套件、隨機數、證書鏈、ServerKeyExchange (如 ECDHE)。
- 驗證證書 → 生成 PreMasterSecret → 用公鑰加密發送 (RSA) 或 ECDH 協商。
- 雙方派生 MasterSecret → Session Keys (加密/完整性)。
- Finished:雙方驗證握手完整性。
TLS 1.3 關鍵改進
- 0-RTT 恢復、1-RTT 完整握手。
- 移除 RSA 密鑰傳輸、靜態 DH、CBC、SHA-1、RC4 等弱算法。
- 強制前向保密 (ECDHE only)、加密 ServerHello 後所有內容。
- 密碼套件精簡:
TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256 等 5 種。
Java 安全開發核心庫
- JCA/JCE:
MessageDigest、Cipher、KeyPairGenerator、Signature、KeyStore。
- JSSE:
SSLContext、SSLSocketFactory、TrustManager、KeyManager。
- JAAS:
LoginModule、Subject、Principal、Policy。
- 第三方推薦:Bouncy Castle** (國密 SM2/3/4、PQC、最新曲線)、Nimbus JOSE+JWT** (JWT/JWE/JWS 標準實現)、Spring Security** (企業級認證授權框架)。
學習路線圖
- 基礎密碼學原理 (對稱/非對稱/摘要/簽名/證書)。
- Java JCA/JCE/JSSE API 實戰 (加解密、簽名驗簽、SSLContext 配置)。
- PKI 體系與證書管理 (OpenSSL 命令、CA 搭建、吊廢檢查)。
- TLS 協議細節與 HTTPS 最佳實踐 (證書部署、HSTS、HPKP、Certificate Transparency)。
- 認證授權架構:OAuth 2.0 / OIDC / SAML / JWT / RBAC / ABAC。
- 安全編碼規範:OWASP Top 10、CWE、Java Secure Coding Guidelines。
- 實戰專題:API 安全簽名、單點登錄、雙向 TLS、數據脫敏、安全審計。