尊敬的TI工程师,
您好!
我们公司的产品也要用NandFlash进行Secure Boot,目前正在搞这一块,也折腾了好几天了。看了之前论坛上的回答,还有有些没搞明白。希望得到您的指教 。
因为文字较长,为了能够精确地进行交流,我将问题分解成了许多小问题。给您添麻烦了!
Q1:所以如果要用NandFlash进行Secure Boot,应该的步骤是:
Step1. 用SecureHexAIS_OMAP-L138.exe这个工具,生成Secure AIS文件。其中,CEK放在ini里,并且启动的配置(如PLL、DDR、PSC等的配置)也是放在ini里,而不像Nosecure AIS那样,是直接在AIS文件里的。Q1.1:STEP1对吗?
Step2. 用GenericSecureUartHost.exe这个工具,解锁JTAG,并在CCS中加载Nand Writer程序。Q1.2:STEP2对吗?
Step3. 用Nand Writer程序将Secure AIS文件烧写到Nandflash中。此时,Nandflash中的Key Header是未经过KEK加密的。Q1.3:STEP3对吗?
Step4. 用GenericSecureUartHost.exe这个工具,加载一个自己写的程序。该程序从UART启动,读取head,调用ROM的API将head的CEK用KEK加密后再写回NAND。此时,Nandflash中的Key Header是经过KEK加密的。Q1.4:STEP4对吗?
Q2:我不太理解,虽然Step4,用KEK加密了CEK。但是Nandflash中的AIS文件的剩余部分,就是除了Key Header的其他部分,并没有用KEK加密啊。Q2.1:对吗?
在Step1中,SecureHexAIS_OMAP-L138.exe用来生成Secure AIS文件。但是该工具并没有办法利用具体芯片上的KEK进行加密。
难道是SecureHexAIS_OMAP-L138.exe仅仅用CEK对整个AIS文件进行加密,而KEK的唯一作用是对Key Header进行加密,从而隐藏CEK?Q2.2:对吗?
那么如果别人知道CEK的话,就可以直接对Secure AIS的剩余部分进行解密。Q2.3:对吗?
或者如果别人知道KEK的话,就可以对Key Header进行解密,从而获得CEK,从而再对Secure AIS的剩余部分进行解密。Q2.4:对吗?
Q3:我们希望产品的代码收到严格保护,另一方面,又希望产品的固件能够远程升级。
我们系统的架构是C6748+CC2541,两者通过SPI进行通信,CC2541提供蓝牙与手机进行通信。希望通过手机将新的DSP固件更新至DSP的nandflash。并且使用Basic Secure Boot来保障新的固件的安全。
我想了很久,觉得这似乎办不到。远程升级的话,如果还想加密固件,就得把CEK发过来,CEK总归要先显示地写入到Nandflash中(此时CEK就暴露了),再去调用API将Key Header加密。Q3.1:您看是这样吗?
Q3.2:如果要同时实现DSP固件更新和Basic Secure Boot,您有什么建议?
Secure Boot及远程升级对我们产品至关重要,麻烦TI的工程师给予帮助。
非常感谢!
Frank
Feng Xu3:
回复 Tony Tang:
Hi Tony Tang,
非常感谢回复。我明白了。
请问这一段,出自哪个文档?
“•Developer encrypted code/firmware can be easily upgraded in the field
•Handled by the developer application
•Possible steps for firmware upgrade:
1.Developer creates a new encrypted image using the developer key in a secure facility
2.Developer application running on this device in the field acquires this new image through the available connectivity options (e.g. Ethernet)
3.Developer application overwrites the existing developer code with the new image on the flash
•From the next boot cycle the new image will be successfully unencrypted and used”
谢谢!
Frank
Feng Xu3:
回复 Tony Tang:
感谢!