By Klaus Schmeh, cryptovision
Why use a smart card, if a secret key can also be stored in a virtual token, i.e. a protected hardware module built into a PC or smart phone? The Trusted Platform Module (TPM) and Intel’s Software Guard Extensions (SGX) are two technologies that can be used to build solutions following this approach. Will virtual tokens make smart cards obsolete? Or are they useless, as they miss the point of what smart cards are all about? As will be shown, the truth lies somewhere in between.
The times when a smart card was just a plastic card bearing an integrated chip are long gone. Meanwhile, over a dozen smart card form factors are available, ranging from USB tokens via microSD cards to contactless chips integrated into wristwatches. In addition, it is possible to give up the concept of storing a key on a small item the user can carry with him and, instead, keep this secret information in a protected module inside the end user device (usually, a PC or smart phone). In other words, the key storage place is transferred from the user’s pocket to the motherboard. This approach is referred to as “virtual token”. A virtual token represents a smart card form factor of its own.
A technology that is well suited for implementing virtual tokens is the Trusted Platform Module (TPM). A TPM is a protected hardware module available in most current computers. TPMs are mainly known for supporting software attestation, which is an important countermeasure against malware. In addition, storing secret keys in a protected way is one of the base functions of a TPM. To turn a TPM into a virtual token, a smart card emulation software is necessary that grants access to the keys via a standard card interface. Using a TPM as a virtual token is already common practice and by far the most popular solution for this purpose is Virtual Smart Card (VSC), a technology provided by Microsoft.
Just like a TPM, Intel’s Software Guard Extensions (SGX) are suited to realize virtual tokens. SGX is a proprietary set of features supported by many Intel processors. The general purpose of SGX is to provide protected areas (enclaves) to programs running on a PC. Data stored in an enclave are not accessible from outside, not even for the owner of the computer. Typical applications of SGX include malware protection (data stored in an enclave cannot be manipulated by a malicious software) and digital payment with an enclave providing a tamper-resistant environment for handling money transactions.
In addition, SGX supports storing secret keys in a protected environment. If an appropriate emulation software is used, an application program can interact with an SGX-protected area, like with a standard smart card. SGX thus becomes the core part of a virtual token and even has some technical advantages over a TPM in terms of the crypto algorithms supported.
However, SGX-based virtual tokens are still in their infancy, with no market-ready solution being currently available. Ralf König, Product Manager at smart card specialist cryptovision, says: “At cryptovision we have plans to change this situation. We expect to have an SGX-based virtual token ready by 2018.” As a first step in getting familiar with the SGX technology, cryptovision has implemented a credential storage based on SGX together with Intel. It is one of the first SGX applications on the worldwide market.
It goes without saying that a virtual token is not a one-to-one replacement for a conventional smart card. It can even be said that a built-in security module that is not removable contradicts the basic idea of a smart card, which is to separate the key from the device that uses it. It is clear, for instance, that a key stored in a processor register or TPM of one computer cannot be used on another. If a computer is stolen, not only the device, but also the key is compromised. For this reason, a virtual token is considered less secure than a conventional smart card.
On the other hand, storing keys inside a computer device – yet within the borders of a protected module – has a number of clear benefits. Essentially this approach saves money, as it relies on existing hardware, while a smart card solution always requires purchasing one card per user. In addition, virtual tokens are more user-friendly, as a user doesn’t have to bother with a card and he can’t lose it. Finally, although a virtual token is deservedly not considered high security technology, it has some security benefits. For instance, it is a lot more difficult to steal a built-in hardware module than a smart card and as a further benefit, smart card sharing, which is illegally practiced in many organizations, is a non-issue.
Two approaches that don’t compete
A look at these arguments makes it clear that conventional smart cards and virtual tokens should not be regarded as competing technologies. Instead, each variant has its benefits. Smart cards, including form factors like USB tokens or proximity tokens, are to be preferred if a mobile key storage device is desired and if high security standards need to be met. For instance, smart cards are indispensable when it comes to implementing electronic identity cards, company cards, digital signature cards, or multi-application cards. On the other hand, a virtual token is the more pragmatic solution – cheaper and more user-friendly.
cryptovision Product Manager Ralf König states: “Pragmatic solutions have always been successful in the IT security world. We therefore take virtual tokens very seriously.” In spite of these new form factors, Ralf doesn’t see conventional smart cards under threat. “We expect that billions of people worldwide will be equipped with electronic identity cards in the decades to come. For this purpose virtual tokens are not an option.”