Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TECHNIQUES TO PERFORM DYNAMIC CALL CENTER AUTHENTICATION UTILIZING A CONTACTLESS CARD
Document Type and Number:
WIPO Patent Application WO/2024/005908
Kind Code:
A1
Abstract:
Techniques and systems to perform authentication utilizing a mini-application.

Inventors:
OGBENNAH FRANCIS (US)
MCHUGH KATHERINE (US)
OSBORN KEVIN (US)
Application Number:
PCT/US2023/020533
Publication Date:
January 04, 2024
Filing Date:
May 01, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CAPITAL ONE SERVICES LLC (US)
International Classes:
H04L9/40; H04L67/00; H04L67/02; H04M3/51; H04W4/14; H04W4/80; H04W12/06
Foreign References:
US20220141024A12022-05-05
US20190052474A12019-02-14
Attorney, Agent or Firm:
RUSSELL, Matthew et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A computer-implemented method, comprising: establishing, by a call center system, a call connection with a mobile device; determining, by the call center system, a call session identifier for the call connection and a phone number associated with the mobile device; sending, by the call center system, a text message to the mobile device based on the phone number, the text message comprising the call session identifier and a mini-application link, the mini-application link configured to retrieve a code snippet from a server by the mobile device; receiving, by the call center system, authentication information and the call session identifier from the mobile device, the authentication information generated by a contactless card; determining, by the call center system, the authentication information is authentic; and enabling, by the call center system, the call connection to continue for communications.

2. The computer-implemented method of claim 1, wherein the code snippet is retrieved from the server based on a user interaction with the mini-application link and the mini-application link is a uniform resource locator to the server comprising the code snippet.

3. The computer-implemented method of claim 1, wherein the server is maintained by an application store and the code snippet is downloaded to the mobile device in response to a selection.

4. The computer-implemented method of claim 1, wherein the code snippet is configured to execute on the mobile device and present on a display of the mobile device an indication to tap the contactless card on a surface of the mobile device.

5. The computer-implemented method of claim 1, comprising: registering, by the call center system, a request to perform an authentication for the call connection; and generating, by the call center system, the call session identifier based on the registering the request.

6. The computer-implemented method of claim 1, comprising: determining, by the call center system, the phone number for the call connection; determining, by the call center system, an account is associated with the phone number of the mobile device; and automatically sending, by the call center system, the text message to the mobile device based on the determining the account is associated with the phone number.

7. The computer-implemented method of claim 1, comprising receiving, by the call center system, a second text message from the mobile device, the text message comprising a code to perform authentication of a call agent of the call center system.

8. The computer-implemented method of claim 1, wherein the call center system to receive the authentication information from the code snippet executing on the mobile device, wherein the code snippet is configured to perform a read operation with the contactless card to receive the authentication information and send to the call center system.

9. A call center system, comprising: processing circuitry; and memory storing instructions that, when executed by the processing circuitry, cause the circuitry to: determine a call connection with a mobile device; determine a phone number associated with the mobile device; send a text message to the mobile device based on the phone number, the text message comprising a mini-application link, the mini-application link configured to retrieve a code snippet on the mobile device; receive authentication information from the mobile device, the authentication information generated by a contactless card; authentic the authentication information; and enable, by the call center system, the call connection to continue for communications based on the authentication information being authentic.

10. The system of claim 9, wherein the code snippet is received from a server based on a user interaction with the mini-application link and the mini-application link is a uniform resource locator to the server comprising the code snippet.

11. The system of claim 10, wherein the server is maintained by an application store and the code snippet is downloadable to the mobile device in response to a selection.

12. The system of claim 9, wherein the code snippet is configured to execute on the mobile device and present on a display of the mobile device an indication to tap the contactless card on a surface of the mobile device.

13. The system of claim 9, comprising further instructions to cause the processing circuitry to: register a request to perform an authentication for the call connection; and generate a call session identifier based on the registering the request, wherein the call session identifier is communicated to the mobile device and is utilized by the call center system to associate the authentication of the authentication information with the call connection.

14. The system of claim 9, comprising further instructions to cause the processing circuitry to: determine the phone number for the call connection; determine an account is associated with the phone number of the mobile device; and automatically send the text message to the mobile device based on the account being associated with the phone number.

15. The system of claim 9, comprising further instructions to cause the processing circuitry to: receive a second text message from the mobile device, the text message comprising a code to perform authentication of a call agent of the call center system.

16. The system of claim 9, wherein the call center system to receive the authentication information from the code snippet execute on the mobile device, wherein the code snippet is configured to perform a read operation with the contactless card to receive the authentication information and send to the call center system.

17. A computer-implemented method, comprising: establishing, by a mobile device, a call connection with a call center system; receiving, by the mobile device, a text message comprising a call session identifier and a mini-application link, the mini-application link configured to retrieve a code snippet from a server; receiving, by the mobile device, the code snippet from the server; executing, by the mobile device, the code snippet, the code snippet causing a prompt to present on a display of the mobile device to tap a contactless card on or near the mobile device; receiving, by the mobile device, authentication information from the contactless card based on the tap of the contactless card on or near the mobile device; sending, by the mobile device, the authentication information and the call session identifier; and maintaining, by the mobile device, the call connection with the call center system based on an indication the authentication information is authenticated.

18. The computer-implemented method of claim 17, comprising sending, by the mobile device, a second text message comprising a code to perform authentication of a call agent of the call center system.

19. The computer-implemented method of claim 17, wherein the mini-application link is a uniform resource locator to the server comprising the code snippet.

20. The computer-implemented method of claim 17, wherein the server is maintained by an application store and the code snippet is downloaded to the mobile device in response to a selection.

Description:
TECHNIQUES TO PERFORM DYNAMIC CALL CENTER AUTHENTICATION

UTILIZING A CONTACTLESS CARD

BACKGROUND

[0001] Service providers typically provide call center services to enable clients to access, modify, delete or otherwise control their accounts. From a security standpoint, call centers can be the riskiest areas of an enterprise because call center transactions may expose sensitive customer information to malicious third parties.

[0002] Call centers face both internal and external risks. Internal risks include employee theft of sensitive customer information. During a typical authentication process, call center employees have direct access to sensitive customer data. Call centers may be outsourced, and call center employees have a high turnover rate. As a result, companies are constantly at risk that departing or remote employees may improperly retain customer information.

[0003] External risks include those posed by “spoofing” and “phishing” where imposters mask or modify incoming numbers, email addresses, IP addresses, etc., to pose as clients in an attempt to steal information or funds. Hackers also pose external risks that monitor service provider communications, particularly call center communications, to steal customer information.

[0004] The Payment Card Industry Security Standards Council (PCI SSC) manages the ongoing evolution of the Payment Card Industry (PCI) security standards to address these security concerns. Service providers are responsible for enforcing compliance with PCI standards to protect sensitive customer data. For example, the PCI standards may dictate authentication standards to be followed prior to permitting a client to access and/or modify customer account information. Call centers may require client authentication in the form of the exchange of passwords, answers to personal questions, biometric data, or the like. Customers may be prompted multiple times to provide authentication information in various forms during the handling of a call. Not only can this authentication and re-authentication process frustrate a client and degrade the service provider's goodwill, each authentication instance potentially exposes sensitive customer information to potentially malicious parties. BRIEF SUMMARY

[0005] In one aspect, embodiments include a computer-implemented method, which includes establishing, by a call center system, a call connection with a mobile device, determining, by the call center system, a call session identifier for the call connection and a phone number associated with the mobile device, sending, by the call center system, a text message to the mobile device based on the phone number, the text message includes the call session identifier and a mini-application link, the mini-application link configured to retrieve a code snippet from a server by the mobile device, receiving, by the call center system, authentication information and the call session identifier from the mobile device, the authentication information generated by a contactless card, determining, by the call center system, the authentication information is authentic and enabling, by the call center system, the call connection to continue for communications.

[0006] In one aspect, a call center system includes processing circuitry. The call center system also includes a memory storing instructions that, when executed by the processing system, cause the system to determine a call connection with a mobile device, determine a phone number associated with the mobile device, send a text message to the mobile device based on the phone number, the text message includes a mini-application link, the mini-application link configured to retrieve a code snippet on the mobile device, receive authentication information from the mobile device, the authentication information generated by a contactless card, authentic the authentication information, and enable, by the call center system, the call connection to continue for communications based on the authentication information being authentic.

[0007] In one aspect, embodiments systems and devices to perform computer-implemented methods and techniques including a computer-implemented method having establishing, by a mobile device, a call connection with a call center system, receiving, by the mobile device, a text message includes a call session identifier and a mini-application link, the mini-application link configured to retrieve a code snippet from a server, receiving, by the mobile device, the code snippet from the server, executing, by the mobile device, the code snippet, the code snippet causing a prompt to present on a display of the mobile device to tap a contactless card on or near the mobile device, receiving, by the mobile device, authentication information from the contactless card based on the tap of the contactless card on or near the mobile device, sending, by the mobile device, the authentication information and the call session identifier, and maintaining, by the mobile device, the call connection with the call center system based on an indication the authentication information is authenticated.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0008] To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.

[0009] FIG. 1 illustrates an example of a system 100 in accordance with embodiments.

[0010] FIG. 2A illustrates an example of a sequence diagram 200a that may be performed in accordance with embodiments.

[0011] FIG. 2B illustrates an example of a sequence diagram 200b that may be performed in accordance with embodiments.

[0012] FIG. 3 illustrates a routine 300 in accordance with embodiments.

[0013] FIG. 4 illustrates a routine 400 in accordance with embodiments.

[0014] FIG. 5 illustrates a processing flow 500 in accordance with embodiments.

[0015] FIG. 6 illustrates an example of a system 600 in accordance with embodiments.

