cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6 FSBL digital signature public keys

Mikk Leini
Senior III

I read UM3451 (STM32N6xx security guidance for SESIP level 3 certification) chapter 3.2.2 Secure installation and I wonder why aren't the FSBL signature public keys not written into OTP fuses? Only the 8 words (32 bytes) of hashes of all 8 public keys are written by the instructions.

Chapter 2.1. Secure boot here in wiki explains that one of 8 active public key hashes in FSBL binary header is compared to the one in OTP and if they match, then "that" public key is trusted. But it doesn't explicitly say where does "that" public key come from.

From UM3234 concept drawings (Figure 12-13.) I begin to understand that public key (in some changed form) is provided with the FSBL authentication extension header. So does it mean the MCU does not know the public key and it trusts the provided public key based on the hash table match only?

Am I missing something here, but it appears to me that uniqueness of public keys have been heavily reduced. Since each public key hash is individually checked it means single hash is just single word. If NIST P-256 is used then that means 256-bits (uncompressed) have been reduced to mere 32-bits. And that sounds like it wouldn't be too difficult with brute force to find a colliding hashed public key which theoretically doesn't even need to be from the same original private-public key pair.

I also wonder if public keys are not written into OTP by the user, then what are the 16 OTP144-OTP159 words called  STM32PUBKEY0 to 15 in RM0486 Table 19 ? They are marked as prog-locked by ST. And what are OTP128-OTP143 called STM32_CERTIF0 to 15 ?

0 REPLIES 0