Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR IDENTITY BASED TICKETING
Document Type and Number:
WIPO Patent Application WO/2012/140308
Kind Code:
A1
Abstract:
A method, apparatus, system and computer program where an apparatus stores user specific credentials, receives a certificate via the communication interface from a certificate authority and stores the certificate in the memory. The apparatus further stores a private key and a public key in the memory and attempts authenticating of the apparatus to a ticket reader for accessing a service, by transmission of one or more messages, wherein the messages contain an authenticator that has at least one of the following: the certificate or its cryptographic derivative; one or more data items contained by the certificate or a cryptographic derivative thereof. The messages are prepared such that the public key is not recoverable from outside of the authenticator.

Inventors:
TAMRAKAR SANDEEP (FI)
EKBERG JAN-ERIK (FI)
VIRTANEN JUKKA (FI)
ASOKAN NADARAJAH (FI)
Application Number:
PCT/FI2011/050324
Publication Date:
October 18, 2012
Filing Date:
April 13, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA CORP (FI)
TAMRAKAR SANDEEP (FI)
EKBERG JAN-ERIK (FI)
VIRTANEN JUKKA (FI)
ASOKAN NADARAJAH (FI)
International Classes:
G07F7/12; G06F21/20; G06K7/00; G06Q20/40; G07B15/00
Domestic Patent References:
WO2006012538A22006-02-02
Foreign References:
US20050156026A12005-07-21
US20080155257A12008-06-26
Other References:
DOMINIKUS S ET AL.: "ADVANCED INFORMATION NETWORKING AND APPLICATIONS WORKSHOPS, 2007, AINAW'07. 21ST INTERNATIONAL CONFERENCE", 21 May 2007, IEEE, article "mCoupons: An Application for Near Field Communication (NFC", pages: 421 - 428
JOERI DE RUITER ET AL.: "THEORY OF SECURITY AND APPLICATIONS", 31 March 2011, SPRINGER, article "Formal Analysis of the EMV Protocol Suite", pages: 113 129
See also references of EP 2697786A4
Attorney, Agent or Firm:
ESPATENT OY (Helsinki, FI)
Download PDF:
Claims:
An apparatus, comprising:

a communication interface;

memory configured to store user specific credentials; and a cryptographic processing circuitry;

wherein the cryptographic processing circuitry is configured to:

receive a certificate via the com m u nication interface from a certificate authority;

cause storing of the certificate in the memory;

cause storing of a private key and a public key in the memory;

cause attempting of authenticating of the apparatus to a ticket reader for accessing a service, by transmission of one or more messages, wherein the messages contain an authenticator that comprises at least one of the following:

the certifi cate or a cryptog raph ic derivative thereof; and

one or more data items contained by the certificate or a cryptographic derivative thereof; wherein the cryptographic processi ng circuitry is further configured to prepare said messages such that the public key is not recoverable from outside of the authenticator.

The apparatus of claim 1 , further comprising a general processor configured to control basic operations of the apparatus and wherein the cryptographic processing circuitry is further configured to function as a trusted execution environment that is operationally separated from the general processor.

The apparatus of claim 2, wherein the apparatus further comprises interface that is controlled by the general processor.

4. The apparatus of any of the preceding claims, wherein the cryptographic processing circuitry is further configured to receive a challenge from the ticket reader and to responsively compute a signed response.

5. The apparatus of claim 4, wherein the cryptographic processing circuitry is further configured to cause, responsive to receiving of the challenge, sending a previously compute a signed response that was computed based on a previously received challenge.

6. The apparatus of any of the preceding claims, wherein the certificate has been generated in a process comprising computing a cryptographic hash from source data comprising at least: an indication of the identity of the user; an expiry field; and the public key;

7. The apparatus of claim 6, the process further comprising shrinking of the cryptographic hash.

8. The apparatus of claim 6 or 7, the process further comprising combining the cryptographic hash with the source so that a shrunk and combined hash results.

9. The apparatus of any one of claims 6 to 8, the process further comprising dividing the shrunk and combined hash into a first part and a second part.

10. The apparatus of any one of claims 6 to 9, the process further comprising performing private key exponentiation with the first part resulti ng in an encrypted first part.

1 1 . The apparatus of any one of claims 6 to 10, the process further comprising performing separate encryption on the second part resulting in an encrypted second part.

12. The apparatus of any one of claims 6 to 1 1 , the process further comprising combining the encrypted first part and the encrypted second part.

13. The apparatus of any of the preceding claims, wherein:

the cryptographic processing circuitry is further configured to generate the authenticator using: the public key of the certificate authority and the private key of the apparatus.

14. The apparatus of claim 13, wherein:

the cryptographic processing circuitry is further configured to use, for generation of the authenticator, at least one of the following: the identity of the apparatus; the time when the certificate authority has generated the certificate for the apparatus; and a challenge that has been previously received from a ticket reader.

