找回密码
 会员注册
查看: 17|回复: 0

一文带你了解贝壳密钥管理系统(KMS)

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
65007
发表于 2024-10-9 19:56:45 | 显示全部楼层 |阅读模式
一文带你了解贝壳密钥管理系统(KMS) 一文带你了解贝壳密钥管理系统(KMS) 刘福光@贝壳找房 贝壳产品技术 贝壳产品技术 “贝壳产品技术公众号”作为贝壳官方产品技术号,致力打造贝壳产品、技术干货分享平台,面向互联网/O2O开发/产品从业者,每周推送优质产品技术文章、技术沙龙活动及招聘信息等。欢迎大家关注我们。 242篇内容 2021年03月19日 14:10 一、概述 密码学技术是信息安全技术的核心,一般情况下,我们习惯认为数据经过加密处理就是安全的,却忽视了由于设计不完善、实现不规范给系统带来的风险。应用中常见的反面例子有: 1、使用的密码算法强度不足。如使用MD5、SHA1算法哈希存储用户密码、手机号等。——可以通过彩虹表攻击在有限空间+时间内通过碰撞推导原文,目前业界已普遍采用强度更强的PBKDF2等算法替代。 2、密钥长度不足导致密钥空间有限,在现有计算条件下易于被暴力破解。如:64位(有效长度56位)密钥长度的DES密钥、1024位RSA密钥在现有硬件条件下,可在几天或几小时内实现破解。 3、算法使用不当,导致抗分析能力较弱。反面案例有:通过不安全的伪随机数产生密钥,导致碰撞概率极高;加密过程中初始向量IV为空,使差分攻击难度降低;HMAC摘要中未使用盐值导致重放等横向攻击。 4、未设置密钥更新机制、更新机制不合理或无法及时停用存在风险的密钥,导致密钥泄露风险逐渐提高。比如:通过构造收集足够多的明文/密文对之后,可以通过差分攻击极大提速密钥的破解。 5、密钥存储方案或存储环境存在泄露风险。如:通过配置文件、硬编码等方式存储密钥,攻击者可通过越权查看配置文件、反编译程序代码等方式获取密钥。 6、不合理的密钥分发机制导致密钥在分发、传输过程中泄露。如:线下传输密钥或直接将密钥明文以文件形式传递,导致密钥泄露的风险大大增加。 7、多应用间共享加密密钥,导致密钥、敏感数据的使用权限和范围无法收敛,同时应用密钥更新机制难以实施。 8、各业务方各自为政的密码学技术实现,导致难以对密钥使用、敏感数据流转进行统一审计和有效追溯。 9、未限制简单口令、未限制口令最小长度、未限制口令/密钥的尝试次数,导致口令/密钥易于遭受暴力破解。如:对登录页面的口令长度未做限制,同时不限制尝试次数,导致用户口令极易猜测;系统间TOKEN验证过程中,对连续认证失败场景缺少IP+次数+时间锁定机制,导致TOKEN易于泄露。 从以上安全风险来看,密钥在生成、更新、存储、分发、使用过程中,存在着泄露、滥用、权限管控缺失、无法有效审计等风险,进而直接影响整个密码系统和应用方案的安全性。因此在密码技术实践过程中,密钥的安全保存、合理使用、最小授权、有效审计是系统的核心任务,也就是密钥管理系统(KMS)的核心价值。二、KMS总览 KMS(Key Management System)即密钥管理系统,用于对密钥的生命周期进行管理,提供统一的使用接口,并实现权限管控、审计追溯等能力。其核心功能包括: 1、密钥生成 - 统一管理密钥的生成,一般要求根密钥具备较高的随机性以防止密钥被猜测、应用密钥通过安全的分散算法派生生成。 2、密钥存储 - 安全的存储密钥,如使用专用的安全存储设施或采用高强度加密保护,防止密钥的泄露和窃取。 3、密钥分发 - 确保密钥从生成、存储环境向使用环境传输的过程中不被泄露。 4、密钥注销 - 密钥生命周期完结之后,合理、安全地销毁密钥,并对销毁步骤作进行记录。 5、密钥更新 - 通过合理的密钥更替机制,降低密钥长期使用带来的暴露风险。一般要求:根密钥长期有效,具备更替能力;应用密钥定期更新,防止恶意破解;过程密钥一次一密,并通过引入时间戳、流水号等应用数据防止重放攻击。 6、密钥备份 - 保证重要密钥的备份恢复机制,在密钥丢失、灾难场景下,能够较快恢复密码服务能力,恢复时间目标(RTO)和恢复点目标(RPO)满足业务方需求。 7、密钥应用和密码运算服务 - 在具体的应用场景下,KMS还负责为业务方提供与应用相关的安全接口,如:数据加密封装、隐私数据脱敏、接口签名等。 一般情况下我们将KMS系统划分为三个核心模块: 1、安全区 - 整个系统的安全根,主要负责安全存储系统的根密钥,仅对系统内必要的功能模块开放访问权限。 2、服务层 - 系统主要功能的实现部分,为用户和KMS的应用提供密钥管理、数据加密、数字签名等服务,这也是KMS中与业务逻辑关系最紧密的部分。 3、接入层 - 面向应用系统提供业务接入能力,贝壳KMS通过提供多语言、多框架适配的SDK,来支持无侵入或低侵入的集成。 在此基础上,依赖公司部分已有基础架构(依赖服务)、KMS服务层的数据及基础能力,实现了KMS的平台层(负责系统监控和密钥管理);面向各业务系统在应用界面提供数据安全能力(如接口管控、数据加密、数据脱敏等);同时在用户界面上平台层主要面向不同用户(业务方团队、安全运营团队和系统运维团队)提供业务接入管理、敏感数据地图、应急响应等关键服务。三、KMS密钥体系 贝壳KMS的密钥体系设计如下: 1、应用密钥(AK) - 对应用系统提供各类密码运算的密钥(按照功能可以划分为数据加密密钥DEK、数据检索密钥DAK、身份认证密钥AK/SK等),应用密钥运行在KMS-Agent中。 2、密钥加密密钥(KEK) - 用于在密钥分发过程中对应用密钥进行加密保护,密钥管理中心服务与每个KMS-Agent之间的每个会话维护一把KEK,在向Agent分发应用密钥时使用KEK对密钥进行加密保护; 3、Agent证书(Cert) - 用于每个Agent节点的身份认证,并确保KEK的安全接收,Agent证书在程序安装时由密钥管理中心服务颁发; 4、根密钥(Root KEY) - 系统中密钥体系的安全根,由多个密钥分量组成、并存储在KMS系统的安全区域。密钥管理中心服务启动时将其加载至服务的运行内存中,用于生成应用密钥、加密备份和归档的应用密钥。四、应用场景介绍 在贝壳数据安全应用中,密码学技术主要用于接口签名和数据加密两个经典场景,如下图:4.1、接口签名 数字签名经典算法有两类: 1. 基于PKI体系公私钥对的非对称算法:通常使用私钥进行签名、公钥进行验签。常见的算法有RSA、椭圆曲线ECC、国密算法SM2。 2.基于对称密钥的HMAC算法:使用散列函数H,以消息M、盐值Salt、对称密钥K作为输入,输出定长摘要。常见的算法有:HMAC-MD5、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。 由于公钥密码算法性能较低,因此在接口签名时通常采用轻量级的HMAC算法来实现,业界典型应用有AWS Signature、OAuth等。通常由服务端为客户端签发一组AK/SK安全凭证,其中AK用以标识客户端身份,而SK用于签名消息的生成和验证。 该模式下通常面临一个关键的安全挑战:由于应用方普遍缺乏对AK/SK的安全管理能力,凭证存在泄露、使用范围不可控等风险。 针对该问题,贝壳KMS提供了签名托管能力,依托KMS的能力实现业务调用时的接口签名方案,已经帮助近70个业务系统实现了API管控能力: 1. 通过预装在服务器环境中的Agent,识别本地服务的真实身份,防止客户端身份冒用; 2. 凭证管理、签名、验签运算统一打包为API接口,实现统一的签名规范,并提供基于切面(AOP)、代码低侵入的开发框架集成支持。4.2、数据加密 KMS系统在2020年与各业务线的密切合作中,逐渐确定了覆盖数据传输和存储场景的数据加密方案,并支持了40余个业务系统接入KMS的数据加密能力。 通过如下机制,确保数据安全能力落地: 1. 敏感数据不再以明文形式在系统间流转、不再存在明文形式的静态敏感数据; 2. 对敏感数据的跨系统访问,需经过相关业务的授权,权限控制颗粒度精确到字段级别; 3. 对敏感信息的使用,都可以通过KMS解密功能的调用记录跟踪到具体的系统和时间; 4. 对于敏感数据的批量泄露事件,可以结合KMS相关功能的访问量变化进行分析排查; 5. 通过持续丰富完善的SDK,帮助业务系统快捷的实现数据加密能力集成,支持无侵入、低侵入的集成方式,如:a) PHP Laravel服务框架下接口敏感字段的自动加、解密能力;b) Java SpringBoot MVC服务框架中接口敏感字段的自动加、解密能力;c) OKHttp客户端组件调用敏感数据接口时的自动化加、解密处理能力;d) Keboot DataSource中数据库敏感字段自动化加、解密处理。五、结语 数据已愈发成为每个公司的核心竞争力,数据的价值已不言而喻,数据安全的重要性也越来越高。在贝壳,高价值的数据无处不在,同时数据安全又是一项安全与业务紧密结合、长期且艰巨的工作。——“道阻且长,行则将至”,贝壳技术团队将通过持续打造KMS等公共安全能力,把高标准的数据安全赋能到业务流程中,不断提升公司数据安全治理的技术底座。贝壳安全和风险中心安全产品研发部 预览时标签不可点 安全4安全 · 目录#安全下一篇贝壳零信任网络建设技术总结(上篇)关闭更多小程序广告搜索「undefined」网络结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-29 12:35 , Processed in 0.539761 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表