[0016] FIG. 7 illustrates a contactless card 116 in accordance with one embodiment.

[0017] FIG. 8 illustrates a transaction card component 800 in accordance with one embodiment.

[0018] FIG. 9 illustrates a sequence flow 900 in accordance with one embodiment.

[0019] FIG. 10 illustrates a data structure 1000 in accordance with one embodiment.

[0020] FIG. 11 is a diagram of a key system according to an example embodiment.

[0021] FIG. 12 is a flowchart of a method of generating a cryptogram according to an example embodiment.

[0022] FIG. 13 illustrates an aspect of the subject matter in accordance with one embodiment.

[0023] FIG. 14 illustrates an aspect of the subject matter in accordance with one embodiment.

[0024] FIG. 15 illustrates a computer architecture 1500 in accordance with one embodiment.

[0025] FIG. 16 illustrates a communications architecture 1600 in accordance with one embodiment. DETAILED DESCRIPTION

[0026] Embodiments are generally directed to systems and techniques to perform secure authentication operations utilizing a mini-application operating a customer's device, such as their mobile device or mobile phone. Thus, these techniques enable the secure authentication operations to be performed via a device without requiring downloading a large full application and improvements over previous technical solutions by minimizing download times and storage space required for the application.

[0027] For example, authentication of a customer may be required during a help or customer service call. Techniques discussed herein include sending a text message including a link to the mini-application to a device associated with the customer. The mini-application is downloaded and executed on the customer's device to perform the authentication. As discussed, the miniapplication may include a minimal amount of executable instructions to perform the authentication. In one example, the authentication may be performed with a customer's contactless card. The customer may be asked to bring the card within a communication range of the device, e.g., to tap the card on the device, which initiates an exchange of data between the device and the contactless card. As part of the exchange, the card may send and/or the device may retrieve authentication information. The device may send the authentication information to a system to perform the authentication of the customer. Based on the result of the authentication, the call may be permitted to continue or may be canceled. These and other details will become more apparent in the following description.

[0028] FIG. 1 illustrates an example of a system 100 in accordance with embodiments discussed herein. The illustrated system 100 is a simplified illustration for discussion purposes, and in implementation, the system 100 includes additional components not shown, such as networking components, additional servers and processing devices, and so forth.

[0029] The illustrated system 100 includes components and devices to perform and process call center communications and verify callers calling into the call center simplified and quickly compared to legacy authentication techniques. As previously discussed, embodiments discussed herein provide advantages over legacy systems by enabling customers to call into a call center and authenticate themselves using their contactless card without installing a full mobile application on a mobile device or another client device.

[0030] The call center system 106 may be configured to provide call center services to callers for a product or service. In one example, the call center system 106 may be implemented as part of a banking system and configured to provide call center services for the bank's customers. Thus, in some instances, the call center system may deal with sensitive information requiring that the caller be authenticated before discussing the information. The call center system 106 may include any number of components to enable a plurality of operators or call agents to handle calls and provide call center support. In FIG. 1, the call center system 106 includes a call server 108 and an authentication server 110. The call server 108 may be configured to provide call center services, including handling the calls and establishing call connections with other devices, providing user interfaces for support personnel and operators, accessing information and data to support calls, determining customer authentication is required, initiating authentication operation, and so forth. Note that the call server 108 may be a number of servers and other computing devices and equipment.

[0031] The authentication server 110 may perform authentication operations for the call center system 106. In the implementation, the authentication server 110 may include a number of servers and other computing devices and components. The authentication server 110 may be configured to register pending authentication operations, and perform authentication operations by comparing authentication information provided by the caller to authenticated information maintained by the authentication server 110, e.g., in a data store. The authentication server 110 may return the result of the authentication operation to the call server 108 to utilize whether to proceed with a call or not.

[0032] In embodiments, the call center system 106 is configured to handle telephone calls from any type of phone device, such as mobile device 102, telephone 118, or any other device used to make a call. Moreover, the call center system 106 may be configured to handle and process calls in accordance with different protocols, such as those required to handle calls on the Plain Old Telephone system (POTs 120) and the Voice over Internet Protocol (VoIP) system via network 104, which may include cellular communication protocols and landline protocols.

[0033] In a specific example, the call center system 106, including the call server 108, may receive or initiate a call with a device and establish a call connection with the device. Once established, the call server 108 may determine that an authentication routine or operation is required to support the call. For example, the call may deal with secure information, e.g., a bank account. The call server 108 may initiate an authentication routine to register a pending authentication with the authentication server 110 and to authenticate the caller or user on the phone.

[0034] The authentication server 110 may perform the authentication operation, including collecting information from the caller. As discussed herein, the call center system 106, including the authentication server 110 may utilize a mini-application or code snippet, such as an Apple® App Clip® or a Google® Instant App®, to perform the authentication routine and gather the authentication information from the caller. Utilizing the mini-application or code snippet provides improvements over legacy techniques because it enables the call center system 106 to securely and electronically collect data from the caller without the caller installing a bulky application that may require a long period of time. The mini-application or code snippet is specifically tailored to perform the operations to collect the authentication information and to provide the information authentication server 110 for further processing.

[0035] To provide the mini-application or code snippet to the customer, the call center system 106, including the call server 108 may register the authentication operation with the authentication server 110 to notify the authentication server 110 of the pending authentication and have a call session identifier generated associated with the authentication operation. Specifically, the call server may make an application programming interface (API) call to the authentication server to associate the caller's unique identifier, e.g., portable Unique Identifier (pUID), with the pending authentication to be performed by the authentication server. The authentication server may generate a session token or call session identifier for the pending authentication and return the call session identifier to the call server in response to the API call. The call session identifier may be provided in a text message to send to the mobile device. The call session identifier may be any unique combination of alphanumeric characters used to uniquely identify a pending authentication operation by the authentication server 110. The call session identifier may be a one-time use identify, and each pending authentication operation may be associated with a different identifier.

[0036] The call server 108 may generate a text message including a link to download and/or initiate the mini-application on a device associated with the caller. The text message may be communicated in accordance with any messaging protocol, e.g., short messaging service (SMS), multimedia messaging service (MMS), rich communication service (RCS), and so forth. The link may be a uniform resource locator (URL) link to a location to download the miniapplication, e.g., an address of a server. In some embodiments, the link may point to a server 114 of an application store system 112, and the device may download the mini-application or code snippet from the application store system 112. In other instances, the call center system 106 may maintain the mini-application, and the user's device may download it from the call center system 106.

[0037] The call server 108 may send the text message to a device associated with the caller. In some instances, the call server 108 may send it to the device on which the caller is calling, such as a mobile device 102. However, in other instances, the calling device may not have text messaging capabilities, e.g., telephone 118, and the call server 108 may determine another device associated with the caller, such as a different mobile device or another computing device, to send the text message. To determine a device to send the message, the call server 108 may utilize the phone number associated with the call connection. For example, the call server 108 may determine the call number associated with a call connection with the mobile device 102 and send the mobile device 102 a text message. In another example, the call center system 106 may utilize the call number associated with a call connection with telephone 118 to perform a lookup to determine a different device to send the text message. In embodiments, other information may be used to determine the device to send the message, e.g., the caller may provide information such as their name, address, account number, etc.

[0038] In embodiments, the device, such as mobile device 102, may receive the text message to perform authentication from the call server 108. The text message includes the link, which may be selectable by a user. For example, the caller may use a touchscreen interface or another input device to select the link. The messaging program may be configured to process the link, e.g., launch an application to download the mini-application, automatically download the miniapplication, or launch the mini-application.

[0039] The text message may also include the call session identifier in some instances. The call session identifier may be appended to a portion of the text message. In some instances, it may be embedded in the link, and in other instances, it may be separated from the link. In some embodiments, the device may receive the call session identifier in a different text message. The call session identifier may be a unique identifier associated with the authentication operation and may be sent back with authentication information for the authentication server 110 to perform the authentication.

[0040] In embodiments, the selectable link may include an address to the server, such as server 114 of the application store system 112, to download a mini-application or code snippet configured to perform the authentication. In response to being selected, the mobile device 102 may automatically download and execute the mini-application. In some instances, the mobile device 102 may already have the mini-application downloaded, e.g., from a previous authentication attempt, and selecting the link causes the mini-application to execute.

[0041] The mini-application or code snippet may be configured to execute on the mobile device 102 and include instructions to perform a single or a limited number of operations. Generally, the mini-application is much smaller in size than a full-size application, which is beneficial over legacy solutions by requiring less memory to execute and may be downloaded more quickly.

[0042] In accordance with embodiments, the mini-application or code snippet discussed herein may include instructions to cause a prompt to display on the display of the mobile device for a user to provide a contactless card on or near the mobile device and cause the mobile device to perform a wireless communication exchange, e.g., near-field communication (NFC), with contactless cards 116 to receive authentication information. The instructions may be configured to cause the mobile device 102 to communicate the authentication information and in some instances, the call session identifier to the authentication server 110. The code snippet may be configured to utilize an application programming interface (API) provided by the authentication server 110 to securely communicate the authentication information to the authentication server 110, e.g., in an API call. In some instances, the mobile device 102 may also communicate the call session identifier with the authentication information to the authentication server 110. The authentication server 110 can associate the authentication information with a particular pending/register and authentication routine. The mini-application or code snippet may include additional instructions that enable the performance of these operations, e.g., any files or runtime libraries required to perform the operations.

[0043] The authentication server 110 may process the authentication information to determine whether it is authentic. In embodiments, the authentication server 110 may receive the authentication information and the call session identifier from a mobile device 102, determine authenticated information associated with the contactless card/caller, and compare the authentication information to authenticated information to determine whether they match. In embodiments, authentication server 110 may utilize the call session identifier to determine the authenticated information associated with the contactless card or caller. For example, the authentication server 110 may perform a lookup based on the call session identifier to determine and retrieve the authenticated information from a data store. The data store may be any type of data store, such as a database configured to store authenticated information associated with customers and their contactless cards. In some instances, the call session identifier may be used to determine additional information relating to the caller to perform the lookup, e.g., an account number, a name, and an address, etc. This information may be correlated with teh call session identifier when the authentication operation is registered.

[0044] In embodiments, the authentication server 110 compares to authenticated information to the authentication information received from the mobile device 102. If they match, the authentication server 110 may authenticate the contactless card and notify call server 108 and the operator. If they do not match, the authentication server 110 may not authenticate the contactless card and notify the call server 108 and the operator. In some instances, the authentication information may be encrypted, and the authentication server 110 may first decrypt the authentication information utilizing session keys derived from a master key, as discussed herein, e.g., FIG. 12 through FIG. 14. In response to the authentication information being authenticated, the 106 may enable the call to continue and maintain the call connection. If the authentication information is not authenticated, the call connection may be canceled or disconnected. FIG. 6 through FIG. 14 discuss additional details with respect to performing authentication with the data on the contactless card 116 and an authentication server.

[0045] In some embodiments, the caller may also perform an authentication operation to authenticate the operator of the call center system 106. In one example, the caller may send a text message with a code, e.g., an alphanumeric sequence, to the call center system 106. The code may be displayed to the operator, and the operator may read back the code. In embodiments, the caller may send the text message to a known phone number associated with call center system 106 known to be safe and/or legitimate. If the operator is not authenticated, the caller may determine to end the call connection. Alternatively, if the operator is authenticated, the caller determines to maintain the call connection.

[0046] FIG. 2A and FIG. 2B illustrates example sequence flows 200a and 200b that may be performed in accordance with embodiments to authenticate a caller by a call center. In addition to authenticating the caller, FIG. 2B extends the sequence and includes authenticating the operator by the caller.

[0047] In embodiments, a call may be initiated between a mobile device 102 and a call server 108 at line 202. The call may be initiated by the mobile device 102, or the call server 108, and embodiments are not limited in this manner. Initiating a call may include establishing a call connection between the mobile device 102 and the call server 108. Therefore, the call may be conducted over a POTs system, a VoIP system, or a combination. Further, embodiments are not limited to calls with mobile devices, and calls may be conducted with older telephones and/or non-mobile devices.

[0048] At line 204, the sequence includes the call server 108 sending a text message including a mini-application link to the call server 108. Although not illustrated in this manner, the call server 108 may also register a pending authentication for the call with the authentication server 110 at line 206 in parallel. In some instances, the call server 108 may first register the authentication and receive a call session identifier to include in the text message. In other instances, the call server 108 may send a second message to the mobile device 102 with the call session identifier.

[0049] Registering the authentication operation may include generating the call session identifier and determining authenticated information associated with the call. For example, the authentication server 110 may determine the authenticated information based on information associated with call, e g., a telephone number, a caller name, an account number, an address, etc.

[0050] At line 208, the sequence includes the mobile device 102 downloading a code snippet from server 114, e.g., an app store server. In embodiments, the code snippet may be downloaded based on a user of the mobile device 102 selecting the mini-app link in the text message sent by the call server 108. The code snippet may be configured to execute on the mobile device 102 to perform authentication operations. For example, the code snippet may cause a message to display on the mobile device 102 to tap a contactless card to the mobile device 102. At line 210, the caller may tap a contactless card to the mobile device 102, the mobile device 102 may receive authentication information from the card, as previously discussed. Further and at line 210, the mobile device also sends the authentication information to the authentication server 110. The mobile device 102 may send the call session identifier with the authentication information to the authentication server 110.

[0051] The authentication server 110 may perform an authentication operation on the authentication information. For example, the authentication server 110 may compare the authentication information to authenticated information. If they match, the authentication server 110 may authenticate the authentication information; however, if they do not match, the authentication server 110 may not authenticate the authentication information. At line 212, the authentication server 110 may return a result of the authentication to the call server 108.

[0052] At line 214, the call connection is maintained between the mobile device 102 and the 108 based on authenticated authentication information. If the authentication information is not authenticated, the call connection between the mobile device 102 and the call server 108 would end.

[0053] Sequence diagram 200b illustrates the same flow as sequence diagram 200a; however, the caller may perform an authentication step to authenticate the operator. For example, at line 216, the caller and mobile device 102 may communicate a secret code to the call server 108. The call server 108 may present the secret code to an operator of the call server 108. The operator may read back the code over the voice connection, and the caller may confirm the operator's authentication. For example, at line 218 the mobile device 102 may send an indication of the result of the operator authentication server 114. Embodiments are not limited to the specific sequence illustrated in FIGs. 2a/2b. In some instances, one or more of the operations may happen before other operations.

[0054] FIG. 3 illustrates an example routine 300 that the systems discussed herein may perform. For example, a call center system including one or more servers may perform one or more of the following options. Note that one or more of the operations may be performed by different servers and/or systems in some instances. For example, a call server may process one or more of the operations for a call connection, while an authentication server may perform one or more operations to authenticate a caller. In other instances, the operations may be performed on a single server or computing device or on multiple servers or computing devices.

[0055] In block 302, routine 300 includes establishing a call connection with a mobile device. For example, a call center system may make a call connection with a mobile device based on the mobile device calling into a helpline or contact number. In other instances, the call center system may originate the call connection with the mobile device. The call connection may be made over any type of voice communication protocol or connection, e.g., Plain Old Telephone Service (POTS), cellular protocol, WiFi protocol, Voice over Internet Protocol (VoIP), etc.

[0056] In embodiments, the call center system may first determine to perform one or more authentication operations to authenticate the caller using the mobile device. In block 304, routine 300 includes determining a call session identifier for the call connection and a phone number associated with the mobile device. To determine the call session identifier, a call center system's call server may communicate and register the call connection with an authentication server of an authentication system. Specifically, the call server may make an application programming interface (API) call to the authentication server to associate the caller's unique identifier, e.g., portable Unique Identifier (pUID), with the pending authentication to be performed by the authentication server. The authentication server may generate a session token or call session identifier for the pending authentication and return the call session identifier to the call server in response to the API call. The call session identifier may used by the authentication server to identify which pending authentication it is performing and where to return the authentication result.

[0057] The call center system may also determine a phone number associated with the call connection. For example, the call center system may determine the phone number based on information in the call itself. In another example, the call center system may perform a lookup of an account based on information provided by the caller. In a third example, the caller may provide the phone number, e.g., via a voice input or touchpad input. The phone number may be used to communicate back to the mobile device.

[0058] For example, in block 306, routine 300 includes sending a text message to the mobile device based on the phone number. The text message may include the call session identifier and a mini-application link. The mini-application link is configured to retrieve a code snippet from a server by the mobile device. In embodiments, the mini-application link may be a uniform resource locator (URL) to an address of a server to download the mini-application. In some instances, the server may be part of an application store, such as the Google® Play® store or the Apple® App Store®. In other instances, the server may be part of the call center system, and embodiments are not limited in this manner.

[0059] In embodiments, the mini-application may be a code snippet, e.g., a small portion of executable code, that may be configured to execute on the mobile device. In some instances, the mini-application may be an Apple® App Clip® or an Android® Instant App®. However, embodiments are not limited to these examples.

[0060] As discussed in more detail in FIG. 4, the mobile device may download or retrieve the code snippet and execute the code snippet. The code snippet may perform one or more operations on the mobile device, including determining authentication information and communicating the authentication information to the call center system, e.g., the authentication server, to authenticate the authentication information. In some instances, the mobile device may also communicate the call session identifier with the authentication information to the call center system such that it can associate the authentication information with a pending authentication operation or request.

[0061] In block 308, the routine 300 includes receiving authentication information and the call session identifier from the mobile device. In some instances, the authentication information and call session identifier is received by an authentication server. In block 310, the routine 300 determines the authentication information is authentic. For example, the authentication server may compare the authentication information with stored authentic information. As previously discussed, the call session identifier may be associated with the caller (pUID) and with a particular authentication operation during a registration process. The authentication server may utilize the call session identifier to determine the authentic information associated with the caller by performing a lookup in a data store.

[0062] In embodiments, the result of the comparison may be returned to a call center server or another device and based on the result, and the call connection may be maintained or closed. In this example, the authentication information is successfully authenticated. In block 312, routine 300 includes enabling the call connection to continue for communications.

[0063] FIG. 4 illustrates an example of a routine 400 that may be performed in accordance with embodiments discussed herein. In some examples, the routine 400 may be performed by a computing device, such as a mobile phone or a mobile device. Embodiments are not limited to these examples.

[0064] In block 402, the routine 400 includes establishing a call connection with a call center system. The call connection may be established based on a caller using the mobile device to call the call center system. In other instances, the call connection may be established by the call center system calling the mobile device, e.g., a return support call.

[0065] In block 404, the routine 400 includes receiving a text message comprising a call session identifier and a mini-application link. The text message may be generated and sent by the call center system in embodiments. As discussed, the mini-application link may be a URL or another type of selectable link to an address to download a mini-application, such as the code snippet. In some instances, a caller may select the mini-application link, and the mobile device may download or retrieve the code snippet from the location specified by the link. In some instances, the code snippet may be automatically downloaded upon receiving the text message. In block 406, routine 400 receives the code snippet from the server by the mobile device.

[0066] In block 408, the routine 400 includes executing the code snippet. The code snippet may be an executable portion of code in some embodiments. The code snippet may be configured to perform an authentication operation on the mobile device. The authentication may be performed utilizing a contactless card in embodiments discussed herein. For example, the code snippet may execute, causing a display to be presented on a display of the mobile device. The display may instruct the caller to tap a contactless card on the surface of the mobile device or bring the card close to the mobile device. Bringing the card with a specified range, e.g., an NFC communication range, causes an exchange of data between the mobile device and the contactless card, as discussed herein in FIGs. 5-14. The contactless card may provide authentication information, such as encrypted data in a cryptogram.

