· 全部指南
为什么需要生产密钥处理规范
开发者每天都在浏览器工具、Slack 和 LLM 对话里粘贴 JWT refresh token、Stripe live key、数据库 URL 和 .env 导出。「本地处理」表示 Towalles 不会为计算而上传输入——但剪贴板同步、屏幕共享、工单附件与 git 历史同样危险。生产密钥规范把临时英雄式调试变成可审计的分类、轮换与沟通流程。
本指南配合 developer-browser-security-checklist 与 local-first-privacy,聚焦凭证生命周期:粘贴前、泄露后、事故中——算法选型见 password-hashing-guide,API 调试见 api-debugging-playbook。
粘贴前:给密钥分级
一级 — 公开或合成: RFC 示例、文档中的假 sk_test_、demo JWT。可用于教程与 regex-tester 验证。
二级 — 内部 staging: 有额度限制的 staging key、开发 IdP JWT、含假客户 ID 的 .env.staging。可在受管设备使用 Towalles;避免公开屏幕共享。
三级 — 生产凭证: 正式支付 key、生产 OAuth refresh、Webhook 签名密钥。默认规则:勿粘贴进浏览器工具。用加固主机 CLI、Vault 只读视图或合成复现。
四级 — 受监管数据: 完整客户 PII、健康记录、未公开财务。勿用消费级浏览器工具——遵循法务/DLP。
任何日志块在 json-formatter 或 token-counter 前先跑 pii-scanner。若 jwt-decoder 显示生产 aud,即使 exp 很短也按三级处理。
粘贴前最低清单
- 命名密钥类型(API key、JWT、HMAC secret、连接串)。
- 确认环境(staging / production)——终端提示色区分。
- 尽量脱敏或换 fixture。
- 选最小工具(解码 JWT vs 格式化整份
.env)。 - 使用无云剪贴板扩展的工作浏览器配置。
- 设提醒:任务结束清空输入与剪贴板。
Webhook 调试时 hmac-generator 需要 raw body 与 secret——签名与验签之间勿用 JSON 格式化改变空白。Basic Auth 用 base64-encoder-decoder 仅验证编码;仍须 HTTPS。
怀疑泄露之后
遏制: 停止共享标签;清空工具输入;若在 Zoom 中粘贴则注销相关会话。
定范围: 哪类密钥?哪些系统可能已接触(IdP 日志、网关、LLM 留存)?
轮换: 在发行方创建新密钥;更新 Secrets Manager;用 env-diff 审查的 PR 部署——勿手改生产。
审计: 从粘贴到轮换的访问日志;三级密钥默认视为已泄露直至证伪。
文档: 时间线中勿再次粘贴密钥;复盘模板链到 production-secrets-handling-guide。
培训: 五分钟演练——三个样本分为一级到四级。
轮换成本低于争论「只是本地而已」。
工具对照
| 密钥类型 | Towalles 工具 | 禁止 |
|---|---|---|
| JWT | jwt-decoder | 贴进公开 gist |
| Webhook HMAC | hmac-generator | 验签前改 JSON 空白 |
| API key 格式 | api-key-format-checker | 把格式检查当授权 |
| 密码策略演示 | password-strength | 收集员工真实密码 |
| bcrypt 验证 | bcrypt | 验证生产用户密码 |
| 环境差异 | env-diff | 把生产值截图发 Slack |
hash-generator 仅用于文档示例对照——非 live 签名密钥。
LLM 与第三方 SaaS
即使厂商承诺不用于训练,合同仍可能允许短期留存。把 LLM 对话当半公开渠道:先 pii-scanner,再 token-counter 最小化摘录。structured-output-validator 的 schema 与示例中勿嵌入密钥。
需上传的「JSON 美化」SaaS 会把 payload 发到云端——Towalles 本地计算避免这一点,但你仍控制粘贴内容。
团队政策模板
- 浏览器工具白名单(Towalles 仅允许二级)。
- 入职必读 developer-browser-security-checklist。
- 事故频道:谁负责轮换(平台 vs 应用)。
- 长期 HMAC/API key 季度轮换。
- Git hook 拦截
.env与*secret*。
政策写进 Confluence,而非只存在工程师脑子里。
常见误区
「本地 = 可贴生产 key」 — 本地指不上传 Towalles;内存、扩展、截图仍在。
「删掉 Slack 就行」 — 备份会保留;仍应轮换。
「Staging key 无所谓」 — Staging 常有类生产数据且监控更弱。
「Base64/JWT 能保护密钥」 — 见 base64-encoder-decoder 与 jwt-security-basics。
附录:轮换 runbook 摘要
1. 在控制台创建新密钥。
2. 双写期:Webhook 同时接受新旧签名,或 API 双 key。
3. 更新 Secrets Manager;staging → prod PR 经 env-diff 审查。
4. 流量零旧 key 使用后吊销旧密钥。
5. 若因泄露触发轮换,写复盘。
附录:推荐阅读顺序
- local-first-privacy
- developer-browser-security-checklist
- production-secrets-handling-guide(本文)
- jwt-security-basics
- api-debugging-playbook
Towalles 以深度教程连接这些 playbook 与具体工具,而非空壳合规勾选。
双人控制与破窗(break-glass)
高风险长期生产密钥(支付 key、云根凭证)的创建或导出应需要双人控制。故障时的破窗流程必须:限时访问、强制工单、自动过期、事后复盘。浏览器工具从来不是破窗路径——用堡垒机上的 Vault/KMS CLI。
明确 Tier 3 粘贴事故后谁批准轮换(安全值班 vs 应用负责人)。含糊会导致「明天再轮换」,然后拖成数周。
Webhook 签名密钥:双 key 滚动
轮换 HMAC secret 时:
- 服务商签发
secret_new,仍接受secret_old。 - 验签逻辑先试新再试旧(或按文档顺序)——收包与验签之间勿用 json-formatter 改空白;文档演示只用合成密钥在 hmac-generator 上对字节一致的 body。
- 监控验签失败率;旧 key 成功次数归零后再吊销。
- 临时双密钥都放在 Secrets Manager,绝不提交进 git 的
.env。
双写后用 env-diff 对比各环境,防止 staging 只留下旧 key。
CI 扫密与 pre-commit
- 拦截已知模式:AWS key、PEM 私钥头、
sk_live_、diff 中的 JWT 形字符串。 - 拒绝触及
.env、*.pem、credentials.json的提交(除非白名单路径)。 - 扫描失败后立即轮换——不要只靠「以后 rewrite history」;默认 secret 已推到远端。
api-key-format-checker 适合入职演示区分格式错误与真密钥——仍勿提交会与生产模式完全撞车、触发扫密的 fixture。
.env 导出与 JSON 配置漂移
工程师常把 printenv 或 JSON 配置贴进工单。更好的做法:
- 事故中只列键名。
- 用等长
***替换值后,再对脱敏副本跑 env-diff。 - 嵌套 JSON 配置只有在脱敏后才用 json-formatter。
若完整 dump 已进 Slack 或上传型 SaaS,每个值都按 Tier 3 轮换——不要挑着转。
OAuth refresh 与会话 Cookie
Refresh token 往往比 access JWT 更长寿。用 jwt-decoder 解码 access token,并不会吊销手机里的 refresh。泄露响应必须包含 IdP refresh 吊销与设备会话清理,而不能只说「access TTL 只有 15 分钟所以没事」。
标了 HttpOnly 的 Cookie 仍会出现在 HAR 与代理抓包里——交给厂商支持前先清洗 HAR。优先用合成账号做复现。
LLM Prompt 与 RAG 语料中的密钥
向量化管道有时会吞进旧 runbook 里的连接串。把 RAG 入库当作一次粘贴事件:
- 建索引前用 pii-scanner 扫描源。
- 用 token-counter 估 chunk;带脱敏的小块优于巨型原文。
- 用 structured-output-validator 校验结构化输出时,schema 示例中勿出现像密钥的字段值。
Towalles 本地工具帮你在上传给任何模型厂商之前完成清洗。
桌面推演(30 分钟)
- 主持人给出三个已脱敏样本(隐藏 Tier 标签)。
- 工程师分级、选择工具或拒绝粘贴。
- 模拟 Tier 3 贴进「公开 gist」——按附录练习轮换步骤。
- 把演练中发现的一条改进写进 Confluence 政策。
每季度重复一次,比一年一次合规培训更能抓到流程漏洞。
附录:密钥类型速查
| 类型 | 形态举例 | 主要 Towalles 辅助 | 轮换入口 |
|---|---|---|---|
| Access JWT | eyJ… 三段 |
jwt-decoder | IdP / 短 TTL |
| Refresh | 不透明或 JWT | JWT 则 jwt-decoder | IdP 吊销 |
| Webhook HMAC | 随机 hex/base64 | hmac-generator(合成) | 服务商双 key |
| 云 API key | 厂商前缀 | api-key-format-checker | 云 IAM |
| DB URL | postgres://… |
env-diff(脱敏) | Secrets Manager |
| 私钥 | PEM | (勿粘贴) | KMS/HSM |
不确定分级时问安全——默认上调。分级偏低,是生产密钥进浏览器标签的常见原因。