-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Correct workflow for key provisioning a device in manufacturing #3011
Comments
Hello @johnnywyatt, Here is a white paper that you may find useful. Can you expand a bit on your use case and requirements? Are you wanting to provision the device in the factory over the serial port or are you wanting to flash the certificates into the The partition used by PKCS #11 is derived from this location in the PAL, you can modify this string to Thanks, Carl |
Thanks @lundinc2. |
Hi @johnnywyatt, I suggest the use of a Secure Element or other type of HSM to protect sensitive data, like your device credentials. As well as following the best practices outlined here. I also suggest that you reach out to Espressif about potential solutions. This link seems to be a good place to start https://www.espressif.com/en/products/services/manufacturing-services. I hope this is helpful. Thanks, Carl |
Hi @johnnywyatt,
Hope these pointers help! Thanks, |
Thanks @lundinc2 and @shubhamkulkarni97. I'm reading through the provided whitepaper and wish I had found this sooner. Out of curiosity, where should I have been looking to find the link for this document? I feel like I searched high and low for this type of documentation and never came across this. Where did I overlook it? Update: My co-worker just noticed that this is dated January 2021....this could explain a lot. |
Hi @johnnywyatt seems that the update resolve this :) To find documents like this, there are some related resource links here https://docs.aws.amazon.com/iot/index.html that direct you to AWS Whitepapers and Case Studies. You can search there, but your search engine should likely be able to find these documents as well. Thanks, Carl |
I am going to consider this as resolved, and close the issue. Please re-open it with any further questions. Thanks, Carl |
I am using a ESP32 WROVER based custom piece of hardware. The primary AWS functions of the device are to publish to the shadow and gets OTA updates. After having many of the same issues and frustrations as discussed in #1535, I started with the OTA demo, got that working, then added in MQTT shadow support.
To generate the creds and private key we are using a custom version of the AWS console script that was provided in the aws_config_quick_start directory to create the Thing, get the creds, generate the creds partition, and write it to the device along with the other flash partitions that are needed.
Here is the current partition table
To store the creds and private key we created a partition called "creds". On startup I read this from flash, then call vAlternateKeyProvisioning() to provision the device. This seems to work very well but I have
E (17558) PKCS11: failed nvs get file size 4354 0
printed out in the logs. When digging into this, it seems that we may not be provisioning the device in the correct way. I noticed that the "storage" partition is getting written but am not sure exactly what the intended design was. There seems to be a lot of documentation around developer key provisioning, but very little around what the final design should look like.I am also reading through #2961.
The text was updated successfully, but these errors were encountered: