Keep your SSL Private Keys Private

A recent blog about “Breaking SSL on Embedded Devices” has been making the rounds recently.  It`s not an attack on SSL, it`s an attack on weak private key security. Specifically, embedding a private key into firmware allows anyone to extract the key and turns an otherwise secure connection into something nothing more secure than TCP.

We have a few ideas about creating private keys for SSL enabled devices.

1. Each device acting as a server should have a unique private key, just like in the non-embedded world.

2. If the key can`t be placed onto the device before delivery, have it generated during setup.

3. If the device lacks the power to generate it`s own key during setup have the client setting up the device generate the key and send it to the device.

4. If the client lacks the ability to generate a private key have the client retrieve a unique private key over an SSL connection from the devices known website for example.

wolfSSL can be used in all of these steps to help ensure an embedded device has a secure unique private key.  That will go a long ways towards securing the SSL connection itself.