保护密钥的安全,统一安全管控之密钥管理KMS

一、为什么要统一管控密钥

谈到信息安全免不了要解决一个问题就是数据加密。加密就会涉及到密钥相关的问题,比如密钥的生成、传输、保存、泄露等问题。如何保护好密钥的安全就成了信息安全的非常重要的一个部分。某司员工将密钥泄漏到开源网站导致重要数据丢失事件,君们还记得否?如果有完善的KMS系统这种情况很大程度上就可以避免了。

对于大部分没有KMS管理系统的公司而言,密钥本地化会导致密钥分散在代码、配置文件中。缺乏统一管理,造成开发、维护成本巨大,而且导致密钥容易泄露。还有一部分公司采用硬件加密机来管理密钥即HSM,全称Hardware Security Module,这种方式管理密钥安全性确实很高,但是因为各级密钥都在HSM中管理所以成本过高。

采用软硬件结合是比较好的方式,通过项目密钥管理服务KMS轻松创建和管理密钥,同时提供对密钥的保护,避免密钥泄漏。使开发者没有必要投入大量时间和精力来保证密钥的保密性、完备性和可用性。通过密钥管理服务,开发者在处理密钥时会更安全、更方便简单,这样可以更集中时间精力去研发如何借助加解密功能来实现业务场景。

二、KMS设计

1. 密钥分级

这里按密钥作用划分为三级:

  • 数据加密密钥(DEK):将用于数据加密的密钥,也称三级密钥(DEK);一般公司里面一个应用对应一个DEK。
  • 密钥加密密钥(KEK):保护三级的密钥,也称二级密钥(KEK 即对DEK进行加密);一般公司里面一个部门对应一个KEK,DEK在KEK管辖之内。
  • 根密钥(RootKey):保护二级密钥的密钥,也称一级密钥(RootKey,即是对KEK进行加密),根密钥构成了整个密钥管理系统的关键。

2. 基本架构

本文中的KMS由三大部分组成SDK、后台服务、HSM。

SDK:主要提供给服务的使用者集成到自己开发的项目中,实现密钥的创建、导入、启用、禁用等相关密钥管理和加密以及解密等常见操作。SDK分为:Client模块、加解密模块,主要负责提供简单接口完成加密解密功能。

KMS服务:主要负责从硬件安全模块获取和保存根密钥,并且安全地保存在后台内存中,然后通过密钥的派生算法生成KEK进而生成DEK。分为,根密钥加载模块、密钥派生模块、Server模块。

HSM:提供根密钥生成和保管服务。

架构图

架构图描述:

根密钥生成,为了生成根密钥的保密性,由三个人分别输入三段约定好算法的随机因子到HSM中去生成根密钥,非法读取HSM中的根密钥会导致HSM被破坏而不可用从而保护了根密钥不被泄露。另外为了保存好根密钥以备及时恢复,要将三段随机因子分别保存到三个保险柜中。

为了防止根密钥被泄露,根密钥RootKey由密钥管理服务KMS从硬件安全模块即HSM中读取,按照一定的分散算法打散存储在内存中。

开发者将SDK集成到自己开发的服务或者系统的代码中,以实现只需要调用较为简单抽象的接口就能够使用密钥管理服务的相关功能。SDK中进行加解密是为了防止业务方私自保存密钥。Client模块主要是负责SDK的Http请求相关的功能,加解密模块则是负责SDK加解密相关的功能。

3. 运行功能

密钥派生:

KMS中最为关键的模块是密钥派生模块。根据用户ID和随机因子通过伪随机函数派生出KEK或者DEK等密钥。KMS杜绝明文持久化保存密钥,派生出来的KEK通过Rootkey加密保存在数据库,派生出来的DEK通过KEK加密保存在数据库。

创建密钥:

  • 用户调用KMS提供的SDK中的创建用户数据密钥接
  • 用户传入用户ID等必要信息(如果要创建KEK则传入部门信息,如果创建DEK则传入应用信息)
  • KMS服务器验证请求
  • 验证通过,KMS服务器在该用户名下创建新的密钥并返回密钥ID

密钥加密(解密同理):

  • 服务调用方调用KMS提供的SDK中直接加密的接
  • 服务调用方传入用户ID、密钥ID、待加密明文
  • KMS服务器验证密钥ID、用户ID以及是否为用户ID名下
  • 验证通过,KMS服务器返回DEK到SDK中
  • SDK加密算法中对明文进行加密,并返回密文

三、推动业务方使用KMS

就算KMS再安全,业务方不愿意使用对于安全来说无疑也是掩耳盗铃。

如何让业务方愿意使用,需要技术和管理相结合去推动。管理上:自上往下推动,通过高管的支持通知业务方使用KMS以及讲述使用KMS带来的收益,并通过KMS管理规范约定不通过KMS来使用密钥所承担的责任。通过定期安全宣传和培训从反面和正面去讲述其中利害。技术上:定期进行专项检查,通过代码扫描查看代码中存在的密钥硬编码,如果存在密钥硬编码则说明很有可能业务方自行创建保管密钥;定期去大数据平台进行扫描将个别字段传入KMS加密接口查看返回密文跟数据库中的密文对比,如果一样说明采用了KMS加密,如果不一样很有可能就是自行保管密钥。

现有一切加密技术都是建立在密钥破解时间很长的情况下,畅想下如果量子计算机出现了,几秒钟就能破解2048位的密钥,那么现有的加密技术都将形同虚设。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/123713.html<

(0)
运维的头像运维
上一篇2025-02-22 22:39
下一篇 2025-02-22 22:41

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注