跳到主内容
AI中杼
产品更新

安全下载与正版溯源:源码售卖的底线设计

源码售卖的核心不是把文件发出去,而是让每一次下载可授权、可追溯、可失效。本次产品更新围绕短时签名、次数约束、指纹文件与许可证池,说明我们不向买家存储明文下载密钥的工程底线。

AI中杼编辑部·2026年10月27日

本次产品更新围绕一个并不新、但常被忽略的问题:源码交付的底线不只是“发得出去”,更在于“发得可控”。

从交付文件到交付权限

源码售卖的风险在于:一次复制,可能长期脱离控制。因此我们把交付对象从“一个可下载的压缩包”改为“一组可验证、可过期、可撤销的下载权限”。文件仍在对象存储中,但买家拿到的不是永久地址,而是一次请求后生成的短时签名链接。

短时签名:让链接只在必要时间存在

下载请求到达后,服务端校验订单、许可证状态、剩余次数和文件指纹,再签发带有效期的访问签名。签名绑定订单与文件校验值,过期即失效;必要时可限制为单次使用。签名密钥由密钥管理服务托管并定期轮换,应用侧只申请最小权限,不在数据库、日志或前端暴露明文密钥。

次数与许可证池:把商业承诺变成可计算约束

“次数”约束下载行为,不改变已授予的使用权;“许可证池”管理授权容量与状态。每次售卖从池中分配许可证,下载次数与许可证独立记录,避免把“能下载几次”误当成“授权多久”。当退款、违约或风控触发时,冻结许可证池中的对应条目,即可停止后续交付。这里的关键是:买家不持有明文下载密钥,只持有与其订单绑定的短期凭证;服务端也不保存可直接复用的下载密钥。

指纹文件:让每份交付可回溯

每次生成交付包时,附带一份指纹文件,记录订单标识、许可证标识、文件校验值、生成时间与签名。它不改变源码语义,却能让后续流通中的副本回到具体交付批次。指纹文件应与包内清单和校验值一起签名,避免被单独替换。溯源的目的不是制造威慑,而是在授权争议、泄露排查和合规审计时提供可验证依据。

审计、撤销与最小暴露

下载事件记录订单、许可证、指纹、结果与必要请求上下文;敏感字段脱敏,日志不记录明文密钥。撤销通过过期签名、冻结许可证、标记指纹实现,历史记录保留但不继续授权。工程上坚持三条底线:默认不持久化明文下载密钥;签名权限与下载权限分离;任何人工操作都留审计痕迹。

底线清单

  • 下载链接短时签名,默认不落库
  • 下载次数与许可证池分别约束
  • 每份交付带签名指纹文件与校验值
  • 买家不持有明文下载密钥
  • 密钥托管、轮换、最小权限
  • 下载、撤销、异常均可审计
安全下载与正版溯源:源码售卖的底线设计 · AI中杼