Abstract:
There is disclosed a security token for use in a transaction execution system, the security token being connectable to a user interface device and to a host device, the security token being arranged to: receive a transaction verification input from the user interface device; process the transaction verification input and generate a corresponding transaction verification result; transmit the transaction verification result to the host device, and the security token comprising a secure element which is arranged to facilitate processing of the transaction verification input. Furthermore, a method for executing a transaction using a security token is disclosed, as well as a corresponding computer program product.

Description:
FIELD 
       [0001]    The present disclosure relates to a security token for use in a transaction execution system. Furthermore, the present disclosure relates to a method for executing a transaction using a security token, and to a corresponding computer program product. 
       BACKGROUND 
       [0002]    Today, security plays an important role when carrying out transactions. Many of the currently available services that require security measures to protect user accounts, data and online transactions use secure-element-based hardware tokens. These tokens typically consist of a secure element attached to a secure or trusted user interface (UI) that incorporates a simple display and a keypad. Furthermore, these tokens typically comprise a battery that is used to provide energy for operating the other components of the tokens. Well-known examples of such tokens are the so-called RSA tokens (such as RSA SecureID® tokens) that are, amongst others, used to setup a Virtual Private Network (VPN) connection. The trusted UI allows a user to securely confirm transactions by letting him or her visually verify transaction data and confirm that a transaction should proceed by pressing a button or by entering a Personal Identification Number (PIN) or a password. Such UI elements increase the size of the token and they add cost to the bill-of-material for the token. 
       SUMMARY 
       [0003]    There is disclosed a security token for use in a transaction execution system, the security token being connectable to a user interface device and to a host device, the security token being arranged to: receive a transaction verification input from the user interface device; process the transaction verification input and generate a corresponding transaction verification result; transmit the transaction verification result to the host device, and the security token comprising a secure element which is arranged to facilitate processing of the transaction verification input. 
         [0004]    According to an illustrative embodiment, the security token further comprises a secure element being arranged to facilitate processing the transaction verification input, wherein said processing comprises comparing the transaction verification input with a reference value stored in the secure element. 
         [0005]    According to a further illustrative embodiment, the secure element is further arranged to execute at least a part of an authentication process between the host device and the security token. 
         [0006]    According to a further illustrative embodiment, the secure element is further arranged to execute at least a part of an authentication process between the user interface device and the security token. 
         [0007]    According to a further illustrative embodiment, the transaction verification result comprises a digital signature or a message authentication code. 
         [0008]    According to a further illustrative embodiment, the transaction verification result comprises a response to a cryptographic challenge. 
         [0009]    According to a further illustrative embodiment, the security token is connectable to the user interface device through an NFC interface. 
         [0010]    According to a further illustrative embodiment, the security token is connectable to the host device through a USB interface. 
         [0011]    According to a further illustrative embodiment, the transaction verification input comprises at least one of: a user confirmation by touch or click; a password entry; a PIN entry; a biometric feature; an entry of patterns or gestures drawn on a screen; a shaking pattern sensed by an accelerometer. 
         [0012]    According to a further illustrative embodiment, the security token is integrated into a wearable device. 
         [0013]    According to a further illustrative embodiment, a transaction execution system comprises a security token of the kind set forth, a host device and a user interface device. 
         [0014]    According to a further illustrative embodiment, the host device is connectable to a cloud service. 
         [0015]    According to a further illustrative embodiment, the user interface device is an NFC-enabled mobile device. 
         [0016]    Furthermore, there is disclosed a method for executing a transaction using a security token, the security token comprising a secure element and being connectable to a user interface device and to a host device, and the method comprising: the security token receives a transaction verification input from the user interface device; the security token processes the transaction verification input and generates a corresponding transaction verification result; the security token transmits the transaction verification result to the host device; the secure element facilitates processing of the transaction verification input. 
         [0017]    Furthermore, there is disclosed a computer program product comprising instructions which, when being executed by a processing unit comprised in a security token, carry out or control steps of a method of the kind set forth. 
     
    
     
       DESCRIPTION OF DRAWINGS 
         [0018]    Embodiments will be described in more detail with reference to the appended drawings, in which: 
           [0019]      FIG. 1  shows an illustrative embodiment of a transaction execution system; 
           [0020]      FIG. 2  shows an illustrative embodiment of a transaction execution method. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0021]    In accordance with the present disclosure, a security token is provided that receives and processes a transaction verification input from an external user interface device, such as a smart phone. The security token may take the form of a secure hardware token. The token further sends a corresponding transaction verification result to a host device to which the token may be connected. In an illustrative implementation, the token may comprise a secure element interfacing to a host device via a USB connection and to a mobile phone via NFC. A user may visually verify transaction data and enter for example a PIN or password securely through a mobile phone, which, in accordance with the present disclosure, may act as the token&#39;s Trusted UI companion device. 
         [0022]    Thus, the security token does not need to be equipped with a rich user interface. That is to say, the functionality of the token may be reduced to security functions, for example. The token may receive the transaction verification input (for example the PIN or the password) via a wireless or contactless communication interface, which increases the user convenience. If the contactless interface comprises an NFC interface, a relatively high level of security may be achieved due to the fact that the NFC connection is inherently limited to relatively small operating distances. Since the security token no longer requires an embedded user interface, it may easily be integrated into other devices worn by a user, such as a watch or jewelry. Furthermore, the user interface may be richer than the user interfaces of conventional, stand-alone tokens, such as RSA hardware tokens or Yubico® keys. Generally speaking, the presently disclosed token may have a smaller form factor, a lower cost price and an increased reliability compared to conventional tokens. 
         [0023]      FIG. 1  shows an illustrative embodiment of a transaction execution system. The transaction execution system  100  comprises a security token  102 , a mobile phone  110  and a host device  112 . The security token  102  may comprise a secure element  104 , an NFC antenna  106  for connecting the token  102  to the mobile phone  110 , and a USB connector  108  for connecting the token  102  to the host device  112 . The secure element may be implemented as an embedded chip, more specifically as a tamper-resistant integrated circuit with (pre-) installed smart-card-grade applications, for instance payment applications, which have a prescribed functionality and a prescribed level of security. For example, the secure element may be an integrated circuit of the so-called SmartMX™ or SmartMX2™ series of ICs produced by NXP Semiconductors. In operation, the token  102  receives transaction verification input from the mobile phone  110  through the NFC antenna  106 . The mobile phone  110  may have captured said transaction verification input via a rich UI. Since the mobile phone  110  may be equipped with a relatively sophisticated user interface, biometric features may also be captured and provided as transaction verification input to the token  102 . The token  102  processes the transaction verification input and generates a corresponding transaction verification result. In accordance with the present disclosure, the secure element  104  may be arranged to facilitate processing of the transaction verification input, for example by keeping a reference value with which the transaction verification input may be compared in order to generate a corresponding transaction verification result. Subsequently, the token  102  sends the transaction verification result to the host device  112  through the USB connector  108 . A USB connection provides a convenient communication channel. Alternatively, the token  102  may be connected to the host device  112  by means of other communication technologies, such as Wi-Fi® and Bluetooth®. 
         [0024]      FIG. 2  shows an illustrative embodiment of a transaction execution method. The transaction execution method  200  comprises the following steps. An authentication process may be executed S 1  between a hardware token (i.e. the security token) and a device connected to a cloud service (i.e. the host device), thereby further increasing the security. This authentication process is preferably a mutual authentication process. For example, in this authentication process cryptographic keys (session keys) may be generated that may be used to authenticate and/or encrypt data to be exchanged with the security token. 
         [0025]    Furthermore, for example after a positive authentication result, the host device may send S 2  an authenticated and/or encrypted transaction signing request to the security token. Furthermore, the security token may verify and/or decrypt the request and initiate S 3  a transaction data processing function. Furthermore, an authentication process may be executed S 4  between the security token and the mobile phone, thereby further increasing the security. Again, this authentication process is preferably a mutual authentication process. For example, in this authentication process cryptographic keys (session keys) may be generated that may be used to authenticate and/or encrypt data to be exchanged with the mobile phone. 
         [0026]    Furthermore, for example after a positive authentication result, the security token may send S 5  an authenticated and/or encrypted verification request to the mobile phone. Furthermore, the mobile phone may decrypt the request and perform a user verification function S 6 , which comprises capturing the transaction verification input through a user interface of the mobile phone. For example, transaction data (e.g. the bank account number, total transaction sum) may be displayed to the user with a request to approve this by pressing a button on the phone&#39;s screen. 
         [0027]    Furthermore, the mobile phone may send S 7  a captured transaction verification input to the security token. The transaction verification input may be transmitted in authenticated and/or encrypted form. For example, the transaction verification input may be authenticated (via a MAC or digital signature) and/or encrypted with the session keys generated in step S 4 . 
         [0028]    Furthermore, the security token may verify the authenticated transaction verification input (e.g. by verifying said MAC or digital signature) and/or decrypt the transaction verification input. Furthermore, it may verify whether the input is valid by comparing it to a reference value stored in its secure element, for example, in order to generate S 8  a corresponding transaction verification result. The input may, for example, be verified by means of an algorithm that takes into account a characteristic of the phone with which the token is paired. That is to say, the phone may already have been paired with the token in a pairing step (not shown), such that the token will only respond to a single phone (paired one). The verification may then also involve verification against data obtained during said pairing and stored in the token&#39;s secure element. As an example, the phone&#39;s unique identifier—i.e. the International Mobile Equipment Identity (IMEI)—may be used for this purpose. The verification may involve a verification of a combined value, for instance the IMEI combined with user input (e.g. a PIN). 
         [0029]    The transaction verification result may for example take the form of a digital signature, which provides an efficient yet secure way to convey it to the host device. The digital signature may be appended to the transaction data received from the host device in step S 2 . Next, the transaction data including the digital signature may be sent S 9  to the host device in order to confirm that the transaction may proceed. These signed transaction data may be sent to the host device in encrypted form, using the session keys generated in step S 1 , for example. The signature itself may be regarded as the actual confirmation that the verification succeeded. If the signature is correct, the transaction should be executed; if the signature cannot be validated, the transaction must not be executed. In a typical implementation, the signature may be a digital signature over at least a part of the transaction data and the private key used to create the signature may be stored securely in the hardware token. The cloud service may validate the digital signature if it possesses the public key of the token. As an alternative to a digital signature, a message authentication code (MAC) may be used for conveying a positive verification result to the host device. A MAC is the equivalent of a digital signature in symmetric cryptographic systems. 
         [0030]    Alternatively or in addition, the transaction verification result comprises a response to a cryptographic challenge provided by the host device. In that case, the token may use the transaction verification input for generating said response. This may be implemented as follows. The hardware token may—if the user confirms the transaction via the mobile phone, perform a cryptographic operation on the challenge sent by the cloud service (using a key stored in the token) and send the result back to the cloud service. The cryptographic operation may comprise the calculation of a digital signature or a MAC, created over the challenge, which may optionally be augmented or extended with at least a part of the transaction data and/or at least a part of the user input received from the phone. 
         [0031]    A transaction execution method of the kind set forth may, for example, be applied in the following practical scenario. In this practical, illustrative scenario, the device connected to the cloud service may be a personal computer (PC) and the cloud service may be a banking website running on a server owned by a bank. The security token may, for example, be an e-reader device with an embedded banking card, e.g. a secure element that emulates a banking card. The security token may be connected to the PC via USB. In this scenario, the user prepares a money transfer from one bank account to another via the bank&#39;s website. To confirm the transaction, the website sends a transaction signing request to the PC&#39;s web browser which redirects it to the security token. This signing request may contain some information on the money transfer (bank account, how much money to transfer etc.). The security token forwards a part of the request to the phone. The phone then asks the user to confirm the transaction. For this purpose, it may for example display information on the actual transfer (bank account, how much money to transfer etc.) and ask the user to verify this information. The user may confirm by simply pressing a button or by entering for example a password or PIN code. The user confirmation may then be sent to the security token, which verifies the user confirmation (e.g. PIN) and if the verification has a positive result, it will cryptographically sign the transaction and send the result to the cloud service (banking website). 
         [0032]    It will be appreciated that the mobile phone may comprise a secure element as well; this secure element may be used to execute a part of the authentication processes, in collaboration with the secure element of the token. Furthermore, cryptographic keys and other sensitive data that should be available to the mobile phone for performing the above-described functions may be stored securely in the secure element of the mobile phone. 
         [0033]    It is noted that the drawings are schematic. In different drawings, similar or identical elements are provided with the same reference signs. Furthermore, it is noted that in an effort to provide a concise description of the illustrative embodiments, implementation details which fall into the customary practice of the skilled person may not have been described. It should be appreciated that in the development of any such implementation, as in any engineering or design project, numerous implementation-specific decisions must be made in order to achieve the developers&#39; specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming,  but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill. Finally, it is noted that the skilled person will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference sign placed between parentheses shall not be construed as limiting the claim. The word “comprise(s)” or “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. Measures recited in the claims may be implemented by means of hardware comprising several distinct elements and/or by means of a suitably programmed processor. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. 
       LIST OF REFERENCE SIGNS 
       [0000]    
       
           100  transaction execution system 
           102  security token 
           104  secure element 
           106  NFC antenna 
           108  USB connector 
           110  user interface device 
           112  host device 
           200  transaction execution method 
         S 1  authentication process 
         S 2  send transaction request 
         S 3  transaction data processing 
         S 4  authentication process 
         S 5  send verification request 
         S 6  capture verification input 
         S 7  send verification input 
         S 8  verify input and sign transaction 
         S 9  send signed transaction