知识卡片

降风险手段常把风险转移到另一维度

普通读书笔记卡 · 1449.a

内容

电商系统为避免保存信用卡信息,把支付交给第三方处理,却因此依赖第三方可用性,对方一旦故障,”购买”功能就会失败;为缓解这个新的可靠性风险加入本地消息队列缓存交易,队列若只存内存又会丢数据,若落盘持久化又把原本要避免的敏感数据存储风险带了回来。这条链条说明,安全与可靠性的权衡不是一次性拍板:解决一个风险后,风险常以另一种形式在系统另一处重新出现,评估方案要看完整链条而非第一步的收益。

参考来源

- 位置:《Google系统架构解密:构建安全可靠的系统》第4章《设计中的权衡》4.2节支付系统案例(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_042.html`) - 结论依据:原文逐层展开支付案例——第三方托管降低数据泄露风险却引入可用性依赖,引入消息队列缓解可用性风险又因内存易失或落盘持久化而重新引发数据丢失或敏感数据存储风险,作者直接总结为"因试图降低可靠性风险而引起安全风险,而该可靠性风险又源于试图降低安全风险"。 - 原始内容:总而言之,你终究会遇到一个因为试图降低可靠性风险而引起的安全风险,而这个可靠性风险又是由于试图降低安全风险而引起的!