15. The apparatus of any of the preceding claims, wherein the authenticator is a message authentication code generated by the cryptographic processing circuitry.

16. The apparatus of claim 15, wherein the cryptographic processing circuitry is further configured to generate a new message authenticator based on a challenge that is previously received from a ticket reader and maintain in the memory said new message authenticator and the challenge.

17. The apparatus of any one of the preceding claims, wherein the cryptographic processing circuitry is further configured to cryptograph ically hash a dynamically changing authentication item a given number of times for subsequent verification by the reader.

18. The apparatus of claim 17, wherein the dynamically changing authentication item is an item that has been encrypted by the certificate authority into the certificate and communicated to the apparatus..

19. The apparatus of claim 17 or 18, wherein the hashed authentication item is, for the reader, the sole source of verifying of authenticity of the apparatus.

20. An apparatus, comprising:

memory configured to store a public key of a certificate authority;

a communication interface configured to exchange messages with a user device;

a processor configured to:

cause an authenticating session with the user device for authenticating using of a service by the user device;

rece ive from th e use r devi ce on e o r m o re messages using the communication interface, wherein the messages contain an authenticator that comprises at least one of the following:

the certifi cate or a cryptog raph ic derivative thereof; and

one or more data items contained by the certificate the certificate or a cryptographic derivative thereof;

wherein the messages contain no public key of the user device recoverable from outside of the authenticator.

21 .The apparatus of claim 20, wherein the processor is further configured to:

maintain in the memory a blacklist of user identities;

compare the user identity with the blacklist; and reject access of the user device to the service if the user identity belongs to the blacklist.

22. The apparatus of claim 21 , wherein the processor is further configured to: maintain in the memory an encryption key of the certificate authority;

decrypt a user identity from a message received from the user device with the encryption key of the certificate authority.

23. The apparatus of claim 21 or 22, wherein the processor is further configured to check whether the user device has sent the identity of the apparatus in a list of one or more apparatuses with which the user device has established an authentication session, and if yes, to allow access to the service.

24. The apparatus of claim 23, wherein the processor is further configured to send a new challenge to the user device and to verify a new response to the new challenge from the user device if the identity of the apparatus is not in the list.

25. An apparatus, comprising:

memory configured to store a public key and a private key of a certificate authority;

a communication interface configured to exchange messages with a user device;

a processor configured to:

cause receiving of a publ ic key from the user device over the communication interface;

associate an identity with the user device;

generate a certificate for the user device, for authenticating using of a service by the user device, such that the certificate will fit into a private key of a ticket reader, so that in the messaging with the ticket reader, the user device will be rel ieved of providi ng its publ ic key so that it would be recoverable from outside of the certificate.

26. The apparatus of claim 25, wherein the processor is configured to perform, on generating of the certificate, one or more of the following operations:

computing a cryptographic hash from source data comprising at least: an indication of the identity of the user device; an expiry field; and the public key;

shrinking the cryptographic hash;

combining the cryptographic has with the source so that a shrunk and combined hash results;

dividing the shrunk and combined hash into a first part and a second part;

performing private key exponentiation with the first part resulting in an encrypted first part;

performing separate encryption on the second part resulting in an encrypted second part; and

combining the encrypted first part and the encrypted second part.

27. A method in an apparatus, comprising:

storing user specific credentials; and

receive a certificate via the communication interface from a certificate authority;

storing the certificate in the memory;

storing a private key and a public key in the memory;

attempting authenticating of the apparatus to a ticket reader for accessing a service, by transmission of one or more messages, wherein the messages contain an authenticator that comprises at least one of the following:

the certificate or a cryptographic derivative thereof; and

one or more data items contained by the certificate or a cryptographic derivative thereof; the method further comprising preparing said messages such that the public key is not recoverable from outside of the authenticator.

28. A method in an apparatus, comprising:

storing a public key of a certificate authority;

exchanging messages with a user device;

performing an authenticating session with the user device for authenticating using of a service by the user device;

receiving from the user device one or more messages using the communication interface, wherein the messages contain an authenticator that comprises at least one of the following:

the certificate or a cryptographic derivative thereof; and

one or more data items contained by the certificate the certificate or a cryptographic derivative thereof;

wherein the messages contain no public key of the user device recoverable from outside of the authenticator.

29. A method in an apparatus, comprising:

storing a public key and a private key of a certificate authority; exchanging messages with a user device;

receiving a public key from the user device;

associating an identity with the user device;

generating a certificate for the user device, for authenticating using of a service by the user device, such that the certificate will fit into a private key of a ticket reader, so that in the messaging with the ticket reader, the user device will be relieved of providing its public key so that it would be recoverable from outside of the certificate.

