Contextual tapping engine
Through the context, lightly shoot the engine, combined with action data, context and account data, dynamically determine the response movement of non -contact card light shooting, solve the problems that are inconsistent with the action in the existing technology and do not consider the context, and achieve a more flexible and accurate response response Essence
Patent Information
- Application Number
- CN202411467409.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-20
- Filing Date
- 2020-03-16
- Publication Date
- 2025-01-28
AI Technical Summary
In the prior art, when a contactless card taps the computing device, the predefined actions performed may be inconsistent with the user's expected actions and do not take into account the context of the computing device.
Provide a context light -shooting engine. Through certification of the account -related certificate of the account, the non -contact card is told to shoot the computing device, and it is based on the action data, context and account data to determine the actions associated with light shooting.
The response movement is determined according to the user's expected actions and the context of the computing device, which improves the flexibility and accuracy of non -contact card light shooting.
Smart Images

Figure CN119379277A_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application with application number "202080018349.1", application date "March 16, 2020", and titled "Contextual Tapping Engine". Technical Field
[0002] Embodiments herein relate generally to contactless cards, and more particularly, to a contextual tap engine for contactless cards.
[0003] Related Applications
[0004] This application claims priority to U.S. Patent Application Serial No. 16 / 359,987, entitled “CONTEXTUAL TAPPING ENGINE,” filed on March 20, 2019. The contents of the above application are incorporated herein by reference in their entirety. Background Art
[0005] Typically, tapping a contactless card to a computing device may cause the computing device to perform a predefined action. However, given the intended action that the user wishes to perform, the predefined action is static and therefore may not be relevant. Similarly, given the context of the computing device, the predefined action may not be relevant. Summary of the invention
[0006] Embodiments disclosed herein provide systems, methods, articles, and computer-readable media for a contextual tap engine. According to one example, an application executed on a computing device can authenticate credentials associated with an account and detect a tap of a contactless card associated with the account on the computing device. The application can receive action data at least partially for determining an action associated with the tap of the contactless card on the computing device from a communication interface of the contactless card. The application can determine the context of the application based at least in part on the current output of the application. The application can determine a first action associated with the tap of the contactless card on the computing device based on the action data, the determined context, and the data associated with the account, the first action being associated with at least one of an application and an operating system (OS) executed on a processor circuit. The application can initiate execution of the first action based on the tap of the contactless card on the computing device. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 An embodiment of a system providing a contextual tap engine is shown.
[0008] Figure 2A-2B An embodiment of a contextual tap engine is shown.
[0009] Figure 3A-3B An embodiment of a contextual tap engine is shown.
[0010] Figure 4 An example of defining rules for a contextual tap engine is shown.
[0011] Figure 5A-Figure 5B An example contactless card is shown.
[0012] Figure 6 An embodiment of a first logic flow is shown.
[0013] Figure 7 An embodiment of a second logic flow is shown.
[0014] Figure 8 An embodiment of a third logic flow is shown.
[0015] Fig. 9 An embodiment of a computing architecture is shown. DETAILED DESCRIPTION
[0016] Embodiments disclosed herein provide a contextual tap engine that interprets a tap of a contactless card to a computing device to dynamically determine an action to be performed on the computing device in response to the tap. When determining the action to be performed, the contextual tap engine can consider any number and type of factors. For example, the contextual tap engine can consider one or more of a default action, a user-defined action, a context-determined action, and / or a predicted action to determine the action to be performed in response to a given tap. The default action can be a default action specified in the memory of the contactless card. The user-defined action can be an action defined by a user and stored in the memory of the contactless card. The context-determined action can include an action dynamically generated by the computing device based at least in part on the current context of the computing device. The predicted action can include an action generated by the computing device based at least in part on historical data from multiple users. Doing so allows a diverse array of related actions to be performed in response to a tap of a contactless card to a computing device.
[0017] For example, a user may receive a new contactless card and tap the contactless card against a smartphone. In response to the tap, the smartphone may open a card activation page of an account management application that allows the user to activate the card. The smartphone may open the card activation page based on a uniform resource locator (URL) specified as action data in the memory of the contactless card. Once the card is activated, the user may tap the card against the smartphone again. The smartphone may then determine to open an account balance page of the account application based on the context of the account management application. In response to another tap of the contactless card, the smartphone may use machine learning to predict an action associated with the tap. For example, the smartphone may predict a user-defined action page that loads an account management application. In the user-defined action page, the user may define an action (e.g., call customer service), which may then be stored in the memory of the contactless card. The user-defined action may include one or more rules (or criteria) that, if met, cause the smartphone to perform the user-defined action (e.g., call customer service).
[0018] With reference to the symbols and terms used herein in general, one or more parts of the following detailed description can be presented in terms of the program process executed on a computer or computer network. These process descriptions and representations are used by those skilled in the art to convey the essence of their work to other technicians in the field most effectively. The process is here and generally considered to be a self-consistent sequence of operations that leads to the desired result. These operations are operations that require the physical manipulation of physical quantities. Usually, although not necessarily, these quantities take the form of electrical, magnetic or optical signals that can be stored, transmitted, combined, compared and otherwise manipulated. Mainly for general reasons, it is sometimes proven to be convenient to refer to these signals as positions, values, elements, symbols, characters, items, numbers or the like. However, it should be noted that all of these and similar terms should be associated with appropriate physical quantities and are only convenient labels applied to these quantities.
[0019] In addition, these manipulations are often referred to as terms such as adding or comparing, which are often associated with intellectual operations performed by human operators. However, in any operation described herein that constitutes a part of one or more embodiments, such capabilities of human operators are not required or expected in most cases. Instead, these operations are machine operations. Useful machines for performing the operations of various embodiments include digital computers selectively activated or configured by computer programs written according to the teachings of this article stored therein, and / or include devices or digital computers specially constructed for the desired purpose. Various embodiments also relate to devices or systems for performing these operations. These devices can be specially constructed for the desired purpose. From the description given, the structures required for various these machines will be apparent.
[0020] Reference is now made to the accompanying drawings, in which like reference numerals are used throughout to refer to like elements. In the following description, for the purpose of explanation, many specific details are set forth in order to provide a thorough understanding thereof. However, it is apparent that novel embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate their description. The intent is to cover all modifications, equivalents, and substitutes within the scope of the claims.
[0021] Figure 1 A schematic diagram of an exemplary system 100 consistent with the disclosure is depicted. As shown, the system 100 includes one or more contactless cards 101 and one or more mobile devices 110. The contactless card 101 represents any type of payment card, such as a credit card, a debit card, an ATM card, a gift card, and the like. The contactless card 101 may include one or more chips (not depicted), such as a radio frequency identification (RFID) chip, which is configured to communicate with the mobile device 110 via NFC, the EMV standard, or other short-range protocols in wireless communication, or using an NFC data exchange format (NDEF) tag. Although NFC is used as an example communication protocol here, the present disclosure is equally applicable to other types of wireless communications, such as the EMV standard, Bluetooth, and / or Wi-Fi. The mobile device 110 represents any type of network-enabled computing device, such as a smart phone, a tablet computer, a wearable device, a laptop, a portable gaming device, and the like.
[0022] As shown, the memory 102 of the contactless card includes a data store of action data 103. The action data 103 represents any type of data that can be interpreted by the tap engine 115 of the account application 113 to perform an action on the mobile device 110. For example, the action data 103 may include a URL that points to a website, an application (e.g., the account application 113 and / or other applications 114), an application page (e.g., of the account application 113 and / or other applications 114 of the mobile device 110), a component of the OS 112, or other computing resources. When received by the tap engine 115, the tap engine 115 may cause the mobile device 110 to load the resource specified by the URL.
[0023] As another example, the action data 103 may include rules, conditions, and / or other data that allow the tap engine 115 to determine the associated action. For example, the tap engine 115 may determine the context of the mobile device 110 and determine the contextual action based on the context of the mobile device 110 and the action data 103. As another example, the tap engine 115 may generate a predicted action that predicts the user's intention based on historical data (e.g., previous actions performed by the user and / or other users). The tap engine 115 may then initiate the execution of the contextual action and / or the predicted action on the mobile device 110.
[0024] Additionally, the action data 103 may store user-defined actions that may be interpreted by the tap engine 115 to perform the user-defined action on the mobile device 110. The user-defined action in the action data 103 may include a URL, and one or more rules or other conditions that must be satisfied before the tap engine 115 performs the user-defined action.
[0025] As shown, the memory 111 of the mobile device 110 includes an instance of an operating system (OS) 112. The example operating system 112 includes and Operating system. As shown, OS 112 includes an account application 113 and one or more other applications 114. Account application 113 allows a user to perform various account-related operations, such as viewing account balances, purchasing items, and processing payments. Initially, a user may authenticate using authentication credentials to access certain features of account application 113. For example, authentication credentials may include a username and password, biometric credentials, and the like.
[0026] As shown, the account application 113 includes a tap engine 115 and a data store of rules 116, user profiles 117, machine learning (ML) models 118, and account data 119. The tap engine 115 is configured to determine an action associated with a tap of the contactless card 101 against the mobile device 110. As described above, the tap engine 115 is configured to determine a predefined action associated with the tap, a user-defined action associated with the tap, generate a contextual action associated with the tap, and generate a predicted action associated with the tap. Typically, when the contactless card 101 taps toward the mobile device 110 (e.g., enters wireless communication range), the mobile device 110 can receive one or more records of action data 103 from the communication interface (e.g., NFC, Bluetooth, EMV, etc.) of the contactless card 101.
[0027] The tap engine 115 may determine an action to be performed on the mobile device 110 based at least in part on the action data 103. For example, the action data 103 may specify a URL. In some embodiments, when determining an action to be performed on the mobile device 110, the tap engine 115 may further determine a context of the mobile device 110. The tap engine 115 may determine the context based on any attribute of the mobile device 110, such as which applications are executing on the mobile device 110, which applications are in the foreground of a display of the mobile device 110, which functions are associated with the foreground applications, analyzing data displayed on the display of the device, data in the user profile 117, and / or data in the account data 119 (e.g., transaction data, purchase data, etc.).
[0028] In addition, in some embodiments, when determining an action to be performed on the mobile device 110, the tap engine 115 can generate a predicted action that reflects the user's intent. For example, a user can repeatedly access an account statement page after tapping the contactless card 101 to the mobile device 110. In such an example, the tap engine 115 can load the account statement page after detecting a tap of the contactless card 101 to the mobile device 110 by the user. As another example, the tap engine 115 can utilize an ML model 118 trained based on training data. The training data can describe historical actions performed in response to taps of the contactless card to the device by multiple different users. During training based on the training data, a machine learning (ML) algorithm can generate the ML model 118. The ML model 118 can be used to generate a predicted action for a given tap of the contactless card 101 to the mobile device 110. For example, the tap engine 115 can provide one or more of the action data 103, the determined context, the rules 116, the user profile 117, and / or the account data 119 to the ML model 118, which can generate one or more predicted actions. The ML model 118 can further calculate a score for each predicted action, where the score reflects the likelihood that the action is the action intended by the user. The tap engine 115 can then select the predicted action with the highest score and initiate execution of the selected predicted action.
[0029] As described above, in some embodiments, the action data 103 specifies a default action (e.g., when a non-contact card 101 that is not activated for use is tapped against the mobile device 110, a card activation page of the account application 113 is loaded). Therefore, in such an example, the tap engine 115 loads the account activation page of the account application 113 in response to the tap of the inactive card. As another example, the action data 103 may include a flag reflecting that the card is not activated, and upon detecting the flag indicating that the card is not activated, the tap engine 115 loads the account activation page. As yet another example, the tap engine 115 may determine that the tap engine 115 has not previously communicated with the card 101 to load the account activation page. In another example, the flag may be stored in a server maintained by the issuer of the contactless card 101. The flag stored in the server may indicate that the card has been sent to the customer but has not yet been activated. The tap engine 115 may receive the flag from the server and load the account activation page in response. Once the card is activated, different actions may be stored as the action data 103. Different actions may be generated by the contactless card 101 itself, the account application 113 and / or the user.
[0030] In other embodiments, the action data 103 specifies a user-defined action, such as calling a customer service department at a phone number. The URL stored in the action data 103 may specify opening a phone application (e.g., one of the other applications 114) of the OS 112 and dialing a customer service department phone number. In such an example, in response to receiving the action data 103 based on the tap of the contactless card 101, the tap engine 115 opens the phone application and dials the customer service department phone number for the user.
[0031] As another example, the action data 103 is general and is interpreted by the tap engine 115 (e.g., using context and / or prediction) to determine the associated action. For example, if a user taps a contactless card 101 to a mobile device 110 while viewing the home page of an account application 113, the tap engine 115 can determine that the context of the mobile device 110 is related to the associated account (e.g., based on the URL of the home page, determining concepts in the text output on the home page, etc.). In response, the tap engine 115 can load an account balance page of the account application 113, which allows the user to view their account balance and other detailed account information. Thus, the tap engine 115 can monitor actions performed by a user and store indications of the actions (along with any determined context) in the user profile 117 and / or account data 119. As another example, when the contactless card 101 is tapped to the mobile device 110, the tapping engine 115 can determine that the account data 119 reflects that the contactless card 101 (e.g., using the web browser of other applications 114) has been purchased within a predefined amount of time (e.g., 30 seconds, 1 minute, etc.). Like this, the tapping engine 115 can perform actions related to the purchase. For example, the tapping engine 115 can programmatically arrange the payment for the purchase on the expiration date. As another example, the tapping engine 115 can load a reward page that allows customers to pay for the purchase using reward points. As another example, the tapping engine 115 can determine the associated action based on the presence of one or more form fields in the application. For example, the tapping engine 115 can determine that the form field in the web browser currently includes an account field. The tapping engine 115 can identify the account field by any suitable means, such as reading the metadata of the form field, reading the source code of the web page in the web browser, the document object model (DOM) of the web page, etc. Thus, in such an example, tap engine 115 may output a notification specifying that contactless card 101 be tapped against device 110 to copy the account number of card 101 to the account number field.
[0032] In some embodiments, once an action is performed in response to a tap, the tap engine 115 and / or account application 113 may output a notification to the user indicating that the action has been performed. Additional notifications may specify to the user that any action may be linked to a card tap, including user-defined actions and / or one or more predefined actions that the user may select.
[0033] Rules 116 typically include one or more rules that can be used by the tap engine 115 to determine an action in response to a tap. For example, if a user spends more than $10 on movie tickets within a specified amount of time, a rule in rules 116 can specify that movie tickets be paid for with bonus points. In such an example, the tap engine 115 can detect the tap of the contactless card 101 and analyze the user's spending data in the account data 119 to determine that the user has spent $20 on movie tickets within a specified amount of time. In response, the tap engine 115 can programmatically generate a contextual action, which can include paying for movie tickets with bonus points, or loading a page of the account application 113 that allows the user to pay for movie tickets with bonus points.
[0034] In some embodiments, contactless card 101 may send multiple elements of action data 103 to device 110. For example, an encrypted packet may include multiple elements of action data 103 and delimiters and / or metadata used by tap engine 115 to parse different elements of action data 103. In such an example, a single packet may be decrypted, parsed, and used for one or more purposes (e.g., going to a URL, calling a phone number, and / or filling in a form field). For example, if multiple elements of action data 103 are separated by a comma delimiter, tap engine 115 may parse each element based on the comma delimiter and perform one or more operations associated with each element of the action data.
[0035] Figure 2A 2 is a schematic diagram 200 depicting an example of a tap engine 115 determining an action in response to a tap of a contactless card 101 against a mobile device 110 according to one embodiment. As shown, an account application 113 on the mobile device 110 is outputting a customer service page that includes frequently asked questions (FAQs) for customer service issues. When the contactless card 101 is tapped against the mobile device 110, the contactless card 101 may send action data 103 to the mobile device 110. However, the action data 103 may not specify what action to perform (e.g., access an application, a URL of a page, etc.). Therefore, the tap engine 115 may determine the action to perform in response to the tap.
[0036] In at least one embodiment, the tap engine 115 determines the context of the mobile device 110 to determine the action to be performed. For example, the tap engine 115 can determine that a customer service page of the account application 113 is currently displayed on the mobile device 110. For example, the tap engine 115 can analyze the text of the customer service page and detect concepts related to customer service. Therefore, the tap engine 115 can determine that the context of the mobile device 110 is related to customer service. As such, the tap engine 115 can determine to perform an action related to customer service, such as initiating a phone call to customer service, loading a more detailed customer service page in the account application 113, and the like.
[0037] Additionally and / or alternatively, the tap engine 115 may utilize the ML model 118 to determine an action associated with the tap of the contactless card 101 to the mobile device 110. For example, the tap engine 115 may provide the ML model 118 with data describing the context of the mobile device 110 (e.g., data displaying a customer service page, data related to the context of customer service, a history of applications and / or pages output to be displayed on the mobile device 110, etc.). In addition, the ML model 118 may consider a history of tap actions performed by an associated user response and / or a history of tap actions performed by multiple users. For example, the history of tap actions may indicate that the most frequent action performed in response to the tap of the contactless card 101 when displaying a customer service FAQ page is to call customer service. The ML model 118 may further consider the rules 116, the user profile 117, and / or the account data 119. The ML model 118 may then generate one or more candidate actions to perform and return the candidate action with the highest score as the action to be performed in response to the tap of the contactless card 101 to the mobile device 110.
[0038] Figure 2B 210 is a diagram depicting an embodiment in which the tap engine 115 determines to open a phone application to dial customer support on behalf of a user. As such, the tap engine 115 can initiate the opening of the phone application of the OS 112 and cause the phone application to dial a phone number associated with customer support. For example, the tap engine 115 can initiate the opening of the phone application of the OS 112 and cause the phone application to dial a phone number associated with customer support. Figure 2A 10. Additionally and / or alternatively, the ML model 118 can determine that calling customer support is the action most likely intended to be performed by the user (based on the calculated scores for each candidate action). Additionally and / or alternatively, the tap engine 115 can determine to call customer support based on a rule specified in the rules 116 (and / or the user profile 117), wherein the rule specifies calling customer service when a customer service-related page of the account application 113 is displayed.
[0039] Figure 3A3 is a schematic diagram 300 depicting an example of a tap engine 115 determining an action in response to a tap of a contactless card 101 against a mobile device 110 according to one embodiment. As described above, when the contactless card 101 is tapped against the mobile device 110, the contactless card 101 may send action data 103 to the mobile device 110. However, the action data 103 may be generic and not specify an action to be performed. Therefore, the tap engine 115 may determine the action to be performed in response to the tap.
[0040] As shown, the account application 113 on the mobile device 110 is outputting a homepage, which includes an indication of one or more accounts of the user. The tap engine 115 can receive an indication that the homepage is output for display from the account application 113. The tap engine 115 can determine an action based on the context of the mobile device 110. As described above, the tap engine 115 can determine the context by determining that the homepage of the account application 113 is displayed. The tap engine 115 can further determine the context by analyzing the output of the homepage (e.g., any text and / or image) to determine the concept associated with the homepage. Therefore, the tap engine 115 can determine that the context of the mobile device 110 is related to the user's account. Based on the determined context, the tap engine 115 can determine to access the detailed account page of the account application 113.
[0041] Figure 3B 310 is a diagram illustrating an embodiment in which the tap engine 115 has caused the account application 113 to load a detail page of an account associated with the contactless card 101 (e.g., based on the account number of the contactless card 101). As described above, the tap engine 115 can determine to load the detail page of the account in response to the tap based on the context of the mobile device. Additionally and / or alternatively, the user may have specified a rule 116 that indicates that the account detail page is loaded when the contactless card 101 is tapped while the home page is displayed. Additionally and / or alternatively, the tap engine 115 can load the account detail page in response to the tap based on the ML model 118 predicting the user's intent.
[0042] Figure 4 4 is a diagram illustrating an example user-defined action for storage in the action data 103 of the contactless card 101 according to one embodiment. As shown, the graphical user interface of the account application 113 allows user-defined actions. For example, in GUI element 401, the user has specified that when the account application 113 outputs a home page (e.g., Figure 3A In addition, in GUI element 402, the user has specified that the tap of the contactless card 101 should load the detailed balance page associated with the account when the account application 113 outputs the home page (e.g., Figure 3BThe input provided in GUI element 401 may be manually entered by a user and / or selected by a user from a plurality of options (e.g., a drop-down list of options). When submitted, account application 113 generates action data 103-1, which is sent to contactless card 101. Contactless card 101 may then store action data 103-1 as a record of action data 103 in a memory of contactless card 101. In one embodiment, action data 103-1 includes a URL pointing to an account detail page of account application 113. However, in other embodiments, action data 103-1 includes additional information (e.g., a rule specifying that a URL to an account detail page should be followed if the home page of account application 113 is currently open on mobile device 110).
[0043] Figure 5A A contactless card 101 is shown, which may include a payment card, such as a credit card, a debit card, and / or a gift card. As shown, the contactless card 101 may be issued by a service provider 502 displayed on the front or back of the card 101. In some examples, the contactless card 101 is unrelated to a payment card and may include, but is not limited to, an ID card. In some examples, the payment card may include a dual-interface contactless payment card. The contactless card 101 may include a substrate 510, which may include a single layer or one or more laminated layers of plastic, metal, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyester, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 101 may have physical properties that conform to the ID-1 format of the ISO / IEC 7810 standard, and the contactless card may additionally conform to the ISO / IEC 14443 standard. However, it should be understood that a contactless card 101 according to the present disclosure may have different characteristics, and the present disclosure does not require the implementation of a contactless card in a payment card.
[0044] The contactless card 101 may also include identification information 515 displayed on the front and / or back of the card, and a contact pad 520. The contact pad 520 may be configured to establish contact with another communication device, such as a mobile phone device 110, a user device, a smart phone, a laptop, a desktop computer, or a tablet computer. The contactless card 101 may also include processing circuitry, an antenna, and a Figure 5A Other components not shown in the figure. These components may be located behind the contact pads 520 or elsewhere on the substrate 510. The contactless card 101 may also include a magnetic stripe or tape, which may be located on the back of the card ( Figure 5A not shown).
[0045] like Figure 5BAs shown in FIG. 1 , the contact pad 520 of the contactless card 101 may include a processing circuit 525 for storing and processing information, including a microprocessor 530 and a memory 102. It should be understood that the processing circuit 525 may contain additional components, including a processor, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and anti-tampering hardware, as necessary to perform the functions described herein.
[0046] The memory 102 may be a read-only memory, a write-once read-many memory, or a read / write memory, such as a RAM, a ROM, and an EEPROM, and the contactless card 101 may include one or more of these memories. The read-only memory may be programmed to be read-only or one-time programmable at the factory. One-time programmability provides the opportunity to write once and then read multiple times. The write-once / read-many memory may be programmed at a certain point in time after the memory chip leaves the factory. Once the memory is programmed, it may not be rewritten, but it may be read multiple times. The read / write memory may be programmed and reprogrammed multiple times after leaving the factory. The read / write memory may also be read multiple times after leaving the factory.
[0047] The memory 102 may be configured to store the action data 103, one or more applets 540, one or more counters 504, and one or more customer identifiers 507. The one or more applets 540 may include one or more software applications configured to execute on one or more contactless cards, such as Card applet. However, it should be understood that applet 540 is not limited to Java Card applet, but can be any software application that can operate on contactless card or other device with limited memory. One or more counters 504 can include a digital counter sufficient to store integers. Customer identifier 507 can include a unique alphanumeric identifier assigned to the user of contactless card 101, and the identifier can distinguish the user of the contactless card from other contactless card users. In some examples, customer identifier 507 can identify the customer and the account assigned to the customer and can further identify the contactless card associated with the customer's account.
[0048] The processor and memory elements of the above exemplary embodiments are described with reference to the contact pads, but the present disclosure is not limited thereto. It should be understood that these elements can be implemented outside of the pad 520 or completely separated therefrom, or as additional elements in addition to the processor 530 and memory 102 elements located within the contact pad 520.
[0049] In some examples, the contactless card 101 may include one or more antennas 555. The one or more antennas 555 may be placed within the contactless card 101 and around the processing circuit 525 of the contact pad 520. For example, the one or more antennas 555 may be integrated with the processing circuit 525, and the one or more antennas 555 may be used with an external booster coil. As another example, the one or more antennas 555 may be outside the contact pad 520 and the processing circuit 525.
[0050] In an embodiment, the coil of the contactless card 101 can act as the secondary of an air core transformer. The terminal can communicate with the contactless card 101 by cutting off power or amplitude modulation. The contactless card 101 can use the gap in the power connection of the contactless card to infer the data sent from the terminal, which can be functionally maintained by one or more capacitors. The contactless card 101 can communicate back by switching the load or load modulation on the coil of the contactless card. Load modulation can be detected in the coil of the terminal by interference. More generally, using the antenna 555, the processing circuit 525 and / or the memory 102, the contactless card 101 provides a communication interface to communicate via NFC, Bluetooth and / or Wi-Fi communication.
[0051] As explained above, the contactless card 101 can be built on a software platform operable on a smart card or other device with limited memory (such as JavaCard), and one or more applications or applet programs can be securely executed. Applet programs can be added to contactless cards to provide one-time passwords (OTPs) for multi-factor authentication (MFA) in various mobile application-based use cases. The applet program can be configured to respond to one or more requests from a reader such as a mobile NFC reader (e.g., mobile device 110), such as a near-field data exchange request, and generate an NDEF message including an encrypted secure OTP encoded as an NDEF text tag.
[0052] An example of an NDEF OTP is an NDEF short record layout (SR=1). In such an example, one or more applets 540 may be configured to encode the OTP as an NDEF Type 4 well-known type text tag. In some examples, an NDEF message may include one or more records. In addition to the OTP record, the applet 540 may be configured to also add one or more static tag records.
[0053] In some examples, the contactless card 101 and the server 120 may include certain data so that the card can be correctly identified. The contactless card 101 may include one or more unique identifiers (not shown). The counter 104 may be configured to increment each time a read operation occurs. In some examples, each time data is read from the contactless card 101 (e.g., by the mobile device 110), the counter 104 is sent to the server for verification and to determine whether the counter value 104 is equal (as part of the verification).
[0054] In some examples, one or more applet 540 may be configured to maintain its personalized state to allow personalization only when unlocked and authenticated. Other states may include standard state pre-personalization. Upon entering the terminated state, one or more applet 540 may be configured to remove personalized data. In the terminated state, one or more applet 540 may be configured to stop responding to all application protocol data unit (APDU) requests.
[0055] One or more applets 540 may be configured to maintain an applet version (2 bytes) that may be used in authentication messages. In some examples, this may be interpreted as most significant byte major version, least significant byte minor version. The rules for each of the versions are configured to interpret the authentication message: for example, with respect to major versions, this may include each major version including a specific authentication message layout and a specific algorithm. For minor versions, this may also include no changes to the authentication message or cryptographic algorithm, and changes to static tag content, in addition to bug fixes, security hardening, etc.
[0056] In some examples, one or more applets 540 can be configured to emulate an RFID tag. The RFID tag can include one or more polymorphic tags. In some examples, each time the tag is read, different cryptographic data is presented that can indicate the authenticity of the contactless card. Based on one or more applications, the NFC reading of the tag can be processed, the data can be sent to the server, and the data can be verified at the server.
[0057] In some examples, the contactless card 101 and the server may include certain data so that the card can be correctly identified. The contactless card 101 may include one or more unique identifiers (not shown). Each time a read operation occurs, the counter 504 may be configured to increment. In some examples, each time data is read from the contactless card 101 (e.g., by the mobile device 110), the counter 504 is sent to the server for verification and to determine whether the counter value 504 is equal (as part of the verification).
[0058] One or more counters 504 can be configured to prevent replay attacks. For example, if a password has been obtained and replayed, if counter 504 has been read or used or otherwise passed, the password is immediately rejected. If counter 504 is not used, it can be replayed. In some examples, the counter incremented on the card is different from the counter incremented for the transaction. Contactless card 101 cannot determine the application transaction counter 504, because there is no communication between the small applications 540 on contactless card 101. In some examples, contactless card 101 can include a first small application 540-1 (which can be a transaction small application) and a second small application 540-2. Each small application can include counter 504.
[0059] In some examples, counter 504 may not be synchronized. In some examples, to account for unexpected reads that initiate transactions, such as reading at an angle, counter 504 may be incremented but the application does not process counter 504. In some examples, when mobile device 110 is awake, NFC may be enabled and mobile device 110 may be configured to read available tags, but no action is taken in response to the read.
[0060] In order to keep the counter 504 synchronized, an application such as a background application can be executed that will be configured to detect when the mobile device 110 wakes up and synchronizes with the server 120 to indicate the reading that occurred due to the detection and then move the counter 504 forward. In other examples, a hashed one-time password can be utilized so that a window of false synchronization can be accepted. For example, if it is within a threshold of 10, the counter 504 can be configured to move forward. But if it is within a different threshold number, such as within 10 or 1000, a request to perform a resynchronization can be processed, which requests the user to tap, gesture, or otherwise indicate one or more times via the user's device via one or more applications. If the counter 504 increases in the appropriate sequence, it can be known that the user has done so.
[0061] The contactless card 101 is configured to perform a key diversification technique using a counter 504, a master key 505, and a diversification key 506 to protect data (e.g., when sending action data 103 to a mobile device 110). Typically, a server (or another computing device owned and / or operated by the issuing institution of the contactless card 101) and the contactless card 101 can be equipped with the same master key 505 (also referred to as a master symmetric key). More specifically, each contactless card 101 is programmed with a different master key 505 that has a corresponding pair in the server. For example, when the contactless card 101 is manufactured, a unique master key 505 can be programmed into the memory 102 of the contactless card 101. Similarly, the unique master key 505 can be stored in the record of the customer associated with the contactless card 101 in the account data 119 of the server (or stored in a different secure location). The master key can be kept secret from all parties except the contactless card 101 and the server.
[0062] The master key 505 can be used in conjunction with a counter 504 to enhance security using key diversification. The counter 504 includes a value synchronized between the contactless card 101 and the server. The counter value 504 can include a number that changes each time data is exchanged between the contactless card 101 and the server (and / or the contactless card 101 and the mobile device 110). In order to enable NFC data transmission between the contactless card 101 and the mobile device 110, when the contactless card 101 is close enough to the card reader 120 of the mobile device 110, the account application 113 can communicate with the contactless card 101. The card reader 120 can be configured to read from the contactless card 101 and / or communicate with it (e.g., via NFC, Bluetooth, RFID, etc.). Therefore, the example card reader 120 includes an NFC communication module, a Bluetooth communication module, and / or an RFID communication module.
[0063] For example, a user may tap the contactless card 101 against the mobile device 110 so that the contactless card 101 is close enough to the card reader 120 of the mobile device 110 to enable NFC data transfer between the contactless card 101 and the card reader 120 of the mobile device 110. After communication is established between the mobile device 110 and the contactless card 101, the contactless card 101 generates a message authentication code (MAC) password. In some examples, this may occur when the account application 113 reads the contactless card 101. In particular, this may occur when reading a near field data exchange (NDEF) tag (such as an NFC read), which may be created according to the NFC data exchange format. For example, a reader such as the account application 113 and / or the card reader 120 may send a message with an applet ID of an applet that generates NDEF, such as an applet selection message. After confirming the selection, a sequence of a select file message followed by a read file message may be sent. For example, the sequence may include "select function file", "read function file" and "select NDEF file". At this point, the counter value 504 maintained by the contactless card 101 may be updated or incremented, which may be followed by a "read NDEF file". At this point, a message may be generated, which may include a header and a shared secret. A session key may then be generated. A MAC password may be created from the message, which may include a header and a shared secret. The MAC password may then be concatenated with one or more blocks of random data, and the MAC password and random number (RND) may be encrypted using the session key. Thereafter, the password and header may be concatenated, encoded as ASCII hexadecimal and returned in an NDEF message format (in response to the "read NDEF file" message). In some examples, the MAC password may be sent as an NDEF tag, and in other examples, the MAC password may be included with a uniform resource indicator (e.g., as a formatted string). The contactless card 101 may then send the MAC password to the mobile device 110, which may then forward the MAC password to a server for verification, as described below. However, in some embodiments, the mobile device 110 may verify the MAC password.
[0064] More generally, when preparing to send data (e.g., to a server and / or mobile device 110), the contactless card 101 can increment the counter value 504. The contactless card 101 can then provide the master key 505 and the counter value 504 as inputs to a cryptographic algorithm, which produces a diversified key 506 as output. The cryptographic algorithm can include an encryption algorithm, a hash-based message authentication code (HMAC) algorithm, a encryption-based message authentication code (CMAC) algorithm, and the like. Non-limiting examples of cryptographic algorithms can include symmetric encryption algorithms, such as 3DES or AES128; symmetric HMAC algorithms, such as HMAC-SHA-256; and symmetric CMAC algorithms, such as AES-CMAC. The contactless card 101 can then use the diversified key 506 to encrypt the data (e.g., the customer identifier 507 and any other data). The contactless card 101 can then send the encrypted data to the account application 113 of the mobile device 110 (e.g., via an NFC connection, a Bluetooth connection, etc.). The account application 113 of the mobile device 110 can then send the encrypted data to the server via a network (e.g., the Internet). In at least one embodiment, the contactless card 101 sends the counter value 504 with the encrypted data. In such an embodiment, the contactless card 101 can send the encrypted counter value 504 or the unencrypted counter value 504.
[0065] Upon receiving the encrypted client ID 507, the server can perform the same symmetric encryption using the counter value 504 as an input to the encryption and the master key 505 as a key for the encryption. As described above, the counter value 504 can be specified in the data received from the mobile device 110, or the counter value 504 maintained by the server is used to implement key diversification for the contactless card 101. The output of the encryption can be the same diversified key value 506 created by the contactless card 101. The server can then use the diversified key 506 to decrypt the encrypted client ID 507 received via the network, which reveals the data sent by the contactless card 101 (e.g., at least the client identifier 507). Doing so allows the server to verify the data sent by the contactless card 101 via the mobile device 110, for example, by comparing the decrypted client ID 507 with the client ID in the account data of the account.
[0066] During the creation process of the contactless card 101, two cryptographic keys may be uniquely assigned to each card. The cryptographic keys may include a symmetric key that may be used for both encryption and decryption of data. The Triple DES (3DES) algorithm may be used by EMV, and it is implemented by hardware in the contactless card 101. Using a key diversification process, one or more keys may be derived from a master key based on uniquely identifiable information for each entity that requires a key.
[0067] In some examples, to overcome the shortcomings of the 3DES algorithm that may be susceptible to vulnerabilities, session keys (such as unique keys for each session) can be derived instead of using a master key, a unique card derivation key and a counter can be used as diversification data. For example, each time the contactless card 101 is used in operation, a different key can be used to create a message authentication code (MAC) and perform encryption. This results in three layers of encryption. The session key can be generated by one or more applets and derived using one or more algorithms (as defined in EMV 4.3 Book 2 A1.3.1 General Session Key Derivation) using an application transaction counter.
[0068] Additionally, the increments for each card can be unique and assigned through personalization, or algorithmically assigned through some identifying information. For example, odd cards can be incremented by 2, and even cards can be incremented by 5. In some examples, the increments can also vary across sequential reads, such that a card can be incremented in sequence by 1, 3, 5, 2, 2, ... repeatedly. The specific sequence or algorithmic sequence can be defined at personalization, or from one or more processes derived from a unique identifier. This can make it more difficult for a replay attacker to generalize from a small number of card instances.
[0069] The 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.
[0070] Figure 6 An embodiment of a logic flow 600 is shown. The logic flow 600 may represent some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 600 may include some or all of the operations to determine an action to perform based on a tap of a contactless card 101 against a computing device. The embodiments are not limited in this context.
[0071] As shown, the logic flow 600 starts at box 610, where the account application 113 executed on the mobile device 110 authenticates the credentials associated with the account. For example, a user attempting to access the account application 113 can provide a fingerprint, a login name / password combination, or other credentials to access one or more of their accounts in the account application 113. In some embodiments, the account application 113 can receive transaction data associated with the account (e.g., from a server that processes account transactions). At box 620, the account application 113 and / or the tap engine 115 can detect the tap of the contactless card 101 on the mobile device 110. For example, at box 620, the contactless card 101 and the mobile device 110 can enter the NFC communication range. At box 630, the account application 113 receives the action data 103 of the contactless card 101 via the communication interface of the contactless card 101. The account application 113 can then provide the action data 103 to the tap engine 115. In one embodiment, contactless card 101 encrypts action data 103 using one or more key diversification techniques (e.g., using counter 504, master key 505, and diversified key 506). Account application 113 may then verify the encrypted action data 103, and / or forward the encrypted action data 103 to a server for verification.
[0072] At box 640, the tap engine 115 determines the context of the mobile device 110. The context may include the context of the OS 112, the account application 113, and / or other applications 114. For example, the context may include determining what application (and / or component of the OS 1 112) to output for display on the mobile device 110, and what functions and / or actions are associated with the application output for display. At box 650, the tap engine 115 may optionally generate one or more predicted actions based on one or more ML models 118. As described above, the ML model 118 may be trained based on training data, wherein the training data includes historical tap data for the current user and / or multiple other users. Doing so allows the ML model 118 to accurately predict one or more intended actions associated with the tap of the contactless card 101 to the mobile device 110 at box 620.
[0073] At block 660, the tap engine 115 determines an action associated with the tap of the contactless card 101 against the mobile device 110 at block 620. In general, the tap engine 115 may determine the action based on one or more of the action data 103, the account data 119 of the authenticated account, the determined context, the rules 116, and / or the user profile 117. For example, as described above, in some embodiments, the action data 103 specifies an action (e.g., loading content at a specified URL using the account application 113 and / or other applications 114). As another example, the tap engine 115 may determine that the context of the mobile device 110 is related to activating an inactive contactless card 101 and load a page of the account application 113 that allows the user to activate the contactless card 101. For example, the ML model 118 may generate one or more candidate actions and associated scores. The tap engine 115 may select the candidate action with the highest score.
[0074] At box 670, OS112, account application 113 and / or tap engine 115 initiate the execution of the action determined at box 660. For example, the phone application of OS112 can be opened and the phone number can be dialed by the user. As another example, a page of account application 113 can be opened. As another example, the web page can be loaded by a web browser. At box 680, account application 113 can optionally receive input, which specifies the user-defined action for the tap of contactless card 101. At box 690, the user-defined action can be stored as action data 103 in the memory of contactless card 101. Doing so allows the user-defined action to be performed in response to the subsequent tap of contactless card 101 to mobile device 110.
[0075] Figure 7 An embodiment of a logic flow 700 is shown. The logic flow 700 may represent some or all operations performed by one or more embodiments described herein. For example, the logic flow 700 may include some or all operations for determining the context of a computing device. The embodiments are not limited to this context.
[0076] As shown, the logic flow 700 begins at box 710, where the tap engine 115 determines one or more applications that are in the foreground of the OS 112. In other words, the tap engine 115 determines one or more applications that are visible on the display of the mobile device 110. At box 720, the tap engine 115 determines the current output of the one or more applications determined at box 710. For example, the tap engine 115 can determine which page to output in a web browser based on the URL of the page. As another example, the tap engine 115 can analyze the text output by the application. As another example, the tap engine 115 can determine which page of the account application 113 is currently output for display.
[0077] At block 730, the pat engine 115 determines one or more functions associated with the one or more applications determined at block 710. For example, the pat engine 115 may determine that a web page is associated with transferring funds from one account to another based on the URL of the web browser. As another example, the pat engine 115 may determine functions associated with a page of the account application 113 being output. As yet another example, the pat engine 115 may determine concepts in text output by the application and determine functions based on those concepts.
[0078] At block 740, the tap engine 115 optionally determines any relevant account data 119. For example, the account data 119 may reflect a purchase, transaction, card activation, or other account-related operation. The tap engine 115 may take the account data 119 into account when determining the context (e.g., if the user recently completed a purchase using the contactless card 101, the context may include the purchase). At block 750, the tap engine 115 determines the context of the mobile device 110 based on one or more determinations made at blocks 710-740. Doing so allows the tap engine 115 to determine an action to be performed in response to the contactless card 101 being tapped against the mobile device 110.
[0079] Figure 8 An embodiment of a logic flow 800 is shown. The logic flow 800 may represent some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 800 may include some or all of the operations of performing an action in response to a tap of the contactless card 101 against the computing device. The embodiments are not limited in this context.
[0080] As shown, the logic flow 800 begins at block 810, where the tap engine 115 determines the action data 103 received from the contactless card 101 (e.g., Figure 6 In response, the tap engine 115 causes the URL to be accessed to initiate the execution of the action specified by the URL. For example, if the URL is for a phone number, the tap engine 115 can cause the OS 112 to open a phone application and dial the phone number. As another example, if the URL is a website, the tap engine 115 can cause the OS 112 to launch a web browser and load the URL.
[0081] At box 820, the tap engine 115 can determine that a user-defined action is specified (e.g., in the user profile 117). The tap engine 115 can then initiate the execution of the user-defined action. For example, the user-defined action in the user profile 117 can specify that the home page of the account application 113 is loaded as a default action. Therefore, the tap engine 115 can load the home page in response to the tap of the contactless card 101 on the mobile device 110. At box 830, the tap engine 115 initiates the execution of the action specified by the rule 116. For example, if the action data 103 does not specify an action and / or if no user-defined action is specified, the default rule 116 can specify that the account details page of the account application 113 is loaded.
[0082] At box 840, the tap engine 115 can optionally determine one or more candidate actions based on the context of the mobile device 110. For example, the tap engine 115 can refer to the mapping between the candidate actions and the application, function and / or context. The tap engine 115 can then select one or more of the candidate actions to perform in response to the tap of the contactless card 101 on the mobile device 110. At box 850, the tap engine 115 generates one or more predicted actions based on the ML model 118 that has been trained based on the training data associated with the current user. Doing so will take the actions of the current user into account when generating the candidate actions.
[0083] At block 860, the tap engine 115 generates one or more predicted actions based on one or more ML models 118 that have been trained based on training data associated with multiple users, which may include the current user. Doing so will take into account the actions of all users when generating candidate actions. At block 870, the tap engine 115 optionally initiates execution of one or more of the candidate actions determined at block 840 and / or the predicted actions generated at blocks 850 and / or 860.
[0084] In some examples, the contactless card 101 can be tapped to a device, such as one or more computer kiosks or terminals, to verify identity in order to receive a transaction item, such as coffee, in response to a purchase. By using the contactless card 101, a secure method for proving identity in a loyalty program can be established. Establishing secure identity proof in a manner different from just scanning a bar card, for example, to obtain a reward, coupon, discount, or the like or the receipt of benefits. For example, an encrypted transaction can occur between the contactless card 101 and a device, which can be configured to process one or more tap gestures. As explained above, one or more applications can be configured to verify the identity of the user, and then cause the user to act or respond to it, for example, via one or more tap gestures. In some examples, data such as consumption points, loyalty points, reward points, health information, etc. can be written back to the contactless card.
[0085] In some examples, contactless card 101 may be tapped to a device, such as mobile device 110. As explained above, the user's identity may be verified by one or more applications, which will then grant the user desired benefits based on the identity verification.
[0086] In some embodiments, the example authentication communication protocol can mimic the offline dynamic data authentication protocol of the EMV standard that is usually performed between a transaction card and a point-of-sale device, with some modifications. For example, because the example authentication protocol itself is not used to complete a payment transaction with an issuer / payment processor, some data values are not required, and authentication can be performed without involving a real-time online connection to the issuer / payment processor. As is known in the art, a point-of-sale (POS) system submits a transaction including a transaction value to the issuer. Whether the issuer approves or rejects the transaction can be based on whether the issuer recognizes the transaction value. At the same time, in certain embodiments of the present disclosure, transactions originating from mobile devices lack transaction values associated with the POS system. Therefore, in some embodiments, a pseudo transaction value (i.e., a value that can be recognized by the issuer and is sufficient to allow activation to occur) can be passed as part of the example authentication communication protocol. POS-based transactions can also reject transactions based on the number of transaction attempts (e.g., a transaction counter). Multiple attempts exceeding a buffer value may result in a soft rejection; the soft rejection requires further verification before accepting the transaction. In some embodiments, the buffer value of the transaction counter can be modified to avoid rejecting legitimate transactions.
[0087] In some examples, the contactless card 101 can selectively transmit information depending on the recipient device. Once tapped, the contactless card 101 can identify the device that the tap is directed to, and based on this identification, the contactless card can provide appropriate data for the device. This advantageously allows the contactless card to send only the information required to complete an immediate action or transaction, such as payment or card authentication. By limiting the transmission of data and avoiding unnecessary data transmission, efficiency and data security can be improved. The identification and selective communication of information can be applied to a variety of scenarios, including card activation, balance transfers, account access attempts, commercial transactions, and gradual fraud reduction.
[0088] If the contactless card 101 tap is for a device running Apple If you have a device with a SIM card operating system, such as an iPhone, iPod or iPad, contactless cards can be recognized The operating system sends data appropriate to communicate with the device. For example, the contactless card 101 can provide the encrypted identity information necessary to authenticate the card using an NDEF tag via, for example, NFC. Similarly, if the contactless tap is directed to the operating system, the contactless card 101 can be used to send data appropriate to the device. Devices that operate the system, e.g. smartphone or tablet, the contactless card can be recognized The system operates and sends appropriate data to communicate with the device (such as encrypted identity information required for authentication via the methods described herein).
[0089] As another example, the contactless card tap can be directed to a POS device, including but not limited to a kiosk, a checkout register, a payment station, or other terminal. When performing the tap, the contactless card 101 can identify the POS device and send only the information required for the action or transaction. For example, upon identifying a POS device for completing a commercial transaction, the contactless card 101 can transmit the payment information required to complete the transaction in accordance with the EMV standard.
[0090] In some examples, a POS device participating in a transaction may require or specify additional information to be provided by the contactless card, such as device-specific information, location-specific information, and transaction-specific information. For example, once the POS device receives data communications from a contactless card, the POS device may identify the contactless card and request additional information required to complete an action or transaction.
[0091] In some examples, the POS device may be affiliated with an authorized merchant or other entity familiar with certain contactless cards or accustomed to performing certain contactless card transactions. However, it should be understood that such an affiliation is not required to perform the described methods.
[0092] In some examples, such as a shopping store, grocery store, convenience store, or the like, the contactless card 101 can be tapped to the mobile device without having to open an application to indicate a desire or intent to cover one or more purchases with one or more of reward points, loyalty points, coupons, offers, or the like, thereby providing the intent behind the purchase.
[0093] In some examples, one or more applications may be configured to determine that it was initiated via one or more tap gestures of contactless card 101 such that the initiation occurred at 3:51 PM and the transaction was processed, or occurred at 3:56 PM to verify the user's identity.
[0094] In some examples, one or more applications can be configured to control one or more actions in response to one or more tap gestures. For example, the one or more actions can include collecting rewards, collecting points, determining the most important purchases, determining the lowest cost purchases, and / or reconfiguring to another action in real time.
[0095] In some examples, data may be collected on the tap action as a biometric / gesture authentication. For example, a unique identifier that is cryptographically secure and not easily intercepted may be sent to one or more backend services. The unique identifier may be configured to look up secondary information about an individual. The secondary information may include personally identifiable information about the user. In some examples, the secondary information may be stored within the contactless card.
[0096] In some examples, the device may include an application to split a bill or check among multiple individuals for payment. For example, each individual may have a contactless card and may be a customer of the same issuing financial institution, but this is not required. Each of these individuals may receive a push notification on their device via the application to split the purchase. Other contactless cards may be used instead of accepting only one card tap to indicate payment. In some examples, individuals with different financial institutions may have contactless cards 101 to provide information to initiate one or more payment requests from the individual who tapped the card.
[0097] In some examples, the present disclosure relates to the tapping of a contactless card. However, it should be understood that the present disclosure is not limited to tapping, and the present disclosure includes other gestures (e.g., swiping or other movement of a card).
[0098] Fig. 9An embodiment of an exemplary computing architecture 900 including a computing system 902 is shown, which computing system 902 can be suitable for implementing various embodiments as described above. In various embodiments, computing architecture 900 can include or be implemented as part of an electronic device. In some embodiments, computing architecture 900 can represent, for example, a system that implements one or more components of system 100. In some embodiments, computing system 902 can represent, for example, a mobile device 110 of system 100. The embodiments are not limited to this context. More generally, computing architecture 900 is configured to implement all logic, applications, systems, methods, devices, and functions described herein.
[0099] As used in this application, the terms "system" and "component" and "module" are intended to refer to computer-related entities: hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture 900. For example, a component can be, but is not limited to, a process running on a computer processor, a computer processor, a hard drive, multiple storage drives (optical and / or magnetic storage media), an object, an executable file, an execution thread, a program, and / or a computer. By way of illustration, both an application running on a server and a server can be a component. One or more components can reside in a process and / or an execution thread, and a component can be located on a computer and / or distributed between two or more computers. In addition, components can be communicatively coupled to each other through various types of communication media to coordinate operations. Coordination can involve a unidirectional or bidirectional exchange of information. For example, a component can transmit information in the form of a signal transmitted through a communication medium. The information can be implemented as a signal assigned to various signal lines. In such an assignment, each message is a signal. However, further embodiments may alternatively employ data messages. Such data messages can be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.
[0100] The computing system 902 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, etc. However, embodiments are not limited to implementation by the computing system 902.
[0101] like Fig. 9 As shown in FIG. 9 , computing system 902 includes processor 904, system memory 906, and system bus 908. Processor 904 may be any of a variety of commercially available computer processors, including but not limited to: and processor; Application, embedded and security processors; and and Processors; IBM and Cell processor; Core(2) and Dual microprocessors, multi-core processors, and other multi-processor architectures may also be used as processor 904 .
[0102] The system bus 908 provides an interface for system components including, but not limited to, system memory 906 to the processor 904. The system bus 908 may be any of several types of bus structures 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 be connected to the system bus 908 via a slot architecture. Example slot architectures may include, but are not limited to, Accelerated Graphics Port (AGP), Cardbus, (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.
[0103] The system memory 906 may include various types of computer-readable storage media in the form of one or more higher speed memory cells, 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 (e.g., one or more flash arrays), polymer memory (such as ferroelectric polymer memory), bidirectional memory, phase change or ferroelectric memory, silicon-silicon oxide-silicon nitride-silicon oxide-silicon (SONOS) memory, magnetic or optical cards, arrays of devices (such as redundant arrays of independent disks (RAID) drives), solid-state memory devices (e.g., USB memory), solid-state drives (SSDs), and any other type of storage medium suitable for storing information. Fig. 9 In the embodiment shown in FIG. 9 , system memory 906 may include nonvolatile memory 910 and / or volatile memory 912 . A basic input / output system (BIOS) may be stored in nonvolatile memory 910 .
[0104] The computing system 902 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 (HDD) 914, a magnetic floppy disk drive (FDD) 916 for reading from or writing to a removable disk 918, and an optical drive 920 for reading from or writing to a removable optical disk 922 (e.g., a CD-ROM or DVD). The HDD 914, FDD 916, and optical drive 920 may be connected to the system bus 908 via a HDD interface 924, a FDD interface 926, and an optical drive interface 928, respectively. The HDD interface 924 for external drive implementations may include at least one or both of a universal serial bus (USB) and an IEEE 1394 interface technology. The computing system 902 is typically configured to implement the computer system 908 described herein with reference to the accompanying drawings. Figure 1-Figure 8 All logic, systems, methods, devices and functions described herein.
[0105] The drives and associated computer-readable media provide volatile and / or nonvolatile storage of data, data structures, computer-executable instructions, etc. For example, a number of program modules can be stored in the drives and memory units 910, 912, including an operating system 930, one or more applications 932, other program modules 934, and program data 936. In one embodiment, one or more applications 932, other program modules 934, and program data 936 can include, for example, various applications and / or components of the system 100, such as the operating system 112, the account application 113, other applications 114, and the tap engine 115.
[0106] A user may enter commands and information into the computing system 902 through one or more wired / wireless input devices, such as a keyboard 938 and a pointing device such as a mouse 940. Other input devices may include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, a game pad, a stylus, a card reader, a dongle, a fingerprint reader, a glove, a drawing tablet, a joystick, a keyboard, a retina reader, a touch screen (e.g., capacitive, resistive, etc.), a trackball, a trackpad, a sensor, a stylus, and the like. These and other input devices are typically connected to the processor 904 through an input device interface 942 coupled to the system bus 908, but may be connected through other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, and the like.
[0107] A monitor 944 or other type of display device is also connected to the system bus 908 via an interface, such as a video adapter 946. The monitor 944 may be internal or external to the computing system 902. In addition to the monitor 944, computers typically include other peripheral output devices, such as speakers, printers, and the like.
[0108] The computing system 902 can operate in a network environment using logical connections to one or more remote computers, such as remote computer 948, via wired and / or wireless communications. The remote computer 948 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other public network node, and typically includes many or all of the elements described relative to the computing system 902, although only a memory / storage device 950 is shown for simplicity. The depicted logical connections include wired / wireless connections to a local area network (LAN) 952 and / or a larger network, such as a wide area network (WAN) 954. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as an Intranet, all of which can be connected to a global communications network, such as the Internet. In an embodiment, Figure 1 The network 130 is one or more of the LAN 952 and the WAN 954 .
[0109] When used in a LAN networking environment, the computing system 902 is connected to the LAN 952 through a wired and / or wireless communication network interface or adapter 956. The adapter 956 may facilitate wired and / or wireless communications to the LAN 952, which may also include a wireless access point disposed thereon for communicating with the wireless functionality of the adapter 956.
[0110] When used in a WAN networking environment, the computing system 902 may include a modem 958, or be connected to a communications server on the WAN 954, or have other means for establishing communications over the WAN 954, such as via the Internet. The modem 958 may be internal or external, and may be a wired and / or wireless device, connected to the system bus 908 via the input device interface 942. In a networked environment, program modules depicted relative to the computing system 902, or portions thereof, may be stored in the remote memory / storage device 950. It should be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between the computers may be used.
[0111] The computing system 902 is operable to communicate with wired and wireless devices or entities using the IEEE 802 family of standards, such as wireless devices operatively arranged in wireless communications (e.g., IEEE 802.16 over-the-air modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth. TM Wireless technology and others. Therefore, the communication can be a predefined structure like a conventional network, or just an ad hoc communication between at least two devices. Wi-Fi networks use radio technology called IEEE 802.11x (a, b, g, n, etc.) to provide secure, reliable, and fast wireless connections. Wi-Fi networks can be used to connect computers to each other, to the Internet, and to wired networks (which use media and functions related to IEEE 802.3).
[0112] Various embodiments can be implemented using hardware elements, software elements or a combination of the two.The example of hardware elements can include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. The example of software can include software components, programs, applications, computer programs, applications, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, processes, software interfaces, application interfaces (APIs), instruction sets, computing codes, computer codes, code segments, computer code segments, words, values, symbols or any combination thereof. Determining whether to implement an embodiment using hardware elements and / or software elements can vary according to many factors, such as desired computing rate, power level, thermal tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed and other design or performance restrictions.
[0113] One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium representing various logics within a processor, which causes the machine to manufacture logic to perform the techniques described herein when the machine reads the representative instructions. Such representations (referred to as "IP cores") may be stored on tangible machine-readable media and provided to various customers or manufacturing facilities to be loaded into a manufacturing machine that manufactures logic or a processor. For example, some embodiments may be implemented using a machine-readable medium or article, which may store instructions or instruction sets, which, if executed by a machine, may cause the machine to perform methods and / or operations according to an embodiment. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and / or software. The machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and / or storage unit, such as memory, removable or non-removable media, erasable or non-erasable media, writable or rewritable media, digital or analog media, hard disk, floppy disk, compact disk read only memory (CD-ROM), compact disk recordable (CD-R), compact disk rewritable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of digital versatile disks (DVDs), magnetic tapes, cassettes, or the like. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and / or interpreted programming language.
[0114] The foregoing description of example embodiments has been presented for purposes of illustration and description. It is not intended to be exhaustive of the disclosure or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the disclosure. It is intended that the scope of the disclosure be limited not by this detailed description, but by the claims appended hereto. Future filed applications claiming priority to the present application may claim the disclosed subject matter in different ways, and may generally include any set of one or more limitations as variously disclosed or otherwise demonstrated herein.
Claims
1. A device comprising: processor circuit; as well as a memory storing instructions that, when executed by the processor circuit, cause the processor circuit to: authenticating, by an application executing on the processor circuit, credentials associated with an account; detecting, by the application, a tap of a contactless card associated with the account against the device; receiving, by the application from a communication interface of the contactless card, action data used at least in part to determine an action associated with a tap of the contactless card against the device; determining, by the application, a context of the application based at least in part on a current output of the application; determining, by the application, a first action as an action associated with tapping the contactless card against the device based on the action data, the determined context, and data associated with the account, the first action being associated with at least one of the application and an operating system (OS) executing on the processor circuit; and The performance of the first action is initiated by the application based on a tap of the contactless card against the device.
2. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to perform the following operations: receiving a machine learning (ML) model, wherein the ML model is generated based on training data describing a plurality of actions performed in response to a plurality of taps of a plurality of contactless cards against a plurality of devices, wherein the contactless card associated with the account is one of the plurality of contactless cards; and generating, by the application, a predicted action based on the action data, the determined context, and the ML model; and The predicted action is determined as the first action based on the contactless card being tapped against the device.
3. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to: receiving a machine learning (ML) model, wherein the ML model is generated based on training data describing a plurality of actions performed in response to a plurality of taps of a contactless card associated with the account against the device; and generating, by the application, a predicted action based on the action data, the determined context, and the ML model; and The predicted action is determined as the first action based on the contactless card being tapped against the device.
4. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to: A context of the application is determined based on at least one contactless card and at least one function associated with a current output of the application, the current output of the application comprising a page output on a display of the device.
5. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to: determining, by the application, a user-defined action specified in data associated with the account; and The user-defined action is determined by the application as the first action.
6. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to: receiving input specifying a user-defined action to be associated with a tap of the contactless card against the device and the context of the application; and An indication of the user-defined action is stored in a memory of the contactless card in association with the context of the tap of the contactless card against the device and the application.
7. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor circuit, cause the processor circuit to: The action data is determined by the application to include a uniform resource locator (URL), wherein initiating performance of the first action includes performing an operation associated with the URL.
8. The device according to claim 1, wherein The first action includes one or more of: (i) a phone call, (ii) loading a page of the application, (iii) activating a component of the OS, (iv) accessing a function of a different application executed on the OS, and (v) activating the contactless card.
9. A non-transitory computer-readable storage medium having computer-readable program code embodied therein, the computer-readable program code being executable by a processor circuit to cause the processor circuit to: authenticating, by an application executing on the processor circuit, credentials associated with an account; detecting, by the application, a tap of a contactless card associated with the account against a device; receiving, by the application from a communication interface of the contactless card, action data used at least in part to determine an action associated with a tap of the contactless card against the device; determining, by the application, a context of the application based at least in part on a current output of the application; determining, by the application based on the action data, the determined context, and a machine learning (ML) model, a first action as an action associated with tapping the contactless card against the device, the first action comprising an action performed by at least one of the application and an operating system (OS) executing on the processor circuit; and The performance of the first action is initiated by the application based on a tap of the contactless card against the device.
10. The non-transitory computer-readable storage medium of claim 9, further comprising computer-readable program code executable by the processor circuit to cause the processor circuit to: An ML model is generated based on training data describing a plurality of actions performed in response to a plurality of taps of a plurality of contactless cards against a plurality of devices, wherein the contactless card associated with the account is one of the plurality of contactless cards.