7.4 支持与生命周期策略 (Support & Lifecycle Policy)
7.4.1 法律依据
根据 Art. 13(8) CRA,制造商必须为每个产品确定并公布支持期限 (Support Period)。在此期间内,必须提供安全更新。
法律依据
Art. 13(8) CRA: "制造商应确定预期产品生命周期。在确定支持期限时,制造商应特别考虑用户的合理期望、产品的性质(包括其预期用途),以及关于确定含数字元素产品生命周期的相关欧盟法律。"
Art. 13(8) 第2款 CRA: "支持期限自产品投放市场之日起至少为五年。"
Annex II 第5项 CRA: 支持期限是随产品提供的强制性用户信息的一部分。
7.4.2 最低支持期限
CRA 规定最低支持期限为5年。对于预期使用寿命更长的产品类别,BAUER GROUP 制定了更长的期限:
| 产品类别 | 最低支持期限 | 依据 | 示例 |
|---|---|---|---|
| 软件产品(Web、API) | 5年 | CRA 最低要求 | 微服务、Web 应用 |
| 容器镜像 | 5年 | CRA 最低要求 | 基于 Docker 的服务 |
| 库/软件包 | 自最后一个主版本起5年 | CRA 最低要求 | NPM 包、NuGet 包 |
| 固件(IoT 消费类) | 5年或预期设备使用寿命 | 以较长者为准 | 基于 ESP32 的设备 |
| 固件(工业类) | 10年 | 工业控制器的预期使用寿命 | STM32、Zephyr RTOS |
关于确定支持期限的说明
支持期限的确定必须在产品投放市场之前完成,且此后不得缩短。可随时延长支持期限,如果实际使用寿命超过原始估计,建议进行延长。
7.4.3 生命周期阶段
每个产品经历三个已定义的生命周期阶段:
┌──────────────────────────────────────────────────────────────┐
│ 第1阶段:主动支持 (ACTIVE SUPPORT) │
│ │
│ 全面支持:功能 + 安全 + 缺陷修复 │
│ 持续时间:直到下一个主版本发布或阶段转换 │
│ SLA:安全更新按补丁管理规定(→ 第3章) │
├──────────────────────────────────────────────────────────────┤
│ 第2阶段:安全支持 (SECURITY SUPPORT) │
│ │
│ 仅安全更新:CRITICAL 和 HIGH 级别 CVE │
│ 持续时间:直到支持结束(总计至少5年) │
│ SLA:CRITICAL ≤ 48小时,HIGH ≤ 7天 │
├──────────────────────────────────────────────────────────────┤
│ 第3阶段:生命周期结束 (END OF LIFE, EOL) │
│ │
│ 不再提供进一步更新 │
│ 提示用户迁移 │
│ 提前12个月公告 │
│ SBOM + 签名 + 文档保持归档 │
└──────────────────────────────────────────────────────────────┘阶段间的过渡
| 过渡 | 触发条件 | 通知方式 |
|---|---|---|
| 主动 → 安全 | 发布新主版本 或 管理层决定 | 发布说明 + SECURITY.md 更新 |
| 安全 → EOL | 支持期限到期 | 提前12个月通知(见 EOL 流程) |
7.4.4 EOL 流程
公告时间表
| 时间点 | 操作 | 渠道 | 责任人 |
|---|---|---|---|
| EOL 前12个月 | EOL 公告及计划日期 | GitHub Advisory + 发布说明 + SECURITY.md | 产品负责人 |
| EOL 前6个月 | 提醒 + 发布迁移指南 | GitHub Advisory + 文档 | 产品负责人 |
| EOL 前3个月 | 最后提醒 + 更新产品页面 | GitHub Advisory + 电子邮件(已知客户) | 产品负责人 |
| EOL 日期 | 最终版本标记,不再提供更新 | 发布说明 + SECURITY.md 更新 | DevOps 负责人 |
EOL 后的义务
即使在达到 EOL 后,根据 Art. 10(13) CRA,以下保留义务仍然适用:
| 义务 | 期限 | 措施 |
|---|---|---|
| 技术文档归档 | 投放市场后10年 | Git 仓库(受保护分支) |
| 所有版本的 SBOM 可用 | 投放市场后10年 | 发布资产 + SBOM 归档 |
| 签名可验证 | 投放市场后10年 | Cosign 公钥归档 |
| 现有版本可下载 | 投放市场后10年 | GitHub Releases / 注册中心 |
| 符合性声明可用 | 投放市场后10年 | Git 仓库 |
7.4.5 版本管理策略
BAUER GROUP 采用语义化版本管理 2.0.0:
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
MAJOR – 不兼容的 API 变更(新的支持周期)
MINOR – 向后兼容的功能新增
PATCH – 向后兼容的缺陷修复/安全更新安全更新始终作为 PATCH 版本发布且向后兼容。如果为修复漏洞而不可避免地需要进行破坏性变更,将同时为当前 MAJOR 版本提供解决方案。
7.4.6 产品目录 — 支持状态
产品特定
以下产品目录必须针对 BAUER GROUP 的每个与 CRA 相关的产品进行维护。表格在每次主版本发布、阶段转换或 EOL 事件时更新。
责任人: 产品负责人与安全负责人协调
| 产品 | 类型 | 当前版本 | 支持阶段 | 支持开始 | 支持结束 | 下次审查 |
|---|---|---|---|---|---|---|
| [填写产品名称] | 软件 | vX.Y.Z | 主动支持 | YYYY-MM-DD | YYYY-MM-DD | YYYY-MM-DD |
| [填写产品名称] | 容器 | vX.Y.Z | 安全支持 | YYYY-MM-DD | YYYY-MM-DD | YYYY-MM-DD |
| [填写产品名称] | 固件 | vX.Y.Z | 主动支持 | YYYY-MM-DD | YYYY-MM-DD | YYYY-MM-DD |
填写说明
对于 CRA 范围内的每个产品(→ 第1.3章),必须在此表中添加一行。支持开始对应于投放市场日期(首次公开提供)。支持结束必须至少在支持开始后5年。
7.4.7 用户信息
根据 Annex II 第5项 CRA,必须告知用户支持期限。信息必须在以下位置提供:
| 信息位置 | 内容 | CRA 义务 |
|---|---|---|
| 产品文档(投放市场时) | 支持期限、支持阶段、EOL 日期 | Art. 13(8) |
| SECURITY.md(每个仓库) | 受支持版本、报告渠道 | Art. 13(6) |
| 产品页面 / README | 当前支持阶段、下次 EOL | Annex II 第5项 |
| 发布说明(阶段转换时) | 主动 → 安全过渡、EOL 公告 | 最佳实践 |
| 用户信息模板 | 完整的安全通知 | Annex II |
用户信息模板请参见附录:用户信息。
7.4.8 流程集成
生命周期流程已集成到现有的 CI/CD 工作流中:
| 事件 | 自动化 | 工作流 |
|---|---|---|
| 新版本发布 | 生成 SBOM、签名、作为发布资产附加 | cra-release.yml |
| 主版本发布 | 将前一版本的支持阶段设为安全支持 | 手动 + 目录更新 |
| 达到 EOL | 更新 SECURITY.md、注册中心中的弃用通知 | 手动 + 目录更新 |
| 支持审查(每半年) | 审查产品目录、规划阶段转换 | 手动 |