[0067] In block 410, the routine 400 includes receiving authentication information from the contactless card based on the tap of the contactless card on or near the mobile device. For example, the contactless card may communicate the authentication information to the mobile device in an NFC exchange. Embodiments are not limited in this manner, and the authentication information may be communicated in accordance with other short-range communication protocols, such as Bluetooth®, WiFi, RF, etc.

[0068] In block 412, routine 400 includes sending the authentication information and the call session identifier to the call center system. For example, the mobile device may send the authentication information and call session identifier to an authentication server of the call center system to perform authentication operations on the information, e.g., determine that there is a match between the authentication information and authenticated information stored on the authentication system. The authentication system may perform the authentication operations and determine a result that may be provided to a call center server and/or the mobile device. Based on the result, the call center system and/or the mobile device may determine whether to proceed with the call connection or cease the connection, i.e., hang-up. The call connection is maintained between the call center system and the mobile device in this routine. In block 414, the routine 400 includes maintaining the call connection with the call center system based on an indication the authentication information is authenticated.

[0069] FIG. 5 illustrates an example of a processing flow 500 that a call center system may perform authentication operations to determine whether to continue with a call. These operations may be performed by one or more servers of the call center system, and embodiments are not limited in this manner. At block 502, the processing flow 500 includes establishing a call with a telephone device, such as a mobile device or another telephone. The call connection can be made over a VoIP connection, POTs connection, or another type of connection. Further, the connection may be initiated by the call center system or the other device.

[0070] The call center system may determine to perform authentication to authenticate the caller/user of the other device. In embodiments, the authentication may be performed by having the caller provide an additional piece of information, i.e., authentication information. In one example, the call center system may request that the caller provide authentication information generated by a contactless card by utilizing a mini-application, such as an App Clip® or an Instant App®. The mini-application may be downloaded on the telephone device with which the call connection is made with another device associated with the caller, e.g., a different mobile device.

[0071] At block 504, the processing flow 500 includes sending a text message to another device to perform an authentication of the caller. In embodiments, the text message may be sent by the call center system and include a mini -application link, such as a URL, that may be used to download the mini-application to the device. Thus, when a user selects the link, the miniapplication may download from a server hosting the application. Note that in some instances, the min application may already be installed and/or downloaded on the device, and the selection of the link may cause the mini-application to execute without requiring a download. The link may be to an address of a server of the call center system or an application store hosting the mini-application.

[0072] At block 506, the processing flow 500 includes receiving authentication information. In one example, the mobile device may send, and the call center system including an authentication server, may receive the authentication information. The authentication information may be collected by the mobile device. For example, the authentication information may be generated by a contactless card, and the mobile device may read the information from the card. Embodiments support other authentication information collected. For example, the additional authentication information may include a password or pin entered by a user, a biometric collected by the mobile device, or another piece of information known to the caller and the authentication system. Embodiments are not limited in this manner. [0073] At block 508, the processing flow 500 includes performing an authentication operation on the authentication information. Specifically, the authentication server may compare the authentication information to know valid and authentic information maintained by the call center system. In some embodiments, the authentication server may determine the valid and authentic data in the call center system by performing a lookup in a data store with an identifier, e.g., call session identifier.

[0074] At decision block 510, the processing flow 500 includes determining whether the authentication information is valid or not valid based on the result of the comparison. If the information is not authenticated, the processing flow 500 may proceed to block 514, and the call connection may disconnect. If the information is authenticated, the processing flow 500 may proceed tO block 512, and the connection may be maintained. In some embodiments, the caller may also perform an authentication, e.g., by providing a piece of information that may be read back to the caller, as previously discussed.

[0075] FIG. 6 illustrates a data transmission system 600 according to example embodiments. The system 600 may be one example configuration to perform authentication operations with a contactless card, including generating authentication information and communicating the authentication information to an authentication server 110. As further discussed below, system 600 may include contactless card 116, mobile device 102, network 602, and authentication server 110. Although FIG. 6 illustrates single instances of the components, system 600 may include any number of components.

[0076] System 600 may include one or more contactless cards 116, which are further explained below. In some embodiments, contactless card 116 may be in wireless communication, utilizing near-field communication (NFC) in an example, with mobile device 102.

[0077] System 600 may include mobile device 102, or a client device. In some embodiments, the client device may be a network-enabled computer. As referred to herein, a network-enabled computer may include, but is not limited to a computer device, or communications device including, e.g., a server, a network appliance, a personal computer, a workstation, a phone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other device. The mobile mobile device 102 may be any type of mobile device; for example, a mobile device may include an iPhone, iPod, iPad from Apple® or any other mobile device running Apple’s iOS® operating system, any device running Microsoft’s Windows® Mobile operating system, any device running Google’s Android® operating system, and/or any other smartphone, tablet, or like wearable mobile device.

[0078] The mobile device 102 device can include a processor and a memory, and it is understood that the processing circuitry may contain additional components, including processors, memories, error and parity/CRC checkers, data encoders, anticollision algorithms, controllers, command decoders, security primitives and tamperproofing hardware, as necessary to perform the functions described herein. The mobile device 102 may further include a display and input devices. The display may be any type of device for presenting visual information such as a computer monitor, a flat panel display, and a mobile device screen, including liquid crystal displays, light-emitting diode displays, plasma panels, and cathode ray tube displays. The input devices may include any device for entering information into the user’s device that is available and supported by the user’s device, such as a touch-screen, keyboard, mouse, cursor-control device, touch-screen, microphone, digital camera, video recorder or camcorder. These devices may be used to enter information and interact with the software and other devices described herein.

[0079] In some examples, mobile device 102 of system 600 may execute one or more applications, such as software applications, that enable, for example, network communications with one or more components of system 600 and transmit and/or receive data.

[0080] The mobile device 102 may be in communication with one or more server(s) 110 via one or more network(s) 602, and may operate as a respective front-end to back-end pair with the authentication server 110, for example. The mobile device 102 may transmit, for example from a mobile device mini-application, executing on mobile device 102, one or more requests to authentication server 110. The one or more requests may be associated with retrieving or sending data from authentication server 110. The authentication server 110 may receive the one or more requests from mobile device 102. Based on the one or more requests from mobile device 102, authentication server 110 may be configured to perform one or more operations to authenticate authentication information.

[0081] System 600 may include one or more networks 602. In some examples, network 602 may be one or more of a wireless network, a wired network or any combination of wireless network and wired network, and may be configured to connect mobile device 102 to authentication server 110. For example, network 602 may include one or more of a fiber optics network, a passive optical network, a cable network, an Internet network, a satellite network, a wireless local area network (LAN), a Global System for Mobile Communication, a Personal Communication Service, a Personal Area Network, Wireless Application Protocol, Multimedia Messaging Service, Enhanced Messaging Service, Short Message Service, Time Division Multiplexing based systems, Code Division Multiple Access based systems, D-AMPS, Wi-Fi, Fixed Wireless Data, IEEE 1202.11 family of networking, Bluetooth, NFC, Radio Frequency Identification (RFID), Wi-Fi, and/or the like.

[0082] In addition, network 602 may include, without limitation, telephone lines, fiber optics, IEEE Ethernet 802.3, a wide area network, a wireless personal area network, a LAN, or a global network such as the Internet. In addition, network 602 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof, network 602 may further include one network, or any number of the exemplary types of networks mentioned above, operating as a stand-alone network or in cooperation with each other, network 602 may utilize one or more protocols of one or more network elements to which they are communicatively coupled, network 602 may translate to or from other protocols to one or more protocols of network devices. Although network 602 is depicted as a single network, it should be appreciated that according to one or more examples, network 602 may comprise a plurality of interconnected networks, such as, for example, the Internet, a service provider's network, a cable television network, corporate networks, such as credit card association networks, and home networks.

[0083] System 600 may include one or more authentication servers 110. In some examples, authentication server 110 may include one or more processors, which are coupled to memory. The authentication server 110 may be configured as a central system, server or platform to control and call various data at different times to execute a plurality of workflow actions, authentication server 110 may be configured to connect to other devices and systems including one or more databases configured to store authenticated information. The authentication server 110 may be connected to at least one mobile device 102.

[0084] FIG. 7 illustrates an example configuration of a contactless card 116, which may include a payment card, such as a credit card, debit card, or gift card, issued by a service provider as displayed as service provider indicia 702 on the front or back of the contactless card 116. In some examples, the contactless card 116 is not related to a payment card, and may include, without limitation, an identification card. In some examples, the transaction card may include a dual interface contactless payment card, a rewards card, and so forth. The contactless card 116 may include a substrate 708, which may include a single layer or one or more laminated layers composed of plastics, metals, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyesters, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 116 may have physical characteristics compliant with the ID-1 format of the ISO/IEC 7816 standard, and the transaction card may otherwise be compliant with the ISO/IEC 14443 standard. However, it is understood that the contactless card 116 according to the present disclosure may have different characteristics, and the present disclosure does not require a transaction card to be implemented in a payment card.

[0085] The contactless card 116 may also include identification information 706 displayed on the front and/or back of the card, and a contact pad 704. The contact pad 704 may include one or more pads and be configured to establish contact with another client device, such as an ATM, a user device, smartphone, laptop, desktop, or tablet computer via transaction cards. The contact pad may be designed in accordance with one or more standards, such as ISO/IEC 7816 standard, and enable communication in accordance with the EMV protocol. The contactless card 116 may also include processing circuitry, antenna and other components as will be further discussed in FIG. 8. These components may be located behind the contact pad 704 or elsewhere on the substrate 708, e.g. within a different layer of the substrate 708, and may electrically and physically coupled with the contact pad 704. The contactless card 116 may also include a magnetic strip or tape, which may be located on the back of the card (not shown in FIG. 7). The contactless card 116 may also include a Near-Field Communication (NFC) device coupled with an antenna capable of communicating via the NFC protocol. Embodiments are not limited in this manner.

