密钥托管、备份与恢复流程
使用 Shamir 秘密共享和 m-of-n 恢复设计密钥备份策略
密钥托管、备份与恢复流程 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
key 托管问题
key 托管会将私钥副本存储在受信任的第三方(监管机构、雇主、执法机构)处。它支持恢复,但也会形成攻击目标——托管系统是高价值的攻击面。
企业 key 托管要求
企业会托管加密 key,以便在员工无法工作时,IT 仍能解密企业数据。这是政策和法规要求的(例如 GDPR 中关于数据主体访问的义务)。
执法机构 key 托管争议
政府会定期提出强制 key 托管方案(1993 年的 Clipper Chip、2015 年以后 FBI 的“Going Dark”计划)。密码学家认为,这会制造可被对手利用的后门,而且在技术上无法有效执行。
用于 key 备份的 Shamir 秘密共享
使用 Shamir 的 (k,n) 门限方案将主 key 分割为 n 个分片。任意 k 个分片都可以重构 key;少于 k 个分片则无法透露任何信息。经典的托管方案是:5 名保管人中任意 3 名即可恢复。
from cryptography.hazmat.primitives import hashes
# Note: Shamir SSS is not in the stdlib cryptography package.
# Use: pip install secretsharing
# from secretsharing import PlaintextToHexSecretSharer as SS
# shares = SS.split_secret("my_hex_key", 3, 5) # 3-of-5
# recovered = SS.recover_secret(shares[:3])
print("Shamir 3-of-5 split: any 3 of 5 custodians reconstruct the key")硬件令牌保管人
每个 Shamir 分片都会写入硬件令牌(智能卡、USB HSM)。令牌交给各位保管人。恢复时,保管人必须在安全室内集合并出示各自的令牌。
M-of-N key 仪式
设置期间:在 HSM 中生成 key,将其分割为 n 个 Shamir 分片,把每个分片写入一张保管人智能卡,然后销毁 HSM 中的组合 key。记录并审计整个仪式。
将加密 key 备份到离线存储
使用强口令加密 key 备份(或 Shamir 分片)。将其存储在离线介质上(加密 USB、安全柜中的纸质 QR 码)。每季度测试恢复流程。将副本分布存储在不同地理位置。
key 恢复流程
逐步记录以下内容:谁授权恢复(双人控制)、保管人如何集合、哪个 HSM 槽位接收重构后的 key、如何验证恢复的 key,以及如何记录该事件。
双人控制与分割知识
双人控制:必须由两个人共同操作才能使用一个 key(一个人持有 PIN,另一个人持有卡)。分割知识:任何一个人都无法单独知道完整的 key 值。PCI-DSS 要求 key 加密 key 同时具备这两项控制。
恢复测试
未经测试的 key 备份就等于不存在的备份。安排每季度进行演练:集合 k 名保管人,重构 key,验证它能解密测试密文,然后重新托管新的分片。
知识检查
PCI-DSS 对涉及 key 加密 key 的操作有什么要求?
课程回顾
密钥托管需要在恢复需求与安全风险之间取得平衡。Shamir 秘密共享会拆分密钥,以便由 n 名托管者中的 m 名共同完成恢复。托管者持有硬件令牌。双人控制和分割知情可以防止内部人员威胁。请定期测试恢复流程。
常见问题解答
「密钥托管、备份与恢复流程」课时是免费的吗?
是的 — 「密钥托管、备份与恢复流程」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「密钥托管、备份与恢复流程」这节课中我会学到什么?
使用 Shamir 秘密共享和 m-of-n 恢复设计密钥备份策略 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「密钥托管、备份与恢复流程」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。