US20140149742A1
2014-05-29
14/091,183
2013-11-26
A method and system of authenticating a computer resource such as an application or data on a mobile device uses a contactless token to provide multi-factor user authentication. User credentials are stored on the token in the form of private keys, and encrypted data and passwords are stored on the device. When application user requires access to the resource an encrypted password is transmitted to and decrypted on the token using a stored private key. An unencrypted data encryption key or password is then transmitted back to the device under the protection of a cryptographic session key which is generated as a result of strong mutual authentication between the device and the token.
Get notified when new applications in this technology area are published.
H04L9/3226 » CPC main
arrangements for secret or secure communications Cryptographic mechanisms or cryptographic ; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
H04L9/3213 » CPC further
arrangements for secret or secure communications Cryptographic mechanisms or cryptographic ; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
H04L9/32 IPC
arrangements for secret or secure communications Cryptographic mechanisms or cryptographic ; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
This application claims the benefit under 35 U.S.C. 120 as a Continuation-in-part of application Ser. No. 13/706,307, filed Dec. 5, 2012. This application claims the benefit under 35 U.S.C. 119 of Great Britain application GB 1221433.4, filed Nov. 28, 2012, and Great Britain application GB 1303677.7, filed Mar. 1, 2013 and granted as GB 2496354.
The present application relates to a method and system of authenticating a user to a computer resource accessed via a mobile device using a portable security token (for example a contactless smart card or bracelet), together with a secret that the user can easily remember (for example a PIN code). This secret provides a second, separate preferably independent security factor that can safeguard the computer resource even if the portable security token and the mobile device are both lost or stolen together. A preferred embodiment relates to providing data protection and secure access to applications and stored data accessed via a mobile device (such as a phone or tablet) using a near-field communication (NFC) hardware token or a short range Bluetooth token.
Secure authentication of a user via a mobile device is becoming important in two different situations, firstly for authentication of user access to a computer resource on the mobile device and secondly on a remote server.
Most existing systems employ the use of a simple password or PIN to authenticate the user. Despite the ubiquity of password-based systems, it has many problems. An ideal password needs to be easily remembered by the user. However, in order for passwords to be secure, they should be long and hard to predict, contradictory to the former requirement. This is further exacerbated by the proliferation of passwords for the multitude of applications a user typically uses, for which security best practice recommends different passwords should be used.
In addition to application access, some mobile users wish to ensure a high level of security for data (including entire files and data contained within a file or a data structure) on their device, against a number of external threat scenarios. For example, a user may use an app on a tablet or other portable device that synchronizes files with their desktop PC via an online storage service (e.g. Dropbox, Box.com [trademarks]). Some of the downloaded files may contain confidential information such as business documents. The user wishes to safeguard himself against the possibility of a data breach in the event of theft of the device.
A practical way to achieve this today is to enable device encryption on the mobile operating system, which uses an encryption key derived from the device lock screen password. For maximum security, this password should be long and complex. However using a long and complex password as the password to unlock the lock screen is extremely inconvenient for the user.
Because of this, most users are reluctant to use any password more complicated than a 4 digit PIN code to unlock the lock screen. A skilled attacker will be able to decrypt any files stored on a stolen device with brute force attack methods. Moreover, the confidential data is decrypted whenever the device has been unlocked, even when the user is not using the data, which increases the risk of a data breach unnecessarily.
Another possible approach to data encryption is for the app to generate its own encryption key. The problem with this approach is that the key would either have to be protected by or derived from a password for security, or has to be stored within the app in plaintext form for usability. The former approach inherits the same password complexity issue as the device encryption method above, while the latter offers little security as the attacker who could compromise the plaintext data could just as easily read the plaintext key and decrypt the data. One way to provide an additional level of security to users of mobile devices is by requiring that the user also carries a wearable physical token that communicates with the device using a wireless communication system e.g. Bluetooth or Bluetooth Low Energy Bluetooth (BLE). The mobile device constantly checks for the presence of the token. This token, when present within a range of several metres of the mobile device, constantly verifies that the user is indeed present. When the user departs the token and the device lose contact and the device secures itself against any access until communication with the token is regained.
An example of such a system is described by Nicholson, Corner and Noble in IEEE Transactions on Mobile Computing, Vol 5 No 11 Nov. 2006. There are a number of disadvantages of such a system. The broadcast based communications channel between the token and the mobile device is subject to eavesdropping to an attacker who is within close range of the token and the device. Despite being encrypted, because of the numerous transient authentication events that take place between the token and the device, the attacker is presented with many opportunities to cryptanalyse the authentication messages, as well as to perform traffic analysis without even having to attempt an cryptanalytic attack
A thief who steals the mobile device but still remains within range of the security token worn by the device owner will be able to access the resources on the device. Theft of the mobile device and the token together renders the security system useless.
In some other existing systems an additional level of security has been provided by requiring that an NFC or Bluetooth capable mobile phone be first authenticated to the mobile network prior to an application being executed. An NFC/Bluetooth token then provides an asymmetric key to the phone which in turn authenticates to a third-party service by performing digital signature within the phone itself.
A generic example of such a system is shown in US-A-2011/0212707. This, however, displays a number of disadvantages. In particular changing of the application credential requires re-programming or replacement of the token; the number of user credentials secured by the system is limited by the (small) storage capacity of the token; and the loss of the token poses a direct risk of exposure of the user's credentials. In addition, applications running on the mobile device and the server are capable of making use of the described security system only if they have been specifically programmed to do so. The system described cannot be used with pre-existing applications.
Another approach to multi-factor identification is described in US-A-2008/0289030. Here, a contactless token is, upon validation, used to allow access to the authentication credentials secured on the mobile device itself.
This has a number of serious disadvantages, including the necessity of using secure storage on the device. This is normally not available to application developers as it is maintained and controlled by the manufacturer of the device (e.g. mobile phone) or the supplier of the underlying operating system or a mobile network operator. Also, making use solely of a token identifier as a means of validating the token is likely to be insecure. RFID tokens can typically be read by any compatible reader, and can easily be cloned.
Yet a further approach is described in WO-A-2011/089423. This describes a system where the presence of a contactless token is used to authorize execution of a secure function or application, and is aimed primarily at mobile wallet uses.
Again, the system described has a number of disadvantages, primarily that it uses a form of logical control that is relatively easy to circumvent.
More generally, in the enterprise environment there exists significant security risk from allowing users to connect mobile devices into the network due to increased likelihood of unauthorized data access (leading to loss of data confidentiality and/or integrity) resulting from:
With the present invention, the user may store a master key of high cryptographic strength (128 bits or above presently) on the portable security token, and this key can be used to either directly protect an app's data encryption key or a long and complex password, from which a sufficiently long and secure encryption key can be derived. This allows the user to protect any data stored on the device with a very strong encryption key. If the device is stolen, it is then infeasible for any potential attacker to decrypt the encrypted data on it without the associated token.
Credentials may be stored either on the mobile device or, remotely, in the cloud. Cloud storage preferably has the following features:
According to the present invention there is provided a method and system of authenticating access to computer resource in a mobile device as set out in the pre-characterising portions of the independent claims. An embodiment also may provide a method and system of authentication an application running on a mobile device.
According to a first aspect of the present invention, a method of authenticating a computer resource on a mobile device comprises:
In an embodiment, the encrypted resource authorization may be on the device. In an embodiment, the requiring step is omitted, and the unlocking is performed without consideration of separate authentication.
The unlock response may comprise a plain authorization, obtained by decrypting the decrypted authorization
The unlock response may alternatively comprise a function (such as a hash) of a plain authorization, obtained by decrypting the decrypted authorization, and additional information.
Thus, in one usage mode, the token may verify and decrypt the encrypted authorization. Then, instead of returning a plain authorization to the device, protected by a session or other encryption key, the token may perform some computation on the plain authorization and possibly some other information (eg token-based information), and return the result to the device. Examples include the following:
The authorization may comprise a password, PIN or cryptographic key.
The unlock response may be transmitted to the mobile device under the protection of an encryption key, such as a session key.
The token may store user./token ownership credentials, the decryption on the token being based on the user credentials.
The method provides two-factor (or multi-factor) authentication by requiring a user in addition to authenticate separately on the mobile device, for example by the authentication on the mobile device being validated on the token before the unlock code is sent. Preferably, the method requires a proof of knowledge (eg a PIN) from the device (and ultimately from the user) before decrypting the authorization. The proof may be provided after mutual authentication. Alternatively, the device authentication may be entirely independent of the token authentication.
In an embodiment, the token may operate in single factor mode, which decrypts authorization after mutual authentication with the device.
A service may be run on the mobile device which controls device cryptographic functions and access to the resource. An applet may be run on the token which provides token cryptographic functions.
The user credentials may be generated by the token and never leave the token (or the app running on the token).
Preferably, the encrypted authorization stored on the mobile device can be decrypted solely with the corresponding user credentials stored on the token.
The method may include verifying integrity on the token by a message authentication code (MAC) received from the device.
The method may include verifying the integrity of the encrypted authorization on the token prior to decryption.
The device and the token may perform cryptographic mutual authentication before transmission of the encrypted authorization.
The encryption, decryption and/or the mutual authentication may be provided by symmetric key cryptography
A user secret may be passed from the device to the token and may be validated by the token before the decryption operation takes place.
The resource may comprise data, or an application running or stored on the mobile device.
According to another aspect of the invention there is provided:
a mobile device;
a token including token storage for storing private user credentials, a token communications system, and a token processor providing cryptographic functions;
and wherein in use an encrypted authorization is transmitted by the device communications system to the token; is decrypted on the token using the user credentials; the token generating at least partially therefrom an unlock response, the unlock response being securely transmitted by the token communications system to the mobile device; requiring a user to authenticate separately on the mobile device; and unlocking the resource if the required unlock response and the separate authentication are both valid.
The device communications system and the token communications system may communicate over the air, eg by Near Field Communication (NFC), Bluetooth or BLE. Alternatively, the device communications system and the token communications system may communicate only when the token is in contact with the device via a physical interface.
The device communications system may send a user secret to the token which is validated by the token before the decryption operation takes place.
The device communications system may send a message authentication code (MAC) to the token, which is validated by the token before the decryption operation takes place.
According to a further aspect of the invention, there is provided:
a hardware token for authenticating access to a computer resource via a mobile device, the token comprising:
token storage for the storage of a plurality of user credentials;
a token communications system for communicating with a mobile device;
a token processor providing cryptographic functions; and
wherein, in use:
on receipt by the token communications system of an encrypted authorization, the token processor verifies the integrity and decrypts the encrypted authorization and generates at least partially therefrom an unlock response, and wherein the token communications system securely transmits the unlock response for use by a mobile device.
The preferred system of the present invention preferably comprises:
The mobile device may comprise any mobile or portable hardware device which is capable of running user applications and handling communication and cryptographic functions. Typical devices include mobile phones, tablets, laptop computers and the like. The token may be any portable or mobile hardware token which is capable of communication (preferably contactless communication) with a mobile device and which includes storage and an executable system which is capable of handling communications and cryptographic functions.
The protected computer resource may be held in a device memory or store or (where an application) may be held ready for execution or may be actually running in an execution environment. To that end, the device may include a store, a memory, and a processor.
Typically, the token will be a contactless smart card, although other tokens held by or carried on the person would be equally possible. Suitable tokens might include a ring to be worn on the user's finger, a device incorporated into a watch, belt, spectacles, clothing or anything else normally worn by the user, or even a device embedded under the user's skin. The token may have button(s), touch-sensitive area(s) or other means to allow manual or other user feedback/input via the token.
The application authentication stored on the device may comprise an application password or PIN. The user credentials stored on the token may comprise a private cryptographic key.
It is preferred that communication between the token and the mobile device makes use of NFC, although other channels could equally well be used including Bluetooth, Bluetooth Low Energy (BLE), or other types of radio frequency communication. Tokens requiring contact with the mobile device, including swipe cards and electrical contactcards are also envisaged.
According to another aspect of the invention, a system of authenticating access to a computer resource on a mobile device with a portable security token comprises:
According to a further aspect of the invention, a hardware token for authenticating a computer resource on a mobile device, the token comprises:
In the preferred embodiment the present invention is preferably embodied within a product called Hoverkey. Hoverkey's design is optimised for ease of integration with existing mobile apps and web apps, as well as ease of use. It implements a secure user credential (e.g. password) storage and retrieval system, secured using NFC tokens.
The present application is particularly concerned with an embodiment that uses a specific security design, referred to in this description as “level 1”. References to Hoverkey level 1 (or Hoverkey L1) should be understood accordingly.
The concept behind Hoverkey L1 is designed to work with all existing applications which authenticate the user using a user name and password combination, although authentication methods other than passwords may be used. Typically, without any changes to the application to be accessed, the technology simply replaces manual entry of the user's password with a touch of an NFC token. This embodiment offers the following advantages:
The invention may be carried into practice in a number of ways and one specific embodiment will now be described, by way of example, with reference to the accompanying drawings, in which:
FIG. 1 shows the Hoverkey L1 high level architecture;
FIG. 2 shows the organization of the Java card and the applets.
FIG. 3 shows the activation protocol;
FIG. 4 shows the method of adding a new device to an activated card;
FIG. 5a shows the registration protocol for a private app web app;
FIG. 5b shows the registration protocol for a public app;
FIG. 6 shows the password access protocol;
FIG. 7 shows the password encryption process;
FIG. 8 shows password retrieval encryption;
FIG. 9 shows the key hierarchy; and
FIG. 10 shows the applet states, and their sequencing.
At a high level, the preferred Hoverkey deployment model is summarised below:
The following steps are taken in deploying a Hoverkey:
The high level architecture of Hoverkey L1 is illustrated in FIG. 1. Each Developer App (App 1, App 2 and App 3 in the diagram) are embedded with the Hoverkey L1 Component, which allows it to communicate with the Hoverkey Service via an inter-process communication (IPC) protocol.
On each mobile device, there is a single instance of Hoverkey Service which accepts requests from an App and when a password is required. Hoverkey Service retrieves the password on behalf of the App through a series of exchanges with the Java Card applet via the NFC interface.
The advantages of using a service include:
On the Android platform, possible IPC mechanisms include the Intent method for simple, coarse grained integration, or the Remote Service method using Android Interface Definition Language (AIDL) for fine-grained, lower-level integration.
Hoverkey-protected passwords are encrypted by the card Applet at registration and stored on the mobile device within the Hoverkey App. When access is required, the registered App requests the password via the Hoverkey App, which in turns requests the password be decrypted by the Applet.
To use Hoverkey L1, the following steps are followed:
Hoverkey L1 is preferably supported on NFC-enabled Android smartphones, although other platforms are of course equally possible.
The following subsections summaries the functions provided by the Hoverkey L1 App.Token activation
FIG. 2 shows the organization of the Java cord and the applets.
The NFC token is a contactless token which supports Java Card and GlobalPlatform specifications. The token preferably has a high level of security approval under the Common Criteria and/or FIPS schemes. The initial product is implemented in the ISO 7810 (credit card) form factor.
The token is designed to support multiple Java Card applets. The Hoverkey system require one applet to be installed, leaving space on the card for third-party applets.
Hoverkey supports on-demand credential retrieval and synchronisation using a cloud base storage service. There are many possible implementations of a cloud service using a variety of protocols and indeed many already exist. At the minimum, a suitable service preferably supports the following functions:
1. Identifying a user with a unique identifier
2. Storage of arbitrary data on the server in an arbitrarily named file and directory
3. Retrieval of previously stored data
A more preferable implementation of a Hoverkey credential storage service also provides:
1. Strong authentication of the user
2. Communication with the user device over a secure channel
3. High availability measures
4. Secure facilities management
In practice, Hoverkey can support popular cloud services such as DropBox or may provide its own bespoke service for Hoverkey users.
The applet implements:
The Hoverkey Applet stores and manages the following data objects:
| Name/Label | Description |
| TokenID | A unique identifier for each applet installation |
| DeviceIDs | A list of (up to 4) DeviceIDs associated with this |
| card - the ID should support ASCII text e.g. “GalaxyS3- | |
| 894579”, “DavesTablet-9792234” (so that when the | |
| IDs are listed, user can tell which ID corresponds to | |
| which device). | |
| Password | Derived from random values, the keys for encrypting |
| Encryption | and decrypting User's App passwords, as well as their |
| Key (PEK) | integrity protection and verification |
| User PIN | The User's PIN used for accessing passwords. It is |
| always set during activation, but each App may decide | |
| whether if a PIN is required. The PIN has an associated | |
| PIN Tries Remaining counter. | |
| User PUKs | The User's PIN Unblock Keys. There is also a single |
| Unlock Tries Remaining counter. | |
| Logs | Activity logs for recent auditable events |
| OrgID | A unique identifier for Customer or Developer |
| organization | |
| MasterAPIKey | A unique key associated with the OrgID for |
| authentication of private third-party Apps | |
The following outlines the lifecycle of an NFC token:
The Hoverkey L1 App may be downloaded by the User from the Google Play Store and therefore does not have any Customer specific information at installation.
NFC tokens are formatted by Hoverkey which includes loading of Customer data. Upon activation, this data is transferred across to the Hoverkey L1 App to allow Developer Apps to be registered.
Developer Apps need to be registered with the Hoverkey Service (part of the Hoverkey L1 App) prior to becoming NFC-enabled. Registration involves securing the user's password with his (activated) NFC token.
The core function of Hoverkey L1 is to provide secure password storage and retrieval. The password is encrypted and integrity protected alongside its metadata. When the password is required, the PEK stored in the NFC token is used to verify decrypt the protected passwords.
The Global Platform (GP) specification supports secure exchange of APDU messages between the card and the terminal. GP supports three levels of messaging security:
Hoverkey L1 supports at secure level 3 messaging using the GP Secure Channel Protocol version 2 (SCP02).
In order to support an enhanced level of security, Hoverkey L1 supports the additional use of a PIN which is shared by all third-party Apps (as it is a PIN validated within token applet). The user is required to set up a PIN at activation, but each third-party App may have their own policy on where a PIN is required for access.
The Sys Admin can enforce the requirement for a user PIN code (for all Apps) at activation via the configuration process.
FIG. 3 shows the activation protocol
Steps (referring to the corresponding numbers set out in FIG. 3).
FIG. 4 shows the method of adding a new device to an activated token.
Steps (referring to the corresponding numbers set out in FIG. 4)
The purpose of registration is for the third-party app to authenticate itself to the Hoverkey App, and at the same time to provide Hoverkey App with the user credentials for their secure storage.
Upon successful registration, Hoverkey issues the third-party app with its unique random APIKey for its subsequent Hoverkey API access (i.e. an APIKey even if compromised will be invalid on a different device).
There are two methods for app registration:
A public app developer wishing to integrate Hoverkey into their app must obtain a Registration Key (RegKey) in the form a certificate, which is embedded into the app prior to its public release. The certificate is issued by Hoverkey and signed with the Hoverkey private key. The corresponding public key is embedded in the Hoverkey App for verification of the app certificate. The idea is that the certificate attests to various attributes of the app (which need to be independently obtainable from the OS), thereby making it difficult for a malicious app to masquerade as genuine.
Attributes to be certified include (for Android app):
A private app, i.e. one not deployed through the public app store will employ a different registration scheme. Since the app developer may want to deploy their apps privately without Hoverkey involvement, we employ an alternative method which allows the developer to generate their own RegKey (based on symmetric keys).
FIG. 5 shows the registration protocol. FIG. 5a illustrates registration for a private app web app, and FIG. 5b illustrates registration for a public app. The same reference number apply to each.
FIG. 6 shows the password access protocol.
Steps (referring to the number set out in FIG. 6)
To change the password for an App, Hoverkey services simply replaces the existing encrypted password with a new one, with the following steps:
To change the token PIN, the following steps are followed:
Remove the following information for the App:
(Hoverkey token not required)
If the token is lost, perform once by each associated device:
(The Hoverkey token not required)
The Hoverkey App also downloads a list of revoked Token IDs periodically, which allows it to revoke the token if an entry matches the one that it is paired with.
Usually takes place after List Devices—as Hoverkey App is not expected to remember the device ID list
All functions within this section require mutual authentication with Admin Key.
In order to re-format the token (e.g. for issuing to a new user)
In order for the Sys Admin to reset the PIN,
For emergency online access, the user may simply login manually with his password. If the user does not know/remember his password (due to the use of a complex password, for example), the applications password reset facility may be used to set a new password (and also change the Hoverkey protected password).
If an App's policy requires a PIN which the User does not remember, he could:
Steps
1. On DeviceB, AppX registers itself with Hoverkey Service using either the symmetric key or asymmetric key method, but without supplying the user's credentials.
2. Service retrieves the file AppX/DeviceA/credentials.dat from the cloud storage
3. Service uploads the same file, unaltered, as AppX/DeviceB/credentials.dat
4. The credentials are now ready for use on DeviceB
For security purposes, keys used for encrypting and integrity-protecting user passwords for storage (generated by the applet at activation) never leave the applet (nor the physical token). Session keys are also used (generated by the Hoverkey App) for encrypting and integrity-protecting passwords over NFC after decryption. These are wiped immediately after use.
FIG. 7 shows the password encryption process.
Encrypting password for storage, to be performed by the applet.
FIG. 8 shows password retrieval encryption.
To be performed by applet, after verification of the MAC, decryption of the encrypted object supplied by device, and validation of the policy field.
FIG. 9 shows the key hierarchy. Keys are derived using the HMAC-Based KDF with as described in NIST Special Publication 800-108, [: L. Chen, Recommendation for Key Derivation Using Pseudorandom Functions (Revised), NIST SP 800-108, October 2009, available from http://csrc.nist.gov/publications/nistpubs/800-108/sp800-108.pdf. This document is incorporated by reference.
IssuerMasterKey=Random bytes generated by secure RNG
OrgID=Assigned unique OrgID
AppID=(globally) unique app identifier
FIG. 10 illustrates the applet statuses, and their sequencing.
| State | Description |
| Installed | Applet is installed but not yet selectable |
| Selectable | Applet is now selectable and now ready to be personalized. |
| Formatted | Personalization step 1: Hoverkey (or a trusted third-party) |
| has generated and loaded OrgID, APIKey, Auth Key, Admin | |
| Key and PUKs. Admin may reset activated cards to this state. | |
| All data objects are reset except for any PUKs that have | |
| been used. | |
| Activated | Personalization step 2: Token delivered to User who has also |
| received his personalized activation email. He has followed | |
| the instructions to activate the token and set the PIN. The | |
| Applet is now ready to be used operationally. Additional | |
| devices may be added at this point. | |
| PIN | If the User's PIN tries remaining counter reaches zero (with |
| Blocked | at least one unused PUK remaining), the Applet enters this |
| state and will not perform the core functions until it's | |
| unblocked with a PUK | |
| Blocked | If PUK tries counter reaches zero or PIN tries counter reaches |
| zero with no more PUK remaining, the Applet becomes | |
| locked. The token must be revoked, then it may be destroyed | |
| or sent back to Hoverkey | |
| Term | Definition |
| Applet | Software program running on a smart card supporting Global |
| Platform and card (e.g. Java Card) specifications | |
| Application Protocol Data | Basic communication messages between a smart card and the |
| Unit (APDU) | terminal (reader) |
| App Registration | Validation of a third party app by Hoverkey at first use and |
| issuance of API key for subsequent access | |
| Bluetooth/BLE | A set of wireless communication standards designed for short- |
| range data exchange between devices. Typically used by small | |
| personal devices to create a Personal Area Network. Bluetooth | |
| Low Energy (BLE) is a Bluetooth standard which allows low- | |
| power devices which only communicate intermittently to | |
| consume a fraction of the power required by normal Bluetooth. | |
| Customers | The person or organization responsible for day-to-day |
| management of Hoverkey tokens. In particular, they are | |
| responsible for sending out activation emails and, when a user | |
| requires PIN unblocking, authenticating the user and issuing | |
| PUK codes. | |
| When selling directly to End Users, Hoverkey will in effect play | |
| the role of the Customer. | |
| Developers | Developers of mobile applications, especially those who embed |
| Hoverkey functions into their apps | |
| DeviceID | A unique identifier for a mobile device (or one that is highly |
| likely to be unique) | |
| Developer Apps | Developers may enhance the security of their existing mobile |
| applications by creating a Developer App, using the Hoverkey | |
| iOS and Android or other types of code libraries. | |
| End User (or User) | A members of a Customer organization who uses Hoverkey- |
| enabled applications | |
| Emergency Access | An optional service which allows access to Hoverkey-protected |
| services without a functioning NFC token using a pre-specified | |
| back-up authentication method. | |
| Global Platform | An organization responsible for specifying standards for smart |
| card application (i.e. applet) management | |
| Hoverkey L1 App | An application installed and run on the User's mobile device |
| providing Hoverkey Service and management functions | |
| Hoverkey Component | Software component provided by Hoverkey for integration into |
| third-party Apps | |
| Issuer Partner | An organization with an established relationship with Hoverkey |
| to issue Hoverkey tokens to their Customer | |
| Personal Identification | A sequence of digits which is kept secret by the user for |
| Number (PIN) | authentication to the NFC Token |
| System Administrator (Sys | Typically the person in the Customer organization who is |
| Admin) | responsible for implementing IT security policies and will have |
| influence over any security product that may be selected by the | |
| organization. They have a technical skillset. They may also take | |
| the role of User Administrator (see below) in small deployments. | |
| Token Activation | The process by which an End User sets up the first use of his |
| NFC token | |
| Token Formatting | The process by which blank smart cards are prepared for the |
| Customer | |
| User Admins | This is the person in the Customer organization who is |
| responsible for the operating the IT security systems. | |
1. A method of authenticating access to a computer resource via a mobile device comprising:
storing an encrypted resource authorization;
transmitting the encrypted authorization to a separate portable security token;
on the token, decrypting the encrypted authorization and generating at least partially therefrom an unlock response;
securely transmitting the unlock response to the mobile device;
requiring a user to authenticate separately on the mobile device;
unlocking the resource if the required unlock response and the separate authentication are both valid.
2. A method as claimed in claim 1 in which the unlock response comprises a plain authorization, obtained by decrypting the encrypted authorization, or a function of a plain authorization, obtained by decrypting the encrypted authorization, and additional information.
3. A method as claimed in claim 1 in which the authorization comprises a password, a PIN or a cryptographic key.
4. A method as claimed in claim 1 in which the unlock response is transmitted to the mobile device under the protection of an encryption key, such as a session key.
5. A method as claimed in claim 1 in which the token stores user credentials, the decryption on the token being based on the user credentials.
6. A method as claimed in claim 1 in which the encrypted authorization is stored on the mobile device.
7. A method as claimed in claim 1 in which the encrypted authorization is stored in the cloud and is retrieved from the cloud to the mobile device.
8. A method as claimed in claim 1 which the authentication on the mobile device is validated on the token before the unlock response is sent.
9. A method as claimed in claim 1 including running a service on the mobile device which controls device cryptographic functions and access to the resource.
10. A method as claimed in claim 1 including running an applet on the token which provides token cryptographic functions.
11. A method as claimed in claim 5 in which the user credentials are generated by the token and never leave the token.
12. A method as claimed in claim 1, in which the encrypted authorization can be decrypted solely with the corresponding user credentials stored on the token.
13. A method as claimed in claim 1 including verifying integrity on the token by a message authentication code received from the device.
14. A method as claimed in claim 1 in which the integrity of the encrypted authorization is verified on the token prior to decryption.
15. A method as claimed in claim 1 in which the device and the token perform cryptographic mutual authentication before transmission of the encrypted authorization.
16. A method as claimed in claim 1 in which a user secret is passed from the device to the token and is validated by the token before the decryption operation takes place.
17. A method as claimed in claim 1 in which the resource comprises an application running or stored on the mobile device, or accessible therefrom, or in which the resource comprises data stored on the mobile device or accessible therefrom.
18. A system of authenticating access to a computer resource via a mobile device with a portable security token, comprising:
a mobile device;
a token including a token communications system and a token processor providing cryptographic functions;
and wherein in use an encrypted authorization is transmitted by the device communications system to the token; is decrypted on the token; the token generating at least partially therefrom an unlock response, the unlock response being securely transmitted by the token communications system to the mobile device; requiring a user to authenticate separately on the mobile device; and unlocking the resource if the required unlock response and the separate authentication are both valid.
19. A system as claimed in claim 18 in which the authorization comprises an application password, a PIN or a cryptographic key.
20. A system as claimed in claim 18 in which the token comprises a token storage for storing private user credentials and wherein the decryption on the token is based on the user credentials.
21. A system as claimed in claim 18 including means for retrieving the encrypted authorization from the cloud.
22. A system as claimed in claim 18 in which the unlock response is transmitted by the token communications system to the mobile device under the protection of an encryption key such as a session key.
23. A system as claimed in claim 18 in which the token is a card.
24. A system as claimed in claim 18 in which the device communications system and the token communications system communicate over the air, or communicate when the token is placed in close proximity to or is touched to the device.
25. A system as claimed in claim 18 in which the separate authentication on the mobile device is validated on the token before the unlock response is sent.
26. A system as claimed in claim 18 in which the device communications system sends a user secret to the token which is validated by the token before the decryption operation takes place.
27. A system as claimed in claim 18 in which the device communications system sends a message authentication code (MAC) to the token, which is validated by the token before the decryption operation takes place.
28. A system as claimed in claim 18 in which the integrity of the encrypted authorization is verified on the token prior to decryption.
29. A system as claimed in claim 18 in which the device and the token are arranged to perform cryptographic mutual authentication before transmission of the encrypted authorization.
30. A system as claimed in claim 18 in which the token sends the unlock response only on positive confirmation by the user, for example by pressing a button on the token.