To update blobs or not to update blobs
3 months ago
- #firmware
- #security
- #open-source
- 硬件通常运行非自由软件(称为固件),可存储于ROM、闪存或在运行时加载。
- 多数固件是非自由的,有时经过加密签名或加密处理,导致替换或分析困难。
- 关键考量包括固件更新是否引入恶意功能、安全漏洞或后门程序。
- 由于缺乏透明度且无法验证源代码,对固件供应商的信任变得复杂。
- 存储在ROM中的固件若存在恶意代码则无法修复,会构成长期风险。
- 硬件厂商可能在固件中植入后门,更新也可能引入新漏洞。
- 将固件更新权限仅限厂商被视为限制性措施且反用户权益。
- 固件漏洞可能极其严重(如SSD漏洞绕过加密),必须通过更新修复。
- 逆向工程固件可行,但比审计源代码更具挑战性。
- 固件漏洞可能危及操作系统安全,尤其在缺乏强力IOMMU保护时。
- 用非自由固件替换另一非自由版本不会减少活跃的非自由组件数量。
- 用户必须权衡对CPU厂商的信任与使用其硬件的必要性。
- CPU微码更新可修复缺陷或缓解漏洞,但可能带来新风险。
- 固件更新应设为可选,允许用户自定义安全模型。
- 自由固件能促进用户改进并增强硬件功能。