Technique to perform applet programming
Patent Information
- Application Number
- JP2025106642
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-07-03
- Filing Date
- 2025-06-24
- Publication Date
- 2025-10-21
AI Technical Summary
Current transaction cards cannot be easily upgraded or reconfigured, leading to costly and time-consuming replacement when issues arise, as issuers typically provide preloaded features that cannot be modified.
A system and method for upgrading transaction cards using an automated teller machine (ATM) that includes an EMV device and processing circuit to detect, verify, and install applets securely on the card, allowing users to add or update features.
Enables secure and efficient upgrading of transaction cards by allowing users to install new applets, reducing the need for frequent card replacements and associated costs.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Patent Application No. 16 / 503,003, entitled "Techniques for Implementing Applet Programming," filed July 3, 2019. The contents of the aforementioned patent application are incorporated herein by reference in their entirety. [Background technology]
[0002] Today, credit card users may use their cards at merchants across the country and around the world. Card issuers are constantly working to enhance security and protect cardholder personal information while offering enhanced and new features. One emerging technology is Europay, Mastercard, and Visa (EMV) chip card technology, which is increasingly being adopted by card issuers and merchants in the United States and around the world. Because chip cards feature both a chip and a traditional magnetic stripe, they can be used even when a merchant does not yet support chip technology. If both the card issuer and the merchant support chip technology, a chip card can be inserted into a terminal to complete a transaction. However, one drawback of current card technology is that it cannot be easily upgraded in a secure manner. Therefore, if there is a problem with a card, the card issuer typically issues a new card and the old card is discarded. This approach is costly and leaves card users without a card while waiting for the new card. Summary of the Invention
[0003] Various embodiments described herein may include a transaction card including a memory for storing instructions and one or more verification values, and a processing circuit coupled to the memory. The processing circuit is operable to execute instructions that, when executed, cause the processing circuit to: receive from an automated teller machine (ATM) an applet signed with a verification signature, the applet comprising instructions executable by the processing circuit; determine whether the verification signature matches one of the verification values stored in the memory; enable the applet including the instructions for execution by the processing circuit in response to a determination that the verification signature matches one of the verification values; and prevent enablement of the applet including the instructions for execution in response to a determination that the verification signature does not match any of the verification values.
[0004] Various embodiments described herein may also include a system, device, computing device, etc. that includes an EMV device, a memory coupled to the EMV device, a memory for storing instructions, and a processing circuit coupled to the memory and the EMV device. The processing circuit is operable to execute instructions that, when executed, cause the processing circuit to detect a transaction card comprising one or more applets, determine a status of the one or more applets on a memory of the transaction card, provide the status of the one or more applets to a server, receive an applet from the server based on the status of the one or more applets, and provide the applet to the transaction card using the EMV device. Various embodiments described herein also include systems, devices, computing devices, etc., that perform a computer-implemented method, including: a processing circuit of a transaction card receiving from an automated teller machine (ATM) an applet signed with a verification signature, the applet comprising instructions executable by the processing circuit, the transaction card comprising a contact pad coupled to a corresponding contact pad of the ATM to enable reception of the applet; the processing circuit determining whether the verification signature matches one of a plurality of verification values stored in memory; in response to a determination that the verification signature matches one of the verification values, causing the processing circuit to enable the applet, including the instructions, for execution and storing the applet in memory; and in response to a determination that the verification signature does not match any of the verification values, causing the applet to be discarded. [Brief explanation of the drawings]
[0005] [Figure 1] 1 is a diagram of a data transmission system according to an exemplary embodiment. [Figure 2A] FIG. 1 is a diagram of a transaction card according to an exemplary embodiment. [Figure 2B]FIG. 1 is a diagram of a contact pad of a transaction card according to an exemplary embodiment. [Figure 3A] FIG. 1 is a diagram of a system using a transaction card according to an exemplary embodiment. [Figure 3B] FIG. 1 is a diagram of a system using a transaction card according to an exemplary embodiment. [Figure 4] 1 shows an example of a first flow diagram. [Figure 5] 10 shows an example of a second flow diagram. [Figure 6] 1 illustrates an example computing architecture. [Figure 7] 1 shows an example of a communication architecture. DETAILED DESCRIPTION OF THE INVENTION
[0006] Various embodiments generally aim to provide improvements to transaction cards by allowing users to upgrade transaction cards and install new features on them in a secure manner. Currently, transaction cards are typically preloaded with features by the issuing financial institution and mailed to the user. These typically cannot be reconfigured or upgraded in any way. Thus, as mentioned above, if there is a problem with a transaction card, the card issuer issues a new transaction card and the user discards the old card, which is time-consuming and expensive. The embodiments discussed herein allow users to upgrade and / or add new features or applets to their transaction cards in a secure manner.
[0007] In one example, an embodiment includes a device such as an automated teller machine (ATM) having several components for upgrading and / or installing new applets on a transaction card. The ATM may be coupled with one or more backend systems, which may be operated by a secure institution, such as a financial institution or a secure applet provider, and the backend systems may provide applets for installation and / or upgrades on the ATM. An applet may be a binary file or code that, once installed and verified on the transaction card, is executable by circuitry on the transaction card.
[0008] For example, in embodiments, an ATM may include a component such as an EMV device and a memory coupled with the EMV device. The ATM may further include a processing circuit coupled with the memory and the EMV device, the processing circuit operable to execute instructions stored in the memory. In embodiments, the processing circuit, when executing the instructions, may detect a transaction card comprising one or more applets. For example, the ATM may determine that a user has inserted a transaction card into a card slot of the ATM. After the ATM verifies the user's identity, such as a personal identification number, the ATM may determine the status of one or more applets on the transaction card, for example, stored in the transaction card's memory. The applet status may indicate whether the applet is functioning properly, the version of the applet, the name of the applet, etc. In embodiments, the ATM may provide the status of the one or more applets to a server, for example, a back-end system server.
[0009] The server may process the information from the ATM and determine whether an applet is required for installation on the transaction card, for example, if the applet is outdated. The ATM may receive the applet from the server based on the status of one or more applets and provide the applet to the transaction card. For example, the ATM may write the applet to the transaction card via an EMV device.
[0010] In some cases, a new applet may be installed on the transaction card. For example, a user may make a selection via a graphical user interface (GUI) of the new applet. The ATM may provide information based on the selection to a server in the backend system. In return, the ATM may receive an applet from the backend system for installation on the transaction card. These and other details will become more apparent in the following description.
[0011] Reference is now made to the drawings. Like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be apparent, however, 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 description thereof. The intention is to cover all modifications, equivalents, and alternatives within the scope of the claims.
[0012] 1 illustrates a system 100 according to an example embodiment. As described further below, system 100 may include a transaction card 105, a client device 110, a network 115, and a server 120. Although FIG. 1 illustrates a single instance of the components, system 100 may include any number of components.
[0013] System 100 may include one or more transaction cards 105, which are further described below with reference to Figures 2A-2B. In some embodiments, transaction card 105 may communicate with devices such as client device 110 via various wired and wireless communication technologies, such as near field communication (NFC) and Europay, Mastercard, and Visa (EMV). However, embodiments are not limited in this manner and may include communicating with devices via other technologies.
[0014] System 100 may include client device 110, which may be a network-enabled computer. In embodiments, client device 110 may be an automated teller machine (ATM), a transaction machine, a transaction terminal, a teller terminal, an EMV chip reader / writer, and / or any device capable of reading and writing to an EMV chip. Client device 110 may also be a computing device or a communications device, including, for example, a server, a network appliance, a personal computer, a workstation, a telephone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other device. Client device 110 may also be a mobile device. For example, a mobile device may include an Apple® iPhone®, iPod®, iPad®, or other mobile device running Apple's iOS® operating system, a device running Microsoft's Windows® mobile operating system, a device running Google's Android® operating system, and / or other smartphone, tablet, or similar wearable mobile device. In some embodiments, client device 110 may be a
[0015] It is understood that the client device 110 may include components including a processor and memory, and that the processing circuitry may include additional components, including a processor, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and tamper-proof hardware, as necessary to perform the functions described herein. The client device 110 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 inputting information into a user's device that is available and supported by the user's device, such as a touchscreen, keyboard, mouse, cursor control device, touchscreen, microphone, digital camera, video recorder, or camcorder. These devices may be used to input information and interact with the software and other devices described herein. For example, the client device 110 may include one or more components for enabling a user to perform one or more operations, such as add, update, delete, etc., on applets on the transaction card 105.
[0016] In embodiments, client device 110 may include one or more input / output (I / O) devices, including devices for communicating using wireless and wired technologies. For example, client device 110 may include one or more transceivers for communicating in cellular frequency bands, e.g., the 700 megahertz (MHz) frequency range, the 800 megahertz (MHz) frequency range, the 850 MHz frequency range, the 1700 MHz frequency range, the 1900 MHz frequency range, the 2100 MHz frequency range, the 2300 MHz frequency range, the 2500 MHz frequency range, the 2600 MHz frequency range, etc. The transceiver itself may include components and circuitry for performing transmit and receive operations. The components and circuitry may include analog-to-digital converters, digital-to-analog converters, modulators, amplifiers, etc. In embodiments, the transceiver may be coupled to one or more antennas for performing communications. Additionally, the transceiver may include and / or be coupled with additional physical layer and medium access control (MAC) layer circuitry and software to communicate according to one or more cellular standards, such as second generation (2G), 3G, 4G, and 5G, or new radio (NR) standards. Additional cellular standards and / or technologies include Enhanced Data Rates for GSM Evolution (EDGE), Evolution-Data Optimized (EVDO), General Packet Radio Service (GPRS), High Speed Packet Access (HSPA), Evolved HSPA (HSPA+), Long Term Evolution (LTE), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), etc. The transceiver may utilize one or more radio technologies and protocols (cellular protocols), such as code division multiple access (CDMA), frequency division duplex (FDD), time division duplex (TDD), multiple input and multiple output (MIMO), orthogonal frequency division multiple access (OFDMA), etc. The embodiments are not so limited.
[0017] In an embodiment, the client device 110 may include an additional I / O device, such as an NFC device coupled with an NFC antenna, e.g., a loop antenna. The NFC device may be a radio / controller operable to communicate according to an NFC protocol and use electromagnetic induction via the NFC antenna. In one example, the NFC device may communicate in the 13.56 MHz unlicensed radio frequency Industrial, Scientific, and Medical (ISM) band using the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) 18000-3 air interface at data rates of 106 to 424 kilobits per second (kbit / s). As discussed in more detail below, the NFC device may be used and provided via applications to communicate with other NFC-enabled devices, e.g., transaction cards 105.
[0018] In one example, a client device 110 including an NFC device may operate as an initiator, and a transaction card 105 may operate as a target. In this example, the client device 110 and the transaction card 105 may operate in a passive mode of operation. The client device 110, operating as the initiator, energizes and provides a carrier field to the transaction card 105, operating as the target. The transaction card 105 derives its operating power from the electromagnetic field provided by the initiator. In embodiments, a client device 110 including an NFC device may continuously and periodically (or semi-periodically) search for a target, e.g., the transaction card 105. In embodiments, the client device 110 may communicate signals including data with the transaction card 105 according to an NFC protocol. For example, the client device 110 may communicate with the transaction card 105 to determine the status of an applet on the transaction card 105, e.g., by communicating radio signals including data indicating the status of the applet. Embodiments are not limited in this manner.
[0019] In embodiments, the client device 110 may also include an EMV reader / writer capable of reading and writing to the transaction card 105 via EMV protocols and standards. The EMV reader / writer may be used by the client device 110, for example, to read from and write to an integrated chip on the transaction card. The EMV reader / writer may include one or more pads that may be communicatively coupled to, physically, and / or electrically coupled to, one or more pads on the transaction card 105. Once coupled, the client device 110 may utilize the EMV reader / writer to write data, information, applets, etc. to the transaction card 105. In one example, the client device 110 may utilize the EMV reader / writer to update and / or add new software, such as applets, to the transaction card 105 in a secure manner, as described in more detail below. The client device 110 may also utilize the EMV reader / writer to read data, information, etc. from the transaction card 105, such as an indication of the status of an applet on the transaction card 105.
[0020] In some embodiments, client device 110 of system 100 may also communicate with other components of system 100, including one or more servers 120. For example, client device 110 may communicate with one or more servers 120 over one or more networks 115 and may operate as a respective front-end to back-end pair with server 120. Client device 110 may send one or more requests to server 120, for example, from an application or code executing on client device 110. The one or more requests may be associated with retrieving data from server 120 and providing data to server 120. For example, server 120 may receive one or more requests from client device 110. Based on the one or more requests from client device 110, server 120 may be configured to retrieve the requested data from one or more databases (not shown). Based on receiving the requested data from the one or more databases, server 120 may be configured to transmit the received data to client device 110, the received data responding to the one or more requests. In one example, the data may include one or more applets for installation on transaction card 105.
[0021] In some cases, client device 110 may send data to server 120. For example, client device 110 may receive a request for the status of one or more applets on transaction card 105. Client device 110 may determine the status of the one or more applets and provide the data to server 120. Embodiments are not limited to this example.
[0022] In embodiments, one or more servers 120 may include one or more processors coupled to memory. Server 120 may be configured as a central system, server, or platform for controlling and retrieving various data at different times to perform multiple workflow actions. Server 120 may be configured to connect to one or more databases. Server 120 may also be connected to at least one client device 110. Embodiments are not limited to these components, and server 120 may include other components for performing the operations discussed herein.
[0023] System 100 may include one or more networks 115. In some examples, network 115 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks and may be configured to connect client device 110 to server 120. For example, network 115 may include one or more of an optical fiber 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 communications, a personal communication service, a personal area network, a wireless application protocol, a multimedia messaging service, an enhanced messaging service, a short message service, a time division multiplex-based system, a code division multiple access-based system, D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth, NFC, radio frequency identification (RFID), Wi-Fi, etc.
[0024] Additionally, network 115 may include, but is not limited to, a telephone line, optical fiber, IEEE Ethernet 902.3, a wide area network, a wireless personal area network, a LAN, or a global network such as the Internet. Furthermore, network 115 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof. Network 115 may further include one network or any number of the exemplary types of networks listed above, operating as a standalone network or in cooperation with one another. Network 115 may utilize one or more protocols of one or more network elements to which they are communicatively coupled. Network 115 may translate one or more protocols of network devices to and from other protocols. While network 115 is shown as a single network, it should be understood that, according to one or more examples, network 115 may include multiple interconnected networks, such as the Internet, a service provider network, a cable television network, an enterprise network such as a credit card association network, and a home network. An example of transaction card processing is described in U.S. Patent Application No. 16 / 205,119, filed November 29, 2018. The aforementioned patent applications are incorporated herein by reference in their entirety.
[0025] FIG. 2A illustrates an exemplary configuration of a transaction card 200, which may include a payment card, such as a contactless card, credit card, debit card, or gift card, issued by a service provider, with service provider indicator 205 displayed on the front or back of card 200. In some examples, transaction card 200 may be unrelated to payment cards and may include, but is not limited to, an identification card. In some examples, transaction cards may include dual-interface contactless payment cards, rewards cards, and the like. Transaction card 200 may include a substrate 210, which may include a single layer or one or more laminated layers composed 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, transaction card 200 may have physical characteristics conforming to the ID-1 format of the ISO / IEC 7816 standard; otherwise, the transaction card may conform to the ISO / IEC 14443 standard. However, it is understood that a transaction card 200 according to the present disclosure may have different characteristics, and the present disclosure does not require that the transaction card be embodied in a payment card.
[0026] Transaction card 200 may also include identification information 215 displayed on the front and / or back of the card, and contact pad 220. Contact pad 220 may include one or more pads and be configured to establish contact with other client devices, such as ATMs, user devices, smartphones, laptops, desktops, or tablet computers, via the transaction card. The contact pad may be designed according to one or more standards, such as the ISO / IEC 7816 standard, to enable communication according to EMV protocols. Transaction card 200 may also include processing circuitry, an antenna, and other components, as further discussed in FIG. 2B . These components may be located behind contact pad 220 or elsewhere on substrate 210, e.g., within a different layer of substrate 210. Transaction card 200 may also include a magnetic strip or tape (not shown in FIG. 2A ) that may be located on the back of the card. Transaction card 210 may also include an NFC device coupled with an antenna capable of communicating via an NFC protocol. Embodiments are not so limited.
[0027] As shown in FIG. 2B , contact pad 220 may include or be coupled to an integrated chip 225 for storing and processing information, including a microprocessor 230 including processing circuitry and memory 235. It is understood that integrated chip 225 may include additional components, including a processor, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and anti-tamper hardware, as needed to perform the functions described herein. While shown as part of or behind contact pad 220, embodiments are not limited in this manner. In some cases, an integrated chip may be located in a different location on transaction card 200 and coupled to contact pad 220 via one or more traces or interconnects to enable communication via EMV.
[0028] Memory 235 may be any type of memory, including, but not limited to, read-only memory, write-once read-multiple memory, or read / write memory, such as, but not limited to, RAM, ROM, and EEPROM, and transaction card 200 may include one or more of these memories. In some cases, transaction card 200 may include multiple types of memory, including encrypted and unencrypted corresponding memory. Read-only memory may be programmable at the factory as read-only or one-time programmable. One-time programmability allows writing once and then reading many times. Write-once read-multiple memory may be programmed at some point after the memory chip leaves the factory. Once the memory is programmed, it cannot be rewritten, but it can be read many times. Read / write memory may be programmed and reprogrammed many times after leaving the factory and may be read many times.
[0029] The memory 235 may be configured to store data including one or more applets 240, one or more counters 245, a customer identifier 250, and one or more verification values 255. The one or more applets 240 may include one or more software applications configured to run on one or more transaction cards, such as a Java Card applet. However, it is understood that the applet 240 is not limited to a Java Card applet and may instead be any software application capable of operating on a transaction card or other device with limited memory. The one or more counters 245 may include a numeric counter sufficient to store an integer. The customer identifier 250 may include a unique alphanumeric identifier assigned to a user of the transaction card 200, which identifier may distinguish a user of the transaction card from users of other transaction cards. In some examples, the customer identifier 250 may identify both the customer and the account assigned to the customer, and may further identify the transaction card associated with the customer's account.
[0030] The one or more verification values 255 may be values used to verify applets 240 stored in memory 235 or new applets for installation in memory 235. Each of the verification values 255 may correspond, for example, to an applet 240 currently stored in memory 235 or a new applet that may be stored in memory 235 for later use. For example, an applet may be signed with a verification signature, which may be provided to the transaction card 200 by the server 120 via an ATM, for example. The transaction card 200, including the processing circuit 225, may determine the applet's verification signature and whether the verification signature matches the verification value 255 stored in memory 235 to ensure that the applet for installation has not been corrupted and / or maliciously tampered with. In some cases, the verification value 255 is written to memory 235 during original equipment manufacturer (OEM) programming as part of a one-time write process and may not be updated. This approach may provide an additional level of security but may limit applets 240 for installation. In some cases, new verification values 255 may be added to memory 235 from time to time as part of a secure write operation. In an embodiment, verification values 255 may be stored in a secure manner, for example, encrypted, and processing circuitry 225 may include a secure instruction set capable of reading verification values 255 from memory 235, decrypting the values, and validating them for applet installation and update verification. The secure instruction set may utilize memory security techniques such as protected keys, memory encryption, paging, etc., and processing circuitry 235 may provide a trusted execution environment.
[0031] In an embodiment, memory 235 may store one or more keys (not shown). Each key may be part of a key pair that may be used for encryption and decryption. In some cases, applet 240 may be included and / or configured so that it can obtain confidentiality. Thus, server 120 may provide encrypted applet 240. Processing circuitry may determine that the applet is encrypted and retrieve a private key from memory 235. The private key may be stored in a secure location in memory 235 and used to decrypt the applet. In an embodiment, memory 235 may contain two or more keys used for the decrypted information and the applet. Once the processing circuitry retrieves the key, it may decrypt the applet, which may be verified and, if verified, become executable.
[0032] In embodiments, transaction card 200 may also include an NFC device 260 capable of communicating according to an NFC protocol. NFC device 260 may operate passively and may be energized by a signal emitted by an NFC device of a client device. NFC device 260 may, for example, derive its power from an electromagnetic field caused by the NFC device of a client device. However, embodiments are not so limited. In other examples, transaction card 200 may be equipped with a power source (not shown) operable to provide power to NFC device 260 so that it can activate its own electromagnetic field. In one example, as described above, transaction card 200 may provide status updates and communicate data with an ATM or client device via the NFC device. Embodiments are not so limited, and transaction card 200 may communicate other data with other devices.
[0033] In some examples, transaction card 200 may include one or more antennas 255. The one or more antennas 255 may be disposed within transaction card 200 around integrated chip 225 and contact pads 220. For example, one or more antennas 255 may be integral with processing circuit 225, or one or more antennas 255 may be used with an external booster coil. As another example, one or more antennas 255 may be external to contact pads 220 and processing circuit 225. In an embodiment, one or more antennas 255 may be coupled to NFC device 260 and configured to enable NFC communication.
[0034] In one embodiment, the antenna 255, including the coil of the transaction card 200, may function as the secondary of an air-core transformer. For example, an ATM may communicate with the transaction card 200 by interrupting power or amplitude modulation. The transaction card 200 may use a gap in the transaction card's power connection to infer data transmitted from the ATM, which may be maintained functionally via one or more capacitors. The transaction card 200 may communicate back by switching the load or load modulation of the transaction card's coil. The load modulation may be detected at the terminal's coil through interference.
[0035] 3A illustrates a system 300 that includes a computing device 310, such as an ATM, that can perform operations to maintain an applet on a transaction card 305. The system 300 illustrates a client device 310 that has several components that can couple to and communicate with the transaction card 305 and other servers 320. The components of the client device 310 include a display 311, a processor 312, an NFC device 313, an EMV device 314, an interface 316, and a memory 317. FIG. 3A illustrates a limited number of components for illustrative purposes only. The client device 310 may include additional components, as known to those skilled in the art, consistent with embodiments discussed herein.
[0036] The client device 310 may communicate with one or more servers 320 via one or more networks 315, which may be wired and / or wireless networks. The client device 310 may transmit data to the server 320 via the client device's 310 network interface. In one example, the client device 310 may transmit requests associated with retrieving data and information from one or more servers 320 and databases 335. For example, the server 320 may receive one or more requests from the client device 310 and process the requests. Based on the one or more requests from the client device 310, the server 320 may be configured to retrieve the requested data from one or more databases 335, for example. In an embodiment, the client device 310 may transmit data to the server 320 via the network 315. The data may include information regarding the user's account, account number, entered PIN, operation performed, etc. In some cases, the data may include the status of the transaction card 305. The data between the client device 310, the server 320 coupled to the database 335, and the transaction card 305 enables various functions and operations to be performed by the ATM, such as transaction operations such as determining the status of an account, enabling cash deposits, enabling cash withdrawals, and performing account updates, and transaction card operations such as managing information and data on the transaction card 305, installing applets, updating applets, and deleting applets.
[0037] In some embodiments, the client device 310 may communicate information and data with the server 320 to provide applet functionality to the transaction card 305. For example, the client device 310 may communicate with the server 320 to automatically determine, without user intervention, whether one or more applets on the transaction card 305 require updating. In another example, the client device 310 may receive a request by a user to update an applet on the transaction card 305. In a third example, the client device 310 may communicate data with a server to enable a user to install a new applet on the transaction card 310. Embodiments are not limited to these examples.
[0038] In embodiments, client device 310 may include a processor 312, which may be coupled with other components, including memory 317. Processor 312 may be any type of processor, including circuits, cache, control units, logic, registers, clocks, buses, etc. Additionally, memory 317 may be any type of memory, as similarly discussed above with respect to memory 235. In embodiments, memory 235 may store one or more applications or software including instructions that may be executed by processor 312 and processing circuits. The software may include instructions for performing operations discussed herein, e.g., instructions for performing transaction operations and transaction card management operations.
[0039] In embodiments, the client device 310 may communicate one or more interfaces through which it can communicate with the transaction card 305. In one example, the client device 310 includes an NFC device 313 that can communicate with the transaction card 305 using short-range wireless communication (e.g., NFC). It should be noted that those skilled in the art will understand that a distance of less than 20 centimeters corresponds to an NFC range. When the transaction card 305 is in proximity to the client device 310, the NFC device 313 may read data stored on the card, such as the status of an applet. In one example, the NFC device 313 may perform one or more actions or communications with the transaction card 305, such as detecting the transaction card 305 including its NFC device, authenticating the card, polling the card for the status of the applet, and receiving the status. In some cases, the NFC device 313 may be capable of energizing and powering the NFC device of the transaction card 305, as described above. In other examples, the transaction card 305 may provide its own power to the NFC device.
[0040] In embodiments, the client device 310 may include other interfaces, such as an EMV device 314, which may be utilized to update and / or add new applets to the transaction card 305. In embodiments, the client device 310 may determine whether a new applet is installed on the transaction card 305 or whether a current applet is updated on the transaction card 305. For example, the client device 310 may receive user input to add a new applet or a selection to cause an update of a current applet on the transaction card 305 via an input device or a touchscreen display, such as display 311. In other examples, the client device 310 may determine the status of one or more applets on the transaction card 305 and determine that an update is required. The client device 310 may determine the status of one or more applets on the memory of the transaction card 305 by polling and / or sending requests to and receiving information from the transaction card 305. The request may be sent to the transaction card 305 via the NFC device 313, and a response indicating the status may be received by the NFC device 313 from the transaction card 305, as described above. The status provided to the client device 310 may include information about the applet, including, but not limited to, the version, installation date, name, identifier, etc. In some cases, the status of one or more applets may include a list of all applets installed on the transaction card 305. The status may also indicate whether the applet is corrupted and / or cannot be verified by the transaction card 305, e.g., if the verification value does not match the verification signature of the applet.
[0041] The client device 310 may determine that an applet is needed for the transaction card 305 and send a request to one or more servers 320 over the network 315. The request may include information about the applet, such as a name, a version number, metadata, and / or an identifier for identifying the applet. The request may also include the status of one or more applets on the transaction card 305 and / or an indication that the applet to be installed is not present on the transaction card 305. The one or more servers 320 may determine the applet to install based on the request, for example, from the name, version number, identifier, or a combination thereof, and retrieve the applet from the database 335. The server 320 may provide the applet to the client device 310. The client device 310 may receive the applet in raw (unencrypted) or encrypted form. In an embodiment, the applet may be an executable file that can be executed by processing circuitry of the transaction card 305. In embodiments, an applet may include, but is not limited to, software that performs banking operations with the card, manipulates and functions on the card's components, updates sensitive information for the card's user, etc. In some cases, an applet may be signed with a verification signature, e.g., a hash value, a digital signature, a private key, and / or a special code that can be used to verify the applet by the client device 310 and / or transaction card 305. If the applet is altered in any way, the verification signature and the applet cannot be verified by the client device 310 and / or transaction card 305.
[0042] In an embodiment, the client device 310 may receive an applet from a server and provide the applet to the transaction card 305. In one example, the client device 310 may write the applet to the memory of the transaction card 305 using an EMV device 314. The EMV device 314 may include a contact pad that couples to a contact pad of the transaction card 305 and is used to write the applet to the transaction card 305 according to the EMV protocol.
[0043] In some cases, the client device 310 may receive an encrypted applet from the server 320. Any encryption technology may be used to encrypt the applet, and embodiments are not limited in this manner. In some cases, the client device 310 performs a decryption operation to decrypt the applet using a decryption technology before writing the applet to the transaction card 305. For example, the client device 310 may securely store one or more keys that can be utilized by the client device 310 to perform the decryption operation. The client device 310 may perform the decryption operation and temporarily securely store the unencrypted applet before writing it to the transaction card 305. In other examples, the client device 310 may provide the applet to the transaction card 305 in encrypted form, and the transaction card 305 may decrypt the applet with, for example, a key stored on the transaction card 305. Embodiments are not limited in this manner.
[0044] 3B illustrates one possible processing sequence 350 for performing the installation of an applet on a transaction card 305 by a client device 310. In the illustrated embodiment, the client device 310 may be an ATM, and a user may insert the transaction card 305 into a card receiving device of the ATM, e.g., a card slot including an EMV device for performing EMV read / write, and may be provided with one or more operations via a graphical user interface (GUI) presented on a display of the client device 310.
[0045] In an embodiment, the client device 310 may detect the transaction card 305 and determine that an applet is to be installed on the transaction card 305 at 352. In one example, the client device 310 may perform the detection based on one or more signals received via one or more interfaces, e.g., NFC information received via an NFC device, information received via an EMV card reader, information from a sensor detecting a card in the client device 310, etc.
[0046] Upon detecting the transaction card 305, the client device 310 may present a graphical user interface (GUI) display including options for interacting with the card, performing a transaction, and / or updating the card itself. In one example, the client device 310 may receive user input for adding a new applet to the card. More specifically, the client device 310 may present to the user on the GUI display a list of applets that are potentially available for installation and receive a selection of one or more applets via an input device, a touchscreen interface, a key interface, a button, etc.
[0047] In some cases, the client device 310 may first determine the status of one or more applets on the transaction card 305 and present the user with operations to interface with the installed applets, such as updating or removing them from the card. The client device 310 may first poll and / or send a request for status information about the applets installed on the transaction card 305, determine which applets are on the card, and present one or more options for the user to interact with the card. The client device 310 may receive user input based on the presented information and perform the requested operation, installing a new applet, updating a current applet, or removing a current applet. The client device 310 may also perform one or more operations automatically. For example, the client device 310 may automatically determine the status of applets on the card by detecting the card at link 352 and requesting information. Embodiments are not limited in this manner.
[0048] At line 354, the client device 310 may send a request to the server 320 for one or more applets indicated for installation on the transaction card 305. The request may include one or more identifiers, such as a name, an identification number, etc. In some embodiments, the client device 310 may send status information / data along with the request, which may include additional information, for example, the version of the applet requested for update or installation.
[0049] At 356, the client device 310 may receive one or more applets from the server 320. The one or more applets may be received individually or as part of a package, such as, for example, a zip or other group of files compressed for transmission. In some cases, the one or more applets may be encrypted when received by the client device 310. An encrypted applet may ensure that sensitive information is not disclosed. The applet may be signed with a verification signature to ensure that it is not tampered with or corrupted during communication from the server 320 to the client device 310. In some cases, the client device 310 may receive the applets over one or more secure links, utilizing, for example, Secure Socket Tunneling Protocol (SSTP), Transport Layer Security (TLS), Secure Sockets Layer (SSL), Secure HTTP (HTTPS), etc. Embodiments are not so limited.
[0050] At 358, the client device 310 may provide the applet to the transaction card 305. More specifically, the client device 310, which includes an EMV device having a pad coupled with a pad of the transaction card 305, may communicate with and store the applet in memory of the transaction card 305. In some cases, the client device 310 may decrypt the applet before writing it to memory of the transaction card 305. In other examples, the client device 310 may write the applet to memory of the transaction card encrypted.
[0051] At 360, the transaction card 305 may verify and install applets for use in the transaction card's 305 memory. The transaction card 305 may verify the applets by comparing a verification signature used to sign the applets with a verification value stored in the transaction card's 305 memory. If the applet's verification signature matches the verification value stored in memory, the applet may be verified. The transaction card 305 may perform the verification for each applet or as a package of applets. Once verified, the transaction card 305 may install and / or enable the applets to run. In some cases, one or more applets may replace one or more existing applets installed on the transaction card, for example, if a new version of the applet is available. Once verified and installed, the applets may be operable to run on the transaction card 305.
[0052] In some cases, the client device 310 may not be able to verify the applet. For example, the verification signature may not match the verification value stored in the memory of the transaction card 305. In these instances, the client device 310 may discard the unverified applet from the memory transaction card 305.
[0053] 4 illustrates an example logic flow 400 that may represent some or all of the operations performed by one or more embodiments described herein. For example, logic flow 400 may represent operations performed by a transaction card to install a new applet or to perform an applet update on the transaction card.
[0054] At block 410, embodiments include receiving an applet signed with a verifying signature. In embodiments, the applet includes one or more instructions executable by a processing circuit. For example, a transaction card may receive the applet from a client device via the client device writing the applet to memory on the transaction card. In some cases, the transaction card may store the applet in temporary memory until it is decrypted, verified, and installed for execution by the transaction card. In embodiments, the transaction card may receive an applet that is encrypted and signed with a verifying signature. In other examples, the transaction card may receive an applet that is unencrypted and signed with a verifying signature. Embodiments are not limited to receiving a single applet; in some cases, the transaction card may receive multiple applets from a client device.
[0055] At block 420, the logic flow 400 includes determining whether the verification signature matches one of the verification values stored in memory. In an embodiment, the transaction card may store one or more verification values in secure memory, and the verification values may be used to verify the applet by determining whether the verification signature matches the verification value.
[0056] In embodiments, a transaction card may store multiple verification values, each of which may correspond to a particular applet. In embodiments, the verification values may be installed in the memory of the transaction card at the time of manufacture, or may be updated / installed from time to time, for example by a bank device, via a secure installation procedure.
[0057] In embodiments, if the verification signature of the applet matches one of the verification values, the applet may be verified. In some embodiments, the transaction card may first decrypt the applet before verifying it. As mentioned above, the transaction card may receive an encrypted applet. The transaction card may store one or more encryption / decryption keys in secure memory that can be utilized to decrypt the encrypted applet.
[0058] At block 430, logic flow 400 includes enabling an applet that includes instructions for execution by a processing circuit in response to a determination that the verification signature matches one of the verification values. For example, the circuitry of a transaction card may allow the applet to run. However, at block 440, logic flow 400 includes preventing the enabling of an applet that includes instructions for execution in response to a determination that the verification signature does not match any of the verification values. Thus, if the transaction card cannot verify the applet, the applet cannot run / run on the transaction card. The transaction card may discard applets that cannot be verified to free up memory / storage.
[0059] 5 illustrates an example logic flow 500 that may represent some or all of the operations performed by one or more embodiments described herein. For example, logic flow 500 may represent operations performed by a client device.
[0060] At block 510, logic flow 500 includes detecting a transaction card comprising one or more applets. As described above, a client device may detect insertion of a transaction card into the client device. In embodiments, the client device may determine to install applets on the transaction card. For example, the client device may receive user input via a user interface indicating that the user desires to install and / or update applets on the transaction card. In other examples, the client device may detect a transaction card, determine the status of one or more applets on the transaction card, and determine that one or more applets need updating, e.g., the applets are out of date.
[0061] At block 520, the logic flow 500 includes determining the status of one or more applets on the memory of the transaction card. The indication of status may be determined, for example, via polling using an NFC interface and NFC device. Additionally, the indication of status may provide information regarding which applets are installed on the transaction card and which applets require updating.
[0062] At block 530, logic flow 500 includes providing an indication of the status of the one or more applets to a server. Further, at block 540, logic flow 500 includes receiving applets from the server based on the indication of the status of the one or more applets from the server. The server may determine one or more applets for installation on the contactless card, retrieve the one or more applets from a data store or database, and provide the one or more applets to the client device for installation on the transaction card. In embodiments, the client device and server may communicate over one or more secure links. As previously described, the applets may be provided to the client device encrypted and signed with a verification signature.
[0063] At block 550, logic flow 500 includes utilizing an EMV device to provide the applet to a transaction card. For example, the client device may write the applet to the transaction card's memory, which may be temporary memory until the transaction card can verify the applet. In some cases, the client device may decrypt the applet before writing it to memory. However, in other examples, the client device may provide the applet to the transaction card in encrypted form. Once verification is complete, the applet may be available to run on the transaction card, as described above.
[0064] 6 illustrates an embodiment of an exemplary computing architecture 600 suitable for implementing various embodiments as described above. In one embodiment, computing architecture 600 may be included as or implemented as part of system 100.
[0065] As used in this application, the terms “system” and “component” are intended to refer to any computer-related entity: hardware, a combination of hardware and software, software, or software in execution, an example of which is provided by exemplary computing architecture 600. For example, a component may be, but is not limited to, a process running on a processor, a processor, a hard disk drive, multiple storage drives (optical and / or magnetic storage media), an object, an executable, a thread of execution, a program, and / or a computer. By way of example, both an application running on a server and the server may be a component. One or more components may reside within a process and / or thread of execution, and components may be localized on one computer and / or distributed among two or more computers. Furthermore, components may be communicatively coupled to each other and coordinate operations by various types of communication media. Coordination may include unidirectional or bidirectional exchange of information. For example, components may communicate information in the form of signals communicated over the communication media. Information may be embodied as signals assigned to various signal lines. In such assignments, each message is a signal. However, further embodiments may alternatively use data messages. Such data messages may be transmitted over a variety of connections, examples of which include parallel interfaces, serial interfaces, and bus interfaces.
[0066] Computing architecture 600 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 computing architecture 600.
[0067] 6, computing architecture 600 includes a processing unit 604, a system memory 606, and a system bus 608. Processing unit 604 may be any of various commercially available processors.
[0068] The system bus 608 provides an interface from the system memory 606 to system components including, but not limited to, the processing unit 604. The system bus 608 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 connect to the system bus 608 through a slot architecture. Examples of slot architectures include, but are not limited to, Accelerated Graphics Port (AGP), CardBus, (Extended) Industry Standard Architecture ((E)ISA), MicroChannel Architecture (MCA), NuBus, Peripheral Component Interconnect (Expansion) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), etc.
[0069] Computing architecture 600 may include or be embodied in various articles of manufacture. Articles of manufacture may include computer-readable storage media for storing logic. Examples of computer-readable storage media may include any tangible medium capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. 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, etc. Embodiments may also be implemented at least in part as instructions contained in or on non-transitory computer-readable media, which may be read and executed by one or more processors to enable performance of the operations described herein.
[0070] The system memory 606 may include various types of computer-readable storage media in the form of one or more high-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, arrays of devices such as redundant array of independent disks (RAID) drives, solid-state memory devices (e.g., USB memory, solid-state drives (SSDs)), and other types of storage media suitable for storing information. In the illustrated embodiment shown in FIG. 6, the system memory 606 may include non-volatile memory 610 and / or volatile memory 612. The non-volatile memory 610 may store a basic input / output system (BIOS).
[0071] The computer 602 may include various types of computer-readable storage media in the form of one or more low-speed memory units, including an internal (or external) hard disk drive (HDD) 614, a magnetic floppy disk drive (FDD) 616 that reads from or writes to a removable magnetic disk 618, and an optical disk drive 620 that reads from or writes to a removable optical disk 622 (e.g., a CD-ROM or DVD). The HDD 614, FDD 616, and optical disk drive 620 may be connected to the system bus 608 by an HDD interface 624, an FDD interface 626, and an optical drive interface 628, respectively. The HDD interface 624 for external drive implementations may include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
[0072] 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 may be stored on the drives and memory units 610, 612, including an operating system 630, one or more application programs 632, other program modules 634, and program data 636. In one embodiment, the one or more application programs 632, other program modules 634, and program data 636 may comprise, for example, various applications and / or components of the system 700.
[0073] A user may enter commands and information into the computer 602 through one or more wired / wireless input devices, for example, a keyboard 638 and a pointing device such as a mouse 640. Other input devices may include a microphone, infrared (IR) remote control, radio frequency (RF) remote control, game pad, stylus pen, card reader, dongle, fingerprint reader, glove, graphics tablet, joystick, keyboard, retina reader, touch screen (e.g., capacitive, resistive, etc.), trackball, track pad, sensor, stylus, etc. These and other input devices are often connected to the processing unit 604 through an input device interface 642 coupled to the system bus 608, but may be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
[0074] A monitor 644 or other type of display device is also connected to the system bus 608 via an interface, such as a video adapter 646. The monitor 644 can be internal or external to the computer 602. In addition to the monitor 644, computers typically include other peripheral output devices, such as speakers, printers, etc.
[0075] The computer 602 may operate in a networked environment using logical connections via wired and / or wireless communications to one or more remote computers, such as a remote computer 648. The remote computer 648 may be a workstation, a server computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other common network node, and typically includes many or all of the elements described relative to the computer 602, although for simplicity, only a memory / storage device 650 is shown. The logical connections shown include wired / wireless connections to a local area network (LAN) 652 and / or larger networks, e.g., a wide area network (WAN) 654. Such LAN and WAN networking environments are commonplace in offices and businesses, facilitating enterprise-wide computer networks, such as intranets. All of these may be connected to a global communications network, e.g., the Internet.
[0076] When used in a LAN networking environment, the computer 602 is connected to the LAN 652 through a wired and / or wireless communication network interface or adapter 656. The adapter 656 may facilitate wired and / or wireless communication to the LAN 652, which may include a wireless access point disposed thereon for communicating with the wireless functionality of the adapter 656.
[0077] When used in a WAN networking environment, the computer 602 may include a modem 658 or have other means for establishing communications over the WAN 654, such as connected to a communications server on the WAN 654 or via the Internet. The modem 658 may be internal or external, a wired and / or wireless device, and connects to the system bus 608 via the input device interface 642. In a networked environment, program modules depicted relative to the computer 602, or portions thereof, may be stored in the remote memory / storage device 650. It will be appreciated that the shown network connections are exemplary and other means of establishing a communications link between the computers may be used.
[0078] The computer 602 is operable to communicate with wired and wireless devices or entities using the IEEE 602 family of standards, such as wireless devices operatively arranged for wireless communication (e.g., IEEE 602.11 wireless modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, Bluetooth® wireless technologies, and the like. Thus, communication can be in a predefined structure, similar to a traditional network, or simply ad hoc communication between at least two devices. A Wi-Fi network provides secure, reliable, and high-speed wireless connectivity using radio technologies called IEEE 602.118 (a, b, g, n, etc.). A Wi-Fi network can be used to connect computers to each other, to the Internet, or to wired networks (using IEEE 602.3-related media and functions).
[0079] 1 through 5C 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, etc.), integrated circuits, application specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), memory units, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. 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 (APIs), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. However, the decision whether an embodiment is implemented using hardware and / or software elements may vary as needed for a given embodiment depending on any number of factors, such as desired computational speed, power level, heat tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other design or performance constraints.
[0080] 7 is a block diagram illustrating an exemplary communications architecture 700 suitable for implementing various embodiments as described above. Communications architecture 700 includes various common communications elements such as transmitters, receivers, transceivers, radios, network interfaces, baseband processors, antennas, amplifiers, filters, power supplies, etc. However, embodiments are not limited to implementation with communications architecture 700 that may be consistent with system 100.
[0081] 7, communication architecture 700 includes one or more client(s) 702 and server(s) 704. Server(s) 704 may implement one or more of the devices of FIGS. 1A and 1B. Client(s) 702 and server(s) 704 are operatively connected to one or more respective client data store(s) 708 and server data store(s) 710 that may be employed to store information local to the respective client(s) 702 and server(s) 704, such as cookie(s) and / or associated contextual information.
[0082] The client 702 and the server 704 may communicate information with each other using a communication framework 706. The communication framework 706 may implement any well-known communication technology and protocol. The communication framework 706 may be implemented as a packet-switched network (e.g., a public network such as the Internet, a private network such as a corporate intranet, etc.), a circuit-switched network (e.g., the public switched telephone network), or a combination of packet-switched and circuit-switched networks (using appropriate gateways and translators).
[0083] The communications framework 706 may implement various network interfaces configured to accept, communicate, and connect to communications networks. A network interface may be considered a specialized form of input / output (I / O) interface. The network interface may employ connection protocols including, but not limited to, direct connect, Ethernet (e.g., thick, thin, twisted pair 10 / 100 / 1000 Base-T, etc.), token ring, wireless network interface, cellular network interface, IEEE 702.7a-x network interface, IEEE 702.16 network interface, IEEE 702.20 network interface, etc. Furthermore, multiple network interfaces may be used to interface with various communications network types. For example, multiple network interfaces may be used to enable communications over broadcast, multicast, and unicast networks. If processing requirements demand greater speed and capacity, a distributed network controller architecture may similarly be used to pool, load balance, and otherwise increase the communications bandwidth needed by the clients 702 and servers 704. The communications network may be any one and combination of wired and / or wireless networks, including, but not limited to, direct interconnections, secure custom connections, private networks (e.g., enterprise intranets), public networks (e.g., the Internet), personal area networks (PANs), local area networks (LANs), metropolitan area networks (MANs), operational missions as nodes on the Internet (OMNIs), wide area networks (WANs), wireless networks, cellular networks, and other communications networks.
[0084] The components and functions of the above-described devices may be implemented using any combination of discrete circuits, application specific integrated circuits (ASICs), logic gates, and / or single-chip architectures. Furthermore, the functions of the devices may be implemented using microcontrollers, programmable logic arrays, and / or microprocessors, or any combination of the foregoing where appropriate. Note that hardware, firmware, and / or software elements may be collectively or individually referred to herein as "logic" or "circuitry."
Claims
1. 1. A computer-implemented method, the method comprising: storing, by a processor of the computer system, a plurality of verification values in a memory of the contactless card; installing, by a processor of the computer system, a first applet into a memory of the contactless card, the first applet including first software that performs a first software operation; installing, by the processor, a second applet into the memory of the contactless card, the second applet including second software that performs a second software operation; enabling, by the processor, the first applet based on verification of the first applet; The verification of the first applet is as follows: identifying a verification signature associated with the first applet; selecting a verification value from the plurality of verification values; comparing the selected verification value against a verification signature associated with the first applet; verifying the first applet if a verification signature associated with the first applet matches the selected verification value; The method includes enabling, by the processor, the second applet based on verification of the second applet; The verification of the second applet is as follows: identifying a verification signature associated with the second applet; selecting a verification value from the plurality of verification values; comparing the selected verification value against a verification signature associated with the second applet; verifying the second applet if a verification signature associated with the second applet matches the selected verification value. method.
2. The method includes verifying that a customer is associated with the contactless card; verifying that the customer is associated with the contactless card includes verifying an identification number associated with the customer.
10. The computer-implemented method of claim 1.
3. The method includes verifying that a customer is associated with the contactless card; verifying that the customer is associated with the contactless card includes sending a request to a server of a financial institution system, the request including an identification number of the customer; 10. The computer-implemented method of claim 1.
4. sending, by a processor of the computer system, a request to a server of the financial institution system to verify that the customer is associated with the contactless card; 10. The computer-implemented method of claim 1.
5. determining, by said processor, the status of one or more existing applets in said contactless card's memory; providing said status to a server; receiving, by the processor, at least the first applet from the server based on the determined status.
10. The computer-implemented method of claim 1.
6. installing the first applet and the second applet includes writing the first applet and the second applet to a secure location in the memory via a physical connection to a contact pad of the contactless card; 10. The computer-implemented method of claim 1.
7. installing the first applet and the second applet includes writing the first applet and the second applet to a secure location in the memory via a wireless connection to an antenna of the contactless card; 10. The computer-implemented method of claim 1.
8. receiving the first applet and the second applet from a server hosted by a financial institution system; 10. The computer-implemented method of claim 1.
9. the first applet and the second applet are encrypted; the method including decrypting the first applet and the second applet before installing the first applet and the second applet on the contactless card; 9. The computer-implemented method of claim 8.
10. the first applet and the second applet are received in an encrypted form; The method includes encrypting and installing the first applet and the second applet on the contactless card; 9. The computer-implemented method of claim 8.
11. 1. A computing device comprising a processor and a computing memory for storing instructions, The instructions, when executed by the processor, installing a first applet into the memory of the contactless card, the first applet including first software that performs a first software operation; installing a second applet into the memory of the contactless card, the second applet including second software that performs a second software operation; activating the first applet based on verification of the first applet; configuring the processor to activate the second applet based on verification of the second applet; computing device.
12. and verifying by the processor that a customer is associated with the contactless card includes verifying an identification number associated with the customer.
12. The computing device of claim 11.
13. and verifying by the processor that a customer is associated with the contactless card includes sending a request including the customer's identification number to a server associated with a financial institution system.
12. The computing device of claim 11.
14. instructions for configuring the processor to send a request to a server of a financial institution system to verify that a customer is associated with the contactless card; 12. The computing device of claim 11. determining the status of one or more existing applets in the memory of the contactless card; Provide the above status to the server, further comprising instructions for configuring the processor to receive at least the first applet from the server based on the determined status.
12. The computing device of claim 11.
16. the second applet is configured to provide data via near field communication (NFC) in response to one or more requests; 12. The computing device of claim 11.
17. installing the first applet and the second applet includes writing the first applet and the second applet to a secure location in the memory via a physical connection to a contact pad of the contactless card; 12. The computing device of claim 11.
18. installing the first applet and the second applet includes writing the first applet and the second applet to a secure location in the memory via a wireless connection to an antenna of the contactless card; 12. The computing device of claim 11.
19. the first applet and the second applet are encrypted; the instructions cause the computing device to decrypt the first applet and the second applet before installing the first applet and the second applet on the contactless card.
12. The computing device of claim 11.