Attacks on Security in Modern Microcontrollers and Possible Defenses
Sergei P. Skorobogatov
Modern microcontrollers are becoming more and more powerful. At the same time not enough attention is being paid to the hardware security against unauthorised access to the program and data stored in them. As a result many systems based on these microcontrollers could be compromised and some of them have been already broken. In this case more and more embedded software developers have become interested in achieving higher level of protection their software and data against any unauthorised access. In this respect all microcontrollers intended to be used in valuable applications should be carefully selected and thoroughly tested before use.
Security protection schemes in many microcontrollers are discussed and some weaknesses are spotted for various hardware security implementations. Some ideas about possible defense technologies are suggested
Microcontrollers are used in modern equipment and electronic devices. They are everywhere around us - from washing machines and TV sets to mobile phones and computers. Some microcontrollers are used by amateurs to build small devices for fun, others are used by small companies in control, measurement or other equipment, others are used for serious applications by security services, banks, medical services etc. Each microcontroller executes the algorithm or program uploaded into its memory. Programs are usually written in Assembler or C programming languages but rarely could be in other languages like Basic or Java. Usually the program is stored inside the chip in machine codes therefore it must be compiled before uploading into the chip. There are many development software for each family of microcontrollers as well as development kits from both the manufacturers and third parties.
Once microcontroller is programmed with the compiled code it can be used in the desired application. The obvious thing many developers are interested in is that their code will remain secret, in other words that the chip containing the design cannot be copied or the program reverse engineered or hacked.
To comply with such requirements many chip manufacturers are offering security features to their microcontrollers. This can be security lock bits, code protection, password protection or even absense of the read operation in programming mode.
I will start with brief introduction to attack technologies and overview of microcontrollers available on the market from side of semiconductor technology and microcontrollers' features. Then I will explain different classes of attack technologies and discuss how easily they can be applied to different chips. In the next part I will introduce many examples of real chips with some explanation on hardware security implementation as well as advantages and disadvantages of each security scheme. The last part will describe possible ways of increasing security protection in existing microcontrollers as well as some suggestions for future silicon hardware design from the security point of view.