2

After checking multiple suppliers and reading about HW secure elements, I would like to understand the use of this type of electronic components.

Maybe I´m wrong, but it seems a HW secure element provides a Root of Trust for a certain data. This is, the HW Secure Element assures that, for example, a private key, will only be known by the secure element itself. Is this correct?

Now, thinking about a system where a SoC generates automatically a private key and stores it in a Trust Zone, wouldn´t this be similar to a HW secure element?

Is there an alternative to HW Secure Element in a SoC?

LazyTurtle
  • 143
  • 9

1 Answers1

1

Yes, generally there is a combination of private keying material and security hardware to use it. In a set-top-box for example they will use a signed boot image that is first pre-authenticated on the SoC by a security processor, using the private key stored in e-fuse.

The system is designed to be anti-tamper, that is, robust to various kinds of crypto analytic attacks. For example, it’s impossible to read the secure keying material directly once it’s programmed, only the secure processor can use it.

It’s not really possible to make a secure system with private keying unless there is some level of physical security for the keying material and low-level control over the boot-up process. Each stage of booting is a vulnerability point, so it’s important to maintain a chain of trust from stage to stage.

hacktastical
  • 49,832
  • 2
  • 47
  • 138
  • And wouldn't a SoC with secure boot and trust zone be a similar scenario? I still think someone sniffing the physical connection between SoC and secure element is a hacking possibility. So having the key in the same physical element would be better for this case. What are the major drawbacks of storing the private keys in the trust zone of the SoC? I'd would like to understand the real implications of not using a HW secure element and storing the private keys in the same SoC – LazyTurtle Apr 08 '20 at 05:14
  • You already figured it out. Private keys have to be... private. And the way to do that is to place them with the security hardware so the communication between the security block and key storage can’t be probed or intercepted / spoofed. – hacktastical Apr 08 '20 at 14:43
  • Thanks for you comment. So, can the scenatio I described in my previous comment be a secure scenario? – LazyTurtle Apr 08 '20 at 14:46
  • I suggest you follow up with some of ARM’s documentation about their trusted computing platform. This will give you a deeper undertaking of the topic. Hiding the private keys is just one item - there’s encrypting memory traffic and other measures that are applied to thwart attacks. – hacktastical Apr 08 '20 at 14:51