30. A computer program, comprising code for performing a method according to any of the claims 27 to 29 when the computer program is run on a processor. The computer program according to claim 30, wherein the computer program is a computer program product comprising a computer-readable medium bearing computer program code embodied therein for use with a computer.

Description:
METHOD AND APPARATUS FOR IDENTITY BASED TICKETING

TECHNICAL FIELD

[0001] The present application generally relates to identity based ticketing.

BACKGROUND

[0002] Access to some transport systems is controlled using near-field communication (NFC) based chip cards used by passengers and reader devices that are mounted at entrances and/or exits. Some metro systems have automatic gates that open when a chip card is validated. In identity based systems, user identities are stored and associated with respective user accounts and electric tickets. The use of public transport is charged from the respective user account when use of the electric tickets at the gates is observed.

[0003] In identity based systems, the user identities are not used as such as a ticket so as to mitigate the risk of identity theft by someone who might electrically eavesdrop communications between readers and electric tickets. Instead, electric tickets are produced such that the user identity is not derivable from the electric ticket.

[0004] There are various techniques to validate the electric tickets. At simplest, the ticket is sent by a chip card to a reader that passes the ticket to an authentication server. The authentication server checks that the ticket is valid, informs the reader of the validity of the ticket, and changes records such that the ticket in question is no longer valid. In some more sophisticated systems, there is a prior step of the reader authenticating itself to the chip card so as to avoid a man-in-the-middle attack in which some other devices imitates the reader and steals the ticket e.g. when in proximity of an NFC chip card. While such a theft would require proximity with the NFC chip card, rush hours in metro trains provides plenty of opportunities for close contacts with others' NFC chip cards.

[0005] In some NFC chip card identity based ticketing systems, the chip card authenticates itself to the reader by communications over NFC interfaces, using standardized cryptographic techniques such as public key infrastructure (PKI ), challenges, responses, common time references and one-directional hashing. SUMMARY

[0006] Various aspects of examples of the invention are set out in the claims.

[0007] According to a first example aspect of the present invention, there is provided an apparatus defined in claim 1.

[0008] According to a second example aspect of the present invention, there is provided an apparatus defined in claim 20.

[0009] According to a third example aspect of the present invention, there is provided an apparatus defined in claim 25.

[0010] According to a fourth example aspect of the present invention, there is provided a method defined in claim 27.

[0011] According to a fifth example aspect of the present invention, there is provided an apparatus defined in claim 28.

[0012] According to a sixth example aspect of the present invention, there is provided an apparatus defined in claim 29.

[0013] According to a seventh example aspect of the present invention, there is provided a computer program defined in claim 30.

[0014] According to a seventh example aspect of the present invention, there is provided a computer program defined in claim 31.

[0015] According to an eighth example aspect of the present invention, there is provided a system comprising at least one apparatus of the first, second and third example aspects and/or a computer program of the seventh or eighth example aspect of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] For a more complete understanding of example embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:

[0017] Fig. 1 shows an architectural overview of a system of an example embodiment of the invention;

[0018] Fig. 2 shows a block diagram of an apparatus suited for operation as different entities according to some example embodiments; [0019] Fig. 3 illustrates some operations according to one example embodiment e.g. in connection with a first main example;

[0020] Fig. 4 illustrates some operations according to another example embodiment e.g. in connection with a second main example; and

[0021] Fig. 5 illustrates some operations according to yet another example embodiment e.g. in connection with a third main example.

DETAILED DESCRIPTON OF THE DRAWINGS

[0022] An example embodiment of the present invention and its potential advantages are understood by referring to Figs. 1 through 5 of the attached drawings.

[0023] Fig. 1 shows an architectural overview of a system 100 suited for performing some example embodiments. The system 100 comprises a user device (referred to as D) 1 10 such as a smart phone and a reader (referred to as S) 120. The D 1 10 has at least intermittently access to an authentication server (referred to as C) 130, such as a server cluster or cloud. The S 120 has at least intermittently access to a backend system (referred to as T) 140.

[0024] The user device or the D 1 10 is, for instance, a portable device such as a mobile phone, a portable gaming device, a chip card ticket, a navigator, a personal digital assistant, a tablet computer or a portable web browser. The D generally has capabilities for processing information (to perform cryptographic operations) and for communicating with other entities (with the C 130 and with the S 120) at least intermittently when in contactless or contacting access with other entities or with a related communication element.

[0025] The D 1 10 has a cryptographic processing circuitry such as an isolated Trusted Execution Environment (TEE) 1 1 1 for cryptographic operations, a communication interface 1 12 such as a near field communication (NFC), near field communication (NFC) interface driver 1 13, a Logical Link Control Protocol (LLCP) stack 1 14, a credential manager CM 1 15 (that is an interface by which operating system and/or applications can interact with the logic running inside the TEE), and a public transport application 1 16. In some embodiments, the TEE 1 1 1 is isolated as a logically separate function using common hardware circuitries. In other embodiments some or all logical elements of the TEE are implemented with dedicated hardware elements.

