Patent Publication Number: US-2022237596-A1

Title: Systems and methods for provisioning point of sale terminals

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of U.S. patent application Ser. No. 14/752,672, entitled Systems and Methods for Provisioning Point of Sale Terminals, filed on Jun. 26, 2015, and granted as U.S. Pat. No. 11,301,840 on Apr. 12, 2022, which application claims priority to U.S. Provisional Patent Application No. 62/140,017, filed Mar. 30, 2015, both of which applications are incorporated herein by reference. 
    
    
     BACKGROUND 
     A point of sale terminal (POS terminal) is an apparatus used in various retail and service industries to carry out a payment transaction and, in particular, a credential-based payment transaction using a payment card or device. POS terminals may come in a variety of forms, including scanners, weigh scales, touch screens, etc. They may be linked with inventory management databases and the like. More generally, POS terminals can be used in other contexts outside of payment, such as general authentication using some sort of authentication card, device or credential. 
     As commonly used today, a POS terminal generally includes a card reader device, a small screen and an input keypad. The POS terminal is attached to a host device, such as a register device. To carry out a payment transaction, a merchant starts the transaction by entering the amount and mode of payment. The customer&#39;s payment card is read to complete the transaction. More sophisticated terminals will support one or more forms of payment defined by the EMV standards (e.g., based on the ISO/IEC 7816 standards for contact cards, and ISO/IEC 14443 for contactless cards). In such cases, the customer may be requested to provide a credential, such as a PIN, to complete the transaction. 
     In order for a POS terminal to be certified compliant with the EMV standards, it must successfully pass rigorous compliance testing performed by an accredited testing house. Such testing has two levels: EMV Level 1, which covers physical, electrical and transport level interfaces, and EMV Level 2, which covers payment application selection and credit financial transaction processing. 
     It may also be necessary to certify the POS terminal for compliance with other standards, such as the Payment Card Industry Data Security Standard (PCI-DSS). 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A preferred embodiment of the present invention will now be described in detail with reference to the drawings, in which: 
         FIG. 1A  is a block diagram of a transaction processing system; 
         FIG. 1B  is a block diagram of a variant transaction processing system; 
         FIG. 2  is a system block diagram of the terminal of  FIGS. 1A and 1B , 
         FIG. 3  is a block diagram of a system for a first stage of terminal provisioning; 
         FIG. 4  is a system block diagram of the initialization device of  FIG. 3 ; 
         FIG. 5A  is a block diagram of a system for a second stage of terminal provisioning; 
         FIG. 5B  is a block diagram of a system for a third stage of terminal provisioning; 
         FIG. 6  is a flow diagram of a process of carrying out the first stage provisioning using the first stage provisioning system of  FIG. 3 ; 
         FIG. 7A  is a flow diagram of a process of carrying out a second stage provisioning using the second stage provisioning system of  FIG. 5A , as performed by the smart card; 
         FIG. 7B  is a flow diagram of the process of carrying out the second stage provisioning using the second stage provisioning system of  FIG. 5A , as performed by the terminal; and 
         FIG. 8  is a flow diagram of a process of carrying out a third stage provisioning using the third stage provisioning system of  FIG. 5B . 
     
    
    
     DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     It will be appreciated that numerous specific details are set forth in order to provide a thorough understanding of the example embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments described herein. 
     For compliance with EMV or PCI requirements, POS terminals are generally provisioned with a unique identifier and one or more cryptographic keys. Because a master key may be used, and to prevent unauthorized provisioning of POS terminals, this provisioning process most often takes place in a secure facility. Often, the manufacturer of the POS terminal provides and maintains the secure facility to facilitate quick provisioning of devices. 
     However, the maintenance of a secure facility simply for provisioning is cumbersome and inefficient. It can be onerous for a computer hardware manufacturer to provide all of the physical security and other safeguards required to meet financial industry standards. 
     Described herein are methods, systems and apparatus that provide for securely transporting cryptographic keys to a desired key injection facility, injecting those cryptographic keys and provisioning POS terminals, and securely communicating terminal information back to the relying party. 
     In particular, the key injection can be accomplished using an interface already present on a common POS terminal, such as the card reader. 
     Referring now to  FIG. 1A , there is illustrated a block diagram of a transaction processing system. System  100  may be generally used to carry out financial transactions, such as retail payment and the like. In some embodiments, system  100  may be used to perform authentication transactions, for example verifying a user&#39;s credential as at a government office. 
     System  100  includes an issuer server  140 , a data network  130 , a POS terminal device  110 , and a user credential  125 , which is typically in the possession of an end user  120 . Also shown is a provisioning server  160 , which may be initially used in the provisioning of POS terminal  110 . 
     User credential  125  may be a credit card equipped with a GlobalPlatform Secure Element or other smart chip. User credential  125  may further be equipped for contactless communication using, for example, radiofrequency identification (RFID) or other related technologies (e.g., ISO/IEC 14443/15693, Sony Felica, NFC, etc.). In some cases, user credential  125  may be a hardware device, such as a smartphone, equipped with a NFC interface. 
     In use, user credential  125  is presented to terminal  110 , which is equipped with a suitable card reader device. For example, if user credential  125  is equipped for contactless communication, terminal  110  may be equipped with a RFID reader to interrogate and communicate with the user credential. 
     Terminal  110  is further equipped with a network interface, as described below, for communication with issuer server  140  via data network  130 . 
     Network  130  can include a local area network or a wide area network (e.g., the Internet), or some combination thereof. In general, communications between terminal  110  and issuer server  140  are encrypted, either using a suitable encryption protocol, a secure virtual private network, or both. In some embodiments, terminal  110  may be directly coupled to an issuer server  140  via dedicated communication lines. 
     To facilitate secure communication between terminal  110  and issuer server  140 , terminal  110  generally authenticates itself using, for example, a unique identifier and by cryptographically signing data using a secret key (e.g., a private key of a cryptographic key pair). The unique identifier and cryptographic keys may be established during a provisioning process, as described further herein. Issuer server  140  may similarly authenticate itself and cryptographically sign data. 
     Issuer server  140  can include one or more computer servers operated by the issuers of credential  125 , and configured to authenticate and verify transactions carried out using credential  125 . Issuer server  140  is shown as a single entity for ease of exposition, however it will be understood that multiple parties may work in conjunction to provide the services attributed herein to issuer server  140 . 
     Referring now to  FIG. 1B , there is illustrated a block diagram of a variant transaction processing system. System  100 ′ and its components are generally analogous to system  100 , except that POS terminal  110  may be connected to data network  130  via a computer  115 . For example, computer  115  may be a personal computer or a computer server, which may be linked to terminal  110  via a data communication interface such as wireless interface (e.g., Bluetooth®) or wired interface (e.g., Universal Serial Bus (USB)). Computer  115  may be further linked to data network  130  via a network interface, such as Ethernet, for example. 
     Referring now to  FIG. 2 , there is illustrated a system block diagram of the POS terminal  110  of  FIGS. 1A and 1B . 
     Terminal  110  includes a processor  200 , an input/output (I/O) interface  210 , a power supply  220  (e.g., battery), an input device  230  (e.g., keyboard/keypad), an output device  240  (e.g., display), a volatile memory  250  and a non-volatile memory  260 . Terminal  110  can include a card reader interface  290 , for contact communication with a smart card  350 . Smart card  350  may also include and be referred to as a secure element. Card reader interface  290  may support, for example, the ISO/IEC 7816 standards for contact cards. 
     Terminal  110  may include a contactless card reader  270  for contactless communication with smart card  350 . Contactless card reader  270  may include an RF frontend and a suitable antenna. Contactless card reader  270  may support, for example, the ISO/IEC 14443 standards for contactless cards. 
     Smart card  350  may be a contact card, for example, in accordance with the ISO/IEC 7816 standards. Smart card  350  may also be a contactless card, for example, in accordance with the ISO/IEC 14443 standards. In some cases, smart card  350  may support both contactless and contact communication. 
     Although not shown, terminal  110  may also generally include one or more testing and general debugging interfaces  280 , such as a port compliant with the IEEE  1149 . 1  Standard Test Access Port and Boundary-Scan Architecture, also sometimes referred to as the Joint Test Action Group (JTAG) port. General debugging interface  280  allows a programming device to transfer firmware to an internal non-volatile memory of terminal  110 . 
     I/O interface  210  may be a wired or wireless communication interface, such as for the Bluetooth® protocol, USB protocol, Ethernet or other protocol families for data communication. 
     Volatile memory  250  may be a random access memory, used by processor  200  to temporarily store data and computer executable instructions. Non-volatile memory  260  may be a mass storage memory, such as flash memory, used by processor  200  for long-term storage of programs and data. Non-volatile memory  260  stores the firmware used by processor  200 , which includes data and one or more control programs and application programs executed by processor  200 . 
     Processor  200  can include one or more processor cores capable of general purpose computer processing. For example, the processor cores may be Reduced Instruction Set Computing (RISC) processors. 
     Processor  200  may also include one or more secure components, which may execute limited instruction sets and which may have one or more anti-tamper measures, to prevent the unauthorized modification or execution of executable programs. 
     Referring now to  FIG. 3 , there is illustrated a block diagram of a system for a first stage of terminal provisioning. System  300  may be generally used to begin the process of provisioning POS terminals, such as POS terminal  110  of  FIGS. 1A , 1B and 2 . The first stage of the terminal provisioning may be carried out, for example, in a secure facility operated by a financial institution or payment processing party. The secure facility may be separate from the POS terminal manufacturing facility. 
     System  300  includes a provisioning server  360 , a data network  370 , an intermediate device  340 , an initialization device  320  and one or more smart cards  350 . In some cases, provisioning server  360  may also have a hardware security module (HSM)  365 , which is a physical computing device that safeguards and manages digital keys for strong authentication and provides cryptographic processing. HSM  365  may be a plug-in card or an external device that attaches directly to provisioning server  360 . 
     Provisioning server  360  is a computer server that comprises a processor, memory, data storage, and a network interface for communication with data network  370 . The operation of provisioning server  360  is described further herein. Provisioning server  360  is typically operated by an entity, such as a payment processor or card issuer, which authorizes POS terminals for use in payment transactions. 
     Data network  370  can include a local area network or a wide area network (e.g., the Internet), or some combination thereof. 
     Intermediate device  340  is generally a general purpose computer including a processor, memory and network interface, which is capable of interfacing initialization device  320  to network  370 . 
     Initialization device  320  is a computing device for interfacing and communicating with one or more smart card  350 . Referring now to  FIG. 4 , there is illustrated a system block diagram of the initialization device  320  of  FIG. 3 . 
     Initialization device  320  is generally configured to interface with one or more smart card  350 , to enable the smart card  350  for use in provisioning POS terminals, such as POS terminal  110 . 
     Initialization device  320  includes a processor  405 , an input/output (I/O) interface  410 , a power supply  420  (e.g., battery), an input device  430  (e.g., keyboard/keypad), an output device  440  (e.g., display), a volatile memory  450  and a non-volatile memory  460 . Initialization device  320  can include a card reader interface  490 , for contact communication with a smart card  350 . Card reader interface  490  may support, for example, the ISO/IEC  7816  standards for contact cards. 
     In some cases, initialization device  320  may include a contactless card reader (not shown) for contactless communication with smart card  350 . 
     Operation of initialization device  320  is described further herein. 
     Referring now to  FIG. 5A , there is illustrated a system for a second stage of terminal provisioning. System  500 A may be used to continue the process of provisioning POS terminals once the first stage, shown in  FIG. 3 , has been completed. The second stage can be carried in any location, such as the POS terminal manufacturing facility, a warehouse, or other place. 
     System  500 A can simply include the smart card  350  provisioned in the first stage of provisioning, and one or more POS terminal  110 . The second stage provisioning is described further herein. 
     Referring now to  FIG. 5B , there is illustrated a system for a third stage of terminal provisioning. System  500 B may be used to complete the process of provisioning POS terminals once the first stage, shown in  FIG. 3 , and the second stage, shown in  FIG. 5A , have been completed. The third stage can be carried out in any location. 
     System  500 B can include the smart card  350  provisioned in the first stage of provisioning, and used in the second stage, an initialization device  320  (which may be the same as the initialization device  320  from the first stage provisioning), a data network  530  and provisioning server  560  from the first stage provisioning. The third stage provisioning is also described further herein. 
     Referring now to  FIG. 6 , there is illustrated a process of carrying out the first stage provisioning, for example using the first stage provisioning system of  FIG. 3 . 
     Process  600  can be carried out by a smart card  350 , which is interfaced with an initialization device  320 . 
     At  610 , smart card  350  connects to provisioning server  360 , via initialization device  320  and data network  370 . The smart card  350  authenticates with provisioning server  360  at  620 , using a previously configured key. 
     If authentication is successful, smart card  350  at  630  initiates a secure communication channel with the HSM of provisioning server  360 . In some embodiments where an HSM is not used, this action may be omitted. 
     At  640 , smart card  350  retrieves one or more initialization keys from the provisioning server or HSM (if applicable). In some cases, the initialization key can be a master public key of the provisioning server or HSM. To prevent fraudulent use of smart card  350  to initialize unauthorized POS terminals, one or more security code such as a PIN may be configured at  650 . 
     The security code can be input via an input keypad of initialization device  320 . 
     Preferably, multiple security codes are configured, which will require entry of the multiple security codes to unlock smart card  350  for the second stage provisioning. 
     Each initialization key and security code is then stored in a memory of the smart card  350  at  660 . The smart card  350  can be removed from initialization device  320  and transported to another facility, where it can be used in the second stage provisioning. 
     It will be appreciated that multiple smart cards  350  can be configured using the same process. Each smart card thus configured can be transported to different locations, although in some cases multiple smart cards may be provided to the same location. 
     When a smart card  350  is transported, each corresponding security code is also provided to one or more recipient at the intended location. The security codes can be transmitted using a secure channel. If there are multiple security codes, preferably each is transmitted separately, to prevent unauthorized interception of all the necessary security codes. 
     Referring now to  FIG. 7A , there is illustrated a process of carrying out a second stage provisioning, for example using the second stage provisioning system of  FIG. 5A . Process  700  is carried out by a smart card. 
     Process  700  begins at  710 , by connecting a smart card to a corresponding reader of a POS terminal, such as terminal  110 . The smart card detects the connection and determines that one or more security codes is required. The security code request is transmitted to the terminal  110 . 
     At  715 , the smart card determines if an initialization counter has reached a preconfigured limit. The initialization counter may be preconfigured during the first stage provisioning, to set a limited number of terminal authorizations using any single smart card. Thus, if a smart card is lost or stolen, it can only be used a limited number of times to provision unauthorized terminals. 
     At  720 , terminal  110  processes the security code request, displays a corresponding message on a display, and receives one or more security codes via an input device, such as a keypad. The received one or more security codes is transmitted to the smart card for verification. 
     At  730 , the smart card determines if the received one or more security code is correct. If any received security code is incorrect, process  700  may be discontinued, or another request may be issued. 
     If each received security code is correct, the smart card transmits at  735  the initialization key (e.g., master public key) of the provisioning server to the terminal. 
     At  740 , a request for a terminal authorization package (TAP) is transmitted to the terminal. 
     At  750 , the smart card receives the TAP from the terminal  110 . As described below, the TAP may include a unique identifier of the terminal, a cryptographic key of the terminal (e.g., a public key), or any combination thereof. Terminal  110  may generate the unique identifier or the cryptographic key, or both, as needed. 
     Optionally, at  760 , the smart card decrements the initialization counter. It will be appreciated that the initialization counter may alternatively be incremented up to a preconfigured value. 
     At  770 , the smart card is disconnected from the terminal  110 . 
     Referring now to  FIG. 7B , there is illustrated a corresponding process, as performed by a POS terminal, of carrying out a second stage provisioning, for example using the second stage provisioning system of  FIG. 5A . 
     Process  800  begins at  805 , by connecting the smart card to a corresponding reader of the POS terminal, such as terminal  110 . 
     At  810 , a security code entry subprocess is performed. The POS terminal receives a security code request at  815 , retrieves a security code via an input device at  820 , and transmits the received security code to the smart card at  825 . If additional security codes are required, this is determined at  830  and the subprocess repeats. 
     Once the appropriate security codes have been provided, the terminal receives the initialization key of the provisioning server from the smart card at  840 , and stores the initialization key in non-volatile memory at  845 . 
     Likewise, the terminal receives a TAP request from the smart card at  850 . 
     If a unique identifier for the terminal has been previously stored in non-volatile memory, it is retrieved at  855 . Otherwise, the terminal may generate the unique identifier and store it in non-volatile memory. 
     If a terminal cryptographic key or keys has been previously stored in non-volatile memory, it is retrieved at  860 . Otherwise, the terminal may generate the cryptographic key or keys and store them in non-volatile memory. 
     At  865 , the TAP—comprising the unique identifier and terminal cryptographic key (or keys)—is transmitted to the smart card. 
     Referring now to  FIG. 8 , there is illustrated a process of carrying out a third stage provisioning, for example using the third stage provisioning system of  FIG. 5B . 
     Process  900  begins at  905 , by connecting the smart card to a corresponding reader of an initialization device, such as initialization device  320 . 
     At  910 , the initialization device connects to the provisioning server, for example, via an intermediate device  340  and data network  370 . 
     Optionally, if an HSM is being used, the smart card may open a secure connection to the HSM at  915 . 
     At  920 , the smart card cryptographically signs the TAP for each terminal  110  it has provisioned. In some embodiments, each individual component of the TAP (e.g., unique identifier, key) may be individually signed. 
     At  925 , the signed TAP for each provisioned terminal is transmitted to the HSM, where it is stored. In embodiments without an HSM, the signed TAPs are simply stored by the provisioning server. 
     At  930 , the initialization device disconnects from the provisioning server. The smart card may also be disconnected. 
     Aspects of the embodiments described herein may be implemented in hardware or software, or a combination of both. These aspects may be implemented in computer programs which execute on programmable computers, each computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface, as described herein. The various programmable computers may be a server, network appliance, set-top box, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smartphone device, tablet and wireless hypermedia device, or any other computing device capable of being configured to carry out the methods described herein. 
     Program code is applied to input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices, in known fashion. In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements of the invention are combined, the communication interface may be a software communication interface, such as those for inter-process communication (IPC). In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and any combination thereof. 
     Each program may be implemented in a high level procedural or object oriented programming or scripting language, or both, to communicate with a computer system. However, alternatively the programs may be implemented in assembly or machine language, if desired. The language may be a compiled or interpreted language. 
     Furthermore, the systems and methods of the described embodiments are capable of being distributed in a computer program product including a physical, non-transitory computer readable medium that bears computer usable instructions for one or more processors, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein. The medium may be provided in various forms, including one or more diskettes, compact disks, tapes, chips, magnetic and electronic storage media, and the like. Non-transitory computer-readable media comprise all computer- readable media, with the exception being a transitory, propagating signal. The term non-transitory is not intended to exclude computer readable media such as a volatile memory or RAM, where the data stored thereon is only temporarily stored. The computer useable instructions may also be in various forms, including compiled and non-compiled code. 
     The present invention has been described here by way of example only, while numerous specific details are set forth herein in order to provide a thorough understanding of the example embodiments described herein. However, it will be understood by those of ordinary skill in the art that these embodiments may, in some cases, be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the description of the embodiments. Various modification and variations may be made to these example embodiments. The scope of the claims should not be limited by the described embodiments and examples, but should be given the broadest interpretation consistent with the description as a whole.