加密、密钥与秘密管理
约 50 分钟
加密、密钥与秘密管理
先把问题放到真实工作里
你现在不是在背“安全、隐私与工程伦理”的一行定义,而是在接手一个会被多人长期修改的系统。本节抓住的核心是:加密算法只是系统一环,密钥生成、存储、轮换、撤销和审计决定实际安全。先读这个现场:数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复。如果只赶着写代码,团队很可能把尚未澄清的假设固化为接口、表结构和发布风险;等用户指出问题时,改动已经跨越产品、测试与运维。
请先用自己的话回答两问:这个决策保护了谁的什么结果?失败以后,哪一个可观察现象会最先暴露它?说不清时不要急着选工具,回到对象、边界和证据。软件工程的第一步常常不是增加制品,而是让模糊承诺变得可验证。
从概念走到机制
把本节结论压成一条可执行规则:秘密不进代码、日志、镜像和工单;密钥权限与数据权限分离。它不是口号。你要依次写出输入事实、责任主体、关键约束、产出制品、验证动作和失败处置。输入事实说明我们知道什么;约束说明不能牺牲什么;制品让协作者看见同一决策;验证动作把“看起来合理”变成可重复证据;失败处置保证例外不会被藏起来。
以本节场景为例,先在白板左侧写外部事件和利益相关者,中间写团队能控制的状态或流程,右侧写用户和运维能看到的结果。再给每条箭头补契约:谁触发、何时完成、超时怎样处理、重复会怎样、由哪个测试或指标证明。这样,一张图就从装饰变成可以找错的模型。
跟我做一个完整例子
第一步,截取最小但端到端的场景“数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复”。第二步,把核心判断“加密算法只是系统一环,密钥生成、存储、轮换、撤销和审计决定实际安全”翻译成一页制品:顶部写目标与非目标,中部写规则、状态或接口,底部写验收例和负责人。第三步,故意加入一个边界,例如重复请求、权限不足、依赖超时、时区跨越或版本并存,检查原制品是否仍能指导行动。
第四步,围绕“加密、密钥与秘密管理”做定量预算。假设一个改动需要 9 人时开发、4 人时验证,并预留 2 人时发布与观测,基础工作量为 15 人时;若返工概率为 25%,期望工作量可先估为基础量乘 1.25,即 18.75 人时。这不是承诺日期,而是迫使团队把本节遗漏的验证、交接和风险显性化。最后记录实际值,下一次用团队数据校准,而不是迷信通用系数。
可直接复用的制品模板
请建立一张“加密、密钥与秘密管理决策卡”:一,背景与触发事件;二,受影响角色和用户结果;三,当前事实与未决假设;四,候选方案及被否决原因;五,决定与适用范围;六,接口、状态或流程变化;七,正常、边界、故障三个验收例;八,指标和日志证据;九,安全、隐私、可达性影响;十,负责人、复审日期和撤销条件。
这张卡不追求篇幅。每一栏都应让下一位同学能采取行动。若“验证”只写了测试一下,补成具体输入、环境、预期输出和通过阈值;若“风险”只写注意并发,补成并发历史、允许结果和失败检测;若“负责人”写全组,改成一位最终跟进者与协作者。
在线练习与同伴演练
先独立完成本节绑定的单选、多选、计算和情境论述题。计算题必须写单位、假设与反查,不只填最后数字;论述题按学生可见量表逐项自评。然后两人配对:一人扮演方案作者,另一人只允许用反例提问。围绕“数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复”至少提出一次正常流、一次边界流和一次故障流。作者若只能说“框架会处理”,就把未知写回决策卡。
最后换一个领域重做,例如把校园预约换成支付、医疗提醒或内容审核。保持方法不变而更换名词,若仍能产出清楚的边界、制品和验收,说明你学到的是可迁移方法,不是记住案例答案。
最容易踩的坑
在“加密、密钥与秘密管理”这一节,第一类坑是只写术语清单,未说明概念如何改变下一步行动;第二类是用一次成功演示替代边界、并发与故障证据;第三类是把平均值当全部,忽略尾部、峰值和恢复时间;第四类是把职责写成“大家负责”,出问题后无人跟进;第五类是为赶进度跳过影响分析,导致需求、接口、测试和运维文档互相矛盾。
反查办法很具体:从用户结果逆着追到指标、运行制品、测试、代码、设计和需求,每一跳都问“证据在哪里、版本是什么、谁能解释”。任何一跳断开,都不是文档小问题,而是下一次变更的返工入口。
下课前自检
闭卷回答:一,加密、密钥与秘密管理解决的核心风险是什么?二,把“秘密不进代码、日志、镜像和工单;密钥权限与数据权限分离”改写成三个可执行步骤。三,针对“数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复”给出一个会推翻错误方案的反例。四,写出本节制品中最重要的四栏。五,说明上面的工作量估算为什么只能用于预算而不能直接承诺日期。
合格标准是:你能向一位没听过本课的同学讲清对象、机制和边界,能交出别人可复核的制品,能用题目与反例证明它,而不是重复章节标题。下一节会把今天的制品当作输入继续推进,因此没有通过自检时先补齐,不要带着模糊债务往后走。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。
本题考查加密、密钥与秘密管理。面对场景“数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复”,下一步最严格的工程动作是哪一项?
在加密、密钥与秘密管理中,为证明“秘密不进代码、日志、镜像和工单;密钥权限与数据权限分离”真正落实,哪些证据必须保留?(漏选或多选均不得分。)
多选题:必须选全正确项,漏选或多选均不得分。
按照加密、密钥与秘密管理的工程语境,一个改动开发需11人时、验证需6人时、发布观测需2人时;风险储备按基础工作量的25%计。预算总人时是多少?填写数值,并在草稿保留公式与单位。
在加密、密钥与秘密管理中,围绕“数据库字段用受管密钥加密,服务通过短期身份解密,轮换保留版本并演练恢复”写一张最小工程决策卡:说明目标与非目标、关键规则、一个正常例、一个边界或故障反例、验证证据和负责人。
【学生可见评分量表(10分)】对象与目标2分;规则和制品3分;正常/失败证据3分;责任与复审2分。只罗列术语不得分。