[0026] The D 1 10 further comprises, in some embodiments, a user interface, a mobile communication circuitry, an application platform for enabling user installation of applications, and/or a battery for powering the apparatus. In some embodiments, the D 1 10 is externally powered when used, e.g. with electromagnetic induction or with galvanic contacts.

[0027] The S 120 comprises a communication interface such as a near field communication interface 122, a Logical Link Control Protocol (LLCP) stack 124, an engine 126 that is a processing circuitry for controlling various authentication operations, and a memory 128 that comprises various data needed by the S 120 for its operations, including e.g. the public authentication key PKC 1284 of the C 130 and a blacklist 1282 of user devices that have certificates granted by the C 130 that are not yet expired but that should no more be used for granting access to service by the ticket readers i.e. by the S 120.

[0028] The S 120 is in some embodiments a fixedly installed device at a gate of a public transport system. In some other embodiments, the S is built into a portable device e.g. for use by ticket inspecting personnel.

[0029] The transport backend system T 140 is, in some embodiments, a server that is operated by a service provider and that has communication capabilities for exchanging information with the C 130 and with the S 120. The T 140 of Fig. 1 further comprises a rating engine 142 that is configured to define charging rates for the use of the services of the service provider.

[0030] In an example embodiment, the near field communications interface 1 12 interfaces as provided by currently available hardware and various messages are size optimized. Data transaction between the D 1 10 and the S 120 (e.g. at transport station gates) is performed using Logical Link Control Protocol (LLCP) over NFC peer-to-peer communication mode. This embodiment enables using link layer transport service classes, such as connectionless data transmission and connection-oriented data transmission, rather than limiting us to the existing NFC card emulation mode, its predefined data and message structures. [0031] Fig. 2 shows a block diagram of an apparatus 200 suited for operation as different entities according to some example embodiments. The apparatus 200 comprises a communication interface module 250, optionally the TEE 1 11 (if the apparatus is operating as the D 1 10), a processor 210 coupled to the communication interface module 250, and a memory 220 coupled to the processor 210. The apparatus further comprises software 230 stored in the memory 220 and operable to be loaded into and executed in the processor 210. In an example embodiment, the software 230 comprises one or more software modules. The software 230 can be in the form of a computer program product that is software stored in a (non-transitory) computer readable memory medium.

[0032] The communication interface module 250 is configured to exchange information over one or more local links and/or over one or more other data links such as telecommunication or data network links. The local links are implemented in some example embodiments as wired and/or wireless links. In one embodiment, the communication interface module 250 further implements telecommunication links suited for establishing links with other users or for data transfer (e.g. using the Internet). Such telecommunication links are, for instance, links using any of: wireless local area network links, Bluetooth, ultra-wideband, cellular or satellite communication links. In one embodiment, the communication interface module 250 is integrated into the apparatus 200 or into an adapter, card or the like (that in one embodiment is inserted into a suitable slot or port of the apparatus 200). While Fig. 2 shows one communication interface module 250, the apparatus 200 comprises in one embodiment a plurality of communication interface modules 250.

[0033] The processor 210 is, e.g., a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a graphics processing unit, an application specific integrated circuit (ASIC), a field programmable gate array, a micro apparatus 200 or a combination of such elements. Figure 2 shows one processor 210. In some embodiments, the apparatus 200 comprises a plurality of processors.

[0034] The memory 220 is, for example, a volatile or a non-volatile memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), a random-access memory (RAM), a flash memory, a data disk, an optical storage, a magnetic storage, a smart card, or the like. The apparatus 200 comprise one or more memories. The memory 220 is constructed as a part of the apparatus 200 in one embodiment. In another embodiment, the memory 220 is inserted into a slot, or connected via a port, or the like of the apparatus 200. In one embodiment, the memory 220 serves the sole purpose of storing data. In an alternative embodiment, the memory 220 is constructed as a part of an apparatus serving other purposes, such as processing data.

[0035] The TEE 11 1 comprises, in one embodiment, similar components as depicted in Fig. 2 with reference signs 210 to 240, i.e. a processor and different memories and software. Further, the TEE comprises an internal communication interface for exchanging information between other parts of the apparatus 200 (e.g. with the processor 210 and optionally also or alternatively with the memory 220 of the apparatus 200).

