Unable to get Manufacturing Protection Public Key

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

Unable to get Manufacturing Protection Public Key

跳至解决方案
1,415 次查看
Chandni
Contributor II

Hi Team,

@Harvey021 

I am trying to retrieve the manufacturing Protection Public key on my IMX8DX chip, however I always get 0x0 as public key.  I have tried supplying 96 and 97 bytes buffer, (even greater values too), but no luck. My chip is in OEM closed LC state.

I tried reading the MPECC register to see if the key exists. I get 0x0 as the value, so it means the key is still there.
Can you please provide any insights on how to retrieve this key? I am using OP-TEE OS to fetch this key and I use caam_calloc_align_buf() along with setting the sc_rm_set_memreg_permissions() to full permission for the allocated memory to SECO partition

Feels like SECO cannot write to this location or it requires some extra step to get the key. Can you please guide me?

Thanks in advance.
Chandni

0 项奖励
回复
1 解答
1,203 次查看
AldoG
NXP TechSupport
NXP TechSupport

Hello,

You are correct, I missed that one completely, please accept my apologize for the confusion, have you tried using uboot?

To use the Manufacturing Protection, additional U-Boot tools are needed. Make sure to enable the following features:
Defconfig:
CONFIG_SECURE_BOOT=y
CONFIG_IMX_HAB=y
CONFIG_FSL_MFGPROT=y
CONFIG_IMX_SECO_MFG_PROT = y

The U-boot command is "mfgprot pubk". The output is the Manufacturing Protection public key.

Best regards/Saludos,
Aldo.

 

在原帖中查看解决方案

0 项奖励
回复
4 回复数
1,305 次查看
Chandni
Contributor II

Hi Aldo,

Thanks for your reply. Here are my observations:

From AN13222: "The Unlock command is not necessary for the I.MX 8X/8DXL devices because the MP private key is preserved
when the secure boot is enabled."
Also when i try the unlock command, i keep getting: "Invalid command: AuthenticateCSF is illegal for given target". Looking at the CST user's guide says: "Unlock and Authenticate CSF" are only HAB commands, so it does not work. I am using AHAB target

Also i am reading MPECC register, the MP_ZERO bit is 0x0, which means key has non-zero value. Have i understood it wrong?

Do i  need any signed message to enable/unlock it?

Regards,
Chandni



0 项奖励
回复
1,204 次查看
AldoG
NXP TechSupport
NXP TechSupport

Hello,

You are correct, I missed that one completely, please accept my apologize for the confusion, have you tried using uboot?

To use the Manufacturing Protection, additional U-Boot tools are needed. Make sure to enable the following features:
Defconfig:
CONFIG_SECURE_BOOT=y
CONFIG_IMX_HAB=y
CONFIG_FSL_MFGPROT=y
CONFIG_IMX_SECO_MFG_PROT = y

The U-boot command is "mfgprot pubk". The output is the Manufacturing Protection public key.

Best regards/Saludos,
Aldo.

 

0 项奖励
回复
1,189 次查看
Chandni
Contributor II
I looked at u-boot , it works, thanks
0 项奖励
回复
1,363 次查看
AldoG
NXP TechSupport
NXP TechSupport

Hello,

Did you follow section 3.2 Private key persistence of the AN13222.
This step is to ensure that the private key is available to software after the device boots. The Manufacturing Protection private key is cleared during the boot unless the signature (CSF) contains the Unlock command, informing the HAB/AHAB to leave the key. The 'Unlock' command is added to the CSF description file.

Since unless the private key is preserved during the boot, none of the Manufacturing Protection features are functional.

