联系我们

info@serverion.com

给我们打电话

+1 (302) 380 3902

加密密钥的访问控制:最佳实践

加密密钥的访问控制:最佳实践

保护加密密钥与加密数据同等重要。. 密钥访问控制不当可能导致数据泄露、服务冒用和永久性数据丢失。以下是您需要了解的密钥安全知识:

  • 最小特权原则: 仅授予完成特定任务所需的最低权限。避免授予过于宽泛的权限,例如 公里数:* 并执行严格的访问控制策略。.
  • 基于角色的访问控制(RBAC): 密钥管理(例如,管理员)和加密操作(例如,用户)应采用不同的角色。避免职责重叠。.
  • 集中式密钥管理: 使用 AWS KMS、Google Cloud KMS 或 Azure Key Vault 等工具,实现一致且安全的密钥管理。.
  • 硬件安全模块(HSM): 将密钥存储在防篡改硬件中,以增强安全性。托管式 HSM 可简化集成并符合 FIPS 标准。.
  • 监控和日志记录: 启用管理员活动和密钥使用情况的详细日志记录。设置异常行为或高风险操作的警报。.
  • 关键轮换和撤销: 定期轮换钥匙以减少风险。立即注销已泄露的钥匙并及时更换。.

遵循这些步骤可确保您的加密密钥安全,降低风险并维护数据完整性。.

PKI 101:私有加密密钥的存储和使用

在密钥管理中应用最小权限原则

关键管理员与关键用户角色和权限

关键管理员与关键用户角色和权限

最小特权意味着什么

最小权限原则 (PoLP) 强调仅授予用户和服务执行任务绝对必要的权限,不多不少。应用于密钥管理时,这意味着要严格控制哪些用户可以加密、解密、修改策略或删除密钥。.

"除非明确授予且从未被拒绝,否则任何 AWS 主体都无权访问 KMS 密钥。不存在使用或管理 KMS 密钥的隐式或自动权限。" – AWS 密钥管理服务

这种"默认拒绝"的方法是安全性的基石。即使是账户所有者或密钥创建者,也不会自动拥有权限——必须明确授予权限。这种严格的控制显著降低了潜在的安全漏洞。如果凭证泄露,损害仅限于分配给该身份的特定权限。例如,如果未授予管理员权限,则泄露的"密钥用户"凭证将无法删除密钥。.

未能强制执行最小权限原则可能导致严重后果。如果没有适当的限制,攻击者可以通过修改密钥策略来提升权限,从而获得完全控制权。更糟糕的是,他们还可以安排密钥删除,这将永久销毁加密数据。AWS 强制要求密钥删除至少等待 7 天(最长 30 天),原因如下: 密钥一旦被删除,用该密钥加密的所有数据都将永久丢失。.

为了有效实施这些控制措施,基于角色的访问控制(RBAC)成为一项关键工具。.

设置基于角色的访问控制 (RBAC)

RBAC 通过基于权限分配来简化最小权限原则。 职位 而不是针对个人。您无需逐个用户管理权限,而是定义"关键管理员"和"关键用户"等角色,并根据职责将人员分配到这些角色。.

RBAC 的一个关键原则是分离 行政任务密码操作. 密钥管理员负责密钥的生命周期管理,包括创建、启用或禁用密钥、更新策略以及安排删除。而密钥用户则负责执行加密和解密操作。这两个角色绝不能重叠,以管理相同的密钥。.

角色类型 典型权限 目的
关键管理员 创建、启用/禁用、PutKeyPolicy、ScheduleKeyDeletion、标记 管理密钥生命周期、元数据和访问策略
关键用户 加密、解密、重新加密、生成数据密钥、描述密钥 使用密钥对数据进行加密操作

配置基于角色的访问控制 (RBAC) 时,请避免使用通配符权限,例如 公里数:* 在您的策略中,务必指定确切的密钥 ARN 或资源 ID。使用通配符可能会意外授予对其他帐户或区域中密钥的访问权限。此外,请为不同的数据类型使用不同的密钥——客户数据、财务记录和内部通信数据应各自拥有独立的密钥。这样可以确保即使某个凭证泄露,也只有特定子集的数据面临风险。.

为了加强保护,需要 多重身份验证 (MFA) 用于执行诸如安排密钥删除或更改密钥策略等敏感操作。另一个有用的层是 加密上下文, 它将权限与特定的元数据关联起来。这些非秘密的键值对确保只有在提供与加密时相同的上下文时,密钥才能解密数据,从而增加了一层额外的安全保障,防止未经授权的使用——即使密钥本身遭到泄露。.

