I am working on an IOT device that sends data to the server after authenticating itself to the server. Is there a way to safely store my device's credentials for logging onto the main server and sending data to it.
The IOT device can be physically compromised, and the data that I need to store on the device is IP address of the server, identification key for the device and private key for asymmetric encryption. From what I have researched, it is possible to retrieve this information from memory if stored in plain text but if I encrypt it, it still requires me to store the encryption key somewhere since the device has to work without human intervention. Are there any solutions for this?
One solution I found is storing keys and credentials on TPM, but I still have this doubt that somewhere in the process, will the data be available in plain text and can be read using memory dump of the ram? Because to connect TPM to my MPU, there must be buses involved and whenever I send data for encryption into the TPM, it will still be available in the buses.