There are a number of security features for designers to leverage today, but are they strong enough to hold off attacks?
There are a number of security features to protect devices today from attack that SoC design team can include, some of which extract only a small cost to the power and performance.
A few of these include the following, according to Bernard Murphy, CTO at Atrenta:
–Secure boot, which is a very common thing in embedded systems now in which there are trusted execution environments (TEE) to defend against firmware or the equivalent of a bios attack. That doesn’t have a lot of impact on power or performance. There is some additional stuff you do during boot but it doesn’t effect normal operations.
–Secure External Memory Interface. “This is the idea that as you read and write information to external memory, you’re encrypting it and that is going to have some impact. It’s definitely going to have a power impact depending on how cleverly you implement it. It may have a latency impact as well. I know of some people who do very clever pipelining and interleaving of multiple encryption cores – you try to minimize the latency impact – but it’s going to have some. As you are doing operations to and from the memory, this is a continuous drain at some level,” he continued.
—Bounds checking. One of the best known and longest standing attacks is buffer overflows, Murphy said, where you look at the stack, the variables on the stack and then the very last thing on the stack is the return address. “If you can overflow one of those variables, then you can also rewrite the return address so you can make up to a different location, which is going to be the malicious routine. To prevent that you have to do bounds checking on variables and arrays and so on, and that has historically not been something that C or C++ or whatever else has done and in fact, has only been common in very critical tight and strictly checked languages. But to be more secure we really need to do more of that bounds checking. You can do that in software. You could add more stuff in software to do bounds checking but that could make programs much slower, or you could start doing more of that in hardware and that would be potentially much faster than doing it in software, but there would be some performance impact and there would be some power impact, but probably not huge.”
While these seem rather extensive, it would be naive to think a design is unassailable. If an attacker wants to get in, they will, but as more stringent technique are developed, it may lead them off track possibly for long enough to be detected and thwarted. As new hacks are created, new countermeasures will be developed as well. These activities will keep security experts even busier than the hackers themselves.
Leave a Reply