安全模型
Optserv 帳號共享如何加密憑證:PBKDF2 派生金鑰、AES-GCM 加密負載,以及 RSA-OAEP 分發金鑰。
帳號共享採用分層的密碼學模型,確保憑證在離開用戶端之前就已被加密,且只有被授權的人能解密。Optserv 伺服器永遠不會接收或儲存明文憑證。
密碼學層級
1. 金鑰派生 — PBKDF2 + SHA-256
當使用者存取帳號共享時,系統會從一個秘密資料透過 PBKDF2(Password-Based Key Derivation Function 2)派生出加密金鑰,參數如下:
- 雜湊演算法: SHA-256
- 迭代次數: 210,000
- 目的: 從使用者相關的秘密資料產生強健的對稱金鑰
210,000 次迭代符合目前 OWASP 的建議,可讓針對派生金鑰的暴力破解成本大幅提高。
2. 負載加密 — AES-GCM 256-bit
每個憑證(登入資訊、密碼或其他秘密)會使用 256-bit 金鑰的 AES-GCM 加密:
- 演算法: AES-GCM(Galois/Counter Mode)
- 金鑰長度: 256-bit
- 為什麼用 AES-GCM: 同時提供機密性(加密)與完整性(認證)。若密文被竄改,解密會失敗。
用來加密單一項目的 AES 金鑰是「每項目唯一」,不是整個公司共用一把金鑰。即使某把金鑰被曝光,影響範圍也會被限制。
3. 金鑰分享 — RSA-OAEP + SHA-256
要把某個項目分享給其他人,必須安全地傳遞該項目的 AES 金鑰。Optserv 使用 RSA-OAEP 來包裹(加密)這把金鑰:
- 演算法: RSA-OAEP(Optimal Asymmetric Encryption Padding)
- 雜湊: SHA-256
- 流程: 以收件者的 RSA 公鑰加密項目的 AES 金鑰;只有收件者的私鑰能解開。
這代表:
- 分享過程不會把 AES 金鑰的明文暴露給 Optserv 伺服器
- 存取清單中的每位收件者,都會持有一份「用自己公鑰加密過」的 AES 金鑰副本
- 撤銷存取時會移除該收件者的加密金鑰副本——之後就無法再解密該項目
實務上這意味著什麼
Optserv 無法讀取您的憑證。 因為加密在用戶端完成,伺服器只會看到密文。即使資料庫外洩,憑證仍維持加密狀態。
撤銷存取具有密碼學上的效力。 移除某人存取清單時,同時移除他解密所需的金鑰副本。不同於「共享連結」可能在撤銷後仍可用,這會真正阻止解密。
離職處理更乾淨。 員工離職/停用後,他的 RSA 金鑰對不再可用。由他擁有的項目可進行重新分配/重新加密;他曾有存取權的項目則會立即不可解密。
摘要
| 層級 | 演算法 | 目的 |
|---|---|---|
| 金鑰派生 | PBKDF2(210,000 次)+ SHA-256 | 從秘密資料派生對稱金鑰 |
| 負載加密 | AES-GCM 256-bit | 加密憑證負載 |
| 金鑰分享 | RSA-OAEP(SHA-256) | 針對每位收件者包裹 AES 金鑰 |