AnsweredAssumed Answered

i.MX6Q - Problem with secure boot

Question asked by Tasuku Watanabe on Sep 19, 2017
Latest reply on Sep 20, 2017 by igorpadykov

Dear NXP community,


I am developing a custom board based on the imx6qsabresd board.

 

I tried to apply a secure boot, but a problem has occurred.

 

I referred to the following documents and URLs.

AN4581,IMX6HABUG
https://boundarydevices.com/high-assurance-boot-hab-dummies/

 

The operations and results I did are as follows.

 

1. Generate PKI tree and SRK table

...
Do you want to use an existing CA key (y/n)?: n
Do you want to use Elliptic Curve Cryptography (y/n)?: n
Enter key length in bits for PKI tree: 2048
Enter PKI tree duration (years): 10
How many Super Root Keys should be generated? 4
Do you want the SRK certificates to have the CA flag set? (y/n)?: y
...


~/cst-2.3.2/crts$ ../linux32/srktool -h 4 -t SRK_1_2_3_4_table.bin -e SRK_1_2_3_4_fuse.bin -d sha256 -c ./SRK1_sha256_2048_65537_v3_ca_crt.pem,./SRK2_sha256_2048_65537_v3_ca_crt.pem,./

 

2. Write SRK table to Fuse

 

3. Build secure boot supported u-boot

 

4. Sign a u-boot image

 objcopy -I binary -O binary --pad-to 0x51C00 --gap-fill=0x5A u-boot.imx u-boot-pad.imx
../linux32/cst --o u-boot_csf.bin --i u-boot.csf
cat u-boot-pad.imx u-boot_csf.bin > u-boot-signed.imx
objcopy -I binary -O binary --pad-to 0x53C00 --gap-fill=0x5A u-boot-signed.imx u-boot-signed-pad.imx

 

5. Create an image and start board

 

6. Display authentication status

=> hab_status

Secure boot disabled

HAB Configuration: 0xf0, HAB State: 0x66
No HAB Events Found!

 

I got the results as expected.
Then, I tried it with an incorrect image.

 

Pattern1 Without signature
As a result, an error occurred as follows

=> hab_status

Secure boot disabled

HAB Configuration: 0xf0, HAB State: 0x66

--------- HAB Event 1 -----------------
event data:
0xdb 0x00 0x08 0x41 0x33 0x11 0xcf 0x00

--------- HAB Event 2 -----------------
event data:
0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x17 0x7f 0xf4 0x00
0x00 0x00 0x00 0x20

--------- HAB Event 3 -----------------
event data:
0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x17 0x7f 0xf4 0x2c
0x00 0x00 0x02 0xf8

--------- HAB Event 4 -----------------
event data:
0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x17 0x7f 0xf4 0x20
0x00 0x00 0x00 0x01

--------- HAB Event 5 -----------------
event data:
0xdb 0x00 0x14 0x41 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x17 0x80 0x00 0x00
0x00 0x00 0x00 0x04

 

Pattern2 Corrupted image

Use the binary editor and edit parts that are not signatures

 

Pattern3 Different keys

Generate key using different passphrase

 

Patterns 2 and 3 were the same result

=> hab_status

Secure boot disabled

HAB Configuration: 0xf0, HAB State: 0x66
No HAB Events Found!

 

The result was different from what I expected.

 

I found the following description.
https://community.nxp.com/message/937925

 

From the description, I thought SRK authentication was skipped for open setting.

 

However, I do not know why Pattern 2 does not cause an error.

 

What does the pattern 1 error indicate?

Why does not error occur in pattern 2?

 

Is something wrong with my operation?

The board remains at the OPEN setting.

 

Best regard,

Tasuku.

Outcomes