[0036] Some envisioned operations of the system 100 of Fig. 1 are next described on a high conceptual level. In this description, it is assumed that the C 130 and the T 140 can be managed by independent parties such as identity based ticket provider and service provider (e.g. transport operator) who renders actual services that are consumed by users in the system 100. The D 1 10 has an a-priori relationship with the C 130. As a part of this relationship, the D 130 can uniquely authenticate the D 110 and even messages originating from or destined to the TEE 11 1. For the purpose of identity based ticketing, the TEE 1 1 1 of the device generates a new Rivest, Shamir and Adieman (RSA) key pair, the private part of which never leaves the TEE 1 1 1. The public component is sent to the C 130, where it is certified for use in the ticketing context. The certificate also contains a "customer ID" for use in the by a service provider such as transport authority. A certificate is then returned by the C 130 to the D 1 10. The transport operator's gates are equipped with necessary algorithms along with the public component of the server key which is required to validate the afore-mentioned certificate. Now, when the C 130 is "tapped" or brought into proximity of the S 120 at the transport operator's entry gate, the necessary data transaction between the D 1 10 and the S 120 occurs along with the transmission of the identity certificate. [0037] In some embodiments, after receiving necessary information, the S 120 not only validates the certificate as being signed by the correct authority but also validates the identity of the user against a blacklist. The S 120 may also validate other data depending on the protocol used before allowing any access to enter. The transaction evidence, i.e. the certificates, identity and other necessary information is collected along with other context related to the transport. The transactions will, in some embodiments, be further fed to the rating engine 142 and finally provided to the C 130.

[0038] Blacklisting of identities is used in some embodiments for blocking the use of the D 1 10 e.g. that the certificate of the D1 10 has not yet expired, but the respective account or service usage right has exhausted.

[0039] Accounting and Certificate Authority (C)

[0040] The C 130 represents an authority that issues identity certificates to user devices (D 1 10) and also maintains billing information. In addition to this, the C 130 is also the entity responsible for clearing the transaction and maintaining a blacklist for devices or users that do not full-fill their monetary obligations. In other to generate device certificates, the C 130 requires a signing facility with a service private key (SKC) and the C 130 must provide a corresponding public key (PKC) to its relying parties for verification. In some embodiments, the C 130 is a server computer or a cluster of server computers. The C 130 comprises a communication interface configured to exchange information with various other entities such as the D 1 10, the S 120 and / or the T 140.

[0041] User Device (D 1 10)

[0042] The D 110 is, for instance, an NFC integrated Smartphone that will be cryptographically associated with a given account holder in the C 130. The D 1 10 contains a secure, isolated trusted execution environment (TEE) for processing confidential data. In identity based ticketing the TEE 1 1 1 is, in some embodiments, a hardware-rooted functionality for producing signatures with a key generated in the very same TEE 1 1 1. Each D 1 10 representing a user will be associated with a customer or transport identity (IDD), assigned by the C 130. The format of the IDD is in agreement with or accepted by the service provider (e.g. transport authority). For the purpose of the identity based protocol, the TEE 1 1 1 also generates and holds a unique pair of PKI keys: a device private key (SKD) and device public key (PKD). For the public key, the C 130 provisions to the TEE 1 1 1 user identity certificates (CertD) on a regular basis. The certificate holds information such as PKD, IDD and expiry time (Texp).

[0043] Ticket Readers (S)

[0044] The S 120 is the representation of readers attached to the transport stations' entry and exit gates. To authenticate responses from the D 1 10, each ticket reader S 120 needs access to PKC that is the public key of the accounting authority C 130. The readers S 120 also contain an interface for continually updating their copies of the blacklist that is used for validation of user identities. Reader S 120 gathers all the information collected from every data transaction session between the D 1 10 and the S 120. This gathered information is sent to the transport system's backend server T 140 immediately after the completion of a data transaction session between the D 1 10 and the S 120. These data are later used as an evidence of transport service usages by the corresponding user IDD. For the purpose of one embodiment of this identity based ticketing, the reader S 120 need not authenticate to the D 1 10, and thus the S 120 needs no unique identity. In some other embodiments, each reader posses an identity (that is e.g. unique or shared such as a station-wide identity). Additionally, the identity of the S 120 is associated with appropriate keys for authentication.

[0045] Backend Server (T)

[0046] The T 140 is the representation of backend processing system of the transport authority. This system is responsible for providing the transport services; in the context of the ticketing scheme it operates the readers and gates as well as possible ticket verification while the user is in the transport system. One specific task of the T infrastructure is to provide the charging rating for the transport (e.g. charging rate on different time of day and weekdays), as well as querying (authorizing) the D 1 10 from the C 130 as the D 1 10 first appears into the system 100. The T 140 also collects the session information received from the D 1 10 and presents the session information to the C 130 as evidence of the transport service usage by the corresponding user (with identity IDD). The data transaction between the backend server T 140 and the C 130 may not be synchronous with the data transaction between D and S. However, the T 140 may request the C 130 for the authentication of the identity IDD of the D 1 10 immediately after the corresponding D 1 10 uses the service (transport facility in this example).

