I'm looking for some embedded device that will be able to store sensitive data like certificates, private keys, etc. It should comply with following requirements:
- Sensitive data, stored in protected persistent memory should not be accessible outside. Sensitive data being destroyed on outside reading attempt or being encoded way that it can't be used after being read are the acceptable options.
- Device itself should be able to run program code of some kind and have some common connection interface (ex. usb). You must be able to burn code only once, or there must be assurance that no one can replace your code with code of their own (ex. build in check of code signature).
- It must be affordable (lets say no more than 100 bucks per device (sdk, burners and other developer stuff not included))
I've done some of my homework and so far I have:
- Smart cards (Basic cards, JCOP JAVA cards). Pros - have protected storage, can run code. Cons - firmware limits, every card need separate reader. They are more like a mobile authentication method, that doesn't make sense in my case, because system will be stationary.
- Micro-controllers with embedded crypto features. Ex. http://www.atmel.com/products/security-ics/secure-memory/default.aspx and http://www.atmel.com/products/security-ics/embedded/default.aspx That looks like what I want except for the part that you need to manufacture the rest of "device" for them, and that is not an option. So far I've failed to find any "ready to use" solution with them. Something like raspberry pi or arduino but with such chips will be perfect.
- eToken alike devices with flash memory and ability to run code. Probably the closest match for now, except for the price.
All suggestions are welcomed.