Best regards/Saludos,
Aldo.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2253655%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%E5%85%AC%E9%92%A5%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2253655%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%9B%A2%E9%98%9F%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F192970%22%20target%3D%22_blank%22%3E%20%40Harvey021%3C%2FA%3E%3C%2FP%3E%3CP%3E%E6%88%91%E6%AD%A3%E8%AF%95%E5%9B%BE%E6%A3%80%E7%B4%A2%20IMX8DX%20%E8%8A%AF%E7%89%87%E4%B8%8A%E7%9A%84%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%E5%85%AC%E9%92%A5%EF%BC%8C%E4%BD%86%E5%BE%97%E5%88%B0%E7%9A%84%E5%85%AC%E9%92%A5%E6%80%BB%E6%98%AF%200x0%E3%80%82%20%E6%88%91%E6%9B%BE%E5%B0%9D%E8%AF%95%E6%8F%90%E4%BE%9B96%E5%92%8C97%E5%AD%97%E8%8A%82%E7%9A%84%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%88%E7%94%9A%E8%87%B3%E6%9B%B4%E5%A4%A7%E7%9A%84%E5%80%BC%EF%BC%89%EF%BC%8C%E4%BD%86%E8%BF%90%E6%B0%94%E4%B8%8D%E4%BD%B3%E3%80%82%E6%88%91%E7%9A%84%E8%8A%AF%E7%89%87%E5%A4%84%E4%BA%8E%20OEM%20%E5%B0%81%E9%97%AD%20LC%20%E7%8A%B6%E6%80%81%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E8%AF%95%E7%9D%80%E8%AF%BB%E5%8F%96%20MPECC%20%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%8C%E7%9C%8B%E7%9C%8B%E9%94%AE%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E3%80%82%E6%88%91%E5%BE%97%E5%88%B0%E7%9A%84%E5%80%BC%E6%98%AF%200x0%EF%BC%8C%E8%BF%99%E8%AF%B4%E6%98%8E%E9%94%AE%E8%BF%98%E5%9C%A8%E3%80%82%3CBR%20%2F%3E%E8%AF%B7%E5%B0%B1%E5%A6%82%E4%BD%95%E6%A3%80%E7%B4%A2%E8%AF%A5%E5%AF%86%E9%92%A5%E6%8F%90%E4%BE%9B%E4%B8%80%E4%BA%9B%E8%A7%81%E8%A7%A3%E3%80%82%E6%88%91%E4%BD%BF%E7%94%A8%20OP-TEE%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E8%8E%B7%E5%8F%96%E8%AF%A5%E5%AF%86%E9%92%A5%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%3CSPAN%3Ecaam_calloc_align_buf()%EF%BC%8C%E5%90%8C%E6%97%B6%E5%B0%86%20%3C%2FSPAN%3E%3CSPAN%3Esc_rm_set_memreg_permissions()%20%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%AE%8C%E5%85%A8%E6%9D%83%E9%99%90%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%B0%86%E5%88%86%E9%85%8D%E7%BB%99%20SECO%20%E5%88%86%E5%8C%BA%E7%9A%84%E5%86%85%E5%AD%98%3CBR%20%2F%3E%3CBR%20%2F%3E%EF%BC%8C%E6%84%9F%E8%A7%89%20SECO%20%E6%97%A0%E6%B3%95%E5%86%99%E5%85%A5%E8%AF%A5%E4%BD%8D%E7%BD%AE%EF%BC%8C%E6%88%96%E8%80%85%E9%9C%80%E8%A6%81%E4%B8%80%E4%BA%9B%E9%A2%9D%E5%A4%96%E6%AD%A5%E9%AA%A4%E6%89%8D%E8%83%BD%E8%8E%B7%E5%8F%96%E5%AF%86%E9%92%A5%E3%80%82%E6%82%A8%E8%83%BD%E7%BB%99%E6%88%91%E4%B8%80%E4%BA%9B%E6%8C%87%E5%AF%BC%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E9%A2%84%E5%85%88%E8%A1%A8%E7%A4%BA%E6%84%9F%E8%B0%A2%E3%80%82%3CBR%20%2F%3E%3C%2FSPAN%3E%E6%98%8C%E5%BE%B7%E5%A6%AE%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2253655%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208%20%E7%B3%BB%E5%88%97%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2256324%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Unable%20to%20get%20Manufacturing%20Protection%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2256324%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%E6%82%A8%E6%98%AF%E5%90%A6%E9%98%85%E8%AF%BB%E4%BA%86%20AN13222%20%E7%AC%AC%203.2%20%E8%8A%82%20%22%E7%A7%81%E9%92%A5%E7%9A%84%E6%8C%81%E4%B9%85%E6%80%A7%22%E3%80%82%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E6%AD%A4%E6%AD%A5%E9%AA%A4%E6%97%A8%E5%9C%A8%E7%A1%AE%E4%BF%9D%E5%9C%A8%E8%AE%BE%E5%A4%87%E5%90%AF%E5%8A%A8%E5%90%8E%E8%BD%AF%E4%BB%B6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E7%A7%81%E9%92%A5%E3%80%82%E9%99%A4%E9%9D%9E%E7%AD%BE%E5%90%8D%20(CSF)%20%E5%8C%85%E5%90%AB%E8%A7%A3%E9%94%81%E5%91%BD%E4%BB%A4%EF%BC%8C%E9%80%9A%E7%9F%A5%20HAB%2FAHAB%20%E7%95%99%E4%B8%8B%E5%AF%86%E9%92%A5%EF%BC%8C%E5%90%A6%E5%88%99%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%E7%A7%81%E9%92%A5%E5%B0%86%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%9C%9F%E9%97%B4%E8%A2%AB%E6%B8%85%E9%99%A4%E3%80%82%E2%80%9C%E8%A7%A3%E9%94%81%E2%80%9D%20%E5%91%BD%E4%BB%A4%E5%B7%B2%E6%B7%BB%E5%8A%A0%E5%88%B0%20CSF%20%E6%8F%8F%E8%BF%B0%E6%96%87%E4%BB%B6%E4%B8%AD%3C%2FSPAN%3E%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%E5%9B%A0%E4%B8%BA%E9%99%A4%E9%9D%9E%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%9C%9F%E9%97%B4%E4%BF%9D%E7%95%99%E7%A7%81%E9%92%A5%EF%BC%8C%E5%90%A6%E5%88%99%E6%89%80%E6%9C%89%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%E5%8A%9F%E8%83%BD%E9%83%BD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%87%B4%E4%BB%A5%E6%9C%80%E5%B4%87%E9%AB%98%E7%9A%84%E6%95%AC%E6%84%8F%2F%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3EAldo%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2256442%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Unable%20to%20get%20Manufacturing%20Protection%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2256442%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%EF%BC%8C%E9%98%BF%E5%B0%94%E5%A4%9A%E3%80%81%3C%2FP%3E%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E7%AD%94%E5%A4%8D%E3%80%82%E4%BB%A5%E4%B8%8B%E6%98%AF%E6%88%91%E7%9A%84%E8%A7%82%E5%AF%9F%E7%BB%93%E6%9E%9C%EF%BC%9A%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%9D%A5%E8%87%AA%20AN13222%EF%BC%9A%22%20I.MX%208X%2F8DXL%20%E8%AE%BE%E5%A4%87%E4%B8%8D%E9%9C%80%E8%A6%81%E8%A7%A3%E9%94%81%E5%91%BD%E4%BB%A4%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%90%AF%E7%94%A8%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%3CBR%20%2F%3E%E6%97%B6%E4%BC%9A%E4%BF%9D%E7%95%99%20MP%20%E7%A7%81%E9%92%A5%E3%80%82%22%20%3CBR%20%2F%3E%E6%AD%A4%E5%A4%96%EF%BC%8C%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E8%A7%A3%E9%94%81%E5%91%BD%E4%BB%A4%E6%97%B6%EF%BC%8C%E6%88%91%E4%B8%80%E7%9B%B4%E6%94%B6%E5%88%B0%22%E6%97%A0%E6%95%88%E5%91%BD%E4%BB%A4%EF%BC%9AAuthenticateCSF%20is%20illegal%20for%20given%20target%22%20%E3%80%82CST%20%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%E4%B8%8A%E8%AF%B4%EF%BC%9A%22%E8%A7%A3%E9%94%81%E5%92%8C%E9%AA%8C%E8%AF%81%20CSF%22%20%E5%8F%AA%E6%98%AF%20HAB%20%E5%91%BD%E4%BB%A4%EF%BC%8C%E5%9B%A0%E6%AD%A4%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20AHAB%20%E7%9B%AE%E6%A0%87%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%90%8C%E6%97%B6%EF%BC%8C%E6%88%91%E6%AD%A3%E5%9C%A8%E8%AF%BB%E5%8F%96%20MPECC%20%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%8CMP_ZERO%20%E4%BD%8D%E4%B8%BA%200x0%EF%BC%8C%E8%BF%99%E6%84%8F%E5%91%B3%E7%9D%80%E9%94%AE%E5%80%BC%E4%B8%BA%E9%9D%9E%E9%9B%B6%E3%80%82%E6%88%91%E7%90%86%E8%A7%A3%E9%94%99%E4%BA%86%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%90%AF%E7%94%A8%2F%E8%A7%A3%E9%94%81%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E4%BB%BB%E4%BD%95%E7%AD%BE%E5%90%8D%E4%BF%A1%E6%81%AF%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3EChandni%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2258476%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Unable%20to%20get%20Manufacturing%20Protection%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2258476%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%82%A8%E8%AF%B4%E5%BE%97%E6%B2%A1%E9%94%99%EF%BC%8C%E6%88%91%E5%AE%8C%E5%85%A8%E6%B2%A1%E6%B3%A8%E6%84%8F%E5%88%B0%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%8C%E8%AF%B7%E6%8E%A5%E5%8F%97%E6%88%91%E7%9A%84%E6%AD%89%E6%84%8F%EF%BC%8C%E6%82%A8%E8%AF%95%E8%BF%87%E4%BD%BF%E7%94%A8%20uboot%20%E5%90%97%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%0A%3CP%3E%E8%A6%81%E4%BD%BF%E7%94%A8%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%EF%BC%8C%E9%9C%80%E8%A6%81%E9%A2%9D%E5%A4%96%E7%9A%84%20U-Boot%20%E5%B7%A5%E5%85%B7%E3%80%82%E7%A1%AE%E4%BF%9D%E5%90%AF%E7%94%A8%E4%BB%A5%E4%B8%8B%E5%8A%9F%E8%83%BD%EF%BC%9A%3CBR%20%2F%3Edefconfig%EF%BC%9Aconfig_s%20%3CBR%20%2F%3E%20ecure_boot%3DY%20config_imx_%20%3CBR%20%2F%3E%20hab%3DY%20config_fsl_mfgprot%3DY%20CONFIG_IMX_SECO_MFG_PROT%20%3D%20y%20u-boot%20%E5%91%BD%E4%BB%A4%E6%98%AF%20%22%20mfg%20%3CBR%20%2F%3E%20prot%20pubk%20%22%E3%80%82%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%E8%BE%93%E5%87%BA%E6%98%AF%E5%88%B6%E9%80%A0%E4%BF%9D%E6%8A%A4%E5%85%AC%E9%92%A5%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%87%B4%E4%BB%A5%E6%9C%80%E5%B4%87%E9%AB%98%E7%9A%84%E6%95%AC%E6%84%8F%2F%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3EAldo%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2258502%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Unable%20to%20get%20Manufacturing%20Protection%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2258502%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%88%91%E7%9C%8B%E4%BA%86%20u-boot%EF%BC%8C%E5%AE%83%E8%B5%B7%E4%BD%9C%E7%94%A8%E4%BA%86%EF%BC%8C%E8%B0%A2%E8%B0%A2%3C%2FLINGO-BODY%3E