How to securely hide a cryptographic key?
Posted by davitb on 10th November 2009
In my previous article I was discussing how a “non expert” security engineer should think about choosing the right security protocol for his system. I have tried to present that complicated task in an easier manner.
However it’s important to also understand that when we integrate a secret based protocol in our system, we will get another, more serious problem – how to securely hide the secret that is used in the protocol for authentication?
For example, suppose you have two components which are establishing an SSL protocol. As SSL is based on public key cryptography they both need to possess private keys (if the authentication is mutual). So how are they going to protect their private keys locally in their systems?
Of course the problem of hiding cryptographic keys or other secret information doesn’t only apply to systems which are implementing security protocols. Encryption is the most popular and convenient way to protect the confidentiality of information. However when the system encrypts something there should be a way to protect the encryption key (or the decryption key) and this, believe me, is a much, much harder problem.
In this article we will discuss the ways how one can hide secret information in:
- Windows environment
- Inside a software
- Inside a hardware
I have been doing research on this topic more than a year now and would like to share my knowledge and experience with you.
All the mentioned topics are heavy and one cannot describe all of them in a single article. I’m planning to have several articles describing different aspects of these themes (such as obfuscation and tamper-proofing in software, tamper resistance in hardware, etc).
So in this article we will discuss the “theoretical” part of the topic and then will go through an example and try to apply this knowledge in real life.
Tags: confidentiality, CryptProtectData, CryptProtectMemory, hardware protection, obfuscation, tamper proofing, TPM
Posted in how to design secure systems?, software obfuscation, tamperproof software | No Comments »