[0047] In some example embodiments, all or some of the functions of the backend server T 140 and of the C 130 are consolidated into either one of these two servers or to another server (not shown in Fig. 1 ). The separation of the operations of the C 130 and of the T 140 can be used to provide a ticketing infrastructure that is usable by one or more different service providers that do not want to interoperate in their charging or cannot do so (for instance to comply with competition laws).

[0048] In one example aspect of this document there is provided a method for identity based authentication with abbreviated authentication signaling between the D 1 10 and the S 120. In the following, three main examples are described for further description of various embodiments.

[0049] First main example - certificate exchange optimization

[0050] A device certificate Cert_D is constructed by the C 130 as follows:

a) h = hash (ID_D | expiry_time | PK_D), wherein character "|" stands for concatenation of strings;

b) Concatenate h, ID_D, expiry_time, and as many bits of PK_D as can fit into the block size of PK_S, this section of PK_D being referred to as parti . The remaining section of PK_D is referred to as part2 and thus PK_D can be represented as parti | part2;

c) Format the data string "h|ID_D|expirty_time|part1 " as required by message encoding scheme for public key signatures with message recovery, such as Public-Key Cryptography Standards (PKCS), published by RSA Laboratories (e.g. PKCS #1 , v1.5). Apply the RSA private key transformation to this data string using private key SK_C. The result is denoted as sigl ;

d) Apply an encryption scheme applied by the D 1 10 and the S 120 (e.g., Advanced Encryption Standard (AES) in counter mode) to part2 using h or its derivative being used as the encryption key. The result of the encryption is referred to as sig2;

e) Cert_D = sig1 |sig2 [0051] The D 1 10 also receives a challenge from the S 120 and provides a signed response to the S 120. The signed response is, in some embodiments, computed on a previous challenge, in which case the S 120 or the T 140 will verify that the signed response is validly generated based on the previous challenge and the private key of the D 1 10. The signed response is based on the challenge (present or previous) and on the identity (IDD) of the D 1 10.

[0052] In the identity verification protocol, PK_D is omitted. The S 120 will verify the certificate by applying the RSA public key transformation to sigl using PK_S, thereby recovering the data string used in step c) above. The S 120 then uses h to decrypt sig2. Now the S 120 can reconstruct PK_D and hence verify the signature sent by D.

[0053] Let us review this first main example from the point of view of the accounting entity, the C 130. The C 130 is to manage the identity of the user. This is done by binding the Id of the D 1 10 to public-key cryptography. The C 130 generates a certificate for an Id that binds that Id to a public key. The public/private key pair is generated inside the TEE 1 1 1 , and conceptually the private key never leaves that environment. The TEE that is used initially is e.g. an ARM TrustZone environment that is provided by an application processor of the D 1 10 (such as an OnBoard Credentials architecture available in Symbian phones that have NFC capabilities).

[0054] For minimizing authentication traffic (which has a dominant time impact on protocols at 106kbps commonly used in prevailing NFC implementations), the identity certificates generated by the C 130 are minimized for size. In the following detailed description we assume that we use the RSA algorithm with 1024-bit key lengths for all operations, this includes signing key of the C 130. The following data is included in the certificate by the server:

• A 6-byte Id field.

• A 4-byte certificate expiry field, expressed as UNIX time, i.e. seconds since 1.1.1970.

•A public key. Only the modulus of the 1024-bit RSA is included, in a raw format, most significant bit and byte first. All keys have the public exponent 0x10001 , this is compatible with both OnBoard Credentials (ObC) and Trusted Computing Group / Trusted Platform Module (TCG/TPM) and Trusted Computing Group / Mobile Trusted Module (TCG/MTM) technology.

[0055] The identity certificate of the D 1 10 will contain a Secure Hash Algorithm (SHA) 2 (256 bit) hash shrunk (e.g. truncated, punctured or compressed) to 128 bits over the items listed above in the order given above. Thus the hash algorithm produces 16 bytes of output for an input of 138 bytes. These two byte strings are combined (e.g. concatenated), hash first, into a byte string of 154 bytes. Of the 154 bytes, 1 17 bytes are input to the RSA private key exponentiation with PKCS #1 1.5. The RSA exponentiation will include the hash function result. The 37 bytes (of the public key) that do not fit in the exponentiation will be encrypted with AES-CTR mode using an initialization vector (IV) of 0 and the hash result as the key. These encrypted 37 bytes are combined (e.g. appended) to the result of the exponentiation. Thus the overall certificate length is 128+37=165 bytes. The certificate can be validated and used by anybody with access to the public key of the accounting server.

[0056] The first main example as described in the foregoing has e.g. such a technical effect that the response sent by the D 1 10 during identity verification is abbreviated as the public key PK_D need not be transmitted separately and thus the public key PK_D is not recoverable from outside of the certificate.