[0086] As illustrated in FIG. 7, the contact pad 704 of contactless card 116 may include processing circuitry 816 for storing, processing, and communicating information, including a processor 802, a memory 804, and one or more interface(s) 806. It is understood that the processing circuitry 816 may contain additional components, including processors, memories, error and parity/CRC checkers, data encoders, anticollision algorithms, controllers, command decoders, security primitives and tamperproofing hardware, as necessary to perform the functions described herein. [0087] The memory 804 may be a read-only memory, write-once read-multiple memory or read/write memory, e.g., RAM, ROM, and EEPROM, and the contactless card 116 may include one or more of these memories. A read-only memory may be factory programmable as readonly or one-time programmable. One-time programmability provides the opportunity to write once then read many times. A write once/read-multiple memory may be programmed at a point in time after the memory chip has left the factory. Once the memory is programmed, it may not be rewritten, but it may be read many times. A read/write memory may be programmed and reprogramed many times after leaving the factory. A read/write memory may also be read many times after leaving the factory. In some instances, the memory 804 may be encrypted memory utilizing an encryption algorithm executed by the processor 802 to encrypted data.

[0088] The memory 804 may be configured to store one or more applet(s) 808, one or more counter(s) 810, a customer identifier 814, and the account number(s) 812, which may be virtual account numbers. The one or more applet(s) 808 may comprise one or more software applications configured to execute on one or more contactless cards, such as a Java® Card applet. However, it is understood that applet(s) 808 are not limited to Java Card applets, and instead may be any software application operable on contactless cards or other devices having limited memory. The one or more counter(s) 810 may comprise a numeric counter sufficient to store an integer. The customer identifier 814 may comprise a unique alphanumeric identifier assigned to a user of the contactless card 116, and the identifier may distinguish the user of the contactless card from other contactless card users. In some examples, the customer identifier 814 may identify both a customer and an account assigned to that customer and may further identify the contactless card 116 associated with the customer’s account. As stated, the account number(s) 812 may include thousands of one-time use virtual account numbers associated with the contactless card 116. An applet(s) 808 of the contactless card 116 may be configured to manage the account number(s) 812 (e g., to select an account number(s) 812, mark the selected account number(s) 812 as used, and transmit the account number(s) 812 to a mobile device for autofilling by an autofilling service. In some embodiments, the applet(s) 808 are configured to generate authentication information as will be discussed in more detail herein.

[0089] The processor 802 and memory elements of the foregoing exemplary embodiments are described with reference to the contact pad 704, but the present disclosure is not limited thereto. It is understood that these elements may be implemented outside of the contact pad 704 or entirely separate from it, or as further elements in addition to processor 802 and memory 804 elements located within the contact pad 704.

[0090] In some examples, the contactless card 116 may comprise one or more antenna(s) 818. The one or more antenna(s) 818 may be placed within the contactless card 116 and around the processing circuitry 816 of the contact pad 704. For example, the one or more antenna(s) 818 may be integral with the processing circuitry 816 and the one or more antenna(s) 818 may be used with an external booster coil. As another example, the one or more antenna(s) 818 may be external to the contact pad 704 and the processing circuitry 816.

[0091] In an embodiment, the coil of contactless card 116 may act as the secondary of an air core transformer. The terminal may communicate with the contactless card 116 by cutting power or amplitude modulation. The contactless card 116 may infer the data transmitted from the terminal using the gaps in the contactless card’s power connection, which may be functionally maintained through one or more capacitors. The contactless card 116 may communicate back by switching a load on the contactless card’s coil or load modulation. Load modulation may be detected in the terminal’s coil through interference. More generally, using the antenna(s) 818, processor 802, and/or the memory 804, the contactless card 101 provides a communications interface to communicate via NFC, Bluetooth, and/or Wi-Fi communications.

[0092] As explained above, contactless card 116 may be built on a software platform operable on smart cards or other devices having limited memory, such as JavaCard, and one or more or more applications or applets may be securely executed. Applet(s) 808 may be added to contactless cards to provide a one-time password (OTP) for multifactor authentication (MFA) in various mobile application-based use cases. Applet(s) 808 may be configured to respond to one or more requests, such as near field data exchange requests, from a reader, such as a mobile NFC reader (e.g., of a mobile device or point-of-sale terminal), and produce an NDEF message that comprises a cryptographically secure OTP encoded as an NDEF text tag.

[0093] One example of an NDEF OTP is an NDEF short-record layout (SR=1). In such an example, one or more applet(s) 808 may be configured to encode the OTP as an NDEF type 4 well known type text tag. In some examples, NDEF messages may comprise one or more records. The applet(s) 808 may be configured to add one or more static tag records in addition to the OTP record.

[0094] In some examples, the one or more applet(s) 808 may be configured to emulate an RFID tag. The RFID tag may include one or more polymorphic tags. In some examples, each time the tag is read, different cryptographic data is presented that may indicate the authenticity of the contactless card. Based on the one or more applet(s) 808, an NFC read of the tag may be processed, the data may be transmitted to a server, such as a server of a banking system, and the data may be validated at the server.

[0095] In some examples, the contactless card 116 and server may include certain data such that the card may be properly identified, e.g., authentication information. The contactless card 116 may include one or more unique identifiers (not pictured). Each time a read operation takes place, the counter(s) 810 may be configured to increment. In some examples, each time data from the contactless card 116 is read (e.g., by a mobile device), the counter(s) 810 is transmitted to the server for validation and determines whether the counter(s) 810 are equal (as part of the validation) to a counter of the server.

[0096] The one or more counter(s) 810 may be configured to prevent a replay attack. For example, if a cryptogram has been obtained and replayed, that cryptogram is immediately rejected if the counter(s) 810 has been read or used or otherwise passed over. If the counter(s) 810 has not been used, it may be replayed. In some examples, the counter that is incremented on the card is different from the counter that is incremented for transactions. The contactless card 101 is unable to determine the application transaction counter(s) 810 since there is no communication between applet(s) 808 on the contactless card 116.

[0097] In some examples, the counter(s) 810 may get out of sync. In some examples, to account for accidental reads that initiate transactions, such as reading at an angle, the counter(s) 810 may increment but the application does not process the counter(s) 810. In some examples, when the mobile device 10 is woken up, NFC may be enabled and mobile device 102 may be configured to read available tags, but no action is taken responsive to the reads.

[0098] To keep the counter(s) 810 in sync, an application, such as a background application, may be executed that would be configured to detect when the mobile device 110 wakes up and synchronize with the server of a banking system indicating that a read that occurred due to detection to then move the counter forward. In other examples, Hashed One Time Password may be utilized such that a window of mis-synchronization may be accepted. For example, if within a threshold of 10, the counter(s) 810 may be configured to move forward. But if within a different threshold number, for example within 10 or 1000, a request for performing resynchronization may be processed which requests via one or more applications that the user tap, gesture, or otherwise indicate one or more times via the user’s device. If the counter(s) 810 increases in the appropriate sequence, then it possible to know that the user has done so. [0099] The key diversification technique described herein with reference to the counter(s) 810, master key, and diversified key, is one example of encryption and/or decryption a key diversification technique. This example key diversification technique should not be considered limiting of the disclosure, as the disclosure is equally applicable to other types of key diversification techniques.

[0100] During the creation process of the contactless card 116, two cryptographic keys may be assigned uniquely per card. The cryptographic keys may comprise symmetric keys which may be used in both encryption and decryption of data. Triple DES (3 DES) algorithm may be used by EMV and it is implemented by hardware in the contactless card 116. By using the key diversification process, one or more keys may be derived from a master key based upon uniquely identifiable information for each entity that requires a key.

[0101] In some examples, to overcome deficiencies of 3DES algorithms, which may be susceptible to vulnerabilities, a session key may be derived (such as a unique key per session) but rather than using the master key, the unique card-derived keys and the counter may be used as diversification data. For example, each time the contactless card 101 is used in operation, a different key may be used for creating the message authentication code (MAC) and for performing the encryption. This results in a triple layer of cryptography. The session keys may be generated by the one or more applets and derived by using the application transaction counter with one or more algorithms (as defined in EMV 4.3 Book 2 Al .3.1 Common Session Key Derivation).

[0102] Further, the increment for each card may be unique, and assigned either by personalization, or algorithmically assigned by some identifying information. For example, odd numbered cards may increment by 2 and even numbered cards may increment by 5. In some examples, the increment may also vary in sequential reads, such that one card may increment in sequence by 1, 3, 5, 2, 2, ... repeating. The specific sequence or algorithmic sequence may be defined at personalization time, or from one or more processes derived from unique identifiers. This can make it harder for a replay attacker to generalize from a small number of card instances. [0103] The authentication information included in an authentication message may be delivered as the content of a text NDEF record in hexadecimal ASCII format. In another example, the NDEF record may be encoded in hexadecimal format.

[0104] FIG. 9 is a timing diagram illustrating an example sequence for providing authentication information according to one or more embodiments of the present disclosure. Sequence flow 900 may include contactless card 116 and mobile device 102, which may include an application 902, such as a mini-application or a code snippet as discussed herein, and processor 904.

[0105] At line 908, the application 902 communicates with the contactless card 116 (e.g., after being brought near the contactless card 116). Communication between the application 902 and the contactless card 116 may involve the contactless card 116 being sufficiently close to a card reader (not shown) of the mobile device 102 to enable NFC data transfer between the application 902 and the contactless card 116.

[0106] At line 906, after communication has been established between mobile device 102 and contactless card 116, contactless card 116 generates a message authentication code (MAC) cryptogram. In some examples, this may occur when the contactless card 116 is read by the application 902. In particular, this may occur upon a read, such as an NFC read, of a near field data exchange (NDEF) tag, which may be created in accordance with the NFC Data Exchange Format. For example, a reader application, such as application 902, may transmit a message, such as an applet select message, with the applet ID of an NDEF producing applet. Upon confirmation of the selection, a sequence of select file messages followed by read file messages may be transmitted. For example, the sequence may include “Select Capabilities file”, “Read Capabilities file”, and “Select NDEF file”. At this point, a counter value maintained by the contactless card 116 may be updated or incremented, which may be followed by “Read NDEF file.” At this point, the message may be generated which may include a header and a shared secret. Session keys may then be generated. The MAC cryptogram may be created from the message, which may include the header and the shared secret. The MAC cryptogram may then be concatenated with one or more blocks of random data, and the MAC cryptogram and a random number (RND) may be encrypted with the session key. Thereafter, the cryptogram and the header may be concatenated, and encoded as ASCII hex and returned in NDEF message format (responsive to the “Read NDEF file” message). [0107] In some examples, the MAC cryptogram may be transmitted as an NDEF tag, and in other examples the MAC cryptogram may be included with a uniform resource indicator (e.g., as a formatted string). In some examples, application 902 may be configured to transmit a request to contactless card 116, the request comprising an instruction to generate a MAC cryptogram.

[0108] At line 910, the contactless card 116 sends the MAC cryptogram to the application 902. In some examples, the transmission of the MAC cryptogram occurs via NFC, however, the present disclosure is not limited thereto. In other examples, this communication may occur via Bluetooth, Wi-Fi, or other means of wireless data communication. At line 912, the application 902 communicates the MAC cryptogram to the processor 904.

[0109] At line 914, the processor 904 verifies the MAC cryptogram pursuant to an instruction from the application 122. For example, the MAC cryptogram may be verified, as explained below. In some examples, verifying the MAC cryptogram may be performed by a device other than mobile device 102, such as a server of a banking system in data communication with the mobile device 102. For example, processor 904 may output the MAC cryptogram for transmission to the server of the banking system, which may verify the MAC cryptogram. In some examples, the MAC cryptogram may function as a digital signature for purposes of verification. Other digital signature algorithms, such as public key asymmetric algorithms, e.g., the Digital Signature Algorithm and the RSA algorithm, or zero knowledge protocols, may be used to perform this verification.

[0110] FIG. 10 illustrates an NDEF short-record layout (SR=1) data structure 1000 according to an example embodiment. One or more applets may be configured to encode the OTP as an NDEF type 4 well known type text tag. In some examples, NDEF messages may comprise one or more records. The applets may be configured to add one or more static tag records in addition to the OTP record. Exemplary tags include, without limitation, Tag type: well known type, text, encoding English (en); Applet ID: D2760000850101; Capabilities: read-only access; Encoding: the authentication message may be encoded as ASCII hex; type-length-value (TLV) data may be provided as a personalization parameter that may be used to generate the NDEF message. In an embodiment, the authentication template may comprise the first record, with a well-known index for providing the actual dynamic authentication information.

[OHl] FIG. 11 illustrates a diagram of a system 1100 configured to implement one or more embodiments of the present disclosure. As explained below, during the contactless card creation process, two cryptographic keys may be assigned uniquely for each card. The cryptographic keys may comprise symmetric keys which may be used in both encryption and decryption of data. Triple DES (3DES) algorithm may be used by EMV and it is implemented by hardware in the contactless card. By using a key diversification process, one or more keys may be derived from a master key based upon uniquely identifiable information for each entity that requires a key.

[0112] Regarding master key management, two issuer master keys 1102, 1126 may be required for each part of the portfolio on which the one or more applets is issued. For example, the first master key 1102 may comprise an Issuer Cryptogram Generation/ Authentication Key (Iss-Key-Auth) and the second master key 1126 may comprise an Issuer Data Encryption Key (Iss-Key-DEK). As further explained herein, two issuer master keys 1102, 1126 are diversified into card master keys 1108, 1120, which are unique for each card. In some examples, a network profile record ID (pNPR) 522 and derivation key index (pDKI) 1124, as back office data, may be used to identify which Issuer Master Keys 1102, 1126 to use in the cryptographic processes for authentication. The system performing the authentication may be configured to retrieve values of pNPR 1122 and pDKI 1124 for a contactless card at the time of authentication.

[0113] In some examples, to increase the security of the solution, a session key may be derived (such as a unique key per session) but rather than using the master key, the unique card-derived keys and the counter may be used as diversification data, as explained above. For example, each time the card is used in operation, a different key may be used for creating the message authentication code (MAC) and for performing the encryption. Regarding session key generation, the keys used to generate the cryptogram and encipher the data in the one or more applets may comprise session keys based on the card unique keys (Card-Key-Auth 1108 and Card-Key-Dek 1120). The session keys (Aut-Session-Key 1132 and DEK-Session-Key 1110) may be generated by the one or more applets and derived by using the application transaction counter (pATC) 1104 with one or more algorithms. To fit data into the one or more algorithms, only the 2 low order bytes of the 4-byte pATC 1104 is used. In some examples, the four byte session key derivation method may comprise: Fl := PATC(lower 2 bytes) || 'F0' || '00' || PATC (four bytes) Fl := PATCQower 2 bytes) || 'OF' | '00' || PATC (four bytes) SK :={(ALG (MK) [Fl] ) || ALG (MK) [F2] }, where ALG may include 3DES ECB and MK may include the card unique derived master key. [0114] As described herein, one or more MAC session keys may be derived using the lower two bytes of pATC 1104 counter. At each tap of the contactless card, pATC 1104 is configured to be updated, and the card master keys Card-Key-AUTH 508 and Card-Key-DEK 1120 are further diversified into the session keys Aut-Session-Key 1132 and DEK-Session-KEY 1110. pATC 1104 may be initialized to zero at personalization or applet initialization time. In some examples, the pATC counter 1104 may be initialized at or before personalization, and may be configured to increment by one at each NDEF read.

