FPGA配置安全要分清认证与版本回退
配置文件被加密后,设备仍可能加载未经授权或过旧的逻辑。FPGA安全启动需要分别证明映像来自可信发布方,以及当前策略允许这个版本运行;保密、认证与防回滚承担不同职责。
加密主要限制未持有相应密钥的一方理解配置内容,本身并不普遍保证内容未经篡改。完整性与来源通常依赖签名、消息认证码或经认证的加密模式,具体由器件启动架构支持。不能因为某种加密算法名称足够强,就跳过认证链检查;也不能把传输校验和当成对抗恶意替换的证据。启动时到底验证哪些字节、在何时开放用户逻辑运行,应以所用器件的安全流程为准。
认证结果能否可信,取决于信任根。若验证公钥与映像一起放在可随意修改的外存中,攻击者可能同时替换二者,让自己的映像通过自建验证链。公钥本身不必保密,但应通过受保护的器件存储、可信摘要或等效机制绑定到设备。对称认证密钥则还需要保密。生产烧录要区分开发与量产策略,检查调试接口和备用启动路径是否仍能绕过期望的认证要求,不能只证明主启动路径验签成功。
选择器件时还要确认安全能力的具体组合。有的架构将认证与加密作为可分别配置的功能,有的对局部加载或启动阶段另有限制;某个系列的能力不能直接推广到所有产品。验证可构造内容被修改、签名不匹配、密钥不受信任等不同负例,检查失败后设备是否进入规定状态。若外部控制器参与验证,它与配置接口之间的信任边界也要明确,否则通过验证的文件可能在实际加载前被替换。量产记录应把设备身份、信任根摘要和烧录策略对应保存,便于后续轮换与故障追溯。密钥轮换也要验证旧钥失效与新钥可用的过渡顺序,防止更新流程意外锁死合法维护路径。
来源可信并不代表版本足够新。过去正式签发、但已经包含漏洞的映像,仍可能具有有效签名。FPGA更新链需要在受保护位置保存最低允许版本,或采用具备同等防回退效果的策略,并将映像安全版本纳入认证范围。若最低版本只保存在可恢复旧备份的普通外存里,攻击者可以把映像与版本记录一并回滚,签名认证和版本比较都会表面正常,却失去限制旧代码的作用。
防回滚与掉电恢复之间存在提交顺序矛盾。先提高不可逆版本下限,再发现新映像没有完整写入,可能连原本可用的旧映像也无法启动;只写新映像而一直不提交版本下限,则留下继续加载旧版的窗口。可采用双映像槽、写入后验证以及明确的试运行与提交状态机,但必须根据产品威胁模型规定何时提高版本下限。两阶段流程减少的是更新中断风险,不会自动消除试运行阶段的安全取舍。
恢复映像也要纳入同一策略。若所谓保险槽长期保留一个存在漏洞且不受版本限制的旧系统,它就可能成为固定回退通道;若完全禁止任何恢复,又可能把一次存储损坏变成不可维护故障。应预先规划满足当前安全下限的恢复路径,并验证每个掉电断点:新映像写入中、验证后、切槽时以及版本提交中。可接受结果应是启动允许的可信版本或进入受控恢复状态,而不是默认总能回到最旧镜像。
配置安全需要一条完整决策链:映像被认证,信任根受保护,版本符合策略,更新中断后仍可恢复。分清这些条件,才能把安全启动变成持续有效的运行约束。





