This is a follow on question from the answers of these two:

  1. Is it practical for firmware to be uniquely identified in production

  2. How to verify hardware is legitimate

I would like to be able to serialize hardware with an RSA key (1024 bit) and some unique information. This will come to a total of ~140 bytes. This doesn't seem to be a standard thing, so will this cause issues when it comes to production? Can production programmers serialize with any number of bytes, or like that image in the first question, are you limited to some standard number (4 bytes) etc.

  • \$\begingroup\$ Possible duplicate of Is it practical for firmware to be uniquely identified in production \$\endgroup\$ – Chris Stratton Jun 19 '17 at 4:05
  • \$\begingroup\$ This is really within the realm of your previous question. It is also too broad, as the scope of possibilities is unknowable. It probably means, however, that you will need a custom programming setup, ie, you will have custom software producing a unique image on demand for each device, rather than having a programmer load a fixed image but change a few bytes. So you'll need to interface well with your factory or be good at scripting. \$\endgroup\$ – Chris Stratton Jun 19 '17 at 4:07
  • \$\begingroup\$ You're probably right about it being within the realm of the previous question, however it was not asked as part of it and as a result I wouldn't want to confuse the answers by editing the original question. I disagree as far as the scope is concerned, I think someone in industry who has worked with production programmers will be able to definitively answer this question (just as the last question was answered with a screenshot). \$\endgroup\$ – Lukeyb Jun 19 '17 at 4:19
  • \$\begingroup\$ OTP eeprom is fairly common for such a task, but there is custom sw involved \$\endgroup\$ – sstobbe Jun 19 '17 at 4:22
  • \$\begingroup\$ I don't know about "production programmers", but, depending on the controller to be programmed, you may be able to perform programming in a two-step operation; first programming the firmware, then take a certificate and program it to another (fixed) location in flash. \$\endgroup\$ – JimmyB Jun 19 '17 at 10:29

The only off the shelf thing I can think of supporting it could be Segger's Flasher Secure.

Usually when I have to do anything more complex than a simple serial number I make a manufacturing mode in firmware, so flashing is one step, then the device is booted in a test bench, starts up and for example downloads its unique TLS certificates from a manufacturing server over Ethernet.


Not the answer you're looking for? Browse other questions tagged or ask your own question.