[0115] Further, the update for each card may be unique, and assigned either by personalization, or algorithmically assigned by pUID or other identifying information. For example, odd numbered cards may increment or decrement by 2 and even numbered cards may increment or decrement by 5. In some examples, the update may also vary in sequential reads, such that one card may increment in sequence by 1, 3, 5, 2, 2, ... repeating. The specific sequence or algorithmic sequence may be defined at personalization time, or from one or more processes derived from unique identifiers. This can make it harder for a replay attacker to generalize from a small number of card instances.

[0116] The authentication message may be delivered as the content of a text NDEF record in hexadecimal ASCII format. In some examples, only the authentication data and an 8-byte random number followed by MAC of the authentication data may be included. In some examples, the random number may precede cryptogram A and may be one block long. In other examples, there may be no restriction on the length of the random number. In further examples, the total data (i.e. , the random number plus the cryptogram) may be a multiple of the block size. In these examples, an additional 8-byte block may be added to match the block produced by the MAC algorithm. As another example, if the algorithms employed used 16- byte blocks, even multiples of that block size may be used, or the output may be automatically, or manually, padded to a multiple of that block size.

[0117] The MAC may be performed by a function key (AUT-Session-Key) 1132. The data specified in cryptogram may be processed with javacard. signature method: ALG_DES_MAC8_ISO9797_1_M2_ALG3 to correlate to EMV ARQC verification methods. The key used for this computation may comprise a session key AUT-Session-Key 1132, as explained above. As explained above, the low order two bytes of the counter may be used to diversify for the one or more MAC session keys. As explained below, AUT-Session-Key 1132 may be used to MAC data 1106, and the resulting data or cryptogram An 1114 and random number RND may be encrypted using DEK-Sessi on-Key 1110 to create cryptogram B or output 1118 sent in the message.

[0118] In some examples, one or more HSM commands may be processed for decrypting such that the final 16 (binary, 32 hex) bytes may comprise a 3DES symmetric encrypting using CBC mode with a zero IV of the random number followed by MAC authentication data. The key used for this encryption may comprise a session key DEK-Session-Key 1110 derived from the Card-Key-DEK 1120. In this case, the ATC value for the session key derivation is the least significant byte of the counter pATC 1104.

[0119] The format below represents a binary version example embodiment. Further, in some examples, the first byte may be set to ASCII ‘A’.

[0120] Another exemplary format is shown below. In this example, the tag may be encoded in hexadecimal format.

[0121] The UID field of the received message may be extracted to derive, from master keys Iss-Key-AUTH 502 and Iss-Key-DEK 1126, the card master keys (Card-Key-Auth 1108 and Card-Key-DEK 1120) for that particular card. Using the card master keys (Card-Key-Auth 508 and Card-Key-DEK 1120), the counter (pATC) field of the received message may be used to derive the session keys (Aut-Session-Key 1132 and DEK-Session-Key 1110) for that particular card. Cryptogram B 1118 may be decrypted using the DEK-Session-KEY, which yields cryptogram An 1114 and RND, and RND may be discarded. The UID field may be used to look up the shared secret of the contactless card which, along with the Ver, UID, and pATC fields of the message, may be processed through the cryptographic MAC using the re-created Aut- Session-Key to create a MAC output, such as MAC’ . If MAC’ is the same as cryptogram An 1114, then this indicates that the message decryption and MAC checking have all passed. Then the pATC may be read to determine if it is valid.

