GH GambleHub

密鑰管理和輪換

鑰匙是平臺的「信任根源」。可靠的密鑰管理系統(KMS/HSM+過程+遙測)將密碼學從一次性集成轉變為日常操作:密鑰定期更新,使用透明,定位,客戶在沒有中心時體驗密鑰交換。

1)目標和原則

密碼敏捷性:無需大量遷移即可更改密鑰算法/長度。
Least exposure:私鑰不會離開KMS/HSM;簽名/解密操作-已刪除。
短命的藝術品:代幣/會話密鑰的壽命為幾分鐘而不是幾周。
雙鍵/雙證書窗口:無故障旋轉。
區域和租戶分組:按地區和租戶劃分鑰匙。
完全可聽性:不變操作日誌,HSM認證,訪問控制。

2)按鍵分類

根(Root CA/Master Key):在HSM中,極少使用,用於釋放中間密鑰或數據密鑰包裝。
操作:JWT/事件簽名,TLS,webhook簽名,config/PII加密。
會議/臨時:DPoP,mTLS綁定,頻道/對話的ECDH輸出。
整合:合作夥伴密鑰(公共)和HMAC秘密。
Data Keys (DEK):在KEK下使用envelope加密,不顯式存儲。

3)密鑰識別和使用策略

每個密鑰都具有「kid」(密鑰在令牌/標題中識別):
yaml key:
kid: "eu-core-es256-2025-10"
alg: "ES256"         # или EdDSA, RSA-PSS, AES-GCM, XChaCha20-Poly1305 purpose: ["jwt-sign","webhook-sign"]
scope: ["tenant:brand_eu","region:EE"]
status: "active"       # active      next      retiring      revoked created_at: "2025-10-15T08:00:00Z"
valid_to:  "2026-01-15T08:00:00Z"

規則:「一個目標是一個關鍵」(Sharing的最低限度),明確的應用區域和時間表。

4)密鑰生命周期(KMS/HSM)

1.Generate:在HSM/KMS中,使用導出策略=被禁止。
2.出版物:對於不對稱-帶有「kid」的JWKS/證書。
3.使用:使用受控的IAM進行遠程操作(sign/decrypt)。
4.Rotate:運行「next」密鑰並啟用雙接受。
5.Retire:將舊版本轉換為「retiring」,然後轉換為「revoked」。
6.銷毀:在爭議窗口後銷毀材料(帶有purge協議)。

5)輪換: 策略

Scheduled:日歷(例如,JWT簽名的每個1-3個月,TLS耳機的6-12個月)。
滾動:消費者逐步切換(JWKS已經包含新密鑰;在腰果加熱後,發行人開始簽署新的協議)。
強制(安全):在損害時立即輪換;短的雙接受窗口,攻擊性的文物到期。
Staggered per region/tenant:不要同時向整個世界「鼓掌」。

黃金規則:首先出版,然後簽名新,只有到期後-舊的回憶。

6)雙鍵窗口(無故障更換)

我們用新舊的「kid」發布JWKS。
驗證者接受兩者。
在N分鐘/小時後,發行人開始簽名。
監視新/新「kid」檢查的份額。
達到目標比例後,retairim是舊的。

yaml jwks:
keys:
- kid: "eu-core-es256-2025-10" # new alg: "ES256"
use: "sig"
crv: "P-256"
x: "<...>"; y: "<...>"
- kid: "eu-core-es256-2025-07" # old alg: "ES256"
use: "sig"
...

7)簽名和驗證政策

默認算法:簽名ES256/EdDSA;需要的RSA-PSS。
禁止「無」/弱算法;whitelisting在驗證側。
Clock skew:我們允許300 c ±,我們計算偏差。
Key pinning(內部服務)和短TTL JWKS-kesha(30-60 s)。

8) Envelope加密和KDF

以以下方式存儲數據:

ciphertext = AEAD_Encrypt(DEK, plaintext, AAD=tenant    region    table    row_id)
DEK = KMS. Decrypt (KEK, EncryptedDEK )//on access
EncryptedDEK = KMS. Encrypt (KEK, DEK )//on write

KEK(關鍵加密密鑰)存儲在KMS/HSM中,並定期輪換。
為對象/批次創建DEK;在輪換KEK時,我們執行re-wrap(快速,無重加密)。
對於線程-ECDH+HKDF,用於輸出簡短的通道密鑰。

9)區域性和多特南特

密鑰和JWKS跨區域:「eu-core」,「latam-core」是不同的密鑰集。
將IAM/審計劃分為 tenant/region;密鑰不在居民之間「流動」。
「kid」用信任域前綴編碼:「eu-core-es256-2025-10」。

10)集成的秘密(HMAC, API密鑰)