集中式密钥访问管理

集中管理的优势

集中式密钥管理基于最小权限原则和角色定义,帮助组织实施一致的安全实践。通过从单个帐户或项目管理加密密钥,企业可以避免在多个环境中管理密钥的繁琐工作。管理员无需为密钥生命周期管理单独的帐户,只需依赖统一的控制台即可。随着组织规模的扩大,管理大量密钥需要精简高效的管理方法,这一点尤为重要。.

"只有通过统一的管理控制台,才能对密钥、端点进行分组,并为这些组分配角色和策略,从而管理可能多达数百万个密钥和操作。"——泰雷兹公司高级产品营销经理 Nisha Amthul

集中式系统通过强制执行一致的安全措施,降低了配置错误的几率。它们降低了诸如密钥意外删除或权限提升等风险,因为本地管理员无法获得对关键密钥的不受限制的权限。.

"这种集中式模型有助于最大限度地降低因受委派管理员或用户意外删除密钥或权限提升而导致的风险。"——AWS 规范性指南

另一个显著优势是将管理任务与数据访问分离。这不仅加强了合规性,而且通过明确职责划分简化了审计流程。集中式日志记录进一步强化了这一点,将所有关键访问事件整合到一个审计跟踪中,从而更便于监控和审查活动。.

考虑到这些优势,选择合适的集中式密钥管理工具成为确保高效、安全的密钥生命周期管理的关键一步。.

集中式密钥管理工具

有多种工具可用于简化集中式密钥管理:

  • AWS密钥管理服务(KMS): 使用 FIPS 140-2 或 140-3 3 级验证的硬件安全模块 (HSM) 保护根密钥,并与其他 AWS 服务无缝集成,实现统一审计。.
  • Google Cloud KMS: 提供客户管理的加密密钥,并可选择软件、HSM 和外部密钥管理器保护级别。.
  • Azure Key Vault: 集中存储密钥、机密和证书,同时集成基于角色的内置访问控制。.

对于在多云环境下运营的组织而言,其他工具可以提供统一的界面:

  • HashiCorp Vault 的密钥管理密钥引擎: 通过一个界面,为管理 AWS KMS、Azure Key Vault 和 Google Cloud KMS 中的密钥提供一致的工作流程。.
  • Thales CipherTrust Manager: 通过单一控制台管理服务器、存储系统和云平台的关键生命周期。.

在选择工具时,应优先考虑那些支持详细访问控制的工具,以强化最小权限原则。自动化功能是另一个关键考虑因素。虽然拥有强大自动化系统的组织可以应对分散式部署,但集中式管理通常更适合手动流程。评估您的具体需求,例如合规性要求(例如,FIPS 140-3 3级验证)、生命周期控制以及每个帐户的服务配额,以便为您的组织做出最佳选择。.

关键政策和职责分离

制定和执行关键策略

关键策略应涵盖密钥生命周期的每个阶段——从创建到最终销毁。如果没有清晰的文档记录,密钥被滥用的风险就会更高。.

您的政策需要明确指定具体角色及其职责。例如:, 密码官 可能处理密钥生成和备份等任务,而 安全审计员 重点在于确保合规性。这种明确的划分消除了歧义,并确保了问责制。为每个密钥维护一份最新的清单,详细记录其创建日期、加密算法(例如 3072 位 RSA)、已批准的用途和所有权。.

结合基于资源和基于身份的策略来控制访问。基于资源的策略将权限与特定密钥关联,而基于身份的策略则管理用户和角色的操作。为了强化"默认拒绝"的方法,请指定精确的 ARN 并限制敏感权限。例如,限制…… kms:计划键删除 授权给受信任的主体,确保删除密钥的最低等待期。AWS KMS 默认设置 7 天的等待期(可延长至 30 天),之后才会永久删除密钥,从而降低意外数据丢失的风险。.

"除非在密钥策略、IAM 策略或授权中明确允许且未明确拒绝,否则任何 AWS 主体(包括账户根用户或密钥创建者)均无权访问 KMS 密钥。"——AWS 规范性指南

分离关键管理职责

