Cryptographic protocols use credentials to authenticate users to various security sensitive services, including on-line banking and corporate network access. Traditional credential solutions fall short.
Software credentials, such as passwords,are vulnerable to on-line fraud and software attacks. Dedicated hardware tokens, such as SIM-cards used for authentication in cellular networks, provide higher level of security, but are expensive to manufacture and deploy, and a separated hardware token is typically needed for each service, which forces users to have multiple tokens.
Recently, hardware-based commodity general-purpose Trusted Execution Environments (TrEEs), such as Trusted Platform Module (TPM), JavaCard, M-Shield and ARM TrustZone have started to become widely deployed.TPMs are already available on many high-end personal computers while several mobile phone models are based on TrEEs like M-Shield and TrustZone.
Credential platforms implemented on top of these TrEEs, including On-Board Credentials and Trusted Execution Module, provide higher level of security compared to software credentials,and easier deployment and better usabilitycompared to dedicated hardware tokens.Credential platforms allow third-parties to implement their own credential programs” that are executed within the TrEE in a controlled manner. These credential programs may generate new asymmetric keys within the TrEE.
One important requirement for a credential platform is the ability to attest that a key has been created and is kept within the TrEE. Additionally, the attestation should prove key properties, such as usage permissions. A straightforward approach would be to limit the usage permissions of such keys only to the credential program that generated the key. However, in some cases the developer of the credential program should be able to authorize other credential programs to use the key. Then the credential platform should be able to enforce specified by the developer key usage permissions and to provide an attestation of these permissions to an external vender.
In this paper we describe a novel key attestation mechanism that allows attestationof both TrEE internal and external key usage permissions. We have implemented this attestation mechanism for mobile phones with M-Shield TrEE.
To read this external content in full, download the complete paper from the author online archives