[0122] During an authentication session, one or more cryptograms may be generated by the one or more applications. For example, the one or more cryptograms may be generated as a 3DES MAC using ISO 9797-1 Algorithm 3 with Method 2 padding via one or more session keys, such as Aut-Session-Key 1132. The input data 1106 may take the following form: Version (2), pUID (8), pATC (4), Shared Secret (4). In some examples, the numbers in the brackets may comprise length in bytes. In some examples, the shared secret may be generated by one or more random number generators which may be configured to ensure, through one or more secure processes, that the random number is unpredictable. In some examples, the shared secret may comprise a random 4-byte binary number injected into the card at personalization time that is known by the authentication service. During an authentication session, the shared secret may not be provided from the one or more applets to the mobile application. Method 2 padding may include adding a mandatory Ox’ 80’ byte to the end of input data and Ox’ 00’ bytes that may be added to the end of the resulting data up to the 8-byte boundary. The resulting cryptogram may comprise 8 bytes in length.

[0123] In some examples, one benefit of encrypting an unshared random number as the first block with the MAC cryptogram, is that it acts as an initialization vector while using CBC (Block chaining) mode of the symmetric encryption algorithm. This allows the “scrambling” from block to block without having to pre-establish either a fixed or dynamic IV.

[0124] By including the application transaction counter (pATC) as part of the data included in the MAC cryptogram, the authentication service may be configured to determine if the value conveyed in the clear data has been tampered with. Moreover, by including the version in the one or more cryptograms, it is difficult for an attacker to purposefully misrepresent the application version in an attempt to downgrade the strength of the cryptographic solution. In some examples, the pATC may start at zero and be updated by 1 each time the one or more applications generates authentication data. The authentication service may be configured to track the pATCs used during authentication sessions. In some examples, when the authentication data uses a pATC equal to or lower than the previous value received by the authentication service, this may be interpreted as an attempt to replay an old message, and the authenticated may be rejected. In some examples, where the pATC is greater than the previous value received, this may be evaluated to determine if it is within an acceptable range or threshold, and if it exceeds or is outside the range or threshold, verification may be deemed to have failed or be unreliable. In the MAC operation 1112, data 1106 is processed through the MAC using Aut-Session-Key 1132 to produce MAC output (cryptogram A) 1114, which is encrypted.

[0125] In order to provide additional protection against brute force attacks exposing the keys on the card, it is desirable that the MAC cryptogram 1114 be enciphered. In some examples, data or cryptogram An 1114 to be included in the ciphertext may comprise: Random number (8), cryptogram (8). In some examples, the numbers in the brackets may comprise length in bytes. In some examples, the random number may be generated by one or more random number generators which may be configured to ensure, through one or more secure processes, that the random number is unpredictable. The key used to encipher this data may comprise a session key. For example, the session key may comprise DEK-Session-Key 1110. In the encryption operation 1116, data or cryptogram An 1114 and RND are processed using DEK-Session-Key 510 to produce encrypted data, cryptogram B 1118. The data may be enciphered using 3DES in cipher block chaining mode to ensure that an attacker must run any attacks over all of the ciphertext. As a non-limiting example, other algorithms, such as Advanced Encryption Standard (AES), may be used. In some examples, an initialization vector of Ox’OOOOOOOOOOOOOOOO’ may be used. Any attacker seeking to brute force the key used for enciphering this data will be unable to determine when the correct key has been used, as correctly decrypted data will be indistinguishable from incorrectly decrypted data due to its random appearance.

[0126] In order for the authentication service to validate the one or more cryptograms provided by the one or more applets, the following data must be conveyed from the one or more applets to the mobile device in the clear during an authentication session: version number to determine the cryptographic approach used and message format for validation of the cryptogram, which enables the approach to change in the future; pUID to retrieve cryptographic assets, and derive the card keys; and pATC to derive the session key used for the cryptogram.

[0127] FIG. 12 illustrates a method 1200 for generating a cryptogram. For example, at block 1202, a network profile record ID (pNPR) and derivation key index (pDKI) may be used to identify which Issuer Master Keys to use in the cryptographic processes for authentication. In some examples, the method may include performing the authentication to retrieve values of pNPR and pDKI for a contactless card at the time of authentication.

[0128] At block 1204, Issuer Master Keys may be diversified by combining them with the card’s unique ID number (pUID) and the PAN sequence number (PSN) of one or more applets, for example, a payment applet.

[0129] At block 1206, Card-Key-Auth and Card-Key-DEK (unique card keys) may be created by diversifying the Issuer Master Keys to generate session keys which may be used to generate a MAC cryptogram.

[0130] At block 1208, the keys used to generate the cryptogram and encipher the data in the one or more applets may comprise the session keys of block 1030 based on the card unique keys (Card-Key-Auth and Card-Key-DEK). In some examples, these session keys may be generated by the one or more applets and derived by using pATC, resulting in session keys Aut-Session-Key and DEK-Session-Key.

[0131] FIG. 13 depicts an exemplary process 1300 illustrating key diversification according to one example. Initially, a sender and the recipient may be provisioned with two different master keys. For example, a first master key may comprise the data encryption master key, and a second master key may comprise the data integrity master key. The sender has a counter value, which may be updated at block 1302, and other data, such as data to be protected, which it may secure share with the recipient.

[0132] At block 1304, the counter value may be encrypted by the sender using the data encryption master key to produce the data encryption derived session key, and the counter value may also be encrypted by the sender using the data integrity master key to produce the data integrity derived session key. In some examples, a whole counter value or a portion of the counter value may be used during both encryptions.

[0133] In some examples, the counter value may not be encrypted. In these examples, the counter may be transmitted between the sender and the recipient in the clear, i.e., without encryption.

[0134] At block 1306, the data to be protected is processed with a cryptographic MAC operation by the sender using the data integrity session key and a cryptographic MAC algorithm. The protected data, including plaintext and shared secret, may be used to produce a MAC using one of the session keys (AUT-Session-Key).

[0135] At block 1308, the data to be protected may be encrypted by the sender using the data encryption derived session key in conjunction with a symmetric encryption algorithm. In some examples, the MAC is combined with an equal amount of random data, for example each 8 bytes long, and then encrypted using the second session key (DEK-Session-Key).

[0136] At block 1310, the encrypted MAC is transmitted, from the sender to the recipient, with sufficient information to identify additional secret information (such as shared secret, master keys, etc.), for verification of the cryptogram.

[0137] At block 1312, the recipient uses the received counter value to independently derive the two derived session keys from the two master keys as explained above.

[0138] At block 1314, the data encryption derived session key is used in conjunction with the symmetric decryption operation to decrypt the protected data. Additional processing on the exchanged data will then occur. In some examples, after the MAC is extracted, it is desirable to reproduce and match the MAC. For example, when verifying the cryptogram, it may be decrypted using appropriately generated session keys. The protected data may be reconstructed for verification. A MAC operation may be performed using an appropriately generated session key to determine if it matches the decrypted MAC. As the MAC operation is an irreversible process, the only way to verify is to attempt to recreate it from source data. [0139] At block 1316, the data integrity derived session key is used in conjunction with the cryptographic MAC operation to verify that the protected data has not been modified.

[0140] Some examples of the methods described herein may advantageously confirm when a successful authentication is determined when the following conditions are met. First, the ability to verify the MAC shows that the derived session key was proper. The MAC may only be correct if the decryption was successful and yielded the proper MAC value. The successful decryption may show that the correctly derived encryption key was used to decrypt the encrypted MAC. Since the derived session keys are created using the master keys known only to the sender (e.g., the transmitting device) and recipient (e.g., the receiving device), it may be trusted that the contactless card which originally created the MAC and encrypted the MAC is indeed authentic. Moreover, the counter value used to derive the first and second session keys may be shown to be valid and may be used to perform authentication operations.

[0141] Thereafter, the two derived session keys may be discarded, and the next iteration of data exchange will update the counter value (returning to block 1302) and a new set of session keys may be created (at block 1310). In some examples, the combined random data may be discarded.

[0142] FIG. 14 illustrates a method 800 for card activation according to an example embodiment. For example, card activation may be completed by a system including a card, a device, and one or more servers. The contactless card, device, and one or more servers may reference same or similar components that were previously explained a, such as contactless card 116, mobile device 102, and a server.

[0143] In block , the card may be configured to dynamically generate data. In some examples, this data may include information such as an account number, card identifier, card verification value, or phone number, which may be transmitted from the card to the device. In some examples, one or more portions of the data may be encrypted via the systems and methods disclosed herein.

[0144] In block 1404, one or more portions of the dynamically generated data may be communicated to an application of the device via NFC or other wireless communication. For example, a tap of the card proximate to the device may allow the application of the device to read the one or more portions of the data associated with the contactless card. In some examples, if the device does not comprise an application to assist in activation of the card, the tap of the card may direct the device or prompt the customer to a software application store to download an associated application to activate the card. In some examples, the user may be prompted to sufficiently gesture, place, or orient the card towards a surface of the device, such as either at an angle or flatly placed on, near, or proximate the surface of the device. Responsive to a sufficient gesture, placement and/or orientation of the card, the device may proceed to transmit the one or more encrypted portions of data received from the card to the one or more servers.

[0145] In block 1406, the one or more portions of the data may be communicated to one or more servers, such as a card issuer server. For example, one or more encrypted portions of the data may be transmitted from the device to the card issuer server for activation of the card.