存儲在KMS後端的Secret Store中,通過短暫的客戶機秘密進行演示(rotation policy ≤ 90天)。
旋轉時支持兩個活動秘密(雙秘密)。
對於webhooks-timestamp+HMAC身體簽名;時間窗口≤ 5分鐘。

11)訪問控制和流程

IAM矩陣:誰可以「generate」,「sign」,「decrypt」,「rotate」,「destroy」(角色最少)。
4眼原理:敏感手術需要兩個確認。
Change windows:新密鑰啟用窗口和測試金絲雀區域。
Runbooks: scheduled和forced輪換的過程模板。

12)可觀察性和審計

度量標準:
  • `sign_p95_ms`, `decrypt_p95_ms`, `jwks_skew_ms`,
  • 「kid」,「old_kid_usage_ratio」的消費,
  • `invalid_signature_rate`, `decrypt_failure_rate`.
Logi/審計:
  • 每個簽名/解密操作:「who/what/when/where/kid/purpose」。
  • 關鍵狀態和輪換/重寫請求的歷史記錄。
  • HSM認證,關鍵材料的訪問日誌。

13)花花公子(事件)

1.簽名密鑰的損害

立即恢復舊的「kid」(或翻譯成帶有最小窗口的「retiring」),發布新的JWKS,縮短的TTL令牌,強制綁定/RT殘疾,與集成所有者的通信,復古審核。

2.旋轉後批量「INVALID_SIGNATURE」

檢查JWKS/clock skew緩存,返回雙接受,延長窗口,發送給客戶。

3.KMS/HSM潛伏期增長

啟用本地簽名緩存是無效的;取而代之的是-發射器中的batch/queue,autoscaling HSM代理,優先考慮關鍵線程。

4.一個地區的拒絕

啟動區域隔離程序;不「拉動」其他地區的鑰匙;降低下降區域的簽字功能。

14)測試

合同:JWKS正確性,正確的「kid」/alg/use,客戶兼容性。
Negative:假簽名,過時的「kid」,不正確的alg,clock skew。
混亂:瞬間旋轉,KMS不可用,時間的「漂移」。
下載:簽名高峰(JWT/webhooks),解密高峰(PII/付款)。
E2E:雙鍵窗口:問題-驗證-交通轉移-舊的剔除。

15)配置示例(YAML)

yaml crypto:
regions:
- id: "eu-core"
jwks_url: "https://sts. eu/.well-known/jwks. json"
rotation:
jwt_sign: { interval_days: 30, window_dual: "48h" }
webhook: { interval_days: 60, window_dual: "72h" }
kek:   { interval_days: 90, action: "rewrap" }
alg_policy:
sign: ["ES256","EdDSA"]
tls: ["TLS1. 2+","ECDSA_P256"]
publish:
jwks_cache_ttl: "60s"
audit:
hsm_attestation_required: true two_person_rule: true

16)工件中JWKS和標記的示例

JWT頭的片段:
json
{ "alg":"ES256", "kid":"eu-core-es256-2025-10", "typ":"JWT" }
JWKS(公共部分):
json
{ "keys":[
{"kty":"EC","use":"sig","crv":"P-256","kid":"eu-core-es256-2025-10","x":"...","y":"..."},
{"kty":"EC","use":"sig","crv":"P-256","kid":"eu-core-es256-2025-07","x":"...","y":"..."}
]}

17)反模式

長壽鑰匙「多年」,適用於所有地區。
沒有雙重接受的「一時」輪換。
從KMS/HSM出口私有密鑰「快速」。
混合任務:一鍵簽名JWT和加密數據。
沒有HSM和IAM限制的日誌/認證。
在KEK旋轉時,DEK沒有重寫機制。
Env中的手動「秘密」代替Secret Store。

18)售前支票清單

  • KMS/HSM中的所有私有密鑰;IAM矩陣和4眼原理已調整。
  • 算法策略、密鑰長度和壽命已得到批準。
  • 啟用了雙鍵過程,並通過「kid」監控份額。
  • JWKS以短TTL和腰果預熱發布;客戶端接受≥2密鑰。
  • Envelope加密:KEK輪換,DEK重寫而不停機。
  • 區域隔離和tenant分開鍵集。
  • 花花公子犯規/滾動/輪換;訓練運行。
  • 包括度量(「old_kid_usage_ratio」,「invalid_signature_rate」)和變量。
  • contract/negative/chaos/load/E2E測試集已通過。
  • 集成文檔:如何處理「kid」更改,哪些窗口和錯誤代碼。

結論

密鑰管理是一門操作學科:KMS/HSM是真理的來源,具有雙鍵,區域和影子隔離,內置加密和可觀察性的定期和安全輪換。按照這些規則,您可以獲得可擴展的加密連接,可以抵抗事件並輕松向審計員解釋-開發人員和集成商可以輕松地進行任何更改。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。