So, what is an HSM good for?
After almost two decades working with information security, I have realized a sad truth: the number of security professionals that really understand what an HSM can delivery is minimal. Not to say, rare.
This sounds equivalent to a software developer that does not know what a debugger is, or a network professional that does not understand what NetFlow can delivery. Unthinkable, right?
And describing an HSM as “a hardware device that does crypto fast” is as generic and poor as describing a Firewall as a “device that filters data packages.”
For that reason, I decided to write a few articles, starting with this one, where security specialists can educate themselves on the subject and be able to unleash the security this technology can deliver.
PROBLEMS & SOLUTIONS, OPPORTUNITIES
Let’s start our discussion backward: listing some of the opportunities HSMs are helping business to grasp and main problems this technology is solving:
- Management of sizable smart grid deployments;
- Saving Bitcoin exchanges from offline and online hacks;
- Protecting databases from inside and outside threats;
- Reducing the cost of data breaches;
- Reducing IoT device cost and energy consumption;
- Enabling strong AIM;
- Levering paperless processes;
- Enabling unattended disk encryption in servers;
- Blocking large data leaks;
- Enabling secure log management in SOCs;
- Transparently protecting documents in the cloud;
- Dematerialization of smart cards and tokens;
- Payment processing;
- Cert/CRL emission in PKI;
- SSL acceleration;
If you knew that list and how the HSM technology plays out in each item, then you have my congratulations! You are among a few. If not, stick with me. It will change your perspectives!
At this point, you might be asking yourself how comes that a single technology can make such a difference in so many use cases? Before that, we need to understand what is missing on the general, enterprise computing platforms: a trustworthy base.
BUILD YOUR HOUSE ON THE ROCK
Let’s start simple: if you want to (symmetrically) encrypt a file on your computer, all you need is to implement (or to use) an encryption algorithm such as AES, with a proper operation mode (say CBC). That involves you providing an unpredictable, secret key and a random nonce.
Now, suppose you are running this encryption process as a user, and the system administrator (root) is willing to get access to the key you are providing. Would you say that the root will be able to do so? On a standard enterprise platform (e.g., Intel + Linux), it is almost sure he will. It is just a matter of more or less effort. And with physical access to the platform, the game is over.
The root cause is with the underlying primitives that the hardware exposes to software developers. In some cases, is just a matter of lack of access, in others, lack of features. A typical example is the lack of real memory isolation among processes — on a standard PC, the kernel-level software can read the physical memory space and thus access contents from others processes. Did you know that already, right? Probably yes.
The problem, however, is much broader so that without external hardware add-ons, securing an x86/x86_64 platform is near impossible, even though Intel and AMD had done a fantastic job improving their offers.
So, to a system being able to provide serious security, its underlying platform must start with a rock-solid hardware foundation. That means: (a) enough primitives to allow the secure implementation of system services, and (b) compatible with the threat models.
WHAT IS NEXT?
Check the next article(s):
In the near future I will also discuss:
- More services an HSM provides (I bet you will be amazed);
- Comment on the underlying platform requisites that enable those services;
- The relation of the use cases presented at the beginning of this section to the HSM services.
Dr. Roberto Gallo
Atua desde 1999 na área de segurança cibernética. É fundador e diretor executivo da KRYPTUS Segurança da Informação e coordenador do Comitê de Segurança e Riscos Cibernéticos da ABES.