建立起完善的密钥策略后,下一步是确保职责划分,从而最大限度地降低风险。通过将密钥管理与加密操作分离,可以降低单个人员泄露密钥安全的可能性。例如,管理密钥的人员绝不应该有权访问密钥所保护的数据。这种划分不仅可以降低欺诈或错误的风险,还可以防止权限提升。.

明确定义角色,例如 关键管理员, 负责监督关键生命周期、创建和轮换的人员,以及 关键用户, 负责加密、解密和签名操作的人员。避免分配"所有者"或"编辑者"等兼具管理和操作职责的宽泛角色。相反,应坚持使用权限范围窄的角色,并遵循最小权限原则。.

对于高风险操作,应实施多方授权技术,例如 Shamir 秘密共享,以确保任何个人都无法泄露密钥。对于敏感操作,应启用多因素身份验证 (MFA),并将密码和 MFA 设备分发给多人,以进一步增强安全性。.

我尽量把密码视为加密密钥的“第一道门”:如果这道门很薄弱,其他所有安全层都形同虚设。所以我坚持简单严格的原则:一个账户对应一个独一无二的长密码,绝不重复使用,也不允许出现类似 Password123! → Password124! 这样的“细微变化”。我不会把这些密码记在笔记里,也不会在聊天中发送;相反,我依赖于…… 密码管理器 在所有可用的地方启用多因素身份验证 (MFA)。当需要共享关键系统的访问权限时,我避免使用“所有人共用一个密码”,而是力主使用单独的账户和基于角色的权限,因为这样可以更清楚地了解谁做了什么,而且如果出现问题,也更容易快速撤销访问权限。.

2011 年 RSA 数据泄露事件是一个警示。在该事件中,由于密钥管理职责划分不明确,攻击者得以克隆双因素身份验证令牌,这凸显了角色划分不清的危险性。.

自动化监控是另一个关键步骤。使用工具检测并标记任何权限重叠,这可能表明违反了职责分离原则。服务帐户洞察还可以识别已闲置 90 天或更长时间的帐户,提示应禁用或删除这些帐户,以减少不必要的访问并限制活动密钥的数量。.

使用硬件安全模块 (HSM) 进行密钥保护

了解硬件安全模块

硬件安全模块 (HSM) 是一种专门用于在安全、防篡改的环境中保护加密密钥的设备。与基于软件的解决方案不同,HSM 依赖于封装在防篡改封装中的专用加密处理器芯片。这种设置确保了: 加密密钥的生成和存储完全在硬件边界内进行,绝不会以明文形式流出。.

高级硬件安全模块 (HSM) 包含防篡改机制,如果检测到物理入侵,可以立即将敏感密钥材料清零(永久擦除)。大多数 HSM 都满足这些要求。 FIPS 140-2 或 140-3 3 级 认证标准,提供基于硬件的隔离,远优于纯软件方法。.

如今,云服务提供商通过托管硬件安全模块 (HSM) 简化了对这项技术的访问。这些服务无需物理设备即可提供符合 FIPS 标准的硬件安全保障。托管 HSM 通常可确保 99.99% 可用性 通过在多个区域复制数据来实现。访问权限分为两个层面: 控制平面, 负责资源管理(例如,创建、删除、配置),以及 数据平面, 它负责管理加密、解密和签名等加密操作。这种分离确保了管理任务与直接访问敏感密钥完全分离。.

通过将 HSM 集成到您的系统中,您可以建立更强大的访问控制并有效地保护关键操作。.

将 HSM 与您的系统集成

