Unique ID for device pairing

Hello, I am working on a IoT platform.
I want my Arduino to have a unique identifier to that it can be paired to a certain user in the backend.

How can I get a unique identifier? I thought of using the MAC address, but that's maybe not a good solution.

I heard of burning some serial number in the EEPROM at startup, could that work?
Also, I read somewhere that one of the memories has a limited number of writes, is it the EEPROM? When should I used an SD card instead?

Thanks!

lucavallin:
I heard of burning some serial number in the EEPROM at startup, could that work?
Also, I read somewhere that one of the memories has a limited number of writes, is it the EEPROM?

If you just need to write the serial number into the EEPROM once why are you worried about the number of writes?

Another option is to build the serial number into your code. For example

char mySerial[] = "345987123";

...R

If you want to prevent a board change, a Unique ID in EEPROM won't do the trick since anyone can read and copy the EEPROM.

You might consider an arduino DUE which has a 128-bit Unique ID in hardware from its Sam3x uc, and 512 bytes of EEPROM from its 16U2.

You could use a serial number chip like this

ard_newbie:
If you want to prevent a board change, a Unique ID in EEPROM won't do the trick since anyone can read and copy the EEPROM.

Alas, the OP has not told us why he needs the unique ID.

I suspect that modifying or duplicating the EEPROM is not all that simple. You would need a determined and knowledgeable thief. Especially if the program that is on the Arduino does not have code to write to the EEPROM.

...R

You could use something like the DS2401 Silicon Serial Number
This is a factory programmed ROM, with a unique 48 bit serial number already programmed in.

Other similar devices are available from other manufacturers.