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,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。