[0057] Fig. 3 illustrates some operations according to one example embodiment that makes use of some of the techniques described in connection with the first main example. The S 120 sends its challenge encrypted with its private key to the D 1 10. The D 1 10 starts generating 320 of a new response when it has free processing time (i.e. after the now starting authentication session). Responsively to the challenge, the D 1 10 sends a previously computed response 330 to the S 120, that response being encrypted with the public key PKS of the S 120 over the certificate and further comprising a signed response based on a previously received challenge. The S 120 receives the previously computed response 330 (or in some other embodiments a response based on the present challenge) and verifies 340 the certificate. In some embodiments, the S 120 also verifies 350 the IDD against its blacklist and if on the blacklist, rejects the access. The S 120 also verifies 360, in this embodiment, the list of previous reader identities that was contained in the previously computed response 330 to see if its own identity was included on that list and if yes, allows access 362 or otherwise requests 364 a new response by sending a new challenge. If the new challenge 370 is sent, the D computes and sends back a new response 380 based on the new challenge. The S 120 then verifies 390 the new response 380 and if the new response passes this verification, the S 120 grants access 392, otherwise the S 120 denies 394 the access.

[0058] Second main example - transaction record

[0059] In this example, the identity verification between the D 110 and the S 120 omits sending of both PK_D and the signature of the D 1 10 to the S 120. Instead, the signature is sent, at some point of time, directly from the D 1 10 to the C 130 for later auditing and verification by the C 130. Since this signature need not be verifiable by the S 120, it can be made even smaller by constructing it as a message authentication code (MAC) by using a symmetric key shared between the D 1 10 and the C 130.

[0060] The response sent during identity verification need not contain either of the signature and public key of the D 1 10. Moreover, standard cryptographic protocols can be used. On the other hand, only item that is cryptographically verified by the S 120 is the Cert_D, and thus an attacker could replay Cert_D and gain admission to the system. This risk can be mitigated with the following example embodiments:

a) Include data in the Cert_D thus limiting the scope of its applicability (e.g., identity of the checkpoint - in the public transportation case, the identity of the particular station that the user typically uses).

b) Limit the lifetime of Cert_D;

c) Limit the number of authentications that the TEE 1 11 is allowed to perform after last data exchange session with the C 130.

An example of this second main example is next presented.

[0061] The D 1 10 receives an ephemeral certificate as access token from the C 130. The token remains valid e.g. at most a day. Therefore, the D 1 10 is configured to contact C 130 every day (provided that the D 1 10 is able to make connection to the C 130). This access token holds similar information as long-life certificates. In addition, the accesstoken holds, in this example embodiment, information such as time of generation of the access token (referred to as Tgen) and / or a counter (ctr). [0062] The S 120 only stores a public key PKC of the certificate authority C 130 for verifying the access tokens. Similarly, we assume that all the readers at one transport station (or other station for providing services) share a station wise identity IDD.

[0063] An example of a message transaction sequence, when the D 1 10 and the S 120 engage into an authentication session, is such that:

1. A user wants to enter a gate at a station and she places her D 1 10 near the S 120 (e.g. attached to the station gate).

2. the S 120 establishes a near field communication with the D 1 10 and initiates the session by sending a random challenge, a new challenge denoted as challengenew along with its identity (IDS) and other context related data.

3. At this point, the D 1 10 should have a pre-computed message authentication code (MAC) based on the previous challenge, a challenge challengeprev, that is received from an immediate previous authentication session with a reader device S 120. A dummy initial challenge is used to generate a message authentication code (MAC) if the device is used for the first time. The MAC also includes information such as identity of the device IDD, time of generation Tgen, identity of the challenger IDSprev (a dummy ID in case of first time uses), and/or a counter ctr. The D 1 10 sends this pre-computed MAC along with a short-life access token to the S 120. It should be noted that the D 1 10 only shares the secret key of such a MAC with the C 130 as the S 120 is not expected to verify the MAC.

4. In the mean time, the D computes a new MAC over the recently received challenge, challengenew, in the background.

5. On receiving the access token and the MAC, the S 120 verifies the access token and verifies the IDD against its blacklist. If the IDD is blacklisted, the S 120 simply denies service access and terminates the session. In some other embodiments, the S 120 records the attempt to use the access token and/or signals the attempt to a local or remote station.

6. After verifying the IDD, the S 120 allows access to the D 1 10, collects information, combines the information with auxiliary context information as evidence for the rating procedure and protection against repudiation at a later time. This information is then sent in an online or off-line communication to the back-end server T 140.

[0064] This protocol variant only verifies the short-life access token. Here the accounting server C 130 is responsible for verifying the MAC collected from every D <--> S session . This protocol variant can run fast as real-time cryptographic operations may be disposed with. Moreover, the reducing of the life time of access tokens can be made utilized to inhibit growing of the black lists as the expiry of the access tokens naturally removes identities from the black lists.

