李智慧 · 高并发架构实战课
李智慧
同程艺龙交通首席架构师,前 Intel & 阿里架构师,《大型网站技术架构》作者
23286 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 26 讲
李智慧 · 高并发架构实战课
15
15
1.0x
00:00/00:00
登录|注册

18 | 加解密服务平台:如何让敏感数据存储与传输更安全?

改进思路分享
使用的加密算法和密钥安全性
Venus系统实际应用案例
信息安全重要性
加密解密操作示例
VenusData设计
核心服务类设计
密钥领域模型
Venus SDK执行加解密
Venus Key Manager获取密钥分片
Venus SDK本地缓存检查
应用程序请求加解密
应用程序服务器App Server
数据库DB
文件服务器File Store
Key Server服务器
密钥存储服务器
Venus Key Server
Venus SDK
密钥服务
加解密服务
密钥管理
性能:快速加解密计算
可靠性:高可用性保证
安全性:密钥分片存储
避免弱加解密算法和弱密钥
统一加解密算法程序
密钥版本管理
密钥分片交换机制
密钥安全存储
提供加解密服务SDK
统一管理加解密算法和密钥
密钥交换过程中泄露
源代码存储密钥泄露
密钥和解密算法泄露
同一密钥用于加密和解密
解密密钥
解密算法
加密密钥
加密算法
信用卡号
密码
手机号码
用户姓名
保护敏感数据存储与传输安全
思考题
小结
测试用例代码demo
Venus详细设计
加解密调用时序
部署模型
Venus系统架构
系统用例
非功能需求
需求分析
Venus系统设计
安全风险
对称加密
加解密基础
敏感数据示例
核心目标
加解密服务平台“Venus”

该思维导图由 AI 生成,仅供参考

你好,我是李智慧。
在一个应用系统运行过程中,需要记录、传输很多数据,这些数据有的是非常敏感的,比如用户姓名、手机号码、密码、甚至信用卡号等等。这些数据如果直接存储在数据库,记录在日志中,或者在公网上传输的话,一旦发生数据泄露,不但可能会产生重大的经济损失,还可能会使公司陷入重大的公关与法律危机。公司上下辛苦十几年,一夜回到解放前。
所以,敏感信息必须进行加密处理,也就是把敏感数据以密文的形式存储、传输。这样即使被黑客攻击,发生数据泄露,被窃取的数据也是密文,获取数据的人无法得到真实的明文内容,敏感数据依然被保护着。而当应用程序需要访问这些密文的时候,只需要进行数据解密,即可还原得到原始明文数据。加解密处理既保证了数据的安全,又保证了数据的正常访问。
但是,这一切的前提是加密和解密过程的安全。加密、解密过程由加密算法、加密密钥、解密算法、解密密钥组成。下图是一个对称加密、解密过程。对称加密密钥和解密密钥是同一个密钥,调用加密算法可将明文加密为密文,调用解密算法可将密文还原为明文。
所以,如果窃取数据的人知道了解密算法和密钥,即使数据是加密的,也可以轻松对密文进行还原,得到原始的明文数据。而很多时候,解密算法和密钥都以源代码的方式保存在代码仓库里,黑客如果窃取了源代码,或者内部人泄露了源代码,那么所有的秘密就都不是秘密了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