将硬件安全模块 (HSM) 集成到您的基础架构中,可通过将敏感材料保存在受保护的硬件边界内来增强密钥安全性。第一步是为控制平面和数据平面设置强大的访问控制。使用托管身份供应用程序向 HSM 进行身份验证,从而无需在代码或配置文件中存储凭据。谨慎分配角色——云级别角色(例如"密钥库贡献者")管理 HSM 本身,而 HSM 本地角色(例如"加密管理员"或"加密用户")处理加密任务。将权限限制在特定密钥上(例如,, /keys/而不是授予对整个 HSM 的访问权限。.

为了增强安全性,请使用至少三对 RSA 密钥建立安全域仲裁,每对密钥由不同的管理员管理。此设置可确保任何个人都无法完全恢复或攻破 HSM。将这些恢复密钥保存在加密的离线 USB 驱动器上,并存放在单独的保险箱中。启用软删除(保留期限为 7 至 90 天)和清除保护等功能,以防止密钥被意外或恶意删除。.

为了确保网络通信安全,请禁用公共互联网访问,并将所有 HSM 流量路由到私有端点。对于监管严格的环境,请考虑采用"密钥自保"(HYOK)方案。该方案将密钥保存在外部 HSM 中,绝不会将其暴露给云提供商的基础设施。它还采用双重加密:数据首先由云提供商加密,然后由您的外部 HSM 再次加密,从而确保任何一方都无法独立访问明文。.

通过特权身份管理实现即时访问,进一步增强安全性。该功能仅在需要时授予临时管理权限。将密钥标记为"不可导出",以确保其始终在硬件边界内;并实施自动密钥轮换计划,以最大限度地降低密钥泄露的风险。.

监控、审计和记录密钥访问

在实施了严格的密钥管理和硬件安全措施之后,通过监控和日志记录密切关注访问情况对于及早发现潜在的安全漏洞至关重要。.

设置访问监控

跟踪密钥访问对于在未经授权的使用造成问题之前发现它至关重要。首先要区分以下几点: 管理员活动日志 (用于记录创建密钥或更新策略等操作) 数据访问日志 (用于跟踪加密和解密等加密操作)。虽然数据访问日志由于其产生的数据量巨大,通常默认处于关闭状态,但为最敏感的密钥启用该日志是一个明智之举。.

建立数据平面和控制平面活动的典型使用基线。这有助于检测异常行为,例如在非正常时间解密请求激增,或者管理员访问从未用过的密钥。将审计日志发送到自动化监控工具,例如 CloudWatch 警报 触发高风险事件警报,例如: 计划键删除, 禁用键, 或未经授权的政策变更。.

利用加密上下文键值对(在日志中以明文形式可见),对活动进行分类,同时避免泄露敏感数据。密切关注标签更改,因为未经授权的更改可能会造成严重后果。 标签资源 要么 UntagResource 这些操作可能会提升权限。请注意,更改标签或别名可能需要长达 5 分钟才能影响 KMS 密钥权限,因此您的监控设置应考虑此延迟。.

有效的访问监控自然有助于创建详细的审计跟踪,从而实现完全可视性。.

创建审计跟踪和日志

为了完善监控,请确保您拥有完善的日志记录系统,以创建安全的审计跟踪。这种方法有助于维护问责制,并为取证调查做好准备。为了实现冗余,请至少使用两种类型的审计设备。例如,诸如……之类的工具。 HashiCorp Vault 如果 API 请求无法记录到至少一个设备上,则会阻止这些请求,从而防止未经跟踪的访问。.

将日志转发到远程系统,以防止篡改并确保其可用于合规性审计。为了进一步提高安全性,请使用密钥哈希(例如 HMAC-SHA256)来保护敏感日志数据,同时保持其可审计性。设置关键事件警报,例如 root 令牌使用情况、审计配置更改或"权限被拒绝"错误激增。切记实施日志轮换(例如,使用 对数旋转)并配置 HUP 信号以确保不间断日志记录。.

将所有项目或帐户的日志集中并汇总到单个存储库中,以便全组织查看。这不仅简化了监管,还有助于符合 PCI DSS、FedRAMP 和 HIPAA 等标准。但请注意,启用数据访问日志可能会因数据量增大而增加成本。.

关键轮换和撤销实践

加密密钥并非永久有效。定期轮换和及时撤销密钥对于防止过期或泄露的密钥危及敏感数据至关重要。.

何时以及为何轮换钥匙

轮换加密密钥有助于限制单个密钥泄露造成的损失。与使用单个密钥保护数据数年不同,轮换确保每个密钥仅在特定时间段内有效。例如,PCI DSS 规定至少每年轮换一次密钥,但对于持卡人信息等高度敏感数据,每季度轮换一次密钥更为稳妥。对于服务帐户密钥,专家建议至少每 90 天轮换一次,以最大程度地降低凭证泄露的风险。.

密钥轮换频率应取决于数据的敏感性和密钥的使用频率。例如,NIST 建议在 AES-256-GCM 密钥的加密次数达到约 43 亿次之前进行轮换。同样,Azure Key Vault 建议至少每两年轮换一次加密密钥。高频使用的密钥面临更大的密码分析风险,因此,通过遥测技术跟踪加密次数有助于确定何时需要轮换密钥,而不仅仅依赖于日历计划。.

为了使这个过程更加顺畅无误,可以使用 HashiCorp Vault 或 Cloud KMS 等自动化工具来处理密钥轮换。这些工具采用密钥版本控制,即使用最新密钥加密新数据,而使用旧密钥解密历史数据。这样就实现了渐进式的"延迟"重新加密过程,在数据被访问时自动更新。.

但仅仅轮换密钥并不总是足够。一旦发生安全漏洞,撤销密钥就成为下一个关键步骤。.

撤销密钥以降低风险

密钥撤销是一种快速响应措施,用于应对密钥泄露、拥有访问权限的员工离职或其他安全事件。时机至关重要——理想情况下,撤销操作应在发现问题后 24 小时内完成。.

具体操作如下:首先,识别泄露的密钥并生成一个安全的替代密钥。将新密钥部署到所有系统,然后禁用旧密钥。但是,不要立即删除旧密钥——这段宽限期允许您监控是否存在与已禁用密钥相关的任何错误或依赖项。确认所有关键系统均未受到影响后,更新配置,重新加密必要数据,并永久删除旧密钥。.

"未能及时撤销泄露的密钥会导致未经授权的解密活动持续发生。糟糕的密钥管理实践会使加密失效,导致数据暴露。"——SSL.com SSL支持团队

密钥管理不善的严重后果的一个鲜明例子是2011年RSA安全漏洞事件。由于RSA未能保护种子数据库并实施适当的访问控制,攻击者窃取了数百万个SecurID令牌的加密"种子"值。此次事件凸显了及时有效的密钥管理措施对于保护敏感数据的重要性。.

结论

强大的密钥访问控制对于保护敏感数据至关重要。通过应用最小权限原则、职责分离以及使用硬件级保护措施(例如通过 FIPS 140-2 3 级验证的硬件安全模块 (HSM)),您可以为安全的密钥管理奠定坚实的基础。这些策略对于防止意外数据泄露和蓄意攻击都至关重要。.

"除非在密钥策略、IAM 策略或授权中明确允许且未明确拒绝,否则任何 AWS 主体(包括账户根用户或密钥创建者)均无权访问 KMS 密钥。"——AWS 规范性指南

强制等待期和多因素身份验证等额外措施可提供进一步的保护。特别是多因素身份验证,它通过限制未经授权的密钥更改,增加了一层额外的安全保障。自动密钥轮换(通常设置为每 90 天进行一次)也能最大限度地降低风险,减少密钥泄露可能造成的潜在损害。.

有效的密钥管理需要持续关注。随着组织的发展、人员变动以及新风险的出现,访问控制必须不断演进。定期审计对于识别权限过高的角色至关重要,而实时监控则是防患于未然、及时发现异常访问活动的关键。自动化配置、实时警报和加密上下文等功能协同工作,确保密钥在其整个生命周期内的安全。.

常见问题解答

如何以最安全的方式划分关键管理员和关键用户访问权限?

为了确保安全,最好遵循以下规定: 职责分离原则. 这意味着要划分职责,避免任何一个人同时承担行政和运营任务。例如,指定…… 关键管理员 负责关键决策的制定和政策管理,同时 关键用户 专注于加密和解密等密码学任务。实现 基于角色的访问控制 (RBAC) 同时,制定详细的身份和访问管理 (IAM) 策略来强制执行这些边界。此外,维护全面的审计日志,以跟踪活动并快速识别任何未经授权的操作。.

什么情况下应该使用硬件安全模块(HSM)而不是软件密钥存储?

当……时,硬件安全模块 (HSM) 是首选解决方案。 基于硬件的隔离防篡改 对于保护高度敏感的加密密钥而言,硬件安全模块 (HSM) 是必不可少的。在需要严格遵守合规标准或最大限度降低数据泄露和软件漏洞风险的场景中,HSM 表现出色。.

与基于软件的密钥存储不同,HSM 提供了额外的安全层,使其成为需要最高级别保护的环境的首选。.

如何在不影响应用程序运行或丢失数据的情况下轮换密钥?

要在不中断应用程序或丢失数据访问权限的情况下切换加密密钥,请按以下步骤操作:

  • 计划和安排轮班:根据需要设置自动化系统或安排密钥生成,以创建新的加密密钥。.
  • 更新应用程序和数据逐步过渡到新密钥,暂时保留旧密钥以保持兼容性。.
  • 监控和验证进行全面测试,以确认应用程序在使用更新后的密钥时能够流畅运行。.

这种方法有助于在避免干扰的同时维护安全。.

相关博客文章

zh_CN