-
Notifications
You must be signed in to change notification settings - Fork 7.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Secureboot - Failed to test the key revocation with virtual efuse (IDFGH-6618) #8260
Comments
Hi @Darsh-Dev ! For now, it is not supported, we are thinking about whether it should be supported or not. It is because adding this support will affect the behavior (it will not be the same as without the eFuse virt mode). |
As @KonstantinKondrashov mentioned, key revocation is not supported with virtual EFuse mode. Moreover, features that are closely tied with ROM code, can not be easily supported with virtual Efuse scheme which pretty much operates on security workflow starting with bootloader only. Hence, if you would like to try out key revocation then I would recommend using actual chip target for this. Note: I would have also recommended https://github.com/espressif/qemu/wiki for testing this but we do not have support for ESP32-S2 or (ESP32-C3) in qemu yet. We will try to prioritize on that front which can help in testing security features without using actual target chips. |
@mahavirj Thanks for the update and clarification. I was testing the key revocation with multiple keys, and I would like to test the revocation methods, that's the reason I'm exploring it. Before blowing the actual fuse, I want to test with multiple boards - multiple key features. Thanks. |
Thank you for confirming and agree with requirement as you suggested. We will increase the priority of ESP32-S2/ESP32-C3 support in Qemu, that shall allow for testing security features easily. Closing this issue and linking espressif/qemu#9 |
@Darsh-Dev Any luck in testing the aggressive key revoking feature on a real efuse? And the Step 3 is only reached if step 1 and step 2 passes see doc here. And as it turns out, creating an image that would trigger a key revocation requires jumping through a few hoops. One needs to do the following:
I did not give this a try... But hope this is correct and helpful for someone. |
Environment
git describe --tags
to find it): v4.4-beta1xtensa-esp32-elf-gcc --version
to find it): xtensa-esp32-elf-gcc (crosstool-NG esp-2021r2) 8.4.0Problem Description
I have tested the secure-boot v2 with the virtual efuse mechanism and it's working fine. Now I want to test the key revocation mechanism with the virtual efuse but failed to test the aggressive/conservative both key revocation with virtual efuse. So, is key revocation not supported with virtual efuse?
Expected Behavior
Revoke the key permanently and signature verification failed if FW signed with revoke key
Actual Behavior
Key not revoke with virtual efuse and signature verification is passed
Steps to reproduce
I follow below steps but it doesn't work
openssl genrsa -out my_secure_boot_signing_key.pem 3072
espsecure.py sign_data -k secure_boot_signing_key2.pem -v 2 –append_signatures -o signed_bootloader.bin build/bootloader/bootloader.bin
Debug Logs
Other items if possible
sdkconfig.txt
The text was updated successfully, but these errors were encountered: