S32K144 CSEc Application MAC Storage Options for Secure Boot Verification

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

S32K144 CSEc Application MAC Storage Options for Secure Boot Verification

785 次查看
Kishore_14
Contributor III

Hardware: S32K144EVB-Q100
Software: S32 Design Studio, OpenBLT Bootloader, an5401-csec

We intend to protect only the bootloader using BOOT_DEFINE (16KB protected) and want the bootloader to verify the application MAC on every reset to establish a proper chain of trust.

We currently have a hardcoded CMAC value that we store and verify upon every reset as a proof of concept.

After bootloader verification (BOK=1), we need to verify application on every reset. For this, we need to:

  1. Store application MAC somewhere during programming
  2. Verify application MAC on every reset

We've considered these options but have concerns:

  • CSEc KEY slots (like KEY_2): Can't read back stored keys due to SHE protocol security - keys are write-only. How can we retrieve MAC for comparison?

  • Flash memory: Not suitable because application area gets erased when new application is programmed, so stored MAC would be lost.

  • EEPROM: Is this a good approach? Any recommended EEPROM addresses?

What other approaches would be suitable for storing application MAC that bootloader can reliably read for verification on every reset?

 

标记 (3)
0 项奖励
回复
1 回复

750 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @Kishore_14 

 

Common approach is to have CMAC stored in code flash, it can be appended to application which is being verified by this CMAC.

 

Flash memory: Not suitable because application area gets erased when new application is programmed, so stored MAC would be lost.”

- You don’t need old CMAC when updating the application. You need the new one for new application. I can’t see problem here.  

 

Storing the CMAC to CSEc key slot is not an option, you can’t export it or use it as a CMAC.

 

Regards,