加解密服务平台“Venus”是一个专门设计用于保护敏感数据存储与传输安全的系统。该系统通过统一的加解密服务和密钥管理,分片存储密钥、多角色多权限管理、统一加解密服务API等功能,保证了数据的安全性、可靠性和性能需求。Venus系统的部署模型包括核心服务器、文件服务器、数据库服务器以及应用程序服务器,通过密钥管理控制台进行密钥申请、更新、审核、查看等操作。此外,Venus对密钥进行分片存储,不同存储服务器由不同运维人员管理,保证了密钥的安全性。系统还支持多版本的密钥,以应对密钥泄露可能带来的影响。Venus系统的核心类设计包括VenusService和VenusData,通过VenusService完成数据加解密操作。VenusData用于表示Venus加解密操作输入和输出的数据。系统还提供了详细的设计模型和测试用例代码demo。文章强调了信息安全的重要性,并鼓励读者在工作中思考并改进加密算法和密钥的安全性。整体而言,Venus系统为敏感数据的安全存储与传输提供了全面的解决方案,对于需要保护敏感数据的应用系统具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《李智慧 · 高并发架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • peter
    请教老师几个问题啊: Q1:在客户端有缓存的情况下,服务端修改密码和算法以后,客户端怎么同步? Q2:客户端的缓存只存于内存中吗?还是会存到硬盘上? Q3:密码一般分几片?

    作者回复: 1 等缓存过期。另外,密码和算法不能修改,只能升级版本,修改的话已经加密了的数据怎么办 2 只能在内存中,在硬盘就不安全了 3 建议3片,系统不做要求

    2022-03-30
    3
  • Realm
    老师,有没有可能遇到切换版本,造成解密的密钥和加密密钥不一致的情况?

    作者回复: 原文 : 属性 dataWithVersion 表示加密后的 VenusData 的 bytes 和 text 中是否包含使用密钥的版本信息 这个属性为true,加密内容自带版本号,解密的时候使用对应版本号密钥解密。

    2022-03-30
    3
    2
  • ABC
    老师,有个疑问,如果密钥缓存在本地。会不会被JVM分析工具解析出来

    作者回复: 一般公司的运维安全审计可以防止这种情况,如果觉得运维安全审计的安全等级不够,那就需要部署专门的加解密服务,并提升这些服务的访问权限和安全审计级别。这个专门的加解密服务依然可以用文中的设计,就是文中的应用程序角色。

    2022-04-25
    1
  • 👽
    现在工作中,其实主要是两个,一个是摘要算法,也就是MD5这种。众所周知,安全性不是很高,容易被破解。不过,对于安全系数要求不是特别高的业务场景,也足够用了。(不涉及钱的场景) 另一种是,可逆的加密。主要用于处理敏感信息。比如手机号。手机号,通过盐,在数据库存储密文。然后,配置文件里存盐。取出来的时候,逆运算一波即可。 其实,我的理解,加密的核心无非就是防止数据泄漏的风险。这个很好理解,就好像,一个宝箱存着你的所有财产,如果只有一把钥匙,那这把钥匙丢了或者被人复制了,那你的财产就全丢了。所以,可以多上几把锁。每把钥匙放在你不同的亲信那里,必须要集齐所有的钥匙才能打开你的宝箱。比如,如果数据库明文,数据库泄漏了那用户密码就泄漏了。如果加上密钥,就需要同时获取数据库和密钥,如果再加上分片,就需要同时搜集多个分片。大幅度降低了泄漏的几率。毕竟,那么多数据同时泄漏还是太离谱了。 优化的点的话,我认为,我们系统的盐存配置文件也不是很安全。我在想,盐是不是可以做成动态的。通过用户部分不会改变的摘要信息去换取盐。

    作者回复: 赞。 盐也是一种密钥,动态的盐也是由确定的信息计算来的,相当于增加了算法复杂度,还是有泄漏风险,保管好密钥才是王道。

    2022-03-30
    1
  • Steven
    加解密用过:AES、RSA 单向加密用过:MD5, SHA1 有个疑问:“SDK 加解密服务接口取得加解密密钥,并缓存在本地”,这样会不会有安全风险?

    作者回复: 缓存是指缓存在本地内存中,其实就是指创建的密钥对象不释放,不会增加风险。

    2022-03-30
    1
  • knife
    请问老师,在获取密匙服务的时候 需要一次远程调用,这时候如果被拦截,有可能泄露密匙,是否只能通过不断升级版本进行解决

    作者回复: Venus应用于系统内部加解密服务,数据在内网传输,一般认为这种网络环境是安全的。

    2022-05-24
  • 无名
    老师,如果数据加密存储的话,如果要以这些字段做查询条件有没比较高效的搞法?

    作者回复: 查询条件也加密

    2022-04-03
    2
  • 闪耀之星
    老师,您好,请教个问题: 如果像敏感字段都以加密的方式存储在数据库中,那么像一些复杂的脚本包含加密字段做函数处理的情况或者加密字段作为查询条件进行部分匹配检索、模糊匹配的情况是否有比较搞效的解决方案呢?
    2022-04-23
    2
  • neohope
    可以优化的点: 1、多数据中心需要做异地双活;而且密钥绝对不能丢失; 2、可以增加机构和APP的概念,机构下有多个APP,APP可以绑定一到多个KeyBox,便于权限管理,也可以防止一些误操作; 3、在确认密钥及加密算法规则时,可以让安全团队全程参与评审的;后续按需选择算法,密钥自动生成即可,可以减少后续安全评审工作量; 4、金融行业还会用到密码机,否则可能无法达到合规性要求; 几个可能痛苦的过程: 1、系统先上线,加密后上线,历史数据加密+去除明文数据会痛苦; 2、系统模糊查询灵活性下降,无法做like类似查询。但可以预先将前缀或后缀进行hash,用前缀或后缀做一些匹配; 3、DB加密后,基于ETL或DB日志的部分任务就无法进行了,需要做调整; 4、密钥版本功能挺好的,换密钥很痛苦;
    2022-05-05
    1
  • 王肖武
    2个小问题帮忙解答一下: 1.我们公司在做密评,直接用老师的这个设计能通过不呢? 2.听说RSA1024、MD5、SHA-1等不是安全的加密算法,老师推荐哪些对应的算法呢?
    2022-05-12
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部