【技术干货】安全性产品生命周期管理 Product Life Cycle Management
前言
安全的产品,在产品的设计、开发、组装一直到送到用户手上,都必须要完整的考虑其安全,并进行有效的管理,这便是产品生命周期管理。
以MCU这类产品而言,其产品生命周期可以分为芯片制造商(Vendor)、原厂出厂状态(OEM)、产品布署(Deployed)状态与退料审查(RMA)状态。
芯片制造商(Vendor)状态
MCU在芯片厂生产制造出来,经过测试、原厂设置后,就可以送给产品制造商,进行产品的开发与制造。
以M2354为例,原厂出厂时芯片具有不可更改且唯一的身分码(UID),也可以根据客户需求设置UCID。此时MCU不含韧体与密钥,可以进行读取、刻录或除错等等操作。
原厂出厂(OEM)状态
在OEM状态下的MCU,需要能够用来开发产品韧体,也需要能够在产品韧体开发完成后,让工厂能够刻录产品韧体,所以此时的MCU是呈现开放状态,能够读取、烧写内部数据与进行程序的开发与除错,包含基于信任根(Root of Trust)机制的安全开机流程,在此时都是关闭的,并且可以根据开发的不同阶段,一一打开。
以M2354为例,此时客户可以用Nu-Link ICE进行韧体的开发与除错,确认没问题之后,就可以将密钥写入芯片当中,之后MCU将会启动信任根基机制,强制执行安全开机认证流程,所有非经授权的韧体都将不允许被执行,也可以启动Debug Protection Mechanism (DPM)机制,开启除错功能的授权机制,以限制对读取、刻录与除错功能的存取。
产品布署(Deployed)状态
产品的的固件开发完成,并在产线组装完成后,进入产品布署状态,就可以送到市场上贩卖,最终到达消费者的手上,此时为了保护用户数据的安全,产品的安全机制都会打开,这包括了安全开机流程、禁止读取、烧写与除错接口等等,所有非经授权的操作都是不允许的。
然而,为了能够让产品必要时,进入退料审查的状态,以符合故障分析等需求,因此特别允许在原厂设置的授权条件符合的情况下,可以让MCU进入退料审查状态。
退料审查(RMA)状态
当产品出现问题,需要进行分析时,可能会需要对MCU进行读取、写入、除错等操作,为了避免用户的数据因此泄露,即使拥有原厂的授权,能够进入RMA状态。对M2354而言,其在进入RMA状态的同时,也会强制将MCU内部的所有数据清除,而芯片内的密钥也会因此失效,以兼顾用户的数据安全与RMA需求,并且在RMA状态的除错,仍受到DPM的管理,禁止任何非授权的存取。
值得注意的是,产品生命周期内的所有的状态都是单向且不可逆的,以M2354的产品生命周期管理机制为例,在Vendor/OEM状态下,芯片可以读取、烧写与除错,且只能往Deployed状态更改,在Deployed状态下会强制打开相关的安全机制,禁止一切非授权的存取,且只能往RMA状态变化,而进入RMA状态,则是会强制清除用户数据,并且让芯片内部的密钥无效化之后才能进行其他的授权操作,以避免任何可能的安全漏洞。一旦进入RMA状态,就表示该芯片已经进入生命周期的尾声,此时MCU再也无法更改状态,也无法再次使用在产品上,因为MCU内部失效的密钥将造成所有韧体都无法通过安全开机的认证。
传统的MCU对于安全性的设计,通常是设计成所谓的LOCK机制,目的是让产品出货时,能够锁住内部的内存,以避免被盗取韧体来制作所谓的盗版,所以安全机制就只有锁定与非锁定状态。然而,一个真正完整的安全性产品,则必须对整个产品生命周期的安全,都有缜密的规划,从一开始的唯一身分码,开发除错时的便利性与安全性,到产品上市的安全性,一直到最后产品退回原厂时的分析处里,每一个阶段都要确保其使用的需求与安全,才能够真正防堵在各个阶段所面临的安全威胁,因此产品生命周期的管理,是安全MCU产品必不可少的功能。
编辑:zzy 最后修改时间:2023-03-06