Abstract:
The present invention allows clients to authenticate consumers using a trusted authentication service provider. The system addresses the concerns of consumers and business organisations alike. The objective is to assure clients of the authentication service of the true identity of the consumer. The remote authentication service provider maintains consumer data to facilitate a fast authentication of the consumer on the basis of a consumer name and a unique consumer code. In a preferred system, the unique consumer code is a one-time password (OTP) generated by a hardware token held by the consumer. The remote authentication service provider confirms that any password generated by the token is valid.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to a system for authenticating a user to an entity for the purpose of conducting transactions or to access services or resources.  
         BACKGROUND TO THE INVENTION  
         [0002]    Authentication is the process of verifying the identity of users or other entities, for example processes or external systems, prior to granting access to a requested resource. This is usually based on a username and a password. Static passwords remain the most widely used authentication mechanism, but are recognised as a security hazard. In particular, static passwords are vulnerable to recording, sharing, “sniffing” (where passwords are captured as they are transmitted), and “shoulder surfing” (where users are observed using their passwords). They are also susceptible to “re-play” attacks. A relatively new approach to this problem is the use of one-time passwords (OTPs). These are similar to traditional static passwords in that they are used in conjunction with a username, but are instead generated dynamically using a hardware token.  
           [0003]    Financial transactions can be performed in a vast number of ways. Thus, as well as being able to pay for goods and services using cash, credit card and debit card payments are also possible. In addition to this, it is possible to arrange a direct money transfer between bank accounts in order to make payments.  
           [0004]    The techniques by which these transactions may be completed vary depending on the circumstances in which the transaction is performed. For example, in a shop it is typical for the customer to present their payment card to the shop assistant. Th shop assistant then enters these details into a point of sale (POS) device which transfers the details to an acquirer (the financial institution, or its agent, that acquires from the merchant financial data relating to a transaction and initiates that data into an interchange system), which confirms whether the payment card may be used to perform the desired transaction. The shop assistant confirms that the payment card has been presented by an authorized user by checking the customer&#39;s signature against the signature on the back of the card. Assuming that each of these stages proceeds successfully, then the transaction is authorised. In this cas , the acquirer or issuer (the financial institution, or its agent, that issues the unique primary account number (PAN) to the cardholder for the payment card brand) covers the shop&#39;s bill for the purchased goods, with the card owner being debited at a lat r date.  
           [0005]    However, this form of system suffers from the major drawback that the payment card must be made available to the shop assistant. This provides the opportunity for third parties to obtain the card details and then use these details to fraudulently perform transactions. In particular, this can be achieved by producing counterfeit payment cards, or alternatively by simply using the card details directly to make “cardholder not present” purchases.  
           [0006]    In recent times, the situation has been exacerbated by the introduction of Internet shopping which allows consumers to buy items from a web site. In this example, the users payment card details typically have to be transferred via the Internet to the web site to allow the web site owner to validate the transaction. This of course again means that the customers card details are available to the public thereby risking fraudulent transactions to be carried out with these details. Furthermore, there is no form of authentication in this transaction since the cardholder is not present.  
           [0007]    Traditional banks and branchless institutions are flooding the home and business banking market with a wave of services delivered via the Internet Companies are evaluating Internet banking as a way to decrease costs and increase efficiency. Banks have begun to offer advanced Internet banking services which include access to account and fund information, bill payments, transfers between accounts at the same institution, mortgage information, and access to the latest transactions and other historical information on selected accounts. Internet banking provides a new channel through which banks can offer even more advanced transaction services such as stock trading, signing shopping transactions, or electronically transferring any amount to any account at any financial institution. However, the fear of exposing confidential financial information remains a major obstacle to widespread implementation and use of on-line banking. Banks need to be sure customers accessing their accounts on-line are who they say they are i.e. that they are authenticated. Furthermore, customers want to know that personal information, account numbers and funds are secure. Current systems still tend to rely on a static password based authentication system and are therefore inherently susceptible to attack. This remains a major concern that needs to be addressed before Internet banking will secure the confidence of consumers.  
         SUMMARY OF THE INV NTION  
         [0008]    According to a first aspect of the present invention, an authentication service for authenticating a consumer to a client using a remote authentication service provider that is adapted to respond to authentication requests from a plurality of different clients, in which the authentication service provider carries out the steps of:  
           [0009]    receiving an authentication request, the authentication request including a consumer name and a unique consumer code;  
           [0010]    accessing at least one authentication data store containing consumer data associated with the consumer name;  
           [0011]    determining the validity of the unique consumer code in dependence on the consumer data; and,  
           [0012]    transmitting an authentication reply to the client confirming whether or not the consumer has been authenticated.  
           [0013]    According to a second aspect of the present invention, a computer program product comprises computer executable code for performing the method of the first aspect of the present invention.  
           [0014]    In this application, the term “consumer” will refer to end-users seeking to authenticate themselves for the purposes of conducting transactions or to access services and resources. The term “client” refers to organisations that subscribe to the remote authentication service. These may include retailers (merchants), Internet banks, or any business organisation offering controlled access to services or resources.  
           [0015]    According to a third aspect of the present invention, an authentication engin for providing a remote authentication service for a plurality of different clients requiring authentication of consumers prior to completing a transaction or granting access to a service or application provided by the client, the authentication engine comprising:  
           [0016]    a communications interface for accepting an authentication request from a client, the authentication request including a consumer name and a unique consumer code;  
           [0017]    at least one authentication data store containing consumer data associated with the consumer name; and,  
           [0018]    a processing system adapted for accessing the at least one authentication data store and determining the validity of the unique personal cod in dependence on the consumer data, and for generating an authentication reply to the client confirming whether or not the consumer has been authenticated.  
           [0019]    According to a fourth aspect of the present invention, a method of authentication in which a consumer requests a transaction or access to a service or resource provided by a client, in which the client carries out the steps of:  
           [0020]    obtaining a consumer name and a unique consumer code from the consumer;  
           [0021]    transmitting an authentication request to a remote authentication service provider that is accessible by a number of different clients, the authentication request including the consumer name and the unique consumer code;  
           [0022]    receiving an authentication reply from the remote authentication service provider identifying whether or not the consumer has been authenticated; and,  
           [0023]    if the consumer is authenticated, proceeding with the transaction or providing the access or service requested by the consumer.  
           [0024]    The present invention allows clients to authenticate consumers using a trusted authentication service provider. The system addresses the concerns of consumers and business organisations alike. The objective is to assure clients of the authentication service of the true identity of the consumer. The remote authentication service provider maintains consumer data to facilitate a fast authentication of the consumer on the basis of a consumer name and a unique consumer code.  
           [0025]    In a preferred system, the unique consumer code is a one-time passwords (OTP) generated by a hardware token held by the consumer. The remote authentication service provider confirms that any password generated by the token is valid. The consumer name need not be the real name of the consumer, but it must correspond to the consumer name stored by the remote authentication service provider. Accordingly, if desired, the consumer can maintain their anonymity. Furthermore, the authentication reply may include a preferred “friendly name” that the consumer wishes to be addressed by.  
           [0026]    The system is especially suitable for Internet applications where a business needs to authenticate an end-user before it will grant access to a particular service or application. In particular, the system can be used in Internet banking applications where the bank requires authentication of the customer before granting access to the web site. In the present invention, the bank provides a logon page displayed by the customer&#39;s browser having a window in which the customer can type in a userID and a password generated by their personal token. The bank then transmits this information to the remote authentication service provider in a secure manner in the form of an authentication request. The remote authentication service provider generates an authentication response in the form of a simple pass or fail result If the customer is authenticated then access to the web site is granted in the normal manner.  
           [0027]    A consumer may have a number of Internet bank accounts with different banks. Provided the banks are clients of the remote authentication service provider, the user need only maintain a single hardware token for generating passwords.  
           [0028]    According to a fifth aspect of the present invention, a payment authorisation service in which a client transmits a payment authorisation request in respect of a consumer transaction to a remote service provider adapted to respond to payment authorisation requests from a number of different clients, in which the remote service provider carries out the steps of:  
           [0029]    receiving a payment authorisation request from a client, the payment authorisation request including a consumer and a unique consumer code;  
           [0030]    accessing at least one data store containing consumer data associated with the consumer name and determining the validity of the unique consumer code in dependence on the consumer data, thereby authenticating the consumer; and, executing a payment process to fulfil the payment authorisation request and thereby complete an authorised transaction.  
           [0031]    According to a sixth aspect of the present invention, a computer program product comprises computer executable code for performing the method of the fifth aspect of the present invention.  
           [0032]    According to a seventh aspect of the present invention, a payment authorisation engine for providing a hosted remote payment authorisation service for a plurality of different clients transacting with consumers, the payment authorisation engine comprising:  
           [0033]    a communications interface for receiving a payment authorisation request from a client, the payment authorisation request including a consumer name and a uniqu consumer code;  
           [0034]    a number of data stores containing consumer data, including details of consumer payment cards; and  
           [0035]    a processing syst m including a number of payment modules that enable authorised payments according to a predetermined protocol, the processing system being adapted for accessing at least one data stor containing consumer data associat d with the consumer name and determining the validity of the uniqu consum r code, thereby authenticating the consumer, and ex cute a payment process using a selected payment module to fulfil the payment authorisation request and thereby complete an authorised transaction.  
           [0036]    The present invention also provides an extension of the remote authentication service in which the remote authentication service provider also maintains a database containing details of consumer&#39;s payment cards. The system is designed to facilitate and enable secure commercial transactions by consumers using credit or debit payments by avoiding the need to present the card or card details to a merchant, whether locally (at a POS device), over a telephone, or to a web site over the Internet.  
           [0037]    The manner in which payment authorisation is obtained is dependent on the payment protocol stipulated by the acquirer and/or issuer. Accordingly, the present invention supports many different payment protocols through a number of different payment modules. The modularity of the architecture permits the addition of new payment services in a discrete manner.  
           [0038]    One example of a payment module is a hosted merchant POS, in which th payment authorisation request includes a consumer name, a unique consumer code, a transaction amount and a selected method of payment. The service provider transmits a payment authorisation request to an acquirer associated with the selected method of payment to obtain a transaction identifier and subsequently transmits an authorisation reply to the client, the authorisation reply including the transaction identifier provided by the acquirer.  
           [0039]    In a preferred system, the service provider maintains a “Vault” that contains data associated with respective consumer names to allow a consumer to b authenticated. The service provider also maintains a “Registry” that contains the credit and debit card details associated with the consumer. When a client of the servic provider requests an authorised payment, the service provider first authenticates the consumer using the consumer name and an OTP forwarded by the client and then generates an authorisation request for transmission to an acquirer. The authorisation request typically includes the customer name, the primary account number (PAN) associated with the selected method of payment, the transaction amount, and a merchant identifier. The acquirer returns a transaction identifier and a transaction authorisation code that guarantees non-repudiation of the transaction. Thus, the service provider effectively acts to host a remote POS. In som cases, the acquirer may have to communicate with the card issuer to obtain proper authorisation.  
           [0040]    The Secure Electronic Transaction (SET) protocol is another payment service that can be offered through the present invention, in which the system hosts a consumer SET wallet payment module that engages in the SET exchange on behalf of consumers. The proposed solution hosts all of the necessary SET software and cryptographic data (digital certificates, cryptographic keys) within the Registry&#39;s database and a SET payment module. This approach eliminates the need for consumers to install the SET client software on their computing platforms and enables greatly enhanced mobility by allowing consumers to make purchases through any channel (eg Internet, WAP, telephone) without the need to transport and install the SET software and digital certificates. Again, the preferred system secures access to the SET wallet using consumer name and an OTP. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0041]    Examples of the present invention will now be described in detail with reference to the accompanying drawings, in which:  
         [0042]    [0042]FIG. 1 is an example of a token-based authentication system in accordance with the present invention;  
         [0043]    [0043]FIG. 2 is a simplified schematic of a consumer token;  
         [0044]    [0044]FIG. 3 is an example of a token-based authentication and payment system in accordance with the present invention;  
         [0045]    [0045]FIG. 4 illustrates a SET transaction using the system shown in FIG. 3; and,  
         [0046]    [0046]FIG. 5 shows the sequence of events in a SET transaction. 
     
    
     DETAILED DESCRIPTION  
       [0047]    As mentioned above, in this application, the term “consumer” refers to end-users seeking to authenticate themselves for the purposes of conducting transactions or to access services and resources. The term “client” refers to organisations that subscribe to a remote authentication service provider (ASP). These may include retailers (merchants), Internet banks, or any business organisation offering controlled access to services or resources.  
         [0048]    [0048]FIG. 1 illustrates an example of a token-based authentication system in accordance with the present invention. The system includes a consumer hardware token  10  of a type that is generally known in the art for generating one-time passwords (OTP). A password is generated by the token each time the consumer  11  keys in a PIN or other form of secret code. The consumer presents a consumer name and a password generated by the token to one of a number of clients  12  of a remote authentication service provider  13  (ASP). A number of communications channels  14  are contemplated. For example, the consumer may simply provide the authentication data in person to the client  12  or it may be provided over the Internet by filling out a form presented as a window displayed by the consumer&#39;s browser.  
         [0049]    The client  12  communicates with the ASP  13  over a secure communications channel  15 , for example an Internet-VPN an encrypted leased line, an SSL (Secure Socket Layer) connection or any other encrypted channel, for the transmission of an authentication request which includes the authentication data provided by the consumer and for receiving an authentication reply generated by the ASP  13 . The ASP operates one or more authentication servers  16  that maintains a number of data stores that contain consumer data associated with respective consumer names to facilitate a rapid authentication of a consumer on the basis of the authentication data provided by the client  12 . The consumer name used by the consumer need not be their real name so that they can maintain their anonymity should they desire. The.  
         [0050]    ASP  13  verifies whether or not the password provided by the consumer  11  is valid by independently computing a password that should be the same. If successful, the ASP  13  generates an authentication reply and transmits this to the client  12 , thereby authenticating the consumer to the client.  
         [0051]    The system is especially suitable for Internet applications where the client may be a business that needs to authenticate an end-user before it will grant access to a particular service or application. In particular, the system can be used in Intern t banking applications where a bank requires authentication of a customer before granting access to the web site. In the present invention, the bank provides a logon page displayed by the customer&#39;s browser having a window in which the customer can type in a userID and a password generated by their personal token. The bank then transmits this information to the ASP in a secure manner in the form of an authentication request. The ASP generates an authentication response in the form of a simple pass or fail result. If the customer is authenticated then access to th web site is granted in the normal manner.  
         [0052]    A consumer may have a number of Internet bank accounts with diff rent banks. Provided the banks are clients of the remote authentication service provider, the user need only maintain a single hardware token for generating passwords.  
         [0053]    [0053]FIG. 2 shows schematically an example of a consumer token  10 .  
         [0054]    The authentication process described above relies on a synchronous authentication mode whereby the consumer token  10  and the authentication server  16  perform a series of tasks using the same variables (a clock counter  20  and event counter  21 ) which are then encrypted using a shared secret  22  to generate a six digit challenge. It is common for the clocks provided on the token and at the authentication server to drift over time. To compensate for this phenomenon and to ensure a reliable service, the password generated by the token which is sent to the authentication server includes two digits prefixed to the challenge. These digits are the least significant bits  23  and  24  from the token&#39;s clock and event counters, respectively, which are used by the authentication server  16  to synchronise itself to the token.  
         [0055]    The customer token  10  performs the following steps:  
         [0056]    1. The token builds an internal challenge (independently of the authentication server) using two variables, the token clock counter value  20  and the token event counter value  21 ;  
         [0057]    2. The token encrypts this internal challenge with a 56-bit DES algorithm  25  using a third variable, a derived secret key that is unique to that specific token and is used only for that specific encryption session to create an OTP;  
         [0058]    3. The token selects the two least significant bits (one each from the event and clock counters) and prefixes them to an encrypted result. This result  26  is sent to the authentication server  16  during the authentication request process;  
         [0059]    4. The token increments its event counter  21  by one; and,  
         [0060]    5. The token derives a new secret key  22 , which overwrites the secret used in the previous encryption session. The key derivation process is based on the ANSI X9.24 standard. It uses the event counter and the previous secret key to generate a new key for the next session.  
         [0061]    As described above, the next series of tasks is performed by the authentication server  16 , which authenticates the consumer based upon a password match. Since the authentication server must perform exactly the same calculations with the same three variables to compare meaningful results at the end of the session, the sever variabl s must be synchronised with the client variables at all times. As described above, this is achieved using the two special digits prefixed to the value generated by the 56-bit DES encryption process. The authentication server  16  compares the two digits and determines if the token digits match those stored at the server. If required, the authentication server re-synchronises its event and clock counters to match thos of the token (within defined security parameters) and then iterates through the key derivation process until it derives the necessary key that corresponds to the key used by the token. When the server has determined that its digits are re-synchronised, it builds its own internal challenge using its clock and event counter values, encrypts that challenge using the appropriate key and the 56-bit DES algorithm, and compares the consumer&#39;s and the server&#39;s encrypted challenges to determine if the authentication was successful. Only when the match is successful does the server increment its event counter by one and derive a new secret key for that consumer. The new secret key is stored as part of a secure data block (SDB) within a database.  
         [0062]    The authentication server  16  performs the necessary validation using the sam algorithms and values as the token. Each token  10  has unique initialisation values that are set at the token initialisation stage. These initial values are stored encrypted in a data file (not shown) used by the authentication server  16  and consist of the initial 56-bit DES secret key, a 32-bit random event counter, the token serial number, and the profile for the token. Each entry is stored as an SDB. Decryption of the SDB is handled by a computer program that is supplied with the 56-bit DES secret key for that SDB.  
         [0063]    The present invention also provides an extension of the remote authentication service described above in which the ASP maintains a database containing details of consumer&#39;s payment cards. As will be described below, the system is designed to facilitate and enable secure commercial transactions by consumers using credit or debit payments by avoiding the need to present the card or card details to a merchant, whether locally (at a POS device) or to a web site over the Internet  
         [0064]    As shown in FIG. 3, the ASP  30  maintains a “Vault”  31 , an authentication server that allows a consumer to be authenticated in the manner described in detail above. The service provider also maintains a “Registry”  32  for facilitating authorised payments.  
         [0065]    At a high level, the communications between the parties can be summarised as follows: when a client  33  of the service provider  30 , for example a merchant, requests an authorised payment, the service provider  30  first authenticates the consumer  34  using the Vault  31  on the basis of the consumer name and OTP forwarded by the merchant  33  and then generates an authorisation request for transmission to an acquiring bank  35 . The authorisation request typically includes the customer name, the primary account number (PAN) associated with the selected method of payment, the transaction amount, and a merchant identifier. The acquirer  35  returns a transaction identifier and authorisation code that guarantees non-repudiation of the transaction. Thus, the service provider  30  effectively acts to host a remote POS. In some cases, the acquirer may have to communicate with the card issuer  36  to obtain proper authorisation.  
         [0066]    The manner in which the ASP  30  obtains a transaction authorisation is dependent on the payment protocol stipulated by the acquirer and/or issuer. Accordingly, the present invention supports many different payment protocols.  
         [0067]    The server architecture shown in FIG. 3 can be broken down into four key components and their interactions:  
         [0068]    1. Authentication system  31  (the Vault);  
         [0069]    2. Payment system  32  (the Registry);  
         [0070]    3. Database of consumer profiles (not shown); and,  
         [0071]    4. Audit and data logging component (not shown).  
         [0072]    In this example, the primary platforms hosting the service are Hewlett-Packard HP9000L and N class HP-UX servers. Applications include Oracle database, iPlanet Web Server, a stateless authentication kernel, and bespoke software to link the components. Perimeter defences  37  include firewall technology, intrusion detection systems and the hosting of the servers on HP Virtual Vaults.  
         [0073]    The authentication system implemented in the architecture in FIG. 3 is as described above with reference to FIGS. 1 and 2. However, the system can support various authentication mechanisms including digital certificates  38 , but the OTP hardware token mechanism  39  described above is preferred. In addition, static passwords  40  may be used as a temporary fall-back authentication.  
         [0074]    The payment system  32  consists of a number of payment service modules each capable of transacting using existing payment protocols  41  to  44 . These can be SET transactions  41 , POS transactions  42  or any other acceptable payment protocol. The modular design enables the addition of new payment modules as required.  
         [0075]    The payment system  32  effectively proxies payment transactions on behalf of the merchant using the consumers profiles and associated payment card details obtained out-of-band during the consumers subscription and initialisation stage (in which the token is also shipped to the consumer) and stored within the Registry database. In the case of credit cards, the system provides security and a degree of anonymity to the consumer by transacting directly with the acquiring banks thereby obviating the need to transmit personal payment card details to merchants.  
         [0076]    Interactions&#39; during the payment transaction are limited to the ASP  30 , the merchant  33  and the acquiring bank  35 . This requires merchants to enable their web sites with an ASP payment option. Once enabled, the merchants web site transmits a purchase request including the following details:  
         [0077]    1. Consumer name;  
         [0078]    2. OTP;  
         [0079]    3. Transaction amount;  
         [0080]    4. Merchant ID;  
         [0081]    5. Acquiring bank&#39;s ID;  
         [0082]    6. PAN; and,  
         [0083]    7. Payment method.  
         [0084]    Successful authentication within the ASP Vault  31  is then followed by-a payment transaction with the ASP Registry  32  using the consumers details and the supplied merchant details. The Registry  32  communicates with the acquiring bank using the appropriate payment and communications protocol associated with one of the payment modules  41  to  44 . Credit card transactions will result in the Registry  32  supplying a transaction code along with the purchase amount and Merchant ID and any other data required to complete the payment. Upon successful complection, th Registry  32  returns an authorisation code to the merchant  33  for their records.  
         [0085]    The system relies on three databases (not shown): one for the authentication server for token details and keys (SDB); a separate database for the Registry to host consumer details for payment transactions; and a third database for customer relationship management. The databases provide large amounts of storage capacity and performance which can be scaled as necessary.  
         [0086]    Every consumer is initialised within the system and defined within a user profile. These profiles include the necessary data for authenticating and subsequently completing payment transactions on behalf of the authenticated consumers. Token initialisation data and token serial numbers, user names and other authentication data is stored in one database that is accessed by the Vault.  
         [0087]    Consumer details such as credit card details are the most obvious data associated with the consumer. However, there may be a need to store SET certificates for SET-based payments as well as additional details such as shipping addresses to facilitate the purchase by automatically supplying the necessary details for suppliers or merchants to ship the goods to consumers. This information is stored in a database that is accessed by the Registry.  
         [0088]    The importance of and enforcement of non-repudiation requires a high degree of security, auditing and logging capabilities. To this end, the architecture has been designed with perimeter defences  37 , logical and physical access controls and plans to configure and enable extensive monitoring and logging services. Every authentication and transaction request along with the results are logged on Write Once Read Many (WORM) media (not shown) to ensure that the data cannot b altered following the recording of the log entry.  
         [0089]    The type of audit data includes the consumer, merchant and acquiring bank requests, replies and time stamps.  
         [0090]    The Secure Electronic Transaction (SET) protocol is a payment service that can be offered, in which the system hosts a consumer SET wallet payment module that will engage in a SET exchange on behalf of consumers. The system hosts all of the necessary SET software and cryptographic data (digital certificates, cryptographic keys) within the Registry&#39;s database and a SET payment module. This approach eliminates the need for consumers to install the SET client software on their computing platforms and offers greatly enhanced mobility by allowing consumers to make purchases through any channel (eg Internet, WAP, telephone) without the need to transport and install the SET software and digital certificates.  
         [0091]    [0091]FIG. 4 illustrates generally how the architecture operates in a SET transaction. The steps are as follows:  
         [0092]    (A) The consumer  40  uses a standard browser with no additional software, and without a smartcard reader, to browse to a merchant site  41 . The consumer fills up their shopping basket and proceeds to a payment pag. On this page th consumer chooses to pay using the ASP option. The consumer is prompted for their consumer name and pass code.  
         [0093]    (B) The consumer name and password are forwarded by the merchant  41  to the Vault  42  of the remote ASP  43  which authenticates the consumer as described above, and the result (status) is sent back to the merchant  
         [0094]    (C) As part of a successful authentication of the consumer  40 , the merchant  41  initiates a SET transaction with the consumer&#39;s hosted SET wallet at the ASP Registry  46  and supplies the necessary Order Information (OI).  
         [0095]    (D) A purchase initialisation request and response is exchanged between the merchant and the remote ASP  43  hosting the consumer&#39;s SET wallet  
         [0096]    (E) A purchase request is sent from the ASP  43  (on behalf of the consumer)-to the merchant  41 .  
         [0097]    (F) The merchant now requires authorisation from their acquirer  44 . This optional exchange occurs between the merchant  41  and its acquirer  44  as per a normal credit card transaction, using standard SET protocol exchange as defined by SetCo for merchant-acquirer exchanges.  
         [0098]    (G) The acquirer has the option of referring to the card issuer  45  in order to obtain authorisation. This optional exchange occurs between the acquirer  44  and the card issuer  45  as per a normal credit card transaction, using standard SET protocol exchange as defined by SetCo for merchant-acquirer exchanges.  
         [0099]    (H) The merchant  41  returns a purchase response to the hosted SET-wallet at the ASP  43 .  
         [0100]    (I) The merchant  41  returns a confirmation of the payment to th consumer  40 .  
         [0101]    In FIG. 4, the merchant  41  connects directly to the acquirer  44  instead of using the ASP Registry  46  to obtain transaction authorisation. This is in order to ke p the merchant as close as possible to ordinary SET. If desired, the merchant could let the ASP  43  host the POS part of its functionality which would connect to the payment gateway for authorisation.  
         [0102]    The authentication steps from the consumer  40  via the merchant  41  to the Vault  42  and back to the merchant is exactly the same as in any other card transaction. We will describe in detail below with reference to FIGS. 4 and 5 what happens after the merchant  41  gets a positive answer back confirming that the cardholder has been properly authenticated.  
         [0103]    The purpose of the Initiate message (PInitReq) from the cardholder to the merchant and the Initiate response (PInitRes) from the merchant to the cardholder is to obtain certificates and CRLs for the Cardholder. In the absence of this message pair, this information must be obtained through some other means (such as CDROM).  
         [0104]    The Initiate request message contains:  
         [0105]    RRPID, an identifier to allow the cardholder to link this message to its response in case of several sessions  
         [0106]    Language, the cardholder&#39;s language preference  
         [0107]    LID_C and LID_M, the local ids that cardholder and merchant have assigned  
         [0108]    Chall_C, cardholder generated challenge to prevent merchant replay response  
         [0109]    BrandID, cardholder&#39;s chosen payment card brand  
         [0110]    BIN, Bank Identification Number (first six digits of cardholders account number)  
         [0111]    Thumbs, lists of Certificates, CRL and BrandCRLIdentifier thumbprints which the cardholder already has and so need not be transmitted.  
         [0112]    The Initiate response message is signed by the merchant and contains:  
         [0113]    TransIDs, transaction id  
         [0114]    RRPIS, (as above)  
         [0115]    Chall-C, the challenge from the cardholder  
         [0116]    Chall-M, merchant generated challenge to ensure that freshness of cardholder&#39;s response can be verified  
         [0117]    BrandCRLIdentifier, list of current CRLs for all Cas under a Brand CA  
         [0118]    PEThumbs, thumbprint of payment gateway key-exchange certificate  
         [0119]    Thumbs, copied from PInitReq.  
         [0120]    The SET protocol allows this message pair to be omitted in non-interactiv environments, with the data provided in these messages by off-line mechanisms (such as CDROM) and the challenges omitted, with less guarantee of freshness of messages.  
         [0121]    In the present invention, the system has other means of retrieving revocation information for merchant and other SET certificates. The important components of the above message pair, which are reflected in this implementation are:  
         [0122]    transaction id  
         [0123]    freshness of the next messages  
         [0124]    identification of payment brand  
         [0125]    It is the merchant&#39;s responsibility that the merchant system can handle a consumer which sets up several sessions at any one time. Therefore transaction id as gen rated by the consumer is no longer a SET issue. Identification of payment brand has already happened by the user&#39;s choice of the ASP payment option at the merchant site. Also, it is the merchants responsibility to ensure adequate confidentiality and integrity on the link between the cardholder&#39;s browser and the merchant&#39;s web site.  
         [0126]    In the present invention, the (PInitReq, PInitRes) message pair is replaced by a merchant “wake-up” message to a front end of the hosted SET wallet at the ASP. The “wake-up” message is triggered by a positive authentication of a cardholder, and is a signed message containing:  
         [0127]    merchant and cardholder identification  
         [0128]    a challenge to ensure that freshness of the response can be checked (Chall-M above)  
         [0129]    order information as necessary to complete the following message, PRes  
         [0130]    a counter for this merchant (at the ASP), to prevent replay or message duplication resulting in multiple purchases. The ASP checks that the counter is the last counter for this merchant plus one, or otherwise rejects the transaction.  
         [0131]    The “wake-up” call causes the hosted SET wallet to issue a Purchase request (PReq) message to the merchant.  
         [0132]    PReq consists of two parts, OI, which is order information and PI, which is payment information. Both are encrypted and signed in such a way that the merchant can only decrypt OI and the acquirer only sees PI, but both can verify the integrity of the message in its entirety.  
         [0133]    In ordinary SET it is allowable for a cardholder not to have a certificat. Messages from such cardholders are not signed. In the present invention, all cardholders will have certificates (held remotely at the ASP), and secure access to those via the usual authentication mechanism.  
         [0134]    The hosted SET wallet module puts together a PReq message (PreqDualSigneddata) generating a new challenge Chall-C, as there were no (PInitReq, PinitRes) messages exchanged. Payment information data will come from the Registry at the ASP based on the cardholder information in the “Wake-up” message from the merchant.  
         [0135]    The merchant receiving the PReq message performs a normal SET st p at this point, exactly as if dealing with the cardholder located (in terms of IP address) at the ASP. The merchant then tries to obtain payment authorisation for the transaction via their payment gateway. If successful, or before an answer has come back, depending on the merchant policy, the merchant generates a PRes message and sends it to the cardholder. This message contains, depending on its status, the completion code, authorisation code, capture code and credit code.  
         [0136]    The SET wallet module receives and check the message and sends a non-SET message to the merchant, with information to pass on to the cardholder. An alternative option is to capture some of the data and transmit it via other means to the cardholder (e.g. monthly statement).  
         [0137]    In addition to using the payment methods described above whereby a purchase at a merchant website is triggered by authenticating the consumer using the hardware token, the present invention enables token holders to use the system as a direct replacement for their existing credit cards at any merchant that already accepts credit cards online. This occurs as follows:  
         [0138]    1. The consumer applies for a credit facility directly to the issuer of the hardware tokens. Assuming the consumer is approved for credit they are given a hardware token or informed that their current token is now activated for use as a credit card. They are given the following information:  
         [0139]    (i) a standard 8 digit prefix to be used for all credit card purchases using the token; and,  
         [0140]    (ii) an expiry date.  
         [0141]    2. The consumer can then use the credit facility wherever they could have previously used any other conventional credit card by carrying out the following steps:  
         [0142]    (i) they enter the standard 8 digit prefix in the first 8 digits of the 16 digit box used for credit card details;  
         [0143]    (ii) they unlock the token and enter the one-time password generated by the token in the remaining digits;  
         [0144]    (iii)they fill out the expiry date as given; and,  
         [0145]    (iv) they enter their user name where they would normally put in a cardholders name.  
         [0146]    3. The merchant then passes the transaction over to the acquirer in the normal way.  
         [0147]    4. The acquirer recognises the number (first eight digits) and passes the transaction over to the token issuer as they would a normal transaction.  
         [0148]    5. The issuer then passes the second eight digits (the one-time password) and the user name to the Vault for authentication. The Vault then translates the user and OTP into a specific customer and account and returns this to the issuer.  
         [0149]    6. The issuer checks that the account is still valid and sufficient funds are available and then approves or rejects the transaction accordingly, informing the merchant and giving an authorisation code if appropriate.  
         [0150]    In addition to the use described above, the card can be used as a proxy for a number of different credit cards. The user name and expiry remains constant all that varies is the 8 digit prefix. For example, with one hardware token a customer could have multiple eight digit prefixes, each one linking to a respective credit card account.