[0146] In block 1408, the one or more servers may decrypt the one or more encrypted portions of the data via the systems and methods disclosed herein. For example, the one or more servers may receive the encrypted data from the device and may decrypt it in order to compare the received data to record data accessible to the one or more servers. If a resulting comparison of the one or more decrypted portions of the data by the one or more servers yields a successful match, the card may be activated. If the resulting comparison of the one or more decrypted portions of the data by the one or more servers yields an unsuccessful match, one or more processes may take place. For example, responsive to the determination of the unsuccessful match, the user may be prompted to tap, swipe, or wave gesture the card again. In this case, there may be a predetermined threshold comprising a number of attempts that the user is permitted to activate the card. Alternatively, the user may receive a notification, such as a message on his or her device indicative of the unsuccessful attempt of card verification and to call, email or text an associated service for assistance to activate the card, or another notification, such as a phone call on his or her device indicative of the unsuccessful attempt of card verification and to call, email or text an associated service for assistance to activate the card, or another notification, such as an email indicative of the unsuccessful attempt of card verification and to call, email or text an associated service for assistance to activate the card.

[0147] In block 1410, the one or more servers may transmit a return message based on the successful activation of the card. For example, the device may be configured to receive output from the one or more servers indicative of a successful activation of the card by the one or more servers. The device may be configured to display a message indicating successful activation of the card. Once the card has been activated, the card may be configured to discontinue dynamically generating data so as to avoid fraudulent use. In this manner, the card may not be activated thereafter, and the one or more servers are notified that the card has already been activated.

[0148] FIG. 15 illustrates an embodiment of an exemplary computer architecture 1500 suitable for implementing various embodiments as previously described. In one embodiment, the computer architecture 1500 may include or be implemented as part of one or more systems or devices discussed herein.

[0149] As used in this application, the terms “system” and “component” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing computer architecture 1500. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Further, components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve the uni-directional or bi-directional exchange of information. For instance, the components may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

[0150] The computing architecture 100 includes various common computing elements, such as one or more processors, multi-core processors, co-processors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input/output (I/O) components, power supplies, and so forth. The embodiments, however, are not limited to implementation by the computing architecture 100.

[0151] As shown in FIG. 15, the computing architecture 100 includes a processor 1512, a system memory 1504 and a system bus 1506. The processor 1512 can be any of various commercially available processors. [0152] The system bus 1506 provides an interface for system components including, but not limited to, the system memory 1504 to the processor 1512. The system bus 1506 can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Interface adapters may connect to the system bus 608 via slot architecture. Example slot architectures may include without limitation Accelerated Graphics Port (AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and the like.

[0153] The computing architecture 100 may include or implement various articles of manufacture. An article of manufacture may include a computer-readable storage medium to store logic. Examples of a computer-readable storage medium may include any tangible media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or rewriteable memory, and so forth. Examples of logic may include executable computer program instructions implemented using any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and the like. Embodiments may also be at least partly implemented as instructions contained in or on a non-transitory computer-readable medium, which may be read and executed by one or more processors to enable performance of the operations described herein.

[0154] The system memory 1504 may include various types of computer-readable storage media in the form of one or more higher speed memory units, such as read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, an array of devices such as Redundant Array of Independent Disks (RAID) drives, solid state memory devices (e.g., USB memory, solid state drives (SSD) and any other type of storage media suitable for storing information. In the illustrated embodiment shown in FIG. 15, the system memory 1504 can include non-volatile

31 1508 and/or volatile 1510. A basic input/output system (BIOS) can be stored in the nonvolatile 1508.

[0155] The computer 1502 may include various types of computer-readable storage media in the form of one or more lower speed memory units, including an internal (or external) hard disk drive 1530, a magnetic disk drive 1516 to read from or write to a removable magnetic disk 1520, and an optical disk drive 1528 to read from or write to a removable optical disk 1532 (e.g., a CD-ROM or DVD). The hard disk drive 1530, magnetic disk drive 1516 and optical disk drive 1528 can be connected to system bus 1506 the by an HDD interface 1514, and FDD interface 1518 and an optical disk drive interface 1534, respectively. The HDD interface 1514 for external drive implementations can include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.

[0156] The drives and associated computer-readable media provide volatile and/or nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For example, a number of program modules can be stored in the drives and non-volatile 1508, and volatile 1510, including an operating system 1522, one or more applications 1542, other program modules 1524, and program data 1526. In one embodiment, the one or more applications 1542, other program modules 1524, and program data 1526 can include, for example, the various applications and/or components of the systems discussed herein.

[0157] A user can enter commands and information into the computer 1502 through one or more wire/wireless input devices, for example, a keyboard 1550 and a pointing device, such as a mouse 1552. Other input devices may include microphones, infra-red (IR) remote controls, radio-frequency (RF) remote controls, game pads, stylus pens, card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, retina readers, touch screens (e g., capacitive, resistive, etc.), trackballs, track pads, sensors, styluses, and the like. These and other input devices are often connected to the processor 1512 through an input device interface 1536 that is coupled to the system bus 1506 but can be connected by other interfaces such as a parallel port, IEEE 1394 serial port, a game port, a USB port, an IR interface, and so forth.

[0158] A monitor 1544 or other type of display device is also connected to the system bus 1506 via an interface, such as a video adapter 1546. The monitor 1544 may be internal or external to the computer 1502. In addition to the monitor 1544, a computer typically includes other peripheral output devices, such as speakers, printers, and so forth. [0159] The computer 1502 may operate in a networked environment using logical connections via wire and/or wireless communications to one or more remote computers, such as a remote computer(s) 1548. The remote computer(s) 1548 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all the elements described relative to the computer 1502, although, for purposes of brevity, only a memory and/or storage device 1558 is illustrated. The logical connections depicted include wire/wireless connectivity to a local area network 1556 and/or larger networks, for example, a wide area network 1554. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise- wide computer networks, such as intranets, all of which may connect to a global communications network, for example, the Internet.

[0160] When used in a local area network 1556 networking environment, the computer 1502 is connected to the local area network 1556 through a wire and/or wireless communication network interface or network adapter 1538. The network adapter 1538 can facilitate wire and/or wireless communications to the local area network 1556, which may also include a wireless access point disposed thereon for communicating with the wireless functionality of the network adapter 1538.

[0161] When used in a wide area network 1554 networking environment, the computer 1502 can include a modem 1540, or is connected to a communications server on the wide area network 1554 or has other means for establishing communications over the wide area network 1554, such as by way of the Internet. The modem 1540, which can be internal or external and a wire and/or wireless device, connects to the system bus 1506 via the input device interface 1536. In a networked environment, program modules depicted relative to the computer 1502, or portions thereof, can be stored in the remote memory and/or storage device 1558. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.

[0162] The computer 1502is operable to communicate with wire and wireless devices or entities using the IEEE 802 family of standards, such as wireless devices operatively disposed in wireless communication (e.g., IEEE 802.11 over-the-air modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wireless technologies, among others. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices. Wi-Fi networks use radio technologies called IEEE 802.11 (a, b, g, n, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wire networks (which use IEEE 802.3-related media and functions).

[0163] The various elements of the devices as previously described herein may include various hardware elements, software elements, or a combination of both. Examples of hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, processors, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software elements may include software components, programs, applications, computer programs, application programs, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof.

However, determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints, as desired for a given implementation.

[0164] The components and features of the devices described above may be implemented using any combination of discrete circuitry, application specific integrated circuits (ASICs), logic gates and/or single chip architectures. Further, the features of the devices may be implemented using microcontrollers, programmable logic arrays and/or microprocessors or any combination of the foregoing where suitably appropriate. It is noted that hardware, firmware and/or software elements may be collectively or individually referred to herein as “logic” or “circuit.”

[0165] FIG. 16 is a block diagram depicting an exemplary communications architecture 1600 suitable for implementing various embodiments as previously described. The communications architecture 1600includes various common communications elements, such as a transmitter, receiver, transceiver, radio, network interface, baseband processor, antenna, amplifiers, filters, power supplies, and so forth. The embodiments, however, are not limited to implementation by the communications architecture 1600, which may be consistent with systems and devices discussed herein.

[0166] As shown in FIG. 16, the communications architecture 1600 includes one or more client(s) 1602 and server(s) 1604. The server(s) 1604 may implement one or more functions and embodiments discussed herein. The client(s) 1602 and the server(s) 1604 are operatively connected to one or more respective client data store 1606 and server data store 1608 that can be employed to store information local to the respective client(s) 1602 and server(s) 1604, such as cookies and/or associated contextual information.

[0167] The client(s) 1602 and the server(s) 1604 may communicate information between each other using a communication framework 1610. The communication framework 1610 may implement any well-known communications techniques and protocols. The communication framework 1610 may be implemented as a packet-switched network (e.g., public networks such as the Internet, private networks such as an enterprise intranet, and so forth), a circuit-switched network (e.g., the public switched telephone network), or a combination of a packet-switched network and a circuit-switched network (with suitable gateways and translators).

[0168] The communication framework 1610 may implement various network interfaces arranged to accept, communicate, and connect to a communications network. A network interface may be regarded as a specialized form of an input/output (I/O) interface. Network interfaces may employ connection protocols including without limitation direct connect, Ethernet (e.g., thick, thin, twisted pair 10/100/1000 Base T, and the like), token ring, wireless network interfaces, cellular network interfaces, IEEE 802.7a-x network interfaces, IEEE 802.16 network interfaces, IEEE 802.20 network interfaces, and the like. Further, multiple network interfaces may be used to engage with various communications network types. For example, multiple network interfaces may be employed to allow for the communication over broadcast, multicast, and unicast networks. Should processing requirements dictate a greater amount speed and capacity, distributed network controller architectures may similarly be employed to pool, load balance, and otherwise increase the communicative bandwidth required by client(s) 1602 and the server(s) 1604. A communications network may be any one and the combination of wired and/or wireless networks including without limitation a direct interconnection, a secured custom connection, a private network (e.g., an enterprise intranet), a public network (e.g., the Internet), a Personal Area Network (PAN), a Local Area Network (LAN), a Metropolitan Area Network (MAN), an Operating Missions as Nodes on the Internet (OMNI), a Wide Area

Network (WAN), a wireless network, a cellular network, and other communications networks.