[0065] Fig. 4 illustrates some operations according to another example embodiment e.g. in connection with a second main example. As in Fig. 3, the S 120 sends the challenge 310. Responsive to receiving of the challenge 310, the D 1 10 sends 420 a previously computed response to the S 120. The previously computed response comprises, in this embodiment, an access token or message authenticator 430 that is formed by encrypting with the private key of the D 1 10 a (previous) challenge, the identity of the S 120 received with the (previous) challenge, and various other data items such as the expiry time, time of generation (of the certificate) and a counter. The D 1 10 also starts generation 440 of a new response for use as a next authenticator. On receiving the access token 430, the S 120 verifies 450 the identity of the D 1 10 (IDD) against its blacklist and if the IDD is on the blacklist, the S 120 rejects 460 access of the D 110 to the service.

[0066] Third main example - transaction record and hash

[0067] This third main example resembles the second main example in that there is no transmission of the public key or of the certificate of the D 1 10. Additionally, here a hash chain is used to mitigate the risk of reusing certificates of the D 1 10. A hash chain of length n is constructed by the D 1 10 by choosing a random secret seed c_n and repeatedly applying a cryptographic hash function h() n times to result in "top" value c_0: i.e.,

c_0 = h ( h ... n times ... h (c_n)) Identity provisioning:

D -> C: c_0, n (subject to some form of user authentication) C -> D: Cert_D = Sig_C (ID_D | expiryjime | c_0 | n)

Identity verification:

S -> D: challenge, ID_S

D -> S: cj, i, Cert_D

[0068] Here, the S 120 verifies the identity of the D 1 10 by applying h() to cj the specified number of times (i times) and checking if the result matches the top value included in the Cert_D. As in the second main example, the D 1 10 is configured to send a transaction record signature to the C 130 after every transaction, either immediately or at a later time. The D 1 10 or the TEE 1 1 1 is in some embodiments configured to abstain from further authentication sessions with the S 120 after a given number of transaction record signatures remain unsent to the C 130.

[0069] There are several ways in which re-use of c_i by an attacker can be prevented or mitigated.

a) Limit the duration of validity of cj; this requires loosely synchronized clocks between the D 1 10 and the S 120. The validity duration can be made rather small (e.g., 5 minutes).

b) The S 120 reports the latest i value for a Cert_D to a centralized backend after every accepted identity verification. Before accepting identity verification for a given Cert_D, the S 120 checks that the claimed i value has not already been used.

[0070] This third main example has e.g. such a technical effect that the response sent by the D 1 10 during the identity verification can be as short as in the second main example, but the threat of replay attack can be further curbed without shortening the life time of the certificates i.e. without increasing the frequency of identity provisioning transactions.

[0071] Fig. 5 illustrates some operations according to yet another example embodiment e.g. in connection with a third main example. As in Figs. 3 and 4, the S 120 first sends the new challenge and its identity IDS. The D 1 10 generates 520 a signature 530 by signing with its private key the new challenge, identity of the S 120, the random secret seed c_0, hash chain length clen, the time of generation Tgen and the expiry time Texp. The D 1 10 sends 550 he signature to the C 130 either immediately or at a later time. The D 1 10 also sends 540 to the S 120 the signature and the i times hashed seed number (ci) and the distance in the hash chain (cd) of the i times hashed seed number. The S 120 then verifies 560 the certificate, verifies 570 the identity of the D 1 10 (IDD) by comparing ot the blacklist of the S 120, and if the IDD is in the blacklist, the S 120 rejects 572 the access, or if not, checks the hash chain 580 to verify whether access to the service should be granted.

[0072] In the foregoing, various details have been described with reference to different credentials used to authenticate a user who desires to access some service. It shall be appreciated that the user may have one or more user devices (D 1 10) and in some embodiments, various user credentials are associated more particularly with the user that with the user device D 1 10. However, the exchange of messages e.g. with NFC is performed between devices, that is, the D 1 10 sends and receives messages rather than the user herself, but it should be understood that any credentials associated with the D 1 10 may be understood as being associated with the user who uses the D 1 10 and as possibly being shared by a number of different devices that are owned or controlled by the user.

[0073] Various example embodiments described herein are described to illustrate various possibilities within the scope of the claims to address the following objectives:

[0074] Accountability and security: it should be sufficiently secure so that the service operator (such as the public transport operator) and identity provider can manage their risks effectively.

[0075] Speed: typically the interaction events have a strict time-budget within which a typical transaction should be completed. For public transport systems, an example bound is 300 ms.

[0076] Privacy: it should not allow third parties to track the movements of a user.

[0077] Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a "computer-readable medium" may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer. A computer-readable medium may comprise a computer-readable storage medium that may be any media or means that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.

[0078] If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined.

[0079] Although various aspects of the invention are set out in the independent claims, other aspects of the invention comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.

[0080] It is also noted herein that while the above describes example embodiments of the invention, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.