端對端加密暫存機制:Web Cryptography API、PBKDF2 密鑰派生與零知識架構
在傳統雲端儲存與短網址暫存服務中,使用者上傳之文字、私密檔案或權限密鑰通常以明文或「伺服器端加密 (Server-Side Encryption, SSE)」存放於資料庫中。此種架構意味著雲端服務商、內部維運人員或遭遇 SQL 注入漏洞時,攻擊者皆有能力解密資料。ZPLK 採用瀏覽器端零知識(Zero-Knowledge Client-Side Encryption)架構,所有敏感內容在離開訪客裝置前即完成不可逆之對稱加密運算。
PBKDF2 密鑰派生與抗彩虹表防護
系統全面調用現代瀏覽器原生 window.crypto.subtle(Web Cryptography API),避免載入第三方不透明 JavaScript 加密套件引發供應鏈投毒。
- 密碼轉化密鑰:使用者自訂之密碼字串透過
PBKDF2(Password-Based Key Derivation Function 2)派生演算法處理。 - 動態密碼學鹽值 (Salt):由
crypto.getRandomValues()於客戶端隨機生成 16 位元組(128-bit)高熵鹽值,強制抵禦預先計算之彩虹表(Rainbow Tables)反查攻擊。 - 計算複雜度加固:採用 SHA-256 演算法並施以 100,000 次疊代(Iterations),大幅提升硬體 ASIC 或 GPU 暴力破解的時間與資源成本。
AES-256-GCM 認證加密演算法 (AEAD)
派生出的 256 位元對稱金鑰透過 AES-GCM 模式(Galois/Counter Mode)進行高吞吐流式加密:
- 唯一初始化向量 (IV):每次加密皆隨機生成獨立 12 位元組(96-bit)IV,杜絕重放攻擊(Replay Attack)與密文樣式比對。
- 內建認證標籤 (128-bit Auth Tag):AES-GCM 屬於認證加密(AEAD),能同時保證機密性(Confidentiality)與完整性(Integrity)。密文若在傳輸過程或儲存介質中遭到微小位元竄改,解密時將立即拋出
OperationError拒絕解密。
閱後即焚(Burn-After-Reading)與 TTL 物理銷毀管線
為符合現代最高資安稽核規範,系統提供「閱後即焚」與「TTL 限時自毀」雙重自動抹除機制:
DeleteObject 請求,物理抹除雲端物件。DELETE,快取節點(Cache-Control: no-store)不予保留任何殘留資訊。