Lukas

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2289948%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K144%20CSec%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%94%A8%E4%BA%8E%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%9A%84%20MAC%20%E5%AD%98%E5%82%A8%E9%80%89%E9%A1%B9%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2289948%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%3CSTRONG%3E%E7%A1%AC%E4%BB%B6%EF%BC%9A%3C%2FSTRONG%3ES32K144EVB-Q100%20%3CBR%20%2F%3E%20%3CSTRONG%3E%E8%BD%AF%E4%BB%B6%EF%BC%9A%3C%2FSTRONG%3ES32%20Design%20Studio%E3%80%81OpenBLT%20Bootloader%E3%80%81an5401-csec%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%E6%88%91%E4%BB%AC%E6%89%93%E7%AE%97%E4%BB%85%E4%BD%BF%E7%94%A8%20BOOT_DEFINE%EF%BC%88%E4%BF%9D%E6%8A%A4%2016KB%EF%BC%89%E4%BF%9D%E6%8A%A4%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E5%B8%8C%E6%9C%9B%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%9C%A8%E6%AF%8F%E6%AC%A1%20RESET%20%E6%97%B6%E9%AA%8C%E8%AF%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20MAC%20%E4%BB%A5%E5%BB%BA%E7%AB%8B%E9%80%82%E5%BD%93%E7%9A%84%E4%BF%A1%E4%BB%BB%E9%93%BE%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E4%BB%AC%E7%9B%AE%E5%89%8D%E6%9C%89%E4%B8%80%E4%B8%AA%E7%A1%AC%E7%BC%96%E7%A0%81%E7%9A%84%20CMAC%20%E5%80%BC%EF%BC%8C%E6%88%91%E4%BB%AC%E4%BC%9A%E5%9C%A8%E6%AF%8F%E6%AC%A1%20RESET%20%E6%97%B6%E5%AD%98%E5%82%A8%E5%92%8C%E9%AA%8C%E8%AF%81%E8%AF%A5%E5%80%BC%EF%BC%8C%E4%BB%A5%E6%AD%A4%E4%BD%9C%E4%B8%BA%E6%A6%82%E5%BF%B5%E9%AA%8C%E8%AF%81%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E5%9C%A8%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E9%AA%8C%E8%AF%81%EF%BC%88BOK%3D1%EF%BC%89%E4%B9%8B%E5%90%8E%EF%BC%8C%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%9C%A8%E6%AF%8F%E6%AC%A1%20RESET%20%E6%97%B6%E9%AA%8C%E8%AF%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E3%80%82%E4%B8%BA%E6%AD%A4%EF%BC%8C%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%3C%2FP%3E%3COL%3E%3CLI%3E%E5%9C%A8%E7%BC%96%E7%A8%8B%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%B0%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20MAC%20%E4%BF%9D%E5%AD%98%E5%9C%A8%E6%9F%90%E5%A4%84%3C%2FLI%3E%3CLI%3E%E6%AF%8F%E6%AC%A1%20RESET%20%E6%97%B6%E9%AA%8C%E8%AF%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20MAC%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E6%88%91%E4%BB%AC%E8%80%83%E8%99%91%E8%BF%87%E8%BF%99%E4%BA%9B%E6%96%B9%E6%A1%88%EF%BC%8C%E4%BD%86%E4%BB%8D%E6%9C%89%E9%A1%BE%E8%99%91%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%3CSTRONG%3EcSec%20%E5%AF%86%E9%92%A5%E6%8F%92%E6%A7%BD%EF%BC%88%E5%A6%82%20KEY_2%EF%BC%89%3C%2FSTRONG%3E%EF%BC%9A%E7%94%B1%E4%BA%8E%20SHE%20%E5%8D%8F%E8%AE%AE%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%EF%BC%8C%E6%97%A0%E6%B3%95%E8%AF%BB%E5%9B%9E%E5%AD%98%E5%82%A8%E7%9A%84%E5%AF%86%E9%92%A5%E2%80%94%E2%80%94%E5%AF%86%E9%92%A5%E6%98%AF%E5%8F%AA%E5%86%99%E7%9A%84%E3%80%82%E5%A6%82%E4%BD%95%E6%A3%80%E7%B4%A2%20MAC%20%E4%BB%A5%E8%BF%9B%E8%A1%8C%E6%AF%94%E8%BE%83%EF%BC%9F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%3CSTRONG%3E%E9%97%AA%E5%AD%98%3C%2FSTRONG%3E%EF%BC%9A%E4%B8%8D%E9%80%82%E5%90%88%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9C%A8%E5%AF%B9%E6%96%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%BC%96%E7%A8%8B%E6%97%B6%EF%BC%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8C%BA%E5%9F%9F%E4%BC%9A%E8%A2%AB%E6%93%A6%E9%99%A4%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%AD%98%E5%82%A8%E7%9A%84%20MAC%20%E5%B0%86%E4%B8%A2%E5%A4%B1%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%3CSTRONG%3EEEPROM%3C%2FSTRONG%3E%EF%BC%9A%E8%BF%99%E6%98%AF%E4%B8%AA%E5%A5%BD%E5%8A%9E%E6%B3%95%E5%90%97%EF%BC%9F%E6%9C%89%E6%8E%A8%E8%8D%90%E7%9A%84%20EEPROM%20%E5%9C%B0%E5%9D%80%E5%90%97%EF%BC%9F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E8%BF%98%E6%9C%89%E5%93%AA%E4%BA%9B%E5%85%B6%E4%BB%96%E6%96%B9%E6%B3%95%E9%80%82%E5%90%88%E5%AD%98%E5%82%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20MAC%EF%BC%8C%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%AF%8F%E6%AC%A1%20RESET%20%E6%97%B6%E5%8F%AF%E9%9D%A0%E5%9C%B0%E8%AF%BB%E5%8F%96%E4%BB%A5%E8%BF%9B%E8%A1%8C%E9%AA%8C%E8%AF%81%EF%BC%9F%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2290323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K144%20CSEc%20Application%20MAC%20Storage%20Options%20for%20Secure%20Boot%20Verification%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2290323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F257154%22%20target%3D%22_blank%22%3E%40Kishore_14%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%B8%B8%E8%A7%81%E7%9A%84%E6%96%B9%E6%B3%95%E6%98%AF%E5%B0%86%20CMAC%20%E5%AD%98%E5%82%A8%E5%9C%A8%E4%BB%A3%E7%A0%81%E9%97%AA%E5%AD%98%E4%B8%AD%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E5%85%B6%E9%99%84%E5%8A%A0%E5%88%B0%E7%94%B1%20CMAC%20%E9%AA%8C%E8%AF%81%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%22%3CSTRONG%3E%E9%97%AA%E5%AD%98%3C%2FSTRONG%3E%EF%BC%9A%E4%B8%8D%E9%80%82%E5%90%88%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9C%A8%E5%AF%B9%E6%96%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%BC%96%E7%A8%8B%E6%97%B6%EF%BC%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8C%BA%E5%9F%9F%E4%BC%9A%E8%A2%AB%E6%93%A6%E9%99%A4%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%AD%98%E5%82%A8%E7%9A%84%20MAC%20%E5%B0%86%E4%B8%A2%E5%A4%B1%22%E3%80%82%3C%2FP%3E%0A%3CP%3E-%20%E6%9B%B4%E6%96%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%E4%B8%8D%E9%9C%80%E8%A6%81%E6%97%A7%E7%9A%84%20CMAC%E3%80%82%E6%82%A8%E9%9C%80%E8%A6%81%E6%96%B0%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E3%80%82%E6%88%91%E7%9C%8B%E4%B8%8D%E5%87%BA%E6%9C%89%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%E3%80%82%20%20%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E4%B8%8D%E8%83%BD%E5%B0%86%20CMAC%20%E5%AD%98%E5%82%A8%E5%88%B0%20CSEc%20%E5%AF%86%E9%92%A5%E6%A7%BD%E4%B8%AD%EF%BC%8C%E4%B9%9F%E4%B8%8D%E8%83%BD%E5%B0%86%E5%85%B6%E5%AF%BC%E5%87%BA%E6%88%96%E7%94%A8%E4%BD%9C%20CMAC%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3ELukas%3C%2FP%3E%3C%2FLINGO-BODY%3E