US20200167775A1 - Virtual pos terminal method and apparatus - Google Patents
Virtual pos terminal method and apparatus Download PDFInfo
- Publication number
- US20200167775A1 US20200167775A1 US16/559,413 US201916559413A US2020167775A1 US 20200167775 A1 US20200167775 A1 US 20200167775A1 US 201916559413 A US201916559413 A US 201916559413A US 2020167775 A1 US2020167775 A1 US 2020167775A1
- Authority
- US
- United States
- Prior art keywords
- transaction
- computing system
- pos
- payment
- vpos
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/202—Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/206—Point-of-sale [POS] network systems comprising security or operator identification provisions, e.g. password entry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4012—Verifying personal identification numbers [PIN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
Definitions
- the present disclosure relates to the technical field of electronic transactions, and in particular, to apparatuses, methods and storage media for providing a virtual point of sale (POS) terminal.
- POS point of sale
- card-present where the card holder and payment card are physically present at the time of transaction
- card-not-present where the card holder is not physically present during the transaction.
- the former transactions typically occur at a physical establishment (e.g., store, restaurant, gas station, etc.), while the latter typically occur during making purchases over the Internet (also referred to as “ecommerce” purchases) or making purchases via phone or mail-order.
- Card-present transactions typically enjoy far less fraud than card-not-present transactions.
- Most ecommerce transactions require a user to input payment card information and cardholder identification information into text fields of a web-based user interface. Additionally, most phone-order purchase require customers to recite payment card information and cardholder identification information over the phone. This is because in most card-not-present transactions, the terminal-based authentication methods are usually not available. Furthermore, most current fraud prevention measures for card-not-present transactions, such as typing/reciting the account number contained on the front of a payment card plus other identifying information like a 3-digit cardholder verification value (CVV) on the back of most payment cards, have been demonstrated to not reduce fraud to the level experienced by card-present transactions.
- CVV 3-digit cardholder verification value
- card-present transactions it may be desirable to bring the user experience and transaction security aspects of a physical POS terminal (i.e., card-present transactions) to online, phone-order, and/or mail-order transactions (i.e., card-not-present transactions). Furthermore, it may be desirable to provide transaction security for card-not-present transactions while reducing a number of steps for providing payment card verification and cardholder authorization.
- FIG. 1 illustrates an arrangement for conducting electronic transaction with virtual POS terminal of the present disclosure, in accordance with various example embodiments
- FIG. 2 illustrates the components of an example computing device having the virtual POS terminal, in accordance with various example embodiments
- FIG. 3 illustrates the components of another example computing device with the virtual POS terminal, in accordance with various other example embodiments
- FIG. 4 illustrates an arrangement for conducting electronic transaction with virtual POS terminal of the present disclosure, in accordance with various other example embodiments
- FIG. 5 illustrates the components of another example computing device and a cloud trusted execution environment with the virtual POS terminal, in accordance with various other example embodiments
- FIG. 6 illustrates a method of processing a POS transaction using the virtual POS terminal, in accordance with various example embodiments
- FIGS. 7-14 illustrate stages of performing the method of FIG. 4 ;
- FIG. 15 illustrates an example process for processing a POS transaction using the virtual POS terminal, in accordance with various embodiments.
- FIG. 16 illustrates a flow diagram illustrating a POS transaction using the virtual POS terminal, in accordance with various embodiments.
- the phrase “A and/or B” means (A), (B), or (A and B).
- the phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).
- the phrase “at least one of A and B” means (A), (B), or (A and B).
- the description may use the phrases “in an embodiment”, or “in embodiments”, which may each refer to one or more of the same or different embodiments.
- the terms “comprising,” “including,” “having,” and the like, as used with respect to embodiments of the present disclosure, are synonymous.
- the terms “coupled,” “communicatively coupled,” along with derivatives thereof are used herein.
- the term “coupled” may mean two or more elements are in direct physical or electrical contact with one another, may mean that two or more elements indirectly contact each other but still cooperate or interact with each other, and/or may mean that one or more other elements are coupled or connected between the elements that are said to be coupled with each other.
- the term “directly coupled” may mean that two or more elements are in direct contact with one another.
- the term “communicatively coupled” may mean that two or more elements may be in contact with one another by a means of communication including through a wire or other interconnect connection, through a wireless communication channel or ink, and/or the like.
- logic and “module” may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
- ASIC Application Specific Integrated Circuit
- processor shared, dedicated, or group
- memory shared, dedicated, or group
- example embodiments may be described as a process depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel, concurrently, or simultaneously. In addition, the order of the operations may be re-arranged.
- a process may be terminated when its operations are completed, but may also have additional steps not included in the figure(s).
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, and the like. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function and/or the main function.
- memory may represent one or more hardware devices for storing data, including random access memory (RAM), magnetic RAM, core memory, read only memory (ROM), magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing data.
- RAM random access memory
- ROM read only memory
- computer-readable medium may include, but is not limited to, memory, portable or fixed storage devices, optical storage devices, wireless channels, and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
- example embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof.
- the program code or code segments to perform the necessary tasks may be stored in a machine or computer readable medium.
- a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, program code, a software package, a class, or any combination of instructions, data structures, program statements, and the like.
- computer system refers to any type interconnected electronic devices, computer devices, or components thereof. Additionally, the term “computer system” and/or “system” may refer to various components of a computer that are communicatively coupled with one another. Furthermore, the term “computer system” and/or “system” may refer to multiple computer devices and/or multiple computing systems that are communicatively coupled with one another and configured to share computing and/or networking resources.
- mobile device may be considered synonymous to, and may hereafter be occasionally referred to, as a client, mobile, mobile unit, mobile terminal, mobile station, mobile user, user equipment (UE), user terminal, subscriber, user, remote station, access agent, user agent, receiver, etc., and may describe a remote user of network resources in a communications network.
- mobile device may include any type of wireless device such as consumer electronics devices, smart phones, tablet personal computers, wearable computing devices, personal digital assistants (PDAs), laptop computers, and/or any other like physical computing device that is able to connect to a communications network.
- PDAs personal digital assistants
- network element may be considered synonymous to and/or referred to as a networked computer, networking hardware, network equipment, router, switch, hub, bridge, gateway, and/or other like device.
- network element may describe a physical computing device of a wired or wireless communication network that is configured to host a client device and the like.
- network element may describe equipment that provides radio baseband functions for data and/or voice connectivity between a network and one or more users.
- Example embodiments disclosed herein provide systems and methods for bringing a user experience and transaction security aspects of a physical point of sale (POS) terminal or other like card-present transactions to card-not-present transactions, such as online transactions, phone-order transactions, and/or mail-order transactions.
- Embodiments provide a trusted eCommerce payment mechanism, referred to as a virtual POS (vPOS) terminal or eCommerce POS (ePOS) terminal that combines secure payment credentials containment with capabilities to authenticate the owner of the credentials, and asserts the credentials during an online transaction.
- the embodiments herein models EMV Chip and personal identification number (PIN) transactions, using the concept of an online PIN to effect release of provisioned chip data.
- PIN personal identification number
- Allows card-present information to be presented at time of transaction may include, for example, a Primary Account Number (PAN) (or tokenized PAN), discretionary data, one or more cryptograms (e.g., application cryptogram (AC), Application Authentication Cryptogram (AAC), Authorization Request Cryptogram (ARQC), Authorization Response Cryptogram (ARPC), etc.), and the like.
- PAN Primary Account Number
- AAC Application Authentication Cryptogram
- ARQC Authorization Request Cryptogram
- ARPC Authorization Response Cryptogram
- the example embodiments allow users to remain in control of payment credentials during card-not-present transactions.
- most online payment methods require users to entrust their account and/or banking information to an online service provider, such as an online payment system, online money transfer service, digital wallet service, and/or other like entities.
- the example embodiments allow users to maintain their own payment credentials, whether stored locally with a trusted execution environment of their own computing device or stored within a trusted cloud computing environment, and provide the payment credentials to a merchant in encrypted form (or without having to share the payment credentials in an unencrypted form).
- digital wallet services e.g., ApplePay®, Visa Checkout®, etc.
- various example embodiments may not require a server-side digital wallet (i.e., a thin wallet) to be created and/or maintained on a server for each user.
- the example embodiments provide a trusted execution environment on, or embedded in, a computing device, which includes a virtual POS terminal instead of requiring a separate standalone physical POS terminal for swiping payment cards and/or entering payment card information.
- the trusted execution environment may include one or more processors, which are separate from an application processor of the computing device, to process POS transactions.
- the trusted execution environment may be provided as a new mode of execution on an existing processor.
- the trusted execution environment may be provided as a cloud computing service that is separate from the user's computing devices.
- the trusted execution environment also includes the various payment credentials, which may indicate one or more methods of payment associated with a user, such as credit card information, bank account information, and the like.
- the virtual POS terminal in the trusted execution environment may perform various tasks that a standalone physical POS terminal may perform, such as PIN authorization, transaction settlement authorization, and the like.
- each payment credential may indicate its own requirements for authenticating entities and/or processing a POS transaction.
- the virtual POS terminal may be accessible through a POS user interface (UI) or POS client.
- UI POS user interface
- a merchant may have its own POS system that allows the user or merchant to enter the user's cellphone number to initiate a transaction.
- a web-based store may provide a UI that allows a user to directly access the virtual POS terminal via the user's own POS UI that is rendered in the user's web browser. In this way, the user may be able to provide payment using one or more payment credentials without entering payment information and/or authentication information into a web-based UI.
- a telephone or mail-order merchant may acquire payment from a user by entering the user's cellphone number into their own POS system rather than requiring the user to dictate payment card information and/or cardholder authentication information over the phone.
- the merchant's POS system may either call the user's cellphone or send a text message to the cellphone, which may initiate the POS transaction, and the user may use the POS UI to select a payment credential for processing the POS transaction.
- FIG. 1 shows an arrangement 100 in which a point of sale (POS) transaction may be processed using the virtual POS terminal 120 of the present disclosure, in accordance with various example embodiments.
- arrangement 100 may include computing system 105 , merchant domain 130 , payment acquiring service 145 , messaging service 160 , and network connections (or “links,” “channels,” or the like) 150 (e.g., including links 150 - 1 to 150 - 7 in FIG. 1 ).
- computing system 105 may include POS user interface (UI) module 110 and Trusted Compute resources (e.g., trusted execution environment (TEE) 115 ).
- UI POS user interface
- TEE trusted execution environment
- the trusted execution environment may include virtual POS terminal 120 (also referred to as “vPOS 120 ,” “ePOS 120 ,” or the like) and payment credential database (DB) 125 .
- a “POS terminal” may also be referred to as a Card Acceptance Device (CAD) or Payment Acceptance Device (PAD).
- the merchant domain may include a cloud POS service 135 and a merchant service provider platform 140 (also referred to as “merchant 140 ”).
- Computing system 105 may be physical hardware device capable of communicating with a one or more other hardware computing devices (e.g., merchant 140 , one or more devices associated with cloud POS service 135 , one or more associated databases (not shown), and the like) via a communications interface, such that computing system 105 is able to receive one or more signals and/or data streams from the other hardware computing devices.
- the computing system 105 includes, inter alia, a TEE 115 .
- An Execution Environment (EE) is a set of hardware and software components providing facilities that support running of client applications (CAs).
- an EE may include a hardware processing device; a set of connections between the processing device and other hardware resources; a physical volatile memory; a physical non-volatile memory; and peripheral interfaces.
- the computing system 115 also includes a Rich EE (REE), which is an execution environment comprising at least one Rich (device) operating system (OS) and one or more other components of the computing system 105 (e.g., SoCs, other discrete components/hardware elements, firmware, and software) that execute, host, and support the rich OS.
- the rich OS a high-level OS with a rich capability set that allows consumers/users to download and run applications.
- the REE includes one or more discrete elements included in the computing system 105 excluding a secure element and/or the TEE 115 .
- the TEE 115 is an EE that runs alongside but is isolated from the REE.
- the TEE 115 has security capabilities and meet certain security related requirements.
- the TEE 115 protects TEE 115 assets from general software attacks, defines rigid safeguards as to data and functions that a program can access, and resists a set of defined threats.
- Computing system 105 may include one or more memory devices and one or more processors (not shown). Computing system 105 may be designed to sequentially and automatically carry out a sequence of arithmetic or logical operations; equipped to record/store digital data on a machine readable medium; and transmit and receive digital data via one or more network devices.
- Computing system 105 may be a desktop personal computer (PC), a laptop PC, a cellphone and/or smartphone, a tablet personal computer, a wearable computing device, a video game console, a digital media player, an in-vehicle infotainment (IVI) and/or an in-car entertainment (ICE) device, a handheld messaging device, a personal data assistant, an electronic book reader, an augmented reality device, and the like. It should be noted that the computing system 105 may be any physical or logical device capable of recording, storing, and/or transferring digital data via a connection to a network element.
- the computing system 105 may include a network interface (e.g., network interface circuitry 230 described with regard to FIGS. 2-3 ) configured to connect computing system 105 to one or more other hardware computing devices wirelessly via a transmitter and a receiver (or optionally a transceiver) and/or via a wired connection using a communications port.
- Computing system 105 is configurable or operable to send/receive data to/from one or more other hardware computing devices, and/or network devices, such as a router, switch, hub, or other like network devices, via the network interface using the wired connection and/or the wireless connection.
- Computing system 105 is configurable or operable to obtain a POS transaction initiation from a network element via the network interface, and process a POS transaction based on the POS transaction initiation according to the example embodiments described herein.
- the computing system 105 includes a transmitter/receiver (or alternatively, a transceiver)
- computing system 105 is configurable or operable to communicate (i.e., send/receive data to/from a network element and/or other like devices) over the network connections 150 in accordance with one or more wireless communications protocols and/or one or more cellular phone communications protocols.
- computing system 105 is configurable or operable to operate in accordance with the Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth and/or Bluetooth Low Energy (BLE), Wireless Fidelity (Wi-Fi) such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11ac, IEEE 802.11ad, and/or IEEE 802.11n, voice over Internet Protocol (VoIP), Wi-MAX, Long Term Evolution (LTE), and/or any other wireless communication protocols, including RF-based, optical, and so forth.
- GSM Global System for Mobile Communications
- EDGE Enhanced Data GSM Environment
- WCDMA wideband code division multiple access
- CDMA code division multiple access
- TDMA time division multiple access
- Wi-Fi such as the Institute of Electrical
- Computing system 105 may include one or more sensors, such as an accelerometer, gyroscope, gravimeter, magnetometer, and/or another like devices.
- the one or more sensors is configurable or operable to detect the one or more gestures.
- the one or more gestures may include various touches (or combination of touches) applied to a touchscreen of the computing system 105 , one or more spatial coordinates (or changes in spatial coordinates) of positions and/or orientations of the computing system 105 .
- the computing system 105 may track a timing and/or sequence that one or more gestures are performed, which may be used as a gesture-based passcode or password for authenticating the user's identity.
- the one or more sensors may include a microphone configured to obtain one or more voice commands issued by a user of the computing system 105 , wherein the voice commands are used to authenticate the user's identity.
- the verbal commands may be a passcode and/or the computing system 105 may perform voice recognition to authenticate the user.
- the one or more sensors may include one or more biometric sensors, such as an infrared heart rate monitoring device, a fingerprint or handprint scanning device, a face and/or an eye scanning device (e.g., a camera or other like image sensor), an electromyography (EMG) device for detecting electrical patterns associated with a user's muscular contractions, an electroencephalograph (EEG) device for measuring and/or recording electrical signals produced by a user's brain, and the like.
- biometric data detected or sensed by the one or more biometric sensors may be used to authenticate a user's identity.
- Computing system 105 is configurable or operable to run, execute, or otherwise operate one or more applications.
- the one or more applications may include the ePOS client 110 , the modules within the TEE 115 , and/or the TEE 115 itself.
- the one or more applications may include native applications, web applications, and hybrid applications.
- the native applications may be used for operating the computing system 105 , such as using a camera or other like sensor of the computing system 105 , GPS functionality of the computing system 105 , an accelerometer of the computing system 105 , cellular phone functionality of the computing system 105 , and other like functions of the computing system 105 .
- Native applications may be platform or operating system (OS) specific.
- OS operating system
- platform may refer to an EE within a device or computing system, such as the REE, a secure element (SE), or TEE 115 .
- Native applications may be developed for a specific platform using platform-specific development tools, programming languages, and the like. Such platform-specific development tools and/or programming languages may be provided by a platform vendor.
- Native applications may be pre-installed on computing system 105 during manufacturing, or provided to the computing system 105 by an application server (not shown) via a network.
- Web applications are applications that load into a web browser of the computing system 105 in response to requesting the web application from a service provider (e.g., web server 135 ).
- the web applications may be websites that are designed or customized to run on a mobile device by taking into account various mobile device parameters, such as resource availability, display size, touchscreen input, and the like. In this way, web applications may provide an experience that is similar to a native application within a web browser.
- Web applications may be any server-side application that is developed with any server-side development tools and/or programming languages, such as PHP, Node.js, ASP.NET, and/or any other like technology that renders HTML.
- Hybrid applications may be a hybrid between native applications and web applications.
- Hybrid applications may be a standalone, skeletons, or other like application containers that may load a website within the application container.
- Hybrid applications may be written using website development tools and/or programming languages, such as HTML5, CSS, JavaScript, and the like. Hybrid applications use browser engine of the computing system 105 , without using a web browser of the computing system 105 , to render a website's services locally. Hybrid applications may also access mobile device capabilities that are not accessible in web applications, such as the accelerometer, camera, local storage, and the like.
- the ePOS client 110 may be a native application, web application, or a hybrid application.
- the TEE 115 may be a native application, which may operate in conjunction with a specialized computer processing device.
- the cloud ePOS service 135 There are two client-side peers to the cloud ePOS service 135 .
- One peer is the ePOS client 110 , which includes or provides the ePOS user interface (UI) that renders the online ePOS experience and directs user interactions with the ePOS system.
- the other peer is a secure vPOS terminal 120 that interfaces with the embedded payment credentials to obtain their contents and interacts with the cloud ePOS service 135 to interpret signed authentication assertions (e.g., over connections 150 - 1 and 150 - 2 ).
- the vPOS terminal 120 encrypts the obtained payment credentials and transaction signatures for subsequent transmission to upstream payment processors, such as the payment acquirer service 145 (e.g., via connections 150 - 2 and 150 - 7 ).
- the client system 105 may operate the ePOS client 110 may be one or more software modules that operate in conjunction with one or more hardware devices (e.g., processor 210 as described with regard to FIGS. 2-3 ) to provide a user of the computing system 105 with the ability to process a POS transaction using the computing system 105 .
- the user of the computing system 105 may use the ePOS client 110 to interact with the vPOS 120 within the TEE 115 .
- the ePOS client 110 may be a client application (or “client”) capable of accessing dynamic content, for example, by sending appropriate HTTP messages or the like, and in response, one or more server-side application(s) may dynamically generate and provide code, scripts, markup language documents, etc., to the ePOS client 110 to render and display graphical objects within the ePOS client 110 .
- the ePOS client 110 may be implemented using one or more graphical control elements, graphical icons, visual indicators, and/or text based commands.
- a collection of some or all of the graphical objects may be a webpage or application (app) comprising GUIs including GCEs for accessing and/or interacting with a service provider system/platform such as messaging service 160 , cloud POS service 135 , and the like.
- the collection of some or all of the graphical objects may comprise GUIs including GCEs for accessing and/or interacting with the vPOS 120 within the TEE 115 .
- the aforementioned server-side applications may be developed with any suitable server-side programming languages or technologies, such as PHP; JavaTM based technologies such as Java Servlets, JavaServer Pages (JSP), JavaServer Faces (JSF), etc.; ASP.NET; Ruby or Ruby on Rails; and/or any other like technology that renders HyperText Markup Language (HTML).
- the applications may be built using a platform-specific and/or proprietary development tool and/or programming languages.
- the ePOS client 110 may be the only element that is outside of the trusted execution environment that is capable of communicating with elements within the TEE 115 .
- the ePOS client 110 is configurable or operable to communicate with the vPOS 120 as shown in FIG. 1 and as described with regards to FIGS. 13-14 .
- the ePOS client 110 may communicate with elements within the TEE 115 according to a security application programming interface (API), one or more software guard extension (SGX) instructions, and the like.
- API application programming interface
- SGX software guard extension
- the ePOS client 110 is configurable or operable to communicate POS transaction related data with the cloud POS service 135 as described with regards to FIGS. 13-14 .
- the ePOS client 110 may be an HTTP client, such as a “web browser” (or simply a “browser”) capable of sending and receiving HTTP messages to and from web and/or application servers.
- the ePOS client 110 may be a browser extension or plug-in that operates and/or interacts with an existing browser.
- Example browsers include WebKit-based browsers, Microsoft's Internet Explorer browser, Microsoft's Edge browser, Apple's Safari, Google's Chrome, Opera's browser, Mozilla's Firefox browser, and/or the like.
- the ePOS client 110 may be a desktop or mobile application that runs directly on the computing system 105 without a browser.
- the ePOS client 110 may be an individual (e.g., stand-alone) application object that operates independently of other applications and/or interacts with other applications.
- the ePOS client 110 may operate within a security sandbox, VM, container, wrapper, or some other means for isolating the ePOS client 110 code runs in isolation from other applications.
- One or more data containers may also be created within the sandbox, VM, container, wrapper, etc.
- the ePOS client 110 is a digital wallet application (app), which is an app used to store a user's payment credentials (e.g., cryptographic private keys and/or public keys) that are associated with the user's payment instrument and/or payment credentials.
- the wallet app may store the user's credentials in the PCDB 125 .
- the wallet app may be a blockchain-based app that stores the user's credentials, and the credentials are associated with a state of a user's account in the blockchain.
- the wallet app also allows the user to make transactions, where the public key of the public/private key pair allows other wallets to make payments to the wallet app (e.g., using the wallet's app network address, app/wallet identifier, or the like) and the private key of the public/private key pair allows the wallet app spend currency or cryptocurrency stored by the wallet app and/or in the blockchain.
- the wallet app is a blockchain app or service
- the wallet app enables the user to interact with a blockchain or other decentralized ledger or database.
- the blockchain app may store public and/or private keys, hash generators, encryption/decryption algorithms, and/or other like elements that can be used to generate blocks to be added to one or more blockchains.
- the blockchain app may also include modules, logic, program code, etc., that allow the blockchain app to validate other blocks generated by other user systems before appending those blocks to the blockchain.
- the wallet app can also interface directly with the secure enclave of the ePOS applet 121 via the ePOS acceptance driver 122 (discussed infra), a private transaction manager, or other like entity, and/or interface with on-chain or off-chain enclaves.
- the private transaction manager may be a subsystem of a specific blockchain platform/system that implements privacy and permissioning, and/or validates blocks for inclusion in a blockchain.
- Off-chain transactions involve the movement of value outside of a blockchain, while on-chain transactions modify the blockchain and depend on the blockchain to validate transactions. Off-chain transactions rely on other mechanisms to record and validate transactions, such as payment channels (e.g., Hashed Timelock Contracts (HTLCs) or Lightning Network), sidechains, credit/debit based solutions, trusted third parties, and the like.
- payment channels e.g., Hashed Timelock Contracts (HTLCs) or Lightning Network
- sidechains e.g., sidechains, credit/debit based solutions, trusted third parties, and the like.
- the computing system 105 includes Trusted Compute resources that preserve data confidentiality, execution integrity and enforces data access policies.
- the Trusted Compute resources may be used to store cryptographic keys, digital certificates, credentials, payment credentials, and/or other sensitive information (e.g., personally identifying information (PII)), and could be used to operate some aspects of one or more applications.
- the Trusted Compute resources can be implemented using software-based cryptographic security guarantees (e.g., Zero-Knowledge Proofs), user-level or OS-level isolated instances (e.g., “containerization”) or virtualization (e.g., using VMs), Trusted Multi-Party-Compute (MPC) resources, or using TEE 115 .
- software-based cryptographic security guarantees e.g., Zero-Knowledge Proofs
- user-level or OS-level isolated instances e.g., “containerization”
- virtualization e.g., using VMs
- MPC Trusted Multi-Party-Comput
- applications running on the REE/host platform may be capable of interfacing with the Trusted Compute resources using a suitable (secure) application programming interface (API).
- API application programming interface
- the applications running on the REE can also interface directly with the enclave of a secure application or other like entity, and/or interface with other enclaves.
- the TEE 115 may be a physical hardware device that are separate from other components of the computing system 105 (e.g., as described with regard to FIG. 2 ). In these embodiments, the TEE 115 is a hardware-based technology that executes only validated tasks, produces attested results, provides protection from malicious host software, and ensures confidentiality of shared encrypted data. In various embodiments, TEE 115 may include one or more physically tamper-resistant embedded chipset including processors (e.g., trusted processing core(s), trusted crypto accelerators, etc.) and memory devices (e.g., trusted RAM, trusted ROM, etc.) that communicate with an REE (e.g., host platform, application circuitry, etc.) of the computing system 105 .
- processors e.g., trusted processing core(s), trusted crypto accelerators, etc.
- memory devices e.g., trusted RAM, trusted ROM, etc.
- REE e.g., host platform, application circuitry, etc.
- applications that are not within the TEE 115 may communicate with the physically tamper-resistant embedded processors and memory devices via a security (secure) API or some other suitable interface such as those discussed in various GlobalPlatform® TEE API standards such as GlobalPlatform, TEE Client API Specification v 1.0 (July 2010); GlobalPlatform, TEE Internal Core API Specification v 1.2.1 (May 2019); GlobalPlatform, TEE Secure Element API v1.1.1 (November 2016); and the like.
- the TEE 115 may include a secure cryptoprocessor, which is a dedicated computer on a chip or a microprocessor designed to secure hardware by integrating cryptographic keys into devices and/or components of the computing system 105 .
- the TEE 115 may operate in accordance with the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) specification ISO/IEC 11889:2009.
- the TEE 115 may have an architecture in accordance with the GlobalPlatform, TEE System Architecture standard version 1.2 (November 2018).
- TEEs 115 may include a Desktop and mobile Architecture Hardware (DASH) compliant Network Interface Card (NIC), Intel® Management/Manageability Engine, Intel® Converged Security Engine (CSE) or a Converged Security Management/Manageability Engine (CSME), a financial-grade Secure Element microcontroller, Trusted Execution Engine (TXE) provided by Intel® each of which may operate in conjunction with Intel® Active Management Technology (AMT) and/or Intel® vProTM Technology; AMD® Platform Security coProcessor (PSP), AMD® PRO A-Series Accelerated Processing Unit (APU) with DASH manageability, Apple® Secure Enclave coprocessor; IBM® Crypto Express3®, IBM® 4807, 4808, 4809, and/or 4765 Cryptographic Coprocessors, IBM® Baseboard Management Controller (BMC) with Intelligent Platform Management Interface (IPMI), DellTM Remote Assistant Card II (DRAC II), integrated DellTM Remote Assistant Card (iDRAC), and the like.
- DASH Desktop and mobile Architecture Hardware
- NIC Network Interface Card
- the TEE 115 is not constrained to an embedded platform or subsystem, and in various embodiments, the TEE 115 may be implemented as access card circuitry including, for example, an integrated circuit card (ICC) (also referred to as a “chip card” or “smart card”), universal ICC (UICC), Subscriber Identity Module (SIM) card, embedded UICC (eUICC), a form-factor secure element (e.g. SD cards, smart microSDs, USB tokens, etc.), and/or the like.
- ICC integrated circuit card
- UICC universal ICC
- SIM Subscriber Identity Module
- eUICC embedded UICC
- a form-factor secure element e.g. SD cards, smart microSDs, USB tokens, etc.
- the access card circuitry contains the ePOS acceptance driver 122 and ePOS applet 121 (discussed infra).
- Such embodiments allow the same payment instrument to be used in multiple platforms such as desktop computers, laptops, tablets, smartphones, and the like.
- the access card is removable or detachable security circuitry (e.g., smart card, UICC, SIM card, etc.), and the client system 105 may include a card reader or card slot that is an input device configured to accept the access card (e.g., usually card shaped) and reads data from the access card's storage medium.
- the access card e.g., usually card shaped
- Such access cards are usually implemented as a plastic (e.g., PVC) card containing semiconductors and embedded contacts, which can be inserted into and communicatively coupled with corresponding contacts in the card reader.
- the access card circuitry is non-removable access card (e.g., eUICC, SoC-based secure element, etc.), where the access card circuitry is embedded on a motherboard of the computing system 105 or on some other chip or component in the computing system 105 .
- non-removable access card e.g., eUICC, SoC-based secure element, etc.
- the access card may perform various access card functions, such as those defined by ISO/IEC 7816, European Telecommunications Standards Institute (ETSI) technical standard (TS) 102 221, ETSI TS 102 225, ETSI TS 102 226, ETSI TS 102 241, ETSI TS 102 600, 3GPP TS 31.101, 3GPP TS 31.116, 3GPP TS 31.121, 3GPP TS 31.220, 3GPP TS 31.828, Groupe Speciale Mobile Association (GSMA), “Remote Provisioning Architecture for Embedded UICC,” TS version 3.0, 30 Sep. 2015, and/or any other like standards.
- ETSI European Telecommunications Standards Institute
- the access card may securely stores access network information (e.g., an international mobile subscriber identity (IMSI) number and related keys or access credentials) which is used to identify and authenticate subscribers using radio equipment (e.g., smartphones, satellite phones, tablets, wearables, etc.).
- access network information e.g., an international mobile subscriber identity (IMSI) number and related keys or access credentials
- IMSI international mobile subscriber identity
- the access network information is registered and activated by a mobile network operator (MNO), and the access network information is then used to authenticate the subscriber during a connection or session establishment procedure.
- MNO mobile network operator
- the TEE 115 may be one or more software modules that operate in conjunction with one or more hardware devices (e.g., as described with regard to FIG. 3 ) to carry out secure operations and/or control the storage and use of personal and/or confidential data.
- the TEE 115 may be one or more “enclaves” (also referred to as “secure enclaves”) within the memory of the computing system 105 .
- An “enclave” is an instantiation of trusted compute resources within a hardware based environment, such as the REE (e.g., host platform, application processor circuitry) or within a hardware-based TEE 115 .
- the terms “TEE” and “enclave” may be used interchangeably.
- Secure enclaves may be isolated regions of code and/or data within the address space of a secure application. In most embodiments, only code executed within a secure enclave may access data within the same secure enclave, and the secure enclave may only be accessible using the secure application, and other applications may access the secure enclave via the secure application. Certain hardware based enclaves allow multiple instances of enclaves to execute concurrently. Examples of the secure enclave-based TEE 115 may include secure enclaves defined using the Intel® Software Guard Extensions (Intel® SGX), Keystone Enclaves provided by Oasis LabsTM secure/trusted zones using ARM® TrustZone® hardware security extensions, and/or the like.
- Intel® Software Guard Extensions Intel® SGX
- Keystone Enclaves provided by Oasis LabsTM secure/trusted zones using ARM® TrustZone® hardware security extensions, and/or the like.
- FIG. 3 An example of such embodiments is shown and described with regards to FIG. 3 .
- Other aspects of security hardening, hardware roots-of-trust, and trusted or protected operations may also be implemented in the device 105 through the TEE 115 and/or the processor circuitry of the device 105 .
- the TEE 115 operates a Trusted OS, which is an OS running in the TEE 115 that is designed using security based design techniques to enable the TEE 115 .
- the trusted OS provides TEE Internal APIs to Trusted Applications (TAs) and a proprietary methods to enable a TEE Client API to interface with applications operating within other EEs, such as the POS client 110 operating within the REEs.
- TAs are applications that run inside the TEE 115 that provide security related functionality to CAs outside of the TEE 115 or to other TAs inside the TEE 115 .
- the TAs communicate with the rest of the system via APIs exposed by Trusted OS components.
- TEE internal APIs define the fundamental software capabilities of a TEE 115 and TEE client APIs define interfaces for client applications to access or communicate with TAs.
- TEE client APIs define interfaces for client applications to access or communicate with TAs.
- a CA creates a session with a TA
- the CA connects to an instance of the TA.
- a TA instance has physical memory address space which is separated from the physical memory address space of all other TA instances.
- a session is used to logically connect multiple commands invoked in a TA.
- Each session has its own state, which contains the session context and the context(s) of the task(s) executing the session.
- the TEE 115 includes vPOS 120 and payment credential database (DB) 125 , which are TAs within the TEE 115 .
- the vPOS 120 aggregates payment instrument(s) and certain acquiring elements of POS terminals (e.g., CADs, PADs, etc.) within a single platform (e.g., the TEE 115 ).
- the vPOS 120 may be one or more software element, engine, applet, modules, and/or other like collection of functions that operate in conjunction with one or more hardware devices (e.g., processor circuitry 310 as described with regard to FIG. 2 , processor circuitry 210 as described with regard to FIG.
- the vPOS 120 may also validate and/or decrypt the user inputs and the information received from the cloud POS service 135 in order to authenticate a user of the computing system 105 and/or the merchant 140 . Once a user has been successfully authenticated, the vPOS 120 may encrypt the obtained payment credential information and/or transaction signatures for subsequent transmission to an upstream payment processor (e.g., payment acquiring service 145 ). Furthermore, the vPOS 120 may generate POS transaction messages (which may be communicated via the ePOS client 110 ) in accordance with ISO 8583, which defines a standard for systems that exchange electronic transactions made by cardholders using payment cards.
- ISO 8583 defines a standard for systems that exchange electronic transactions made by cardholders using payment cards.
- Payment credential database (PCDB) 125 may be a hardware device or system for storing payment credentials and payment credential-related information for a plurality of payment credentials.
- the PCDB 125 may also be referred to as a “payment credential storage unit,” “payment system environment” (PSE), or the like.
- the payment credentials may be associated with a payment card issued to users for paying for goods and services (e.g., a credit card, charge card, debit card, electronic benefits transfer (EBT) cards, etc.).
- the payment credentials may be a digital/electronic version of a physical payment card, or the payment credentials may be digital/electronic payment credentials.
- the PCDB 125 may also store cardholder data or other like sensitive information belonging to an authorized user of a payment card, which may include a cardholder name, billing address, shipping address, payment card number, PAN, PIN, verification codes, security questions and answers (e.g., cardholder birthdate, mother's maiden name, etc.), and the like. Furthermore, the PCDB 125 may store payment credentials and authorization information in accordance with EMV (Europay, MasterCard, and Visa) standards, which define worldwide interoperability and acceptance standards for secure card-present and card-not-present transactions.
- EMV Europay, MasterCard, and Visa
- the PCDB 125 may store virtual currency information (e.g., Linden Dollars traded in the virtual online community Second Life®, one or more currencies exchanged in the massively multiplayer online role-playing game (MMORPG) World of Warcraft®, Amazon Coins®, Nintendo Points®, Facebook® Credits, frequent flyer miles, brick-and-mortar store rewards points, etc.), cryptocurrency information (e.g., bitcoins, litecoins, etc.) and/or other like information used as a medium of exchange.
- the payment credentials stored in the PCDB 125 may include one or more digital currency wallets (e.g., a bitcoin wallet, etc.) and/or any other like mechanism for storing information necessary to account for digital currency transactions.
- the PCDB 125 may store a Data Object List (DOL) for each payment credential.
- the DOLs specify the data that a corresponding credential applet 121 expects as inputs and will provide as (signed) outputs during each step of the transaction processing procedure/protocol, as well as the format for the data.
- the DOLs indicate the various data elements for each part of a transaction, the format and/or arrangement of the data elements to be used for each part of the transaction, and which data elements should be signed or encrypted.
- Example data elements include the Application Transaction Counter (ATC), transaction amount(s), currency type(s), country code, financial institution information, and payment credential or credential applet-chosen nonces.
- PCDB 125 may include one or more relational database management systems (RDBMS) one or more object database management systems (ODBMS), a column-oriented DBMS, correlation database DBMS, and the like. According to various example embodiments, the PCDB 125 may be stored on or otherwise associated with one or more data storage devices. These data storage devices may include at least one of a non-volatile random-access memory (NVRAM) device, a read-only memory (ROM) device, a flash memory device, a solid state drive (SSD), and/or other like data storage devices.
- NVRAM non-volatile random-access memory
- ROM read-only memory
- SSD solid state drive
- PCDB 125 may be accessed by the vPOS 120 such that the vPOS 120 may query the PCDB 125 to obtain payment credential information and/or store payment credential information in the PCDB 125 .
- PCDB 125 may be physically and/or logically divided into multiple databases, while in other embodiments, the PCDB 125 may be a single database that resides on one physical hardware data storage device.
- the TEE 115 may also include one or more Security Domains (SDs) (not shown by FIG. 1 ).
- SD is an on-device representative entity of an Authority in the TEE 115 . SDs are responsible for the control of administration operations, and are used to perform the provisioning of TEE properties and manage the life cycle of TAs.
- An Authority is an entity or actor that grants permission to perform a specific set of actions, such as the cloud POS service 135 , the merchant 140 , the payment acquiring service 145 , or the auth service 170 .
- the SDs allow the device 105 to be managed by the associated Authority and can then be placed in in either a secured state (e.g., “TEE_SECURED”) or a locked state (e.g., “TEE_LOCKED”).
- the TEE 115 has been configured with at least one SD including personalization, keys, and data in order to perform administration operations.
- the locked state disables new accesses from CAs to any TAs within the TEE 115 .
- any attempt by a CA to open a new session with a TA is rejected and provided with an error message/code.
- Once the TEE 115 is locked only an SD having the necessary privileges is allowed to unlock the TEE 115 .
- the unlock operation switches the TEE 115 from the locked state back to the secure state.
- the SD may be in an accessible state or a block state.
- the SD In the accessible state, the SD is fully operational, and can be used by CAs (active state) or is temporarily suspended to perform some maintenance operations (restricted state).
- the SD In the blocked state, the SD can neither be used nor administrated until it is unblocked.
- the TAs may be in an active state or inactive state. In the active state, a TA can be accessed and used by CAs, and if the TEE is in the locked state, the TA is temporarily suspended to perform some maintenance operations. In the inactive state, the TA is directly controlled by an associated SD and can neither be used nor administrated until its SD is unblocked.
- Merchant domain 130 may be a collection of devices, systems, and/or services that are utilized by a merchant (e.g., merchant 140 ) to engage with ecommerce-related activities. As shown merchant domain 130 may include merchant server 140 and cloud POS service 135 .
- Merchant server 140 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services.
- the one or more services may include selling products and/or services, providing an online market place for the purchase and/or sale of products and services, mining demographic data, online marketing, and/or other like ecommerce-related services.
- the merchant 140 may engage with a user of the computing system 105 to sell products and/or services to the user, and utilize the cloud POS service 135 to initiate a POS transaction with the computing system 105 .
- the merchant server 140 may include an operating system that may provide executable program instructions for the general administration and operation of merchant server 140 , and may include a computer-readable medium storing instructions that, when executed by a processor of the merchant server 140 , may allow the merchant server 140 to perform its intended functions.
- Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein.
- the merchant 140 may not be required and the applications and software components discussed herein may be executed on any appropriate device or host machine.
- Cloud POS service 135 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services.
- the one or more services provided by the cloud POS service 135 may include initiating a POS transaction with a client device that is enabled to process POS transactions (e.g., computing system 105 ), authenticating payment information and/or user identity information, and providing POS transaction-related information to the computing system 105 to process a POS transaction.
- cloud POS service 135 may communicate data (i.e., transmit and receive) with ePOS client 110 , and thus, may communicate to vPOS 120 securely and indirectly through the ePOS client 110 .
- the cloud POS service 135 may communicate data (i.e., transmit and receive) with the merchant 140 and/or the payment acquiring service 145 purposes of processing POS transactions.
- the cloud POS service 135 may generate POS transaction messages (which may be communicated to the ePOS client 110 ) in accordance with ISO 8583, which defines a standard for systems that exchange electronic transactions made by cardholders using payment cards.
- the cloud POS service 135 may be integrated with a payment system that is implemented by the merchant 140 , and may capture POS transaction details for analysis and reporting to the merchant 140 .
- the cloud POS service 135 may be a standalone service such that the cloud POS service 135 is implemented separately from the merchant domain 130 .
- the cloud POS service 135 may be hosted by an independent entity that may provide the cloud POS service 135 to a plurality of merchant services simultaneously.
- typical digital wallet services and/or online money transfer services may be hosted by an independent entity that provides their services to a plurality of merchants simultaneously.
- the cloud POS service 135 may not have to retain user payment information and user identification information. Instead, the cloud POS service 135 may allow users to retain possession and control of their personal account information and personally identifying information. Therefore, the cloud POS service 135 may provide network and computational resource efficiencies while also providing user privacy protections. Furthermore, because typical card-not-present transactions usually have a higher rate of fraud, merchants are usually charged higher bank processing fees and/or are required to absorb costs associated with data breaches and/or fraudulent transactions. Therefore, merchants are usually responsible for processing payments and providing security measures for handling payment information for typical card-not-present transaction. Accordingly, merchants that utilize the cloud POS service 135 could end up paying a lower transaction fee to process payments through the cloud POS service 135 (including the vPOS 120 ) rather than processing payments on their own.
- the cloud POS service 135 may include an operating system that may provide executable program instructions for the general administration and operation of payment acquiring service 145 , and may include a computer-readable medium storing instructions that, when executed by a processor of the application server 130 , may allow the payment acquiring service 145 to perform its intended functions.
- Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein.
- the payment acquiring service 145 may not be required and the applications and software components discussed herein may be executed on any appropriate device or host machine.
- a payment kernel (e.g., the algorithm dictating the protocol interaction with the payment instrument) may run in the cloud 135 (not shown by FIG. 1 ) while the acceptance endpoint (e.g., ePOS applet(s) 121 ) runs within the confines of the secure TEE 115 platform.
- the payment kernel maintains trusted state synchronization with the acceptance endpoint. This may be done over a network connection 150 or with an associated SD in the TEE 115 (e.g., the TEE_SECURED state, SD blocked state, or TA inactive state).
- the TEE 115 includes one or more payment credentials (e.g., in PCDB 125 ), and also one or more ePOS applets 121 (also referred to as “credential applets” or the like).
- the ePOS applets 121 are responsible for providing internal and external access to the secure element instance (e.g., Trusted OS instance), processing account data, performing cardholder verification, and the like.
- the ePOS applets 121 may be implemented as widgets such as plug-ins, applets, desk accessories, or other like software component(s).
- a widget (applet) is a relatively small application that performs a specific task and runs within a secure OS, dedicated widget engine, or as part of a larger application.
- a widget engine is the software platform on which desktop or web widgets run.
- the ePOS applet 121 may be implemented as a smartcard payment applet compatible with EMV standards, GlobalPlatform standards, and the like.
- the TEE 115 may include and/or operate a Trusted OS such as a secure OS, real-time OS (RTOS), widget engine, VM manager, or other like software element that that controls and manages access to the TEE 115 and/or the ePOS applet 121 .
- RTOS real-time OS
- a Trusted OS is an operating system running in the TEE providing a TEE internal core API to TAs.
- the Trusted OS may be the Java CardTM OpenPlatform (JCOP), which is a standardized smart card OS.
- JCOP Java CardTM OpenPlatform
- the JCOP may include a Java CardTM Virtual Machine (JCVM) and/or implement a Java CardTM Runtime Environment (JCRE), which allow Java applets to run on UICCs and eUICCs.
- the Trusted OS may be a native OS, which is a proprietary vendor-specific OS.
- the Trusted OS may implement a profile loader (also referred to as a “profile installer” and/or a “profile manager”) for installing and managing provisioned profiles, applets, and/or payment credentials.
- vPOS 120 may include multiple ePOS applets 121 that are selectable and applied at the time of committing to a transaction (e.g., making payment).
- the ePOS applet(s) 121 is/are personalized to contain the payment credentials in a same or similar manner to an applet contained on a standard payment card or standard access card.
- the personalization may be provided using, for example, Store Data data grouping identifiers (DGIs) and/or secure channel protocols. Personalization may also take place according to the EMV Card Personalization Specification version 1.0 (June 2003) and/or other like specifications.
- DGIs Store Data data grouping identifiers
- EMV Card Personalization Specification version 1.0 June 2003
- the cloud payment kernel interacting with the platform payment acceptance endpoint (e.g., TEE 115 ), communicates with the embedded ePOS applet 121 to consummate the payment transaction.
- the transaction is identical to a payment transaction initiated between a conventional POS terminal interacting with a customer payment card. This provides assurance that the actual card is present at the time of transaction rather than a falsified card or malicious code.
- Another aspect of a secure transactions is to prove that the authorized cardholder is present at the time of transaction.
- individual confidence levels of user authentication e.g., depending on platform capabilities
- multiple confidence levels may be mapped to the same cardholder authenticity level to provide a more granular approach to verifying user authenticity locally at the computing system 105 .
- the combination of card authenticity coupled with credential authentication yields assurances that are compliant with traditional card-not-present situations.
- merchants 130 benefit from decreased fraud and lower cost of payment acceptance, thereby reducing overall network and computational resource consumption.
- Payment card issuers and processing networks also benefit from increased transaction volume since there are significant numbers of people who refuse to participate in eCommerce due to fears surrounding fraud and/or identity theft.
- these embodiments may be applied to other scenarios, such as preventing SIM swapping and/or SIM hijacking.
- the ePOS acceptance driver 122 provides a bridge interface between the cloud ePOS kernel in cloud 135 and the ePOS applet 121 executing inside of the TEE 115 .
- the ePOS driver 122 includes terminal logic and/or device pairing logic to maintain trusted state synchronization with the POS cloud 135 .
- Security of the transaction is provided by the ePOS acceptance driver 122 , which uses transaction-specific encryption to provide confidentiality of sensitive transaction elements.
- One example approach combines format-preserving-encryption with transaction-specific keying available with standards such as ANSI X9.24-1 (DUKPT) to provide transaction data confidentiality.
- Other encryption schemes may be used in other embodiments.
- FIG. 1 also shows elements of the ePOS client 110 , which supports both user authentication mechanisms, plus ePOS logic 113 to support payment interactions and user interfaces.
- the ePOS logic 113 is factored between the merchant 140 and the credential hosting environment (e.g., vPOS 120 ).
- the authentication mechanisms may be referred to as “cardholder verification methods” or “CVMs” in EMV terminology.
- CVMs cardholder verification methods
- the access card In conventional CVM, the access card is only involved in cardholder verification when offline PIN is used, and online PIN verification is performed using a protocol between the conventional POS terminal and the financial institution (e.g. service 145 ). If an access card supports both online and offline PIN CVMs, the issuing financial institution usually has to have mechanisms in place to ensure that the two PINs are synchronized. Synchronization is important, because when cardholders are asked to enter a PIN, they do not know whether they should enter their offline PIN or online PIN.
- the vPOS 120 is involved in online PIN verification at least to securely pass the PIN to the cloud 135 and/or auth service 170 , which is more secure than conventional CVM.
- a PIN for user authentication/verification, which is usually four, six, or twelve digits
- a passcode, password, biometric data, physical hardware mechanism, and/or any other type of authentication means may be used in place of a PIN in various embodiments.
- Locally controlled (offline) user authentication is provided through the secure PIN client 112 , which provides a PIN (e.g., input by the user) to the ePOS driver 122 over interface 119 .
- the PIN are verified directly by credential applet 121 .
- the PIN code is sent to the ePOS applet 121 via the ePOS driver 122 , and the ePOS applet 121 returns an unauthenticated response to the secure PIN client 112 via the ePOS driver 122 .
- the unauthenticated response indicates whether the PIN was correct or how many failed PIN attempts there are left before the ePOS applet 121 blocks access to the selected payment credential.
- the ePOS applet 121 requests a nonce from the ePOS driver 122 and/or the secure PIN client 112 .
- the ePOS applet 121 uses a public key of associated with the selected payment credential, encrypts the PIN together with the nonce and some random padding created by the ePOS applet 121 (e.g., using a suitable random number generator, hash function, etc.).
- a result of the verification may be returned to the PIN client 112 and displayed to the user in some embodiments.
- Online user authentication is managed through an external authentication (auth) service 170 via the auth client 111 .
- the online PIN is verified by auth service 170 , and online service authentication assertions are received via connection 150 - 1 for verification by the ePOS 121 .
- the merchant 130 that hosts the ePOS payment kernel e.g., within cloud POS service 135 or in some other merchant 130 system or platform
- who is also a relying party to the auth service 170 is responsible for providing levels of user authentication relevant to the value of the transaction.
- the auth client 111 provides the online PIN to the auth service 170 via connection 150 - 5 .
- the auth client 111 provides the online PIN to the cloud POS 135 over connection 150 - 3 , which is then relayed to the auth service 170 over connection 150 - 4 .
- the ‘what you see is what you get’ (WYSIWYS) digital signature techniques may be used to capture and protect the online PIN for verification by the ePOS applet 121 .
- security of the online PIN entry may be achieved by using Intel® Identity Protection Technology (IPT), which uses Protected Transaction Display (PTD) to protect Public Key Infrastructure (PKI) certificates and RSA keys with a PIN.
- IPT Intel® Identity Protection Technology
- PTD Protected Transaction Display
- PKI Public Key Infrastructure
- RSA keys with a PIN.
- the PTD may be used to confirm transaction amounts and/or other transaction information.
- the user authentication mechanisms can include multiple and varying factors, including, but not limited to user name/ID and password, PIN, location-based, network-based (e.g., virtual private network (VPN), etc.) security tokens, physical authentication devices (e.g., wearable continuous authentication using a smartwatch or the like, YubiKey® provided by Yubico® or the like), and/or biometric data. Additionally or alternatively, authentication strategies based on NIST SP800-63 Electronic Authentication Guidelines may be used.
- the cloud ePOS kernel is also interconnected to a payment processing network 145 via connection 150 - 7 between the cloud ePOS service 135 and payment acquirer service 145 .
- This element understands standard payment protocols such as ISO 8583 and the like, common to the payment processing ecosystems. Interactions between the ePOS cloud 135 and client ePOS elements ensure that data elements are present in the transaction such that the payment networks 145 comprehend ePOS transactions to be equivalent to card-present payments and/or the like.
- the use of a contactless payment kernel hosted in the TEE 115 may communicate with the ePOS Acceptance Driver 122 , and the ePOS Acceptance Driver 122 may be communicatively coupled with an NFC controller implemented in the computing system 105 (not shown).
- the payment instrument may be, or act as, an external contactless card such as an Apple Pay® contactless device.
- the cloud ePOS 135 directs the actions of the client-hosted payment kernel 121 to facilitate acceptance of existing contactless payment instruments.
- auth service 170 provides an appropriate value of the transaction.
- transaction inputs e.g., EMV commands and/or auth service 170 assertions
- transaction outputs e.g., cardholder authentication data, ISO 8583 transaction data, EMV responses, payment credentials, online PIN block, etc.
- the auth service 170 may be provided by Intel® True Key (or “You Are the Password” or “YAP”). For example, YAP provides scoring levels associated with the strength of a given authentication.
- ePOS authentication/verification allows ePOS authentication/verification to be used with existing payment processing attributes designed to assert these various levels of user/cardholder verification.
- the ePOS system 100 provides both card issuers and merchants 130 the controls necessary to dynamically manage risk.
- Network 150 may include one or more network elements (not shown) capable of physically or logically connecting computers.
- the network 150 may include any appropriate network, including an intranet, the Internet, a cellular network, a local area network (LAN), a wide area network (WAN), a personal network or any other such network or combination thereof. Components used for such a system can depend at least in part upon the type of network and/or environment selected. Protocols and components for communicating via such a network are well known and will not be discussed herein in detail. Communication over the network 150 may be enabled by wired or wireless connections, and combinations thereof.
- Payment acquiring service 145 may be include one or more physical and/or virtual computing systems such as one or more servers or other like network elements for providing one or more services.
- the payment acquiring service 145 may be a financial institution, bank, and/or other like entity or group of entities that is able to process payment credential purchases on behalf of a merchant platform (e.g., merchant 140 ).
- the payment acquiring service 145 may be referred to as a “merchant bank”, “acquirer”, and the like.
- the payment acquiring service 145 may be contacted by the cloud POS service 135 to authorize a payment card purchase amount.
- the payment acquiring service 145 may be able to approve or decline a payment credential purchase amount, and if approved, the payment acquiring service 145 may settle the transaction by placing the funds into an account associated with the merchant 140 .
- the payment acquiring service 145 may include an operating system that may provide executable program instructions for the general administration and operation of payment acquiring service 145 , and may include a computer-readable medium storing instructions that, when executed by a processor of the application server 130 , may allow the payment acquiring service 145 to perform its intended functions. Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein.
- Messaging service 160 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services.
- the messaging service 160 may be a service that forwards or otherwise provides notifications and/or other like messages from third parties to client devices (e.g., computing system 105 ).
- client devices e.g., computing system 105
- the notifications or messages may be push notifications communicated in accordance with the Push Access Protocol (PAP), simple mail transfer protocol (SMTP), Extensible Messaging and Presence Protocol (XMPP), and/or other like push communication protocols.
- PAP Push Access Protocol
- SMTP simple mail transfer protocol
- XMPP Extensible Messaging and Presence Protocol
- Such notifications or messages may include audio/video messages, text alerts, and/or the like.
- the messaging service 160 may be contacted by the cloud POS service 135 to provide a POS transaction initiation message to the computing system 105 on behalf of the cloud POS service 135 .
- the messaging service 160 may be a mobile messaging service, such as Google Cloud Messaging (GCM), Apple Push Notification Services and/or Notification Center, Windows Push Notification Service (WNS), and/or other like messaging services.
- the messaging service may be a Short Message Service (SMS) Function (SMSF) that sends SMS messages to cellular network subscribers (e.g., computing system 105 ) on behalf of cloud POS service 135 .
- SMS Short Message Service
- the arrangement 100 may be implemented according to one or more of the following use cases. There are multiple use cases that can benefit from arrangement 100 and several of these are listed below, although these use cases is not an exhaustive list, and the embodiments herein can be employed for various other use cases.
- Use case 1 ecommerce or web-based purchases.
- the vPOS 120 may be accessible by rendering the ePOS client 110 in a standard web browser.
- the cloud POS service 135 operating in conjunction with the ecommerce checkout process provided by the merchant 140 , may solicit the POS transaction through the ePOS client 110 rendered in the web browser.
- a variant of use case 1 may include out-of-band ecommerce transactions, such as those performed on untrusted or otherwise unsecure computing devices.
- the user may provide a unique identifier (e.g., e.g., mobile phone number, an email address, and/or any other user-related identifier) associated with a computing device enable to process POS transactions (e.g., computing system 105 ) instead of entering payment information directly into a web browser of an untrusted computing device.
- POS transactions e.g., computing system 105
- the transaction initiation message may be sent to the computing system 105 via the cloud POS service 135 and/or messaging service 160 , instructing computing system 105 to process the POS transaction.
- Use case 2 mail-order and/or telephone-order purchases.
- Telephone-order transactions traditionally require customers to dictate payment information over the phone to an agent of a merchant in order to purchase a product or service.
- a user of the computing system 105 may order a product or service over the phone.
- the user may provide a unique identifier (e.g., mobile phone number, an email address, and/or any other user-related identifier) to the merchant 140 (or an agent of the merchant 140 ).
- a unique identifier e.g., mobile phone number, an email address, and/or any other user-related identifier
- the merchant 140 may enter the unique identifier into a merchant terminal that is enabled to interact with the cloud POS service 135 , and the cloud POS service 135 and/or messaging service 160 may send a transaction initiation to the computing system 105 .
- the POS transaction may then be processed according to the various example embodiments disclosed herein. For mail-order purchases, which typically require a customer to write down payment information on a paper order form, the customer may manually write the unique identifier on the paper order form instead of writing payment information and/or authentication information into the order form.
- the unique identifier may be entered into a merchant terminal enabled to interact with the cloud POS service 135 , which may immediately send a transaction initiation to the computing system 105 via the cloud POS service 135 .
- the merchant 140 may fulfill (e.g., ship) the ordered product or service.
- Use case 3 brick-and-mortar purchases. Most brick-and-mortar transactions require customers to enter payment information into a standalone physical POS terminal (also referred to as a credit card terminal, payment terminal, electronic funds transfer (EFT) POS terminal, etc.) to purchase a product or service. In most cases, the standalone physical POS terminals allow customers or merchants to insert, swipe, or manually enter the required payment information. According to use case 3, the user of the computing system 105 may provide a unique identifier to a brick-and-mortar store employee, who may then enter the unique identifier into a merchant terminal enabled to interact with the cloud POS service 135 .
- a standalone physical POS terminal also referred to as a credit card terminal, payment terminal, electronic funds transfer (EFT) POS terminal, etc.
- EFT electronic funds transfer
- a variant of use case 3 may involve other physical outlets that may not have a typical standalone physical POS terminal.
- These other physical outlets may include merchants at farmers' markets, trade shows, swap meets, flea markets, bazaars, conventions, concerts, and the like.
- merchants of these other physical outlets may have a computing device, such as a smartphone or tablet PC, which may mimic or replace the functionality of the standalone physical POS terminal hardware using a terminal application running on a the computing device.
- These terminal applications usually require manual entry of payment information, or may operate in conjunction with a peripheral hardware payment card reader that can transfer payment information to the terminal application.
- peripheral payment card readers may connect to the merchant's computing device through an audio jack of the computing device.
- the merchant's computing device may include its own POS UI that may interact with the cloud POS service 135 , and a user of the computing system 105 may manually enter or otherwise provide a unique identifier to the merchant's POS UI to initiate the POS transaction via the cloud POS service 135 .
- Use case 4 user-initiated donations.
- a user may wish to make a donation or tithe to an entity, such as a non-profit organization.
- the ePOS client 110 may allow a user of the computing system 105 to initiate and complete payment requests on their own.
- the donation recipient may deploy a Bluetooth low-energy (BLE) beacon that broadcasts one or more signals, which indicate that a POS payment may be made at a physical location.
- BLE Bluetooth low-energy
- the computing system 105 may indicate that a POS payment point associated with the donation recipient is nearby, and the user of the computing system 105 may execute the ePOS client 110 to initiate a POS transaction according to the example embodiments disclosed herein.
- a variant of use case 4 may involve deploying BLE beacons in brick-and-mortar stores or other like physical outlets to facilitate the purchase of products or services, rather than requiring an employee to perform a checkout process and the like.
- Use case 5 Out-of-band eCommerce payments are possible using the ePOS mechanisms described in use case 2, and where a web checkout form offers an out-of-band ePOS payment capability.
- the merchant eCommerce system 140 provides a mechanism to redirect the eCommerce payment operation to the computing system 105 (e.g., using messaging service 160 or the like). This option is more secure from the perspective of not providing payment information through a computer that may not have secure payment acceptance capabilities (e.g. a public computer).
- SIM swap or hijack is a type of account takeover fraud where an attacker convinces a victim's mobile carrier to switch the victim's phone number over to a SIM card own by the attacker. This allows the attacker to divert incoming messages (e.g., SMS messages) to the attacker's device so the attacker can easily complete text/SMS-based two-factor authentication to gain access to the victim's online accounts and/or other protected sensitive data or applications.
- incoming messages e.g., SMS messages
- the original vPOS 120 would maintain a trusted state synchronization (e.g., secured state, blocked state, or inactive state) with the cloud system 135 and/or auth system 170 (or an associated SD in the TEE 115 ) that cannot be duplicated with to a new or different access card or TEE 115 .
- a trusted state synchronization e.g., secured state, blocked state, or inactive state
- the TEE 115 may deny access to the vPOS 120 (e.g., by placing the TEE 115 in the locked state) until the trusted (secure) state is reestablished.
- a PIN may be set to access the vPOS 120 , which may be the same or different than the PINs set to access individual payment credentials within the vPOS 120 .
- the victim's PIN(s) may still be maintained in the emulated or stolen SIM. If the access card were cloned or stolen and placed in another device, then the attacker attempting to use it would also have to know the victim's PIN in order to utilize the stolen SIM and/or vPOS 120 . Without the PIN, the overall authentication of a transaction would fail.
- FIG. 2 illustrates the components of the computing system 105 , in accordance with various example embodiments.
- computing system 105 may include processor circuitry 210 , interconnect (IX) 220 , network interface circuitry (NIC) 230 , input/output (I/O) interface circuitry 240 , memory circuitry 250 , and TEE 115 .
- TEE 115 may include memory 350 and processor circuitry 310 .
- one or more of the elements/components not included in the TEE 115 may be referred to as the REE or “host platform”.
- the TEE 115 is an execution environment that runs alongside but is isolated from the REE.
- the TEE 115 has security capabilities and meet certain security related requirements.
- the TEE 115 protects TEE 115 assets from general software attacks, defines rigid safeguards as to data and functions that a program can access, and resists a set of defined threats.
- Memory circuitry 250 may be a hardware device configured to store an operating system 260 and program code for one or more software components, such as ePOS client 110 and/or one or more other applications.
- Memory circuitry 250 may be a computer readable storage medium that generally includes a random access memory (RAM), read only memory (ROM), a flash memory device, a solid state disk (SSD), a secure digital (SD) card, and/or other like storage media capable of storing and recording data.
- the program code and/or software components may also be loaded from a separate computer readable storage medium into memory circuitry 250 using a drive mechanism (not shown).
- Such separate computer readable storage medium may include a memory card, memory stick, removable flash drive, SIM card, and/or other like computer readable storage medium (not shown).
- software components may be loaded into memory circuitry 250 via NIC 230 , rather than via a computer readable storage medium.
- the memory may be random access memory (RAM) in accordance with a Joint Electron Devices Engineering Council (JEDEC) design such as the DDR or mobile DDR standards (e.g., LPDDR, LPDDR2, LPDDR3, or LPDDR4).
- JEDEC Joint Electron Devices Engineering Council
- a memory component may comply with a DRAM standard promulgated by JEDEC, such as JESD79F for DDR SDRAM, JESD79-2F for DDR2 SDRAM, JESD79-3F for DDR3 SDRAM, JESD79-4A for DDR4 SDRAM, JESD209 for Low Power DDR (LPDDR), JESD209-2 for LPDDR2, JESD209-3 for LPDDR3, and JESD209-4 for LPDDR4.
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR-based standards may be referred to as DDR-based standards and communication interfaces of the storage devices that implement such standards may be referred to as DDR-based interfaces.
- the individual memory devices may be of any number of different package types such as single die package (SDP), dual die package (DDP) or quad die package (Q17P). These devices, in some examples, may be directly soldered onto a motherboard to provide a lower profile solution, while in other examples the devices are configured as one or more memory modules that in turn couple to the motherboard by a given connector. Any number of other memory implementations may be used, such as other types of memory modules, e.g., dual inline memory modules (DIMMs) of different varieties including but not limited to microDIMMs or MiniDIMMs.
- DIMMs dual inline memory modules
- storage device(s) may also be included in or coupled with the system 105 .
- the storage device(s) may be implemented via a solid-state disk drive (SSDD) and/or high-speed electrically erasable memory (commonly referred to as “flash memory”).
- SSDD solid-state disk drive
- flash memory commonly referred to as “flash memory”.
- Other devices that may be used for the storage device(s) include flash memory cards, such as SD cards, microSD cards, XD picture cards, and the like, and USB flash drives.
- the memory device may be or may include memory devices that use chalcogenide glass, multi-threshold level NAND flash memory, NOR flash memory, single or multi-level Phase Change Memory (PCM), a resistive memory, nanowire memory, ferroelectric transistor random access memory (FeTRAM), anti-ferroelectric memory, magnetoresistive random access memory (MRAM) memory that incorporates memristor technology, phase change RAM (PRAM), resistive memory including the metal oxide base, the oxygen vacancy base and the conductive bridge Random Access Memory (CB-RAM), or spin transfer torque (STT)-MRAM, a spintronic magnetic junction memory based device, a magnetic tunneling junction (MTJ) based device, a Domain Wall (DW) and Spin Orbit Transfer (SOT) based device, a thyristor based memory device, or a combination of any of the above, or other memory.
- PCM Phase Change Memory
- MRAM magnetoresistive random access memory
- PRAM phase change RAM
- CB-RAM conductive bridge Random
- the memory circuitry 250 and/or storage circuitry may also incorporate three-dimensional (3D) cross-point (XPOINT) memories from Intel® and Micron®.
- the storage device(s) may be on-die memory or registers associated with the processor circuitry 210 .
- the storage device(s) may be implemented using a micro hard disk drive (HDD).
- HDD micro hard disk drive
- any number of new technologies may be used for the storage device(s) in addition to, or instead of, the technologies described, such resistance change memories, phase change memories, holographic memories, or chemical memories, among others
- memory circuitry 250 may include operating system 260 and ePOS client 110 .
- Operating system 260 may manage computer hardware and software resources and provide common services for computer programs.
- Operating system 260 may include one or more drivers, such as a display driver, sensor drivers (e.g., a camera driver, etc.), audio drivers, and/or any other like drivers that provide an interface to hardware devices without needing to know the details of the hardware itself.
- the operating system 260 may include one or more drivers for accessing the TEE 115 thereby enabling ePOS client 110 to access hardware functions inside the TEE 115 , such as the vPOS 120 , without needing to know the details of the TEE 115 itself.
- the operating system 260 may be a general purpose operating system or an operating system specifically written for and tailored to the computing system 105 .
- ePOS client 110 may be a collection of software modules and/or program code that enables the computing system 105 to access or obtain POS transaction data and/or other like data from the vPOS 120 within the TEE 115 , and/or operate according to the various example embodiments as disclosed herein.
- ePOS client 110 may be a native application, a web application, or a hybrid application.
- ePOS client 110 may be a web application that may be rendered in a web browser of the computing system 105 .
- Processor circuitry 210 is configurable or operable to carry out instructions of a computer program by performing the basic arithmetical, logical, and input/output operations of the system.
- the processor circuitry 210 includes circuitry such as, but not limited to one or more processor cores and one or more of cache memory, low drop-out voltage regulators (LDOs), interrupt controllers, serial interfaces such as SPI, I 2 C or universal programmable serial interface circuit, real time clock (RTC), timer-counters including interval and watchdog timers, general purpose I/O, memory card controllers such as secure digital/multi-media card (SD/MMC) or similar, interfaces, mobile industry processor interface (MIPI) interfaces and Joint Test Access Group (JTAG) test access ports.
- LDOs low drop-out voltage regulators
- RTC real time clock
- timer-counters including interval and watchdog timers
- general purpose I/O memory card controllers such as secure digital/multi-media card (SD/MMC) or similar, interfaces,
- the processor circuitry 210 may include one or more hardware accelerators, which may be microprocessors, programmable processing devices (e.g., FPGA, ASIC, etc.), or the like.
- the one or more accelerators may include, for example, computer vision and/or deep learning accelerators.
- the processor circuitry 210 may include on-chip memory circuitry, which may include any suitable volatile and/or non-volatile memory, such as DRAM, SRAM, EPROM, EEPROM, Flash memory, solid-state memory, and/or any other type of memory device technology, such as those discussed herein.
- the processor circuitry 210 may include, for example, one or more processor cores (CPUs), application processors, GPUs, RISC processors, Acorn RISC Machine (ARM) processors, CISC processors, one or more DSPs, one or more FPGAs, one or more PLDs, one or more ASICs, one or more baseband processors, one or more radio-frequency integrated circuits (RFIC), one or more microprocessors or controllers, a multi-core processor, a multithreaded processor, an ultra-low voltage processor, an embedded processor, or any other known processing elements, or any suitable combination thereof.
- the processors (or cores) 210 may be coupled with or may include memory/storage and may be configured to execute instructions stored in the memory/storage to enable various applications or operating systems to run on the system 105 .
- the processors (or cores) 210 is configured to operate application software to provide a specific service to a user of the system 105 .
- the processor(s) 210 may be a special-purpose processor(s)/controller(s) configured (or configurable) to operate according to the various embodiments herein.
- the processor(s) 210 may include an Intel® Architecture CoreTM based processor such as an i3, an i5, an i7, an i9 based processor; an Intel® microcontroller-based processor such as a QuarkTM, an AtomTM, or other MCU-based processor; Pentium® processor(s), Xeon® processor(s), or another such processor available from Intel® Corporation, Santa Clara, Calif.
- Intel® Architecture CoreTM based processor such as an i3, an i5, an i7, an i9 based processor
- an Intel® microcontroller-based processor such as a QuarkTM, an AtomTM, or other MCU-based processor
- Pentium® processor(s), Xeon® processor(s) or another such processor available from Intel® Corporation, Santa Clara, Calif.
- any number other processors may be used, such as one or more of Advanced Micro Devices (AMD) Zen® Architecture such as Ryzen® or EPYC® processor(s), Accelerated Processing Units (APUs), MxGPUs, Epyc® processor(s), or the like; A5-A12 and/or S1-S4 processor(s) from Apple® Inc., QualcommTM or CentrigTM processor(s) from Qualcomm® Technologies, Inc., Texas Instruments, Inc.® Open Multimedia Applications Platform (OMAP)TM processor(s); a MIPS-based design from MIPS Technologies, Inc.
- AMD Advanced Micro Devices
- Zen® Architecture such as Ryzen® or EPYC® processor(s), Accelerated Processing Units (APUs), MxGPUs, Epyc® processor(s), or the like
- the processor(s) 210 may be a part of a system on a chip (SoC), System-in-Package (SiP), a multi-chip package (MCP), and/or the like, in which the processor(s) 210 and other components are formed into a single integrated circuit, or a single package, such as the EdisonTM or GalileoTM SoC boards from Intel® Corporation.
- SoC system on a chip
- SiP System-in-Package
- MCP multi-chip package
- Other examples of the processor(s) 210 are mentioned elsewhere in the present disclosure.
- the processor circuitry 210 may perform a variety of functions for the computing system 105 and may process data by executing program code, one or more software modules, firmware, middleware, microcode, hardware description languages, and/or any other like set of instructions stored in the memory circuitry 250 .
- the program code may be provided to processor circuitry 210 by memory circuitry 250 via IX 220 , one or more drive mechanisms (not shown), and/or via NIC 230 .
- the program code and/or software components may be executed by the processor circuitry 210 .
- the processor circuitry 210 may cause computing system 105 to perform the various operations and functions delineated by the program code.
- the ePOS client 110 may include various modules and/or program code configured to operate (using hardware and/or software components) to obtain POS transaction data from the vPOS 120 and communicate various POS transaction-related data with the vPOS 120 and/or the cloud POS service 135 as described herein.
- the processor circuitry 210 is configurable or operable to cause computing system 105 to receive a transaction initiation from the cloud POS service 135 or other merchant-related terminal; provide a selected payment credential to be used to process a POS transaction; provide authentication parameters to the cloud POS service 135 or other merchant-related terminal; receive a cryptographic merchant certificate from the cloud POS service 135 or other merchant-related terminal, and provide the cryptographic merchant certificate to the vPOS 120 ; receive a personal identification (PIN) solicitation from the cloud POS service 135 or other merchant-related terminal; provide a user interface to allow a user of the computing system 105 to enter a PIN; receive the input PIN and provide the inputted PIN to the cloud POS service 135 or other merchant-related terminal; receive updated transaction terms from the cloud POS service 135 or other merchant-related terminal; receive encrypted payment data from the vPOS 120 ; communicate
- PIN personal identification
- modules While specific modules are described herein, it should be recognized that, in various embodiments, various modules may be combined, separated into separate modules, and/or omitted. Additionally, in various embodiments, one or more modules may be implemented on separate devices, in separate locations, or distributed, individually or in sets, across multiple processors, devices, locations, and/or in cloud-computing implementations.
- the IX 220 is configurable or operable to enable the communication and data transfer between the processor circuitry 210 and memory circuitry 250 .
- the IX 220 may include any number of technologies, including Industry Standard Architecture (ISA), extended ISA, inter-integrated circuit (I 2 C) IX, Serial Peripheral Interface (SPI), point-to-point interfaces, power management bus (PMBus), Peripheral Component Interconnect (PCI), PCI express (PCIe), PCI extended (PCIx), a Small Computer System Interface (SCSI) IX, Intel® Ultra Path Interconnect (UPI), Intel® Accelerator Link, Intel® Common Express Link (CXL), Coherent Accelerator Processor Interface (CAPI), OpenCAPI, Intel® QuickPath Interconnect (QPI), Intel® Omni-Path Architecture (OPA) IX, RapidIOTM system IXs, Cache Coherent Interconnect for Accelerators (CCIX), Gen-Z Consortium IXs, a HyperTransport interconnect, NVLink provided by N
- the IX 220 may be a proprietary bus, for example, used in a SoC based system.
- the IX 220 may comprise a high-speed serial bus, parallel bus, internal universal serial bus (USB), Front-Side-Bus (FSB), and/or other suitable communication technology for transferring data between components within computing system 105 and other like devices.
- NIC 230 may be a computer hardware component that connects computing system 105 to a computer network (e.g., network 150 ).
- NIC 230 may connect computing system 105 to a computer network via a wired or wireless connection.
- NIC 230 may operate in conjunction with a wireless transmitter/receiver and/or transceiver (not shown) that is configured to operate in accordance with one or more wireless standards.
- the wireless transmitter/receiver and/or transceiver is configurable or operable to operate in accordance with a wireless communications standard, such as the IEEE 802.11-2007 standard (802.11), the Bluetooth standard, and/or any other like wireless standards.
- the communications port is configurable or operable to operate in accordance with a wired communications protocol, such as a serial communications protocol (e.g., the Universal Serial Bus (USB), FireWire, Serial Digital Interface (SDI), and/or other like serial communications protocols), a parallel communications protocol (e.g., IEEE 1284, Computer Automated Measurement And Control (CAMAC), and/or other like parallel communications protocols), and/or a network communications protocol (e.g., Ethernet, token ring, Fiber Distributed Data Interface (FDDI), and/or other like network communications protocols).
- a serial communications protocol e.g., the Universal Serial Bus (USB), FireWire, Serial Digital Interface (SDI), and/or other like serial communications protocols
- a parallel communications protocol e.g., IEEE 1284, Computer Automated Measurement And Control (CAMAC), and/or other like parallel communications protocols
- a network communications protocol e.g., Ethernet, token ring, Fiber Distributed Data Interface (FDDI), and/or other like network communications protocols.
- I/O interface circuitry 240 may be a computer hardware component that provides communication between the computing system 105 and one or more other devices.
- the I/O interface circuitry 240 may include one or more user interfaces designed to enable user interaction with the computing system 105 and/or peripheral component interfaces designed to provide interaction between the computing system 105 and one or more peripheral components.
- User interfaces may include, but are not limited to a physical keyboard or keypad, a touchpad, a speaker, a microphone, etc.
- Peripheral component interfaces may include, but are not limited to, a non-volatile memory port, a USB port, an audio jack, and a power supply interface.
- computing system 105 may also include a transmitter and receiver or a transceiver (not shown).
- the transmitter may be any type of hardware device that generates or otherwise produces radio waves in order to communicate with one or more other devices.
- the transmitter may be coupled with an antenna (not shown) in order to transmit data to one or more other devices.
- the transmitter is configurable or operable to receive digital data from one or more components of computing system 105 via IX 220 , and convert the received digital data into an analog signal for transmission over an air interface.
- the receiver may be any type of hardware device that can receive and convert a signal from a modulated radio wave into usable information, such as digital data.
- the receiver may be coupled with the antenna (not shown) in order to capture radio waves.
- the receiver is configurable or operable to send digital data converted from a captured radio wave to one or more other components of computing system 105 via IX 220 .
- the transceiver may be a single component configured to provide the functionality of a transmitter and a receiver as discussed above.
- TEE 115 may be one or more hardware devices and software modules configured to carry out secure operations and/or control the storage and use of personal and/or confidential data.
- the TEE 115 may be a single integrated circuit (IC) containing a processing device, memory, an internal bus/IX, and/or an I/O interface.
- the TEE 115 includes memory 350 , processor circuitry 310 , IX 320 and 325 , and secure I/O interface 340 .
- Memory 350 may be a same type of device or similar hardware device as memory circuitry 250 , such as RAM, ROM, a flash memory device, a SSD, and/or other like storage media capable of storing and recording data. However, according to various embodiments, the memory 350 may only be accessed (i.e., read and/or written to) by processor circuitry 310 . In such embodiments, components that are external to trusted execution environment may access the memory 350 via secure I/O interface 340 . Memory 350 is configurable or operable to program code for one or more software components, such as vPOS 120 , PCDB 125 , and/or one or more other like applications.
- software components such as vPOS 120 , PCDB 125 , and/or one or more other like applications.
- the program code and/or software components may be loaded into memory 350 from a separate computer readable storage medium, from memory circuitry 250 , using a drive mechanism (not shown), NIC 230 , and/or I/O interface circuitry 240 via the secure I/O interface 340 .
- the vPOS 120 may be a collection of software elements, engines, modules, applet(s), and/or program code that enables the computing system 105 to process POS transactions by validating and/or encrypting/decrypting POS transaction data, and/or otherwise operate according to the various example embodiments as disclosed herein.
- the vPOS 120 may be a native application, an applet (e.g., Java® applet), or a firmware application.
- PCDB 125 may be one or more databases that stores payment credentials in association with other payment credential-related information. As discussed elsewhere, the PCDB 125 may be one or more relational databases, one or more object databases, one or more column-oriented databases, one or more correlation databases, and/or the like.
- IX 320 may be a same type of device or similar to IX 220 and/or IX 225 and/or other suitable IX/bus technology for transferring data between components within TEE 115 and with components outside of TEE 115 .
- the processor circuitry 310 may be the same or similar as processor circuitry 210 .
- Processor circuitry 310 is configurable or operable to carry out instructions of a computer program (e.g., vPOS 120 ) by performing the basic arithmetical, logical, and input/output operations.
- the processor circuitry 310 may include a single-core processor, a dual-core processor, a triple-core processor, a quad-core processor, one or more digital signal processor (DSP), an application-specific integrated circuit (ASIC) device, and/or the like.
- DSP digital signal processor
- ASIC application-specific integrated circuit
- the processor circuitry 310 may perform a variety of functions for the computing system 105 and may process data by executing program code, one or more software modules, firmware, middleware, microcode, hardware description languages, and/or any other like set of instructions stored in the memory 350 .
- the program code may be provided to processor circuitry 310 by memory 350 via bus 320 , and/or by processor circuitry 210 via secure I/O interface 340 .
- the program code and/or software components may be executed by the processor circuitry 310 .
- the processor circuitry 310 may cause computing system 105 to perform the various operations and functions delineated by the program code.
- the vPOS 120 may include various modules and/or program code configured to operate (using hardware and/or software components) to process POS transactions and communicate various POS transaction-related data with the cloud POS service 135 via the ePOS client 110 as described herein.
- the processor circuitry 310 is configurable or operable to cause computing system 105 to obtain payment credentials and/or other like information from the PCDB 125 ; validate merchant terminals associated with a POS transaction by decrypting, deciphering, or otherwise decode merchant certificates; process POS transactions using the selected payment credentials; generate and encrypt payment data; and/or perform various other functions or combinations of functions as disclosed herein. While specific modules are described herein, it should be recognized that, in various embodiments, various modules may be combined, separated into separate modules, and/or omitted. Additionally, in various embodiments, one or more modules may be implemented on separate devices, in separate locations, or distributed, individually or in sets, across multiple processors, devices, locations, and/or in cloud-computing implementations.
- the TEE 115 may be a graphics and memory controller hub and the processor circuitry 310 and memory 350 may be part of microcontroller IC that includes the Management Engine firmware provided by Intel®.
- the TEE 115 may be a Trusted Platform Module (TPM) provided by Intel® that operates in accordance with ISO/IEC 11889:2009, wherein the processor circuitry 310 is a secure cryptoprocessor.
- TPM Trusted Platform Module
- the TEE 115 may be any secure region of a computing device that may protect data that is stored and/or processed within the TEE 115 .
- computing system 105 may include many more components than those shown in FIG. 2 , such as a display device (e.g., a computer monitor, a touchscreen, etc.), one or more input devices (e.g., a physical keyboard, a touch screen, etc.), one or more image sensors, a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components.
- a display device e.g., a computer monitor, a touchscreen, etc.
- input devices e.g., a physical keyboard, a touch screen, etc.
- image sensors e.g., a physical keyboard, a touch screen, etc.
- transmitter/receiver or alternatively, a transceiver
- GPU graphics processing unit
- FIG. 3 illustrates the components of the computing system 105 , in accordance with other various example embodiments.
- computing system 105 may include similar components as shown by FIG. 2 , such as processor circuitry 210 , bus 220 , NIC 230 , input/output (I/O) interface circuitry 240 , and memory circuitry 250 , each of which may operate in a same or similar manner as discussed with regard to FIG. 2 .
- the TEE 115 may be within memory circuitry 250 .
- computing system 105 may include many more components than those shown in FIG.
- a display device e.g., a computer monitor, a touchscreen, etc.
- one or more input devices e.g., a physical keyboard, a touch screen, etc.
- one or more image sensors e.g., a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components.
- a transmitter/receiver or alternatively, a transceiver
- GPU graphics processing unit
- the TEE 115 may be a hardware enforceable container called an enclave, a secure enclave, and the like.
- the enclaves may be used to store security critical code and/or data, such as payment credentials and/or other POS transaction data.
- the enclaves may be one or more isolated regions of memory circuitry 250 that are encrypted within the memory circuitry 250 .
- the enclaves may be managed by a virtual machine monitor (WM) of a virtual machine running as a guest operating system.
- the memory location of the enclaves may be protected from access by all hardware components and/or software components of computing system 105 , regardless of a privilege level assigned to the hardware components and/or software components.
- WM virtual machine monitor
- the operating system 260 may include a secure driver that provides an interface for hardware devices and/or software components to create secure applications; access enclaves created by the secure applications; create secure application certificates (e.g., an “application cryptogram” or “transaction certificate”) that allow one or more software components; hardware devices; or external computing devices to attest to validate their identity; create secure channels between multiple enclaves; and/or other like secure operations.
- the processor circuitry 210 is a multi-core processor, the processor circuitry 210 may execute program code from an enclave in parallel with unsecured program code.
- the TEE 115 may be one or more secure enclaves defined using the Intel® Software Guard Extensions (Intel® SGX).
- FIG. 4 shows an arrangement 400 in which a POS transaction may be processed using the vPOS of the present disclosure, in accordance with various other example embodiments.
- arrangement 400 may include computing system 105 A, merchant domain 130 , payment acquiring service 145 , messaging service 160 , network 150 , and cloud trusted execution environment 415 .
- computing system 105 A may include ePOS client 110
- the cloud trusted execution environment 415 may include the vPOS 120 and PCDB 125 .
- the merchant domain may include a cloud POS service 135 and the merchant server 140 (also referred to as “merchant 140 ”).
- the cloud POS service 135 , the merchant server 140 , payment acquiring service 145 , messaging service 160 , and the network 150 as shown in FIG. 4 may be the same or similar to the cloud POS service 135 , the merchant server 140 , payment acquiring service 145 , messaging service 160 , and the network 150 as shown in FIG. 1 .
- the ePOS client 110 , the vPOS 120 , and the PCDB 125 of arrangement 400 may operate in a same or similar fashion as the ePOS client 110 , the vPOS 120 , and the PCDB 125 of arrangement 100 .
- the computing system 105 A does not include a TEE 115 , but instead, the TEE 115 is replaced with the cloud TEE 415 .
- the cloud TEE 415 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services.
- the one or more services provided by the cloud trusted execution environment 415 may include processing POS transactions on behalf of the computing system 105 .
- cloud trusted execution environment 415 may communicate data (i.e., transmit and receive) with ePOS client 110 located in the computing device 105 A via network 150 .
- the cloud trusted execution environment 415 may generate POS transaction messages (which may be communicated to the ePOS client 110 ) in accordance with ISO 8583 and/or any other like standards for encrypting and/or encapsulating data for exchanging electronic transactions made by cardholders using payment cards.
- the ePOS client 110 of the computing system 105 A may also communicate with the cloud trusted execution environment 415 via network 150 .
- the communications between the computing system 105 A and cloud trusted execution environment 415 may be carried out in a same or similar fashion as the communications between the ePOS client 110 and the vPOS 120 as discussed previously with regard to FIGS. 1-3 .
- the communications between the ePOS client 110 and the vPOS 120 may additionally include encrypting and/or enciphering the POS transaction messages according to one or more encryption or enciphering algorithms discussed herein prior to communicating such messages over the network connections 150 .
- the ePOS applet(s) 121 may be web-based widgets or web-based applets that run in a browser, or within a native or hybrid application, operated by the computing system 105 .
- the POS cloud 135 or some other cloud service also hosts or otherwise stores user credentials on behalf of the user in a same or similar manner as discussed with respect to the PCDB 125 .
- the systems that are granted credential access establish and maintain a strong pairing relationship with the cloud POS service 135 (e.g., a secure session or the like).
- a time-based OTP (TOTP) cryptographic method may be used for this purpose.
- FIG. 5 illustrates the components of example computing system 105 A and cloud trusted execution environment 415 with the vPOS 120 , in accordance with various example embodiments.
- computing system 105 A may include processor circuitry 210 , bus 220 , NIC 230 , input/output (I/O) interface circuitry 240 , and memory circuitry 250 .
- cloud trusted execution environment 415 may include a processor 510 , a network interface 530 , and the TEE 115 .
- the trusted execution environment may include memory 350 and processor circuitry 310 .
- computing system 105 A and/or cloud trusted execution environment 415 may include many more components than those shown in FIG.
- a display device e.g., a computer monitor, a touchscreen, etc.
- one or more input devices e.g., a physical keyboard, a touch screen, etc.
- one or more image sensors e.g., a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components.
- a transmitter/receiver or alternatively, a transceiver
- GPU graphics processing unit
- the processor circuitry 210 , the bus 220 , the NIC 230 , the I/O interface circuitry 240 , and the memory circuitry 250 of the computing system 105 A may be the same or similar as the processor circuitry 210 , the bus 220 , the NIC 230 , the I/O interface circuitry 240 , and the memory circuitry 250 of the computing device 10 discussed previously with regard to FIGS. 2-3 .
- the TEE 115 , the memory 350 , the processor circuitry 310 , the bus 320 and the secure I/O interface 340 of the cloud trusted execution environment 415 may be the same or similar to the TEE 115 , the memory 350 , the processor circuitry 310 , the bus 320 and the secure I/O interface 340 of computing system 105 as discussed previously with regard to FIG. 2 .
- the processor 510 may be a same or similar device that operates in a same or similar fashion as the processor circuitry 210
- the network interface 530 may be a same or similar device that operates in a same or similar fashion as the NIC 230 .
- the ePOS client 110 of computing system 105 A may access the vPOS 120 via the network 150 using the NIC 230 to communicate POS transaction messages to the cloud trusted execution environment 415 .
- the network interface 530 may receive the communicated POS transaction messages and provide the POS transaction messages in their encrypted form to the processor 510 , which may then route the POS transaction messages to the secure I/O interface 340 in a same or similar fashion as discussed previously with regard to FIG. 2 .
- the cloud trusted execution environment 415 may also communicate POS transaction messages to the computing system 105 A via the network 150 by using the network interface 530 .
- the cloud trusted execution environment 415 may have a component configuration that is similar to the configuration shown by FIG. 3 .
- computing system 105 A may still include similar components as shown by FIGS. 2 and 5 , such as processor circuitry 210 , bus 220 , NIC 230 , input/output (I/O) interface circuitry 240 , and memory circuitry 250 , each of which may operate in a same or similar manner as discussed with regard to FIG. 2 .
- the TEE 115 may be within a memory device of the cloud trusted execution environment 415 (not shown) and may operate in a same or similar fashion as discussed with regard to FIG. 3 , such as the TEE 115 of the cloud trusted execution environment 415 including one or more secure enclaves defined using the Intel® SGX.
- FIG. 6 illustrates a method 400 for processing a POS transaction, in accordance with various example embodiments.
- FIGS. 7-14 illustrate various user interface stages, each of which corresponds to an operation of method 600 of FIG. 6 having a same numeral.
- each of FIGS. 7-14 illustrate an example user interface that may be displayed on a display device of computing system 105 as each operation of method 600 is performed using computing system 105 .
- the process 600 may be performed by computing system 105 A, wherein the example user interfaces may be displayed on a display device of computing system 105 A as each operation of method 600 is performed using computing system 105 A. While particular examples and orders of operations are illustrated in FIGS.
- FIGS. 7-14 may be generated or otherwise formed in various artistic representations without departing from the example embodiments disclosed herein.
- the computing system 105 may provide a selection of payment options for completing a POS transaction.
- the computing system 105 may display a screen 505 that includes three payment option buttons 710 A-C.
- the screen 505 may be displayed during an ecommerce checkout process for purchasing products and/or services from an online store or a merchant website (e.g., a website associated with merchant 140 ).
- the computing system 105 may be a mobile device including a touchscreen display device, wherein a user may provide an input to the computing system 105 by performing one or more gestures on the touchscreen display device using a finger, a stylus, etc.
- the payment option buttons 710 A-C may be graphical control elements that may be used to provide a selection of one of a plurality of payment options. In such embodiments, the user may press one of the payment option buttons 710 A-C to select a desired payment option.
- a desired payment option e.g., payment option 1 710 A
- the computing system 105 may activate the ePOS client 110 so that the user may access the vPOS 120 to complete the POS transaction.
- the computing system 105 may obtain a unique identifier associated with the computing system 105 and provide the unique identifier to initiate the POS transaction.
- the ePOS client 110 may display a screen 605 that allows a user to enter or input a unique identifier associated with the computing system 105 .
- the screen 805 may include a keypad that may be overlaid on top of the ePOS client 110 (not shown) so as to enable the user of the computing device to enter the unique identifier into the text box 810 .
- Text box 810 may be any type of graphical control element that enables a user of the computing system 105 to input text information to be used for initiating a POS transaction.
- the send button 815 may be a graphical control element that may operate in a same or similar fashion as the payment option buttons 710 A-C, which may be used to submit the unique identifier to the cloud POS service 135 .
- the unique identifier may be a phone number associated with the computing system 105 .
- a user of the computing system 105 may input the phone number into text box 810 , and when the user selects the send button 815 , the ePOS client 110 may provide the phone number to the cloud POS service 135 to initiate the POS transaction.
- the unique identifier may be an email address, a media access control (MAC) address, a domain name, an IP address, and/or any other like unique identifier.
- MAC media access control
- the ePOS client 110 of the computing system 105 may receive a transaction initiation from the cloud POS service 135 .
- the ePOS client 110 may display screen 905 , which includes message 910 that indicates that the computing system 105 has received a POS transaction initiation.
- the transaction initiation may be received via a text message.
- the text message may be a short message service (SMS) message, a multimedia messaging service (MMS) message, or any other type of message that based in cellular network technology.
- SMS short message service
- MMS multimedia messaging service
- the message 910 may be a push notification sent by a messaging service (e.g., messaging service 160 ), a notification in response to a client pull communication, and/or the like.
- the message 910 may be a graphical control element that allows a user of the computing system 105 to initiate processing the POS transaction indicated by the message 910 .
- the ePOS client 110 may provide a user interface that allows the user to select one or more payment credentials to be used for processing the POS transaction.
- the ePOS client 110 of the computing system 105 may provide a selection of a payment credential to be used for processing the POS transaction.
- the ePOS client 110 may display screen 1005 , which includes message 1010 , payment credential buttons 1015 A-C, cancel button 1020 , and authorize button 1025 .
- the message 1010 may indicate a POS transaction amount (e.g., $54.50) and a merchant payee (e.g., merchant 140 ).
- the message 1010 may also include a trademark, symbol, emblem, or other like identifying image associated with the merchant payee.
- the message 1010 may include the same or similar information as message 910 .
- the payment credential buttons 1015 A-C may be graphical control elements that may operate in a same or similar fashion as buttons 710 A-C and 815 .
- the payment credential buttons 1015 A-C may allow a user of the computing system 105 to select a desired payment credential stored in the PCDB 125 .
- Each of the payment credentials represented by payment credential buttons 1015 A-C may include payment information that may be accepted by a merchant payee.
- each of the payment credentials may be associated with a physical credit card, a charge card, a debit card, a prepaid card, a gift card, an automated teller machine (ATM) card, an EBT card, a stored-value card, a fleet card, an electronic check, digital currency wallet, and/or other like physical payment credentials.
- each payment credential may include payment information, such as card number, expiration date, card verification code (CVC) code, digital currency public-private key pairs, cardholder name, billing address, security questions and answers, and the like.
- each payment credential may be associated with an electronic form of payment, without a physical counterpart, such as an electronic script or any other type of substitute for legal tender.
- the payment credentials may include the same or similar information as discussed previously with regard to physical payment cards. Additionally, each payment credential may also include additional information that is required or desired to complete a POS transaction, such as authentication terms and/or transaction terms required by a payment credential, a merchant authentication challenge, a cryptographic client certificate that is unique to a payment credential, and/or other like POS transaction-related data.
- FIG. 10 shows three payment credential buttons 1015 A-C, each of which is associated with a different payment credential.
- the number of payment credential buttons that are displayed in screen 805 may vary according to the number and types of payment credentials accepted by the merchant 140 and/or the number and types of payment credentials that are stored in the PCDB 125 . Therefore, many more (or fewer) payment credentials may be displayed in screen 805 .
- the merchant 140 may only accept payment credentials associated with payment credential buttons 1015 A-C even though the PCDB 125 stores many more payment credentials.
- the PCDB 125 may only include the payment credentials associated with payment credential buttons 1015 A-C, even though the merchant 140 may accept many more payment credentials.
- the POS transaction initiation may indicate a geographic location of the merchant 140
- the ePOS client 110 may obtain payment credentials from within the PCDB 125 that may be accepted within a jurisdiction or other like venue containing the geographic location of the merchant 140 .
- the PCDB 125 may include payment credentials that may be accepted in the United States and payment credentials that may be accepted in France, and if the merchant 140 is located within the United States, the payment credential buttons 1015 A-C may be associated with payment credentials that are issued by issuing banks located within the United States or otherwise accepted by merchants located within the United States, even though the computing system 105 may be located within France.
- the POS transaction initiation may indicate the types of payment credentials accepted by the merchant 140
- the ePOS client 110 may generate screen 1005 to include a number of payment credential buttons 1015 based on a query of the PCDB 125 using the information contained in the POS transaction initiation.
- the ePOS client 110 may submit the query to the vPOS 120 , which may conduct the actual search through the PCDB 125 , while in other embodiments the ePOS client 110 may search through the payment credential DB module 110 independent of the vPOS 120 .
- the ePOS client 110 may submit the query through a secure I/O interface 340 (see e.g., the example embodiments described with regard to FIGS. 2 and 5 ) or may issue one or more SGX commands to query the PCDB 125 (see e.g., the example embodiments described with regard to FIGS. 3 and 5 ).
- the user of the computing system 105 selects one of the payment credentials to be used for processing the POS transaction, such by pressing the payment credential button 1015 A to select payment credential 1 , the user may then select the authorize button 1025 to initiate the vPOS 120 to process the POS transaction using the selected payment credential 1 , or the user of the computing system 105 may select the cancel button 1020 to cancel the POS transaction.
- the ePOS client 110 of the computing system 105 may provide a passcode to authorize use of the selected payment credential.
- the screen 1105 may include message 1110 , keypad 1115 , cancel button 1120 , and authorize button 1125 , which may operate in a same or similar manner as message 1010 , keypad 1015 , cancel button 1020 , and submit button 1025 of FIG. 10 , respectively.
- each of the payment credentials 1015 A-C may require a passcode, password, or other like string of numerals or string of characters to authenticate or otherwise prove an identity of the user of the computing system 105 .
- the passcode used at operation 1100 may be different than a personal identification number (PIN) used to authorize use of a payment credential.
- the passcode may be specific to each payment credential, while in other embodiments, the passcode may be a same passcode used to access the computing system 105 , such as from a lockscreen or login screen of the computing system 105 .
- the PCDB 125 may store a passcode in association with each payment credential.
- the keypad 1115 may include a set of buttons or other like graphical control elements arranged in a block or pad that bear a digit, symbol, or character that enables the user of the computing system 105 to enter the passcode.
- Each of the graphical control elements within the keypad 915 may operate in a same or similar manner as discussed with regard to buttons 710 A-C, 815 , 1015 A-C, 1020 , 1025 , etc.
- the computing system 105 may be a mobile device including a touchscreen display device, wherein the user may press one or more of the graphical control elements of the keypad 1115 using a finger or stylus to enter or input a passcode.
- a gesture-based passcode may be used instead of using keypad 1115 to enter a numeric-based and/or character-based passcode.
- a user may be required to perform one or more touch-gestures in a predetermined sequence to authenticate or otherwise prove an identity of the user.
- the passcode may be entered using a physical keyboard or using mouse point-and-click actions.
- the user of the computing system 105 may then select the authorize button 1125 to submit the passcode to the vPOS 120 to continue processing the POS transaction using the selected one of the payment credentials 1015 A-C. Additionally, the user of the computing system 105 may select the cancel button 1120 to cancel the POS transaction.
- the ePOS client 110 may be operate in conjunction with the Protected Transaction Display (PTD) provided by Intel®, such that the screen 1105 is generated by an application running within the TEE 115 or otherwise outside of the operating system 260 .
- PTD Protected Transaction Display
- the PTD may provide a graphics overlay and randomly placed input options (e.g., buttons of keypad 1115 ), which may protect the selected inputs from malware scraping and/or other like malicious attempts to obtain payment credential-related information.
- biometric information e.g., user voice recognition, facial recognition, eye scan, fingerprint, etc.
- the computing system 105 may execute an application that utilizes one or more biometric sensors, or other like sensors to obtain the biometric information.
- the vPOS 120 of the computing system 105 may begin processing the POS transaction using the selected payment credential when the provided passcode matches a passcode associated with the payment credential.
- the ePOS client 110 may provide the input passcode from operation 1100 to the vPOS 120 , wherein the vPOS 120 compares the input passcode with a passcode associated with the selected payment credential. If the input passcode matches the passcode associated with the selected payment credential, the vPOS 120 may provide the ePOS client 110 with various POS transaction-related data associated with the selected payment credential to be communicated with the cloud POS service 135 .
- the ePOS client 110 may display screen 1205 to indicate to a user of the computing system 105 that the POS transaction is being processed.
- Message 1210 may indicate one or more operations that the computing system 105 is undertaking to process the POS transaction.
- the message 1210 may display information based on the operations that the computing system 105 is performing.
- the screen 1205 may include progress image 1215 , which may be a graphical control element used to visualize a progression of one or more computer operations.
- the progress image 1215 may include a progress bar, a textual representation of the progress in a percent format, a throbber, and/or other like an animated graphical control element that visualizes that one or more computer operations are being performed.
- the ePOS client 110 of the computing system 105 may provide a PIN to authorize use of the selected payment credential.
- the screen 1305 may include message 1310 , keypad 1315 , cancel button 1320 , and submit button 1325 , which may operate in a same or similar manner as message 1010 , keypad 1015 , cancel button 1020 , and submit button 1025 of FIG. 10 , respectively.
- the PIN may be a numeric password that may be used to indicate whether the user of the computing system 105 is authorized to use the selected payment credential.
- the PIN that is input at operation module 1300 may be used to authenticate the user with the cloud POS service 135 and/or the vPOS 120 , whereas the passcode discussed with regard to operation 1000 may be used to access the payment credential located within the TEE 115 .
- the requirement to enter a PIN may be dependent on the purchase price, merchant requirements and/or payment credential requirements. For example, some payment credentials or merchants may not require a user to enter a PIN when a purchase price is under a threshold amount or when the purchase price is not above a threshold amount.
- the user of the computing system 105 may then select the authorize button 1325 to submit the PIN to the cloud POS service 135 to continue processing the POS transaction using the selected payment credential. Additionally, the user of the computing system 105 may select the cancel button 1320 to cancel the POS transaction. Furthermore, in various embodiments, after operation module 1100 the ePOS client 110 may display screen 1205 as shown by FIG. 12 to indicate to the user of the computing system 105 that the POS transaction is currently being processed.
- the ePOS client 110 may be operate in conjunction with the PTD provided by Intel®, such that the screen 1105 is generated by an application running within the TEE 115 or otherwise outside of the operating system 260 .
- the PTD may provide a graphics overlay and randomly placed input options (e.g., buttons of keypad 1115 ), which may protect the selected inputs from malware scraping and/or other like malicious attempts to obtain payment credential-related information.
- biometric information e.g., user voice recognition, facial recognition, eye scan, fingerprint, etc.
- the computing system 105 may execute an application that utilizes one or more biometric sensors, or other like sensors to obtain the biometric information.
- the ePOS client 110 of the computing system 105 may receive acknowledgment of completion of the POS transaction.
- the ePOS client 110 may display screen 1410 , which includes message 1410 and image 1415 .
- the message 1410 and the image 1415 may indicate that the POS transaction was successful (as shown), or may indicate that the POS transaction was unsuccessful (not shown).
- FIG. 15 is a flowchart illustrating an example process 1500 of processing a POS transaction, in accordance with various embodiments.
- the operations of process 1300 will be described as being performed by the computing system 105 utilizing the various modules, as described with respect to FIGS. 1-14 .
- other similar devices such as computing system 105 A as discussed with regard to FIGS. 4-5 , may operate the process 1500 as described below. While particular examples and orders of operations are illustrated in FIG. 15 , in various embodiments, these operations may be re-ordered, broken into additional operations, combined, and/or omitted altogether.
- the vPOS 120 may receive, via the ePOS client 110 , a transaction initiation from a cloud POS service 135 , messaging service 160 , or other device within the merchant domain 130 .
- the transaction initiation may be a SMS message, a MMS message, an email message (or a file attached or otherwise included in an email message), a push notification, an OTT message, and/or any other like message that may be received by the computing system 105 over a wired or wireless network connection.
- the vPOS 120 may receive a selection of a payment credential from the ePOS client 110 .
- the selection of the payment credential may obtained by the ePOS client 110 in a same or similar fashion as discussed with regard to FIGS. 6 and 10 .
- the vPOS 120 may obtain authentication parameters associated with the selected payment credential from within the PCDB 125 .
- the vPOS 120 may obtain the authentication parameters by querying the PCDB 125 according to known database querying methods.
- the vPOS 120 may provide, via the ePOS client 110 , authentication parameters associated with the selected payment credential to the cloud POS service 135 or other device within the merchant domain 130 .
- the authentication parameters may be security measures, defined by the selected payment credential, required for authenticating entities and/or communicating data between entities.
- the vPOS 120 may receive from the cloud POS service 135 , via the ePOS client 110 , a cryptographic merchant certificate based on the authentication parameters.
- the cryptographic merchant certificate may be an application cryptogram or a transaction cryptogram (e.g., referred to herein as a “merchant cryptogram”). Additionally or alternatively, the cryptographic merchant certificate may be a public key certificate, digital certificate, identity certificate, etc. that is unique to the merchant 140 , which may be used to prove that the merchant 140 owns or otherwise possesses a public key.
- the cryptographic merchant certificate may include information indicating the identity of the merchant 140 , such as an IP address and/or domain name of the merchant 140 , a serial number that is unique to the cryptographic merchant certificate, a digital signature used to verify that the cryptographic merchant certificate originated from the merchant 140 , a signature algorithm used to create the digital signature, an issuer identifier such as an IP address and/or domain name, generation date, expiration date, key-usage information, a public key, an algorithm used to hash the public key (also referred to as a “thumbprint algorithm”), a hashed public key (also referred to as a “thumbprint”), and/or any other like information.
- an IP address and/or domain name of the merchant 140 such as an IP address and/or domain name of the merchant 140 , a serial number that is unique to the cryptographic merchant certificate, a digital signature used to verify that the cryptographic merchant certificate originated from the merchant 140 , a signature algorithm used to create the digital signature, an issuer identifier such as an IP address and/
- the cryptographic merchant certificate may be generated and issued to the merchant 140 by a certificate authority in accordance with EMV standards 4.3 and/or other like standards.
- the authentication parameters may define one or more criteria required by the selected payment credential to verify the identity of the merchant 140 .
- the cryptographic merchant certificate may be altered to fulfill one or more of the authentication parameters, or may include additional information required by the authentication parameters to validate the identity of the merchant 140 .
- the vPOS 120 may validate the merchant 140 identity using the cryptographic merchant certificate.
- the vPOS 120 may validate the merchant identity according to known methods, such as by using a public key contained in the cryptographic merchant certificate, obtaining a public key associated with the merchant 140 from a certificate authority (either directly or via the cloud POS service 135 ), validating the public key signature from the cryptographic merchant certificate with the public key retrieved from the certificate authority, confirming the IP address and/or domain name of the merchant 140 listing in the cryptographic merchant certificate, generating a shared symmetric key to be used to encrypt POS transaction data, encrypting the symmetric key with the public key, and sending the encrypted symmetric key and public key back to ensure that only the cloud POS service 135 can decrypt the encrypted symmetric key and public key using a private key.
- the vPOS 120 may validate a digital signature included with the cryptographic merchant certificate according to known methods, which may include obtaining a session key, obtaining a private key associated with the merchant 140 , decrypting the session key using the private key, obtaining an encrypted hash value associated with the merchant 140 , obtaining a public key associated with the merchant 140 , decrypting the encrypted hash value using the public key, comparing the decrypted hash value with the calculated hash value, and validating the identity of the merchant 140 if the decrypted hash value matches the calculated hash value.
- known methods may include obtaining a session key, obtaining a private key associated with the merchant 140 , decrypting the session key using the private key, obtaining an encrypted hash value associated with the merchant 140 , obtaining a public key associated with the merchant 140 , decrypting the encrypted hash value using the public key, comparing the decrypted hash value with the calculated hash value, and validating the identity of the merchant 140 if the decrypted hash value matches
- the vPOS 120 may generate transaction data upon properly validating the merchant 140 .
- the transaction data may include transaction terms required by the selected payment credential, a cryptographic client certificate, and an authentication challenge.
- the cryptographic client certificate may be an application cryptogram or a transaction cryptogram (e.g., referred to herein as a “client cryptogram”).
- the transaction terms may include authorization information required by the selected payment credential to authorize payment for the POS transaction.
- authorization information may indicate whether the user of the computing system 105 is required to enter a PIN, and in some embodiments, the requirement to enter a PIN may be dependent on the purchase price or other like criteria. For example, some payment credentials may not require a user to enter a PIN when a purchase price is under a threshold amount or when the purchase price is not above a threshold amount.
- the vPOS 120 may provide, via the ePOS client 110 , the transaction data to the cloud POS service 135 .
- the vPOS 120 may encrypt the transaction data using an RSA encryption algorithm, a triple data encryption algorithm (3DES), a secure hash algorithm (SHA), a format preserving encryption algorithm, elliptic curve cryptography, an Advanced Encryption Standard (AES) algorithm, and/or according to any other type of encryption method.
- the cloud POS service 135 may solicit a PIN from the ePOS client 110 .
- the cryptographic client certificate may be validated in a same or similar manner as discussed previously with regard to validating the merchant 140 identity using the cryptographic merchant certificate.
- the vPOS 120 may receive, via the ePOS client 110 , updated transaction terms from the cloud POS server 135 .
- the updated transaction terms may be a stricter version of the transaction terms required by the merchant 140 and/or the payment acquiring service 145 and the transaction terms provided by the vPOS 120 at operation 1540 .
- the updated transaction terms may include transaction terms that are common to both the transaction terms required by the selected payment credential and the transaction terms required by the merchant 140 (or required by the payment acquiring service 145 ), as well as any transaction terms that are required by the selected payment credential or the merchant 140 /payment acquiring service 145 that are not included in the transaction terms of the other entity.
- the updated transaction terms may require a user to enter a PIN for a POS transaction having a payment amount that is more than $25.
- the selected payment credential requires a user to enter a PIN and a cardholder birthdate for POS transactions that are more than $50
- the merchant 140 only requires a user to enter a PIN for POS transactions that are more than $50
- the updated transaction terms may require a user to enter a PIN and a cardholder birthdate for transaction that are more than $50.
- the vPOS 120 may accept or deny the updated transaction terms, wherein the vPOS 120 may process the POS transaction according to the transaction terms delineated by the selected payment credential if the vPOS 120 denies the updated transaction terms, or the vPOS 120 may process the POS transaction using the updated transaction terms if the vPOS 120 accepts the updated transaction terms.
- the vPOS 120 may generate and encrypt payment data.
- the payment data may be generated and encrypted in response to properly validating a PIN and/or other like security information as required by the updated transaction terms.
- the payment data may include transaction settlement authorization information (e.g., billing information such as payment amount, currency type, account number, billing/payment address, shipping address, and/or other like cardholder data) a digital signature associated with the payment credential and/or the computing system 105 , and/or other like information.
- transaction settlement authorization information e.g., billing information such as payment amount, currency type, account number, billing/payment address, shipping address, and/or other like cardholder data
- digital signature associated with the payment credential and/or the computing system 105 , and/or other like information.
- the payment data may be encrypted using an RSA encryption algorithm, a triple data encryption algorithm (3DES), a secure hash algorithm (SHA), a format preserving encryption algorithm, elliptic curve cryptography, an Advanced Encryption Standard (AES) algorithm, and/or according to any other type of encryption method.
- the vPOS 120 may provide, via the ePOS client 110 , the encrypted payment data to the cloud POS service 135 .
- the computing system 105 may proceed back to operation 1505 to receive, via the ePOS client 110 , a transaction initiation from the cloud POS service 135 .
- FIG. 16 is a flowchart illustrating an example process 1400 of processing a POS transaction, in accordance with various embodiments.
- the operations of process 1600 will be described as being performed by the various elements as described with respect to FIGS. 1-3 .
- other similar devices such as the computing system 105 A as described with regard to FIGS. 4-5 , may operate the process 1600 as described below. While particular examples and orders of operations are illustrated in FIG. 16 , in various embodiments, these operations may be re-ordered, broken into additional operations, combined, and/or omitted altogether.
- the ePOS client 110 may transmit a payment initiation to the merchant 140 .
- operation 1603 may be performed during an ecommerce checkout procedure on a website associated with the merchant 140 .
- the merchant 140 may transmit a payment request to the cloud POS service 135 .
- the cloud POS service 135 may transmit payment information to the messaging service 160 .
- the payment information may include client device identification information (e.g., MAC address of the computing system 105 , IP address of the computing system 105 , and/or any other type of identifier), merchant identification information (e.g., MAC address of the merchant 140 , IP address of the merchant 140 , and/or any other like identifier), a POS transaction amount (e.g., a purchase price), a currency type for the POS transaction, merchant-accepted payment credentials, and/or other like POS transaction-related data.
- the messaging service 160 may transmit the payment information notification to the ePOS client 110 .
- the ePOS client 110 may enumerate the payment credentials.
- the ePOS client 110 may query the PCDB 125 via the vPOS 120 to obtain a list of one or more payment credentials stored in the PCDB 125 that match the merchant-accepted payment credentials contained in the payment information notification.
- the ePOS client 110 may receive a selection of the one or more enumerated payment credentials, and may provide the selection of the one or more enumerated payment credentials to the vPOS 120 .
- the vPOS 120 may obtain one or more authentication parameters and/or other like information associated with the selected payment credential from the PCDB 125 .
- the authentication parameters may be security measures, defined by the selected payment credential, that are required for authenticating entities and/or communicating data between entities.
- the vPOS 120 may provide authentication parameters to the ePOS client 110 , which in turn may transmit the authentication parameters to the cloud POS service 135 .
- the cloud POS service 135 may transmit merchant parameters and a merchant certificate to the ePOS client 110 , which in turn may provide the merchant parameters and the merchant certificate to the vPOS 120 .
- the merchant parameters may be security measures, defined by the merchant 140 and/or the payment acquiring service 145 , that are required for authenticating entities and/or communicating data between entities.
- the stricter security requirements between the authentication parameters and the merchant parameters may be used to authenticate entities, encrypt payment data, encode data packets containing the payment data, and/or the like.
- the vPOS 1430 may validate the merchant certificate and the merchant parameters. Upon properly validating the merchant certificate and the merchant parameters, at operation 1633 , the vPOS may provide transaction terms, an authentication challenge and a cryptographic client certificate to the ePOS client 110 , which in turn may transmit the transaction terms, the authentication challenge and the cryptographic client certificate to the cloud POS server 135 .
- the cloud POS service 135 may validate the cryptographic client certificate and decrypt the authentication challenge. Upon properly decrypting the authentication challenge and properly validating the cryptographic client certificate, at operation 1639 , the cloud POS service 135 may transmit a PIN solicitation to the ePOS client 110 , and in response, the ePOS client 110 may transmit an inputted PIN to the cloud POS service 135 . At operation 1642 , the cloud POS service 135 may generate a PIN block based on the PIN received during the PIN solicitation. In various embodiments, the user may be required to enter a PIN in order to authorize use of the selected payment credential for the POS transaction.
- the PIN may be issued to the user by an issuer of the payment credential and may be used to authenticate the user's identity.
- the cardholder is usually required to enter their PIN into a standalone physical POS terminal, the standalone physical POS terminal encodes the PIN into a PIN block and sends the PIN block to the merchant domain 130 for payment processing.
- the payment credential is a smart card that includes a EMV chip
- the cardholder is usually required to enter their PIN into the standalone physical POS terminal, and the standalone physical POS terminal sends the PIN to the to the smart card to check if the PIN is correct, wherein the smart card sends the result to the terminal so that the transaction continues if the PIN is correct.
- the PIN when the user of the computing system 105 enters a PIN, the PIN may be encoded into a PIN block to protect the PIN during transmission between the ePOS client 110 and the cloud POS service 135 .
- the PIN may be enciphered/deciphered and communicated according to ISO 9564, one or more EMV standards, and/or any other like standard.
- the PCDB 125 may store a PIN associated with the selected payment credential, and when the user of the computing system 105 enters a PIN, the entered PIN may be checked against the stored PIN.
- the PIN may not be required to be enciphered when shared between the ePOS client 110 and the vPOS 120 , which may reduce the amount of computational resources used for processing the POS transaction. It should be noted that in other embodiments, other types of authentication methods may be used instead of, or in addition to using a PIN to authorize use payment credentials.
- the cloud POS service 135 may transmit the ciphered PIN and updated transaction terms to the ePOS client 110 , which in turn, may provide the ciphered PIN and the updated transaction terms to the vPOS 120 .
- the vPOS 120 may verify the PIN and digitally sign the updated transaction terms.
- the vPOS 120 may generate and encrypt payment data.
- the payment data may be encrypted according to EMV standards.
- the vPOS 120 may provide the encrypted payment data to the POS UI, which in turn, may transmit the encrypted payment data to the cloud vPOS 135 , which in turn, may transmit the encrypted payment data to the acquirer 145 .
- the acquirer 145 may transmit a payment status message to the cloud POS service 135 .
- the cloud POS service 135 may transmit a payment status message to the merchant 140 .
- the merchant 140 may transmit a payment confirmation to the ePOS client 110 .
- Example A01 includes a computer-implemented method for processing a point of sale (POS) transaction.
- the method may comprise receiving, by a virtual POS terminal within a trusted execution environment of a cloud trusted execution environment, a transaction initiation from a network element via a POS user interface (UI) module (or “POS client”) wherein the transaction initiation indicates the POS transaction and one or more payment options to be used for processing the POS transaction; receiving, by the virtual POS terminal from the ePOS client, a selection of a payment credential matching one of the one or more payment options; obtaining, by the virtual POS terminal, the selected payment credential from within a payment credential storage unit located in the trusted execution environment; validating, by the virtual POS terminal, a merchant domain associated with the transaction initiation; encrypting, by the virtual POS terminal, payment data when the merchant domain is properly validated; and providing, by the virtual POS terminal, the encrypted payment data to the ePOS client wherein the ePOS client communicates the encrypted payment data to the network element.
- Example A02 includes the method of the preceding example, and/or according to any example disclosed herein, wherein the payment credential storage unit stores a plurality of payment credentials and wherein obtaining the selected payment credential comprises obtaining one of the plurality of payment credentials.
- Example A03 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the selected payment credential defines authentication parameters required to validate the merchant identity and process the POS transaction using the payment credential, and the method further comprises providing the authentication parameters to the ePOS client, wherein the ePOS client is to provide the authentication parameters to the network element.
- Example A04 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, via the ePOS client, a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, wherein the validating comprises decrypting the cryptographic merchant certificate; generating transaction data upon validation of the merchant domain, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge; and encrypting the transaction data.
- Example A05 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, from the network element via the ePOS client, a PIN block; deciphering the PIN block; and upon properly deciphering the PIN block, generating the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example A06 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the payment credential storage unit stores a plurality of passcodes in association with a corresponding one of a plurality of payment credentials, wherein each of the plurality of passcodes is to be entered to authorize use of the corresponding one of the plurality of payment credentials, and the selected payment credential is one of the plurality of payment credentials, and the method further comprises providing an indication to the ePOS client to generate a UI for inputting passcodes; receiving an input passcode from the ePOS client; determining whether the input passcode is equal to a passcode stored in association with the selected payment credential; and authorizing the selected payment credential to be used for processing the POS transaction when the input passcode is determined to be equal to the passcode stored in association with the selected payment credential.
- Example A07 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein receiving a transaction initiation comprises receiving a transaction initiation that includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example A08 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the receiving of a transaction initiation, the receiving of a selection of a payment credential, the obtaining, the validating, the encrypting and the providing are performed by the virtual POS terminal operating on a secure processor of the trusted execution environment, with the ePOS client being an only interface communicatively coupled with the virtual POS terminal.
- Example A09 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, by the ePOS client, the transaction initiation via a text message or a messaging service message that includes a unique identifier of the computing device provided by a user of the computing device.
- Example B01 includes a computing device first means to receive a transaction initiation, and provide a selection of a payment credential to be used to process a POS transaction.
- the computing device comprises a second means, communicatively coupled with the first means, to process the POS transaction in response to the selection of the payment credential.
- the second means comprises a third means to store the selected payment credential; and a fourth means to validate a merchant associated with the transaction initiation, process the POS transaction using the selected payment credential to generate payment data, and encrypt the payment data.
- the first means is further to receive the encrypted payment data from the fourth means, and communicate the encrypted payment data to a network element.
- Example B02 includes the computing device of the preceding example, and/or according to any example disclosed herein, wherein the first means is to receive a transaction initiation that indicates one or more payment options to be used for the POS transaction, and the selected payment credential is to match one of the one or more payment options.
- Example B03 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to provide a selected payment credential that defines authentication parameters required to validate the merchant identity and the second means is to process the POS transaction using the payment credential, wherein the fourth means is to provide the authentication parameters to the first means, and the first means is to provide the authentication parameters to the network element.
- Example B04 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, and the fourth means is to decrypt the cryptographic merchant certificate to validate the merchant, and upon validation of the merchant, the fourth means is to generate and encrypt transaction data, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge.
- Example B05 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a personal identification number, PIN, solicitation upon proper decryption of the cryptographic client certificate by the network element, and upon proper decryption of the merchant authentication challenge, and in response to PIN solicitation, the first means is to provide a UI to input a PIN, and communicate the input PIN to the network element, wherein the first means is to receive a PIN block and updated transaction terms upon validation of the input PIN.
- PIN personal identification number
- Example B06 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive updated transaction terms that are based on a combination of the payment credential transaction terms and merchant required transaction terms, and provide the updated transaction terms to the fourth means, and the fourth means is to accept or deny the updated transaction terms, process the POS transaction according to the payment credential transaction terms when the fourth means denies the updated transaction terms, and process the POS transaction according to the updated transaction terms when the fourth means accepts the updated transaction terms.
- Example B07 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive updated transaction terms that include transaction terms which are common to both the payment credential transaction terms and merchant required transaction terms, and any transaction terms that are required by one of the payment credential transaction terms or the merchant required transaction terms but not including the other one of the payment credential transaction terms or the merchant required transaction terms, and provide the updated transaction terms to the fourth means, and the fourth means is to process the POS transaction according to the updated transaction terms.
- Example B08 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive PIN block that is enciphered using one of format 0, format 1, format 2, or format 3 in accordance with International Organization for Standardization (ISO) 9564.
- ISO International Organization for Standardization
- Example B09 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the fourth means is to receive the PIN block from the first means, decipher the PIN block, and upon a proper decipher of the PIN block, the fourth means is to generate the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example B10 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a payment confirmation from the merchant when the encrypted payment information is properly decrypted by a payment acquiring service associated with the payment credential.
- Example B11 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store a plurality of payment credentials, and the first means is to display a set of the plurality of payment credentials based on information contained in the transaction initiation.
- Example B12 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store, in association with each of the plurality of payment credentials, information indicating one or more jurisdictions in which each of the plurality of payment credentials are accepted, and the first means is to display ones of the plurality of payment credentials that are accepted within a jurisdiction of the merchant based on a geographic location of the merchant, wherein the information contained in the transaction initiation includes information indicating the geographic location of the merchant.
- Example B13 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store a plurality of passcodes in association with a corresponding one of a plurality of payment credentials wherein the selected payment credential is one of the plurality of payment credentials, and the passcode stored in association with the selected payment credential is to be entered to authorize use of the selected payment credential, and wherein the first means is to provide a UI for input of passcodes.
- Example B14 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a transaction initiation that includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example B15 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the second means comprises another processor, the fourth means is to operate on the other processor to process the POS transaction, and the first means is an only module communicatively coupled with the fourth means.
- Example B16 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the second means is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- the second means is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- CSE Intel® Converged Security Engine
- Example B17 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive the transaction initiation via a text message or a messaging service message wherein a unique identifier of the computing device is provided by a user of the computing device to initialize the transaction initiation.
- Example B18 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the text message is one of a short message service (SMS) message, a multimedia messaging service (MMS) message, an Over-the-Top (OTT) message, a push notification, or an email message.
- SMS short message service
- MMS multimedia messaging service
- OTT Over-the-Top
- Example C01 includes a computing system comprising: application processor circuitry arranged to operate a point of sale (POS) client to: receive a transaction initiation, and provide a selection of a payment credential to be used to process a POS transaction; a trusted execution environment (TEE), the TEE communicatively coupled with the application processor circuitry, the TEE arranged to process the POS transaction in response to the selection of the payment credential, wherein the TEE comprises: a payment credential storage unit arranged to store one or more payment credentials including the selected payment credential; and a virtual POS terminal arranged to validate a merchant associated with the transaction initiation, obtain the selected payment credential from the payment credential storage unit, process the POS transaction using the selected payment credential to generate payment data, and encrypt the payment data, wherein the POS client is arranged to receive the encrypted payment data from the virtual POS terminal; and network interface circuitry communicatively coupled with the application processor circuitry, the network interface circuitry arranged to communicate the encrypted payment data to a merchant system owned or operated
- Example C02 includes the computing system of example C01 and/or some other examples herein, wherein the transaction initiation indicates one or more payment options to be used for the POS transaction, and the selected payment credential is to match one of the one or more payment options.
- Example C03 includes the computing system of examples C01-C02 and/or some other examples herein, wherein the POS client is arranged to provide a selected payment credential that defines authentication parameters required to validate a merchant identity of the merchant and the trusted execution environment is to process the POS transaction using the payment credential, wherein the virtual POS terminal is arranged to provide the authentication parameters to the network interface circuitry via the POS client for transmission to the merchant system.
- Example C04 includes the computing system of example C03 and/or some other examples herein, wherein: the POS client is arranged to receive, via the network interface circuitry and the POS client, a cryptographic merchant certificate that is based on the authentication parameters, and the virtual POS terminal is arranged to decrypt the cryptographic merchant certificate to validate the merchant identity, and upon validation of the merchant identity, the virtual POS terminal is arranged to generate and encrypt transaction data, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge.
- Example C05 includes the computing system of example C04 and/or some other examples herein, wherein the POS client is arranged to: receive, via the network interface circuitry and the POS client, a personal identification number (PIN) solicitation upon proper decryption of the cryptographic client certificate by the merchant system; and upon proper decryption of the merchant authentication challenge and in response to PIN solicitation, the POS client is arranged to: cause a UI to input a PIN to be generated and displayed; and provide the input PIN to the network interface circuitry via the POS client for transmission to the merchant system, wherein the POS client is arranged to receive, from the merchant system via the network interface circuitry, a PIN block and updated transaction terms upon validation of the input PIN.
- PIN personal identification number
- Example C06 includes the computing system of example C05 and/or some other examples herein, wherein the updated transaction terms are based on a combination of the payment credential transaction terms and merchant required transaction terms, and wherein: the POS client is arranged to provide the updated transaction terms to the virtual POS terminal, and the virtual POS terminal is arranged to accept or deny the updated transaction terms, process the POS transaction according to the payment credential transaction terms when the virtual POS terminal denies the updated transaction terms, and process the POS transaction according to the updated transaction terms when the virtual POS terminal accepts the updated transaction terms.
- Example C07 includes the computing system of examples C05-C06 and/or some other examples herein, wherein the updated transaction terms include transaction terms which are common to both the payment credential transaction terms and merchant required transaction terms, wherein any transaction terms are required by one of the payment credential transaction terms or the merchant required transaction terms but not included in the other one of the payment credential transaction terms or the merchant required transaction terms, and wherein: the POS client is arranged to provide the updated transaction terms to the virtual POS terminal, and the virtual POS terminal is arranged to process the POS transaction according to the updated transaction terms.
- Example C08 includes the computing system of examples C05-C07 and/or some other examples herein, wherein the virtual POS terminal is arranged to receive the PIN block from the POS client, decipher the PIN block, and upon a proper decipher of the PIN block, the virtual POS terminal is arranged to generate the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example C09 includes the computing system of example C08 and/or some other examples herein, wherein the POS client is arranged to receive a payment confirmation from the merchant system via the network interface circuitry when the encrypted payment information is properly decrypted by a payment acquiring service associated with the payment credential.
- Example C10 includes the computing system of examples C01-C09 and/or some other examples herein, wherein the payment credential storage unit is arranged to store a plurality of payment credentials, and the POS client is arranged to cause display of a set of the plurality of payment credentials based on information contained in the transaction initiation.
- Example C11 includes the computing system of examples C01-C10 and/or some other examples herein, wherein the payment credential storage unit is arranged to store a plurality of passcodes in association with a corresponding one of a plurality of payment credentials wherein the selected payment credential is one of the plurality of payment credentials, and the passcode stored in association with the selected payment credential is to be entered to authorize use of the selected payment credential, and wherein the POS client is arranged to cause a UI for input of passcodes to be displayed.
- Example C12 includes the computing system of examples C01-C11 and/or some other examples herein, wherein the transaction initiation includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example C13 includes the computing system of examples C01-C12 and/or some other examples herein, wherein the TEE is a tamper-resistant chipset including a secure processor, and the virtual POS terminal is arranged to operate on the secure processor to process the POS transaction, and the POS client is an only module outside of the TEE communicatively coupled with the virtual POS terminal.
- the TEE is a tamper-resistant chipset including a secure processor
- the virtual POS terminal is arranged to operate on the secure processor to process the POS transaction
- the POS client is an only module outside of the TEE communicatively coupled with the virtual POS terminal.
- Example C14 includes the computing system of examples C01-C12 and/or some other examples herein, wherein the TEE is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- TEE is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- CSE Intel® Converged Security Engine
- Example C15 includes the computing system of examples C01-C14 and/or some other examples herein, wherein the network interface circuitry is arranged to receive the transaction initiation via a text message or a messaging service message, wherein a unique identifier of the computing system is provided by a user of the computing system to initialize the transaction initiation.
- Example C16 includes the computing system of example C15 and/or some other examples herein, wherein the text message is a short message service (SMS) message, a multimedia messaging service (MMS) message, an Over-the-Top (OTT) message, a push notification, or an email message.
- SMS short message service
- MMS multimedia messaging service
- OTT Over-the-Top
- Example D01 includes a virtual point of sale (POS) method for processing a POS transaction, the method comprising: receiving a transaction initiation from a merchant system via network interface circuitry of a computing system that includes the computing device and a POS user interface (UI) module operated by an application processor of the computing system, wherein the transaction initiation indicates the POS transaction and one or more payment options to be used for processing the POS transaction; receiving, from the POS client, a selection of a payment credential matching one of the one or more payment options; obtaining the selected payment credential from within a payment credential storage unit located in a trusted execution environment (TEE); validating a merchant domain associated with the transaction initiation, the merchant domain including the merchant system; encrypting payment data when the merchant domain is properly validated; and providing the encrypted payment data to the network interface circuitry via the POS client for communication of the encrypted payment data to the merchant system.
- POS virtual point of sale
- Example D02 includes the method of example D01 and/or some other examples herein, wherein the payment credential storage unit stores a plurality of payment credentials, and wherein obtaining the selected payment credential comprises: obtaining one of the plurality of payment credentials from the payment credential storage unit.
- Example D03 includes the method of examples D01-D02 and/or some other examples herein, wherein the selected payment credential defines authentication parameters required to validate a merchant identity of the merchant domain and process the POS transaction using the payment credential, and the method comprises: providing the authentication parameters to the network interface circuitry via the POS client for transmission to the merchant system.
- Example D04 includes the method of example D03 and/or some other examples herein, further comprising: receiving, from the merchant system via the network interface circuitry and the POS client, a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, wherein validating the merchant domain comprises: decrypting the cryptographic merchant certificate, generating transaction data upon validation of the merchant domain, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge, and encrypting the transaction data.
- Examples D05 includes the method of example D04 and/or some other examples herein, further comprising: receiving, from the merchant system via the network interface circuitry and the POS client, a PIN block; deciphering the PIN block; and generating, upon proper decipher of the PIN block, the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Examples D06 includes the method of examples D01-D05 and/or some other examples herein, wherein the payment credential storage unit stores a plurality of passcodes in association with a corresponding one of a plurality of payment credentials, wherein each of the plurality of passcodes is to be entered to authorize use of the corresponding one of the plurality of payment credentials, and the selected payment credential is one of the plurality of payment credentials, and the method comprises: providing an indication to the POS client to generate and display a UI for inputting passcodes; receiving an input passcode from the POS client; determining whether the input passcode is equal to a passcode stored in association with the selected payment credential; and authorizing the selected payment credential to be used for processing the POS transaction when the input passcode is determined to be equal to the passcode stored in association with the selected payment credential.
- Example D07 includes the method of examples D01-D06 and/or some other examples herein, wherein the transaction initiation includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example D08 includes the method of examples A17-D07 and/or some other examples herein, wherein the computing device is a secure processor of the TEE, and wherein the POS client is to be operated by a host platform of a computing system including the secure processor, and the POS client is an only interface outside of the TEE that is communicatively coupled with the virtual POS terminal.
- Example D09 includes the method of examples D01-D08 and/or some other examples herein, wherein the transaction initiation is a text message or a messaging service message that includes a unique identifier of the computing device provided by a user of the computing device.
- Example Z01 may include an apparatus comprising means to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein.
- Example Z02 may include one or more non-transitory computer-readable media comprising instructions to cause an electronic device, upon execution of the instructions by one or more processors of the electronic device, to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein.
- Example Z03 may include an apparatus comprising logic, modules, or circuitry to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein.
- Example Z04 may include a method, technique, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof.
- Example Z05 may include an apparatus comprising: one or more processors and one or more computer-readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof.
- Example Z06 may include a signal as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof.
- Example Z07 may include a datagram, packet, frame, segment, protocol data unit (PDU), or message as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure.
- Example Z08 may include a signal encoded with data as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure.
- Example Z09 may include a signal encoded with a datagram, packet, frame, segment, protocol data unit (PDU), or message as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure.
- Example Z10 may include an electromagnetic signal carrying computer-readable instructions, wherein execution of the computer-readable instructions by one or more processors is to cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof.
- Example Z11 may include a computer program comprising instructions, wherein execution of the program by a processing element is to cause the processing element to carry out the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
- The present application is a Continuation of U.S. application Ser. No. 14/739,911, filed on Jun. 15, 2015 entitled “VIRTUAL POS TERMINAL METHOD AND APPARATUS”, the contents of which is hereby incorporated by reference in its entirety.
- The present disclosure relates to the technical field of electronic transactions, and in particular, to apparatuses, methods and storage media for providing a virtual point of sale (POS) terminal.
- In today's world of commerce there are two dominant methods of making purchases. One is categorized as “card-present”, where the card holder and payment card are physically present at the time of transaction, and the other is “card-not-present”, where the card holder is not physically present during the transaction. The former transactions typically occur at a physical establishment (e.g., store, restaurant, gas station, etc.), while the latter typically occur during making purchases over the Internet (also referred to as “ecommerce” purchases) or making purchases via phone or mail-order. Card-present transactions typically enjoy far less fraud than card-not-present transactions. This is often attributed to the ability to prove credential authenticity (i.e., authenticity of the payment card being used) and card holder legitimacy (i.e., the individual making the transaction is the card holder or an authorized agent of the card holder). The enforcement of these two attributes is typically the responsibility of a physical point of sale (POS) terminal and/or other like computing device that can verify correctness of the information contained on the card and identity authentication, which is generally a personal identification number (PIN), a card holder signature, and the like.
- Most ecommerce transactions require a user to input payment card information and cardholder identification information into text fields of a web-based user interface. Additionally, most phone-order purchase require customers to recite payment card information and cardholder identification information over the phone. This is because in most card-not-present transactions, the terminal-based authentication methods are usually not available. Furthermore, most current fraud prevention measures for card-not-present transactions, such as typing/reciting the account number contained on the front of a payment card plus other identifying information like a 3-digit cardholder verification value (CVV) on the back of most payment cards, have been demonstrated to not reduce fraud to the level experienced by card-present transactions. Moreover, the attempts to strengthen cardholder presence assurances for card-not-present transactions has resulted in the introduction of online authentication protocols, such as the XML-based 3D Secure (which is also known by various trade names including Visa® Verified by Visa, MasterCard® SecureCode, American Express® SafeKey, and JCP International® J/Secure). These protocols introduce an additional authentication step in the payment checkout process that verifies cardholder identity through the card-issuing bank. However, the additional verification steps introduced by the aforementioned protocols tend to result in customer frustration in the form of online shopping cart abandonment, which may lead to a loss of revenue for ecommerce merchants.
- Accordingly, it may be desirable to bring the user experience and transaction security aspects of a physical POS terminal (i.e., card-present transactions) to online, phone-order, and/or mail-order transactions (i.e., card-not-present transactions). Furthermore, it may be desirable to provide transaction security for card-not-present transactions while reducing a number of steps for providing payment card verification and cardholder authorization.
- Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
-
FIG. 1 illustrates an arrangement for conducting electronic transaction with virtual POS terminal of the present disclosure, in accordance with various example embodiments; -
FIG. 2 illustrates the components of an example computing device having the virtual POS terminal, in accordance with various example embodiments; -
FIG. 3 illustrates the components of another example computing device with the virtual POS terminal, in accordance with various other example embodiments; -
FIG. 4 illustrates an arrangement for conducting electronic transaction with virtual POS terminal of the present disclosure, in accordance with various other example embodiments; -
FIG. 5 illustrates the components of another example computing device and a cloud trusted execution environment with the virtual POS terminal, in accordance with various other example embodiments; -
FIG. 6 illustrates a method of processing a POS transaction using the virtual POS terminal, in accordance with various example embodiments; -
FIGS. 7-14 illustrate stages of performing the method ofFIG. 4 ; -
FIG. 15 illustrates an example process for processing a POS transaction using the virtual POS terminal, in accordance with various embodiments; and -
FIG. 16 illustrates a flow diagram illustrating a POS transaction using the virtual POS terminal, in accordance with various embodiments. - In the following detailed description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustrated embodiments that may be practiced. It is to be understood that other embodiments may be utilized and structural and/or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
- Various operations may be described as multiple discrete actions and/or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed to imply that the various operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiments. Various additional operations may be performed and/or described operations may be omitted in additional embodiments.
- For the purposes of the present disclosure, the phrase “A and/or B” means (A), (B), or (A and B). For the purposes of the present disclosure, the phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C). For the purposes of the present disclosure, the phrase “at least one of A and B” means (A), (B), or (A and B).
- The description may use the phrases “in an embodiment”, or “in embodiments”, which may each refer to one or more of the same or different embodiments. Furthermore, the terms “comprising,” “including,” “having,” and the like, as used with respect to embodiments of the present disclosure, are synonymous. The terms “coupled,” “communicatively coupled,” along with derivatives thereof are used herein. The term “coupled” may mean two or more elements are in direct physical or electrical contact with one another, may mean that two or more elements indirectly contact each other but still cooperate or interact with each other, and/or may mean that one or more other elements are coupled or connected between the elements that are said to be coupled with each other. The term “directly coupled” may mean that two or more elements are in direct contact with one another. The term “communicatively coupled” may mean that two or more elements may be in contact with one another by a means of communication including through a wire or other interconnect connection, through a wireless communication channel or ink, and/or the like.
- As used herein, the term “logic” and “module” may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
- Also, it is noted that example embodiments may be described as a process depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel, concurrently, or simultaneously. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed, but may also have additional steps not included in the figure(s). A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, and the like. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function and/or the main function.
- As disclosed herein, the term “memory” may represent one or more hardware devices for storing data, including random access memory (RAM), magnetic RAM, core memory, read only memory (ROM), magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing data. The term “computer-readable medium” may include, but is not limited to, memory, portable or fixed storage devices, optical storage devices, wireless channels, and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
- Furthermore, example embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine or computer readable medium. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, program code, a software package, a class, or any combination of instructions, data structures, program statements, and the like.
- The term “computer system” as used herein refers to any type interconnected electronic devices, computer devices, or components thereof. Additionally, the term “computer system” and/or “system” may refer to various components of a computer that are communicatively coupled with one another. Furthermore, the term “computer system” and/or “system” may refer to multiple computer devices and/or multiple computing systems that are communicatively coupled with one another and configured to share computing and/or networking resources. As used herein, the term “mobile device” may be considered synonymous to, and may hereafter be occasionally referred to, as a client, mobile, mobile unit, mobile terminal, mobile station, mobile user, user equipment (UE), user terminal, subscriber, user, remote station, access agent, user agent, receiver, etc., and may describe a remote user of network resources in a communications network. Furthermore, the term “mobile device” may include any type of wireless device such as consumer electronics devices, smart phones, tablet personal computers, wearable computing devices, personal digital assistants (PDAs), laptop computers, and/or any other like physical computing device that is able to connect to a communications network.
- As used herein, the term “network element”, may be considered synonymous to and/or referred to as a networked computer, networking hardware, network equipment, router, switch, hub, bridge, gateway, and/or other like device. The term “network element” may describe a physical computing device of a wired or wireless communication network that is configured to host a client device and the like. Furthermore, the term “network element” may describe equipment that provides radio baseband functions for data and/or voice connectivity between a network and one or more users.
- Example embodiments disclosed herein provide systems and methods for bringing a user experience and transaction security aspects of a physical point of sale (POS) terminal or other like card-present transactions to card-not-present transactions, such as online transactions, phone-order transactions, and/or mail-order transactions. Embodiments provide a trusted eCommerce payment mechanism, referred to as a virtual POS (vPOS) terminal or eCommerce POS (ePOS) terminal that combines secure payment credentials containment with capabilities to authenticate the owner of the credentials, and asserts the credentials during an online transaction. The embodiments herein models EMV Chip and personal identification number (PIN) transactions, using the concept of an online PIN to effect release of provisioned chip data. Allows card-present information to be presented at time of transaction, which may include, for example, a Primary Account Number (PAN) (or tokenized PAN), discretionary data, one or more cryptograms (e.g., application cryptogram (AC), Application Authentication Cryptogram (AAC), Authorization Request Cryptogram (ARQC), Authorization Response Cryptogram (ARPC), etc.), and the like. The example embodiments allow users to remain in control of payment credentials during card-not-present transactions. For example, most online payment methods require users to entrust their account and/or banking information to an online service provider, such as an online payment system, online money transfer service, digital wallet service, and/or other like entities. Unlike the typical online payment methods, the example embodiments allow users to maintain their own payment credentials, whether stored locally with a trusted execution environment of their own computing device or stored within a trusted cloud computing environment, and provide the payment credentials to a merchant in encrypted form (or without having to share the payment credentials in an unencrypted form). Furthermore, unlike digital wallet services (e.g., ApplePay®, Visa Checkout®, etc.), various example embodiments, may not require a server-side digital wallet (i.e., a thin wallet) to be created and/or maintained on a server for each user.
- The example embodiments provide a trusted execution environment on, or embedded in, a computing device, which includes a virtual POS terminal instead of requiring a separate standalone physical POS terminal for swiping payment cards and/or entering payment card information. In various embodiments, the trusted execution environment may include one or more processors, which are separate from an application processor of the computing device, to process POS transactions. In other embodiments, the trusted execution environment may be provided as a new mode of execution on an existing processor. In some embodiments, the trusted execution environment may be provided as a cloud computing service that is separate from the user's computing devices.
- In various example embodiments, the trusted execution environment also includes the various payment credentials, which may indicate one or more methods of payment associated with a user, such as credit card information, bank account information, and the like. When a merchant initiates a payment request, such as after a user performs an online checkout process, the virtual POS terminal in the trusted execution environment may perform various tasks that a standalone physical POS terminal may perform, such as PIN authorization, transaction settlement authorization, and the like. In addition to the typical functionality of a standalone physical POS terminal, example embodiments provide that each payment credential may indicate its own requirements for authenticating entities and/or processing a POS transaction.
- Furthermore, according to various example embodiments, the virtual POS terminal may be accessible through a POS user interface (UI) or POS client. Additionally, a merchant may have its own POS system that allows the user or merchant to enter the user's cellphone number to initiate a transaction. For example, a web-based store may provide a UI that allows a user to directly access the virtual POS terminal via the user's own POS UI that is rendered in the user's web browser. In this way, the user may be able to provide payment using one or more payment credentials without entering payment information and/or authentication information into a web-based UI. By way of another example, a telephone or mail-order merchant may acquire payment from a user by entering the user's cellphone number into their own POS system rather than requiring the user to dictate payment card information and/or cardholder authentication information over the phone. The merchant's POS system may either call the user's cellphone or send a text message to the cellphone, which may initiate the POS transaction, and the user may use the POS UI to select a payment credential for processing the POS transaction.
- Referring now to the figures.
FIG. 1 shows anarrangement 100 in which a point of sale (POS) transaction may be processed using thevirtual POS terminal 120 of the present disclosure, in accordance with various example embodiments. As shown inFIG. 1 ,arrangement 100 may includecomputing system 105,merchant domain 130,payment acquiring service 145,messaging service 160, and network connections (or “links,” “channels,” or the like) 150 (e.g., including links 150-1 to 150-7 inFIG. 1 ). Additionally,computing system 105 may include POS user interface (UI)module 110 and Trusted Compute resources (e.g., trusted execution environment (TEE) 115). The trusted execution environment may include virtual POS terminal 120 (also referred to as “vPOS 120,” “ePOS 120,” or the like) and payment credential database (DB) 125. As used herein, a “POS terminal” may also be referred to as a Card Acceptance Device (CAD) or Payment Acceptance Device (PAD). Furthermore, the merchant domain may include acloud POS service 135 and a merchant service provider platform 140 (also referred to as “merchant 140”). -
Computing system 105 may be physical hardware device capable of communicating with a one or more other hardware computing devices (e.g.,merchant 140, one or more devices associated withcloud POS service 135, one or more associated databases (not shown), and the like) via a communications interface, such thatcomputing system 105 is able to receive one or more signals and/or data streams from the other hardware computing devices. As shown byFIG. 1 , thecomputing system 105 includes, inter alia, aTEE 115. An Execution Environment (EE), as used herein, is a set of hardware and software components providing facilities that support running of client applications (CAs). As examples, an EE may include a hardware processing device; a set of connections between the processing device and other hardware resources; a physical volatile memory; a physical non-volatile memory; and peripheral interfaces. In addition to theTEE 115, thecomputing system 115 also includes a Rich EE (REE), which is an execution environment comprising at least one Rich (device) operating system (OS) and one or more other components of the computing system 105 (e.g., SoCs, other discrete components/hardware elements, firmware, and software) that execute, host, and support the rich OS. The rich OS a high-level OS with a rich capability set that allows consumers/users to download and run applications. Examples of rich operating systems include Microsoft® Windows®, Apple® macOS® and iOS®, Google® Android®, Linux®, Symbian OS®, and the like. In other words, the REE includes one or more discrete elements included in thecomputing system 105 excluding a secure element and/or theTEE 115. TheTEE 115 is an EE that runs alongside but is isolated from the REE. TheTEE 115 has security capabilities and meet certain security related requirements. TheTEE 115 protectsTEE 115 assets from general software attacks, defines rigid safeguards as to data and functions that a program can access, and resists a set of defined threats. -
Computing system 105 may include one or more memory devices and one or more processors (not shown).Computing system 105 may be designed to sequentially and automatically carry out a sequence of arithmetic or logical operations; equipped to record/store digital data on a machine readable medium; and transmit and receive digital data via one or more network devices.Computing system 105 may be a desktop personal computer (PC), a laptop PC, a cellphone and/or smartphone, a tablet personal computer, a wearable computing device, a video game console, a digital media player, an in-vehicle infotainment (IVI) and/or an in-car entertainment (ICE) device, a handheld messaging device, a personal data assistant, an electronic book reader, an augmented reality device, and the like. It should be noted that thecomputing system 105 may be any physical or logical device capable of recording, storing, and/or transferring digital data via a connection to a network element. - In various embodiments, the
computing system 105 may include a network interface (e.g.,network interface circuitry 230 described with regard toFIGS. 2-3 ) configured to connectcomputing system 105 to one or more other hardware computing devices wirelessly via a transmitter and a receiver (or optionally a transceiver) and/or via a wired connection using a communications port.Computing system 105 is configurable or operable to send/receive data to/from one or more other hardware computing devices, and/or network devices, such as a router, switch, hub, or other like network devices, via the network interface using the wired connection and/or the wireless connection.Computing system 105 is configurable or operable to obtain a POS transaction initiation from a network element via the network interface, and process a POS transaction based on the POS transaction initiation according to the example embodiments described herein. In embodiments where thecomputing system 105 includes a transmitter/receiver (or alternatively, a transceiver),computing system 105 is configurable or operable to communicate (i.e., send/receive data to/from a network element and/or other like devices) over thenetwork connections 150 in accordance with one or more wireless communications protocols and/or one or more cellular phone communications protocols. For example,computing system 105 is configurable or operable to operate in accordance with the Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth and/or Bluetooth Low Energy (BLE), Wireless Fidelity (Wi-Fi) such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11ac, IEEE 802.11ad, and/or IEEE 802.11n, voice over Internet Protocol (VoIP), Wi-MAX, Long Term Evolution (LTE), and/or any other wireless communication protocols, including RF-based, optical, and so forth. -
Computing system 105 may include one or more sensors, such as an accelerometer, gyroscope, gravimeter, magnetometer, and/or another like devices. The one or more sensors is configurable or operable to detect the one or more gestures. The one or more gestures may include various touches (or combination of touches) applied to a touchscreen of thecomputing system 105, one or more spatial coordinates (or changes in spatial coordinates) of positions and/or orientations of thecomputing system 105. In such embodiments, thecomputing system 105 may track a timing and/or sequence that one or more gestures are performed, which may be used as a gesture-based passcode or password for authenticating the user's identity. In some embodiments, the one or more sensors may include a microphone configured to obtain one or more voice commands issued by a user of thecomputing system 105, wherein the voice commands are used to authenticate the user's identity. In such embodiments, the verbal commands may be a passcode and/or thecomputing system 105 may perform voice recognition to authenticate the user. In some embodiments, the one or more sensors may include one or more biometric sensors, such as an infrared heart rate monitoring device, a fingerprint or handprint scanning device, a face and/or an eye scanning device (e.g., a camera or other like image sensor), an electromyography (EMG) device for detecting electrical patterns associated with a user's muscular contractions, an electroencephalograph (EEG) device for measuring and/or recording electrical signals produced by a user's brain, and the like. In such embodiments, biometric data detected or sensed by the one or more biometric sensors may be used to authenticate a user's identity. -
Computing system 105 is configurable or operable to run, execute, or otherwise operate one or more applications. According to various example embodiments, the one or more applications may include theePOS client 110, the modules within theTEE 115, and/or theTEE 115 itself. The one or more applications may include native applications, web applications, and hybrid applications. The native applications may be used for operating thecomputing system 105, such as using a camera or other like sensor of thecomputing system 105, GPS functionality of thecomputing system 105, an accelerometer of thecomputing system 105, cellular phone functionality of thecomputing system 105, and other like functions of thecomputing system 105. Native applications may be platform or operating system (OS) specific. Here, the term “platform” may refer to an EE within a device or computing system, such as the REE, a secure element (SE), orTEE 115. Native applications may be developed for a specific platform using platform-specific development tools, programming languages, and the like. Such platform-specific development tools and/or programming languages may be provided by a platform vendor. Native applications may be pre-installed oncomputing system 105 during manufacturing, or provided to thecomputing system 105 by an application server (not shown) via a network. Web applications are applications that load into a web browser of thecomputing system 105 in response to requesting the web application from a service provider (e.g., web server 135). The web applications may be websites that are designed or customized to run on a mobile device by taking into account various mobile device parameters, such as resource availability, display size, touchscreen input, and the like. In this way, web applications may provide an experience that is similar to a native application within a web browser. Web applications may be any server-side application that is developed with any server-side development tools and/or programming languages, such as PHP, Node.js, ASP.NET, and/or any other like technology that renders HTML. Hybrid applications may be a hybrid between native applications and web applications. Hybrid applications may be a standalone, skeletons, or other like application containers that may load a website within the application container. Hybrid applications may be written using website development tools and/or programming languages, such as HTML5, CSS, JavaScript, and the like. Hybrid applications use browser engine of thecomputing system 105, without using a web browser of thecomputing system 105, to render a website's services locally. Hybrid applications may also access mobile device capabilities that are not accessible in web applications, such as the accelerometer, camera, local storage, and the like. According to various embodiments, theePOS client 110 may be a native application, web application, or a hybrid application. In many embodiments, theTEE 115 may be a native application, which may operate in conjunction with a specialized computer processing device. - There are two client-side peers to the
cloud ePOS service 135. One peer is theePOS client 110, which includes or provides the ePOS user interface (UI) that renders the online ePOS experience and directs user interactions with the ePOS system. The other peer is a secure vPOS terminal 120 that interfaces with the embedded payment credentials to obtain their contents and interacts with thecloud ePOS service 135 to interpret signed authentication assertions (e.g., over connections 150-1 and 150-2). Once the user has been successfully authenticated, thevPOS terminal 120 encrypts the obtained payment credentials and transaction signatures for subsequent transmission to upstream payment processors, such as the payment acquirer service 145 (e.g., via connections 150-2 and 150-7). - The
client system 105 may operate theePOS client 110 may be one or more software modules that operate in conjunction with one or more hardware devices (e.g.,processor 210 as described with regard toFIGS. 2-3 ) to provide a user of thecomputing system 105 with the ability to process a POS transaction using thecomputing system 105. In this way, the user of thecomputing system 105 may use theePOS client 110 to interact with thevPOS 120 within theTEE 115. TheePOS client 110 may be a client application (or “client”) capable of accessing dynamic content, for example, by sending appropriate HTTP messages or the like, and in response, one or more server-side application(s) may dynamically generate and provide code, scripts, markup language documents, etc., to theePOS client 110 to render and display graphical objects within theePOS client 110. TheePOS client 110 may be implemented using one or more graphical control elements, graphical icons, visual indicators, and/or text based commands. A collection of some or all of the graphical objects may be a webpage or application (app) comprising GUIs including GCEs for accessing and/or interacting with a service provider system/platform such asmessaging service 160,cloud POS service 135, and the like. Additionally or alternatively, the collection of some or all of the graphical objects may comprise GUIs including GCEs for accessing and/or interacting with thevPOS 120 within theTEE 115. The aforementioned server-side applications may be developed with any suitable server-side programming languages or technologies, such as PHP; Java™ based technologies such as Java Servlets, JavaServer Pages (JSP), JavaServer Faces (JSF), etc.; ASP.NET; Ruby or Ruby on Rails; and/or any other like technology that renders HyperText Markup Language (HTML). The applications may be built using a platform-specific and/or proprietary development tool and/or programming languages. UIs and/or GUIs, and their typical functionality are generally well-known, and thus, a further detailed description of the typical functionality ofePOS client 110 is omitted. However, it should be noted that according to various embodiments, theePOS client 110 may be the only element that is outside of the trusted execution environment that is capable of communicating with elements within theTEE 115. For example, theePOS client 110 is configurable or operable to communicate with thevPOS 120 as shown inFIG. 1 and as described with regards toFIGS. 13-14 . In such embodiments, theePOS client 110 may communicate with elements within theTEE 115 according to a security application programming interface (API), one or more software guard extension (SGX) instructions, and the like. Furthermore, theePOS client 110 is configurable or operable to communicate POS transaction related data with thecloud POS service 135 as described with regards toFIGS. 13-14 . - In one example implementation, the
ePOS client 110 may be an HTTP client, such as a “web browser” (or simply a “browser”) capable of sending and receiving HTTP messages to and from web and/or application servers. In another example implementation, theePOS client 110 may be a browser extension or plug-in that operates and/or interacts with an existing browser. Example browsers include WebKit-based browsers, Microsoft's Internet Explorer browser, Microsoft's Edge browser, Apple's Safari, Google's Chrome, Opera's browser, Mozilla's Firefox browser, and/or the like. In another example implementation, theePOS client 110 may be a desktop or mobile application that runs directly on thecomputing system 105 without a browser. - In another example implementation, the
ePOS client 110 may be an individual (e.g., stand-alone) application object that operates independently of other applications and/or interacts with other applications. In these implementations, theePOS client 110 may operate within a security sandbox, VM, container, wrapper, or some other means for isolating theePOS client 110 code runs in isolation from other applications. One or more data containers may also be created within the sandbox, VM, container, wrapper, etc. - In another example implementation, the
ePOS client 110 is a digital wallet application (app), which is an app used to store a user's payment credentials (e.g., cryptographic private keys and/or public keys) that are associated with the user's payment instrument and/or payment credentials. In embodiments, the wallet app may store the user's credentials in thePCDB 125. In some implementations, the wallet app may be a blockchain-based app that stores the user's credentials, and the credentials are associated with a state of a user's account in the blockchain. The wallet app also allows the user to make transactions, where the public key of the public/private key pair allows other wallets to make payments to the wallet app (e.g., using the wallet's app network address, app/wallet identifier, or the like) and the private key of the public/private key pair allows the wallet app spend currency or cryptocurrency stored by the wallet app and/or in the blockchain. When the wallet app is a blockchain app or service, the wallet app enables the user to interact with a blockchain or other decentralized ledger or database. The blockchain app may store public and/or private keys, hash generators, encryption/decryption algorithms, and/or other like elements that can be used to generate blocks to be added to one or more blockchains. The blockchain app may also include modules, logic, program code, etc., that allow the blockchain app to validate other blocks generated by other user systems before appending those blocks to the blockchain. Additionally, where the Trusted Compute resources is/are implemented using secure enclaves (discussed infra), the wallet app can also interface directly with the secure enclave of theePOS applet 121 via the ePOS acceptance driver 122 (discussed infra), a private transaction manager, or other like entity, and/or interface with on-chain or off-chain enclaves. The private transaction manager may be a subsystem of a specific blockchain platform/system that implements privacy and permissioning, and/or validates blocks for inclusion in a blockchain. Off-chain transactions involve the movement of value outside of a blockchain, while on-chain transactions modify the blockchain and depend on the blockchain to validate transactions. Off-chain transactions rely on other mechanisms to record and validate transactions, such as payment channels (e.g., Hashed Timelock Contracts (HTLCs) or Lightning Network), sidechains, credit/debit based solutions, trusted third parties, and the like. - The
computing system 105 includes Trusted Compute resources that preserve data confidentiality, execution integrity and enforces data access policies. The Trusted Compute resources may be used to store cryptographic keys, digital certificates, credentials, payment credentials, and/or other sensitive information (e.g., personally identifying information (PII)), and could be used to operate some aspects of one or more applications. The Trusted Compute resources can be implemented using software-based cryptographic security guarantees (e.g., Zero-Knowledge Proofs), user-level or OS-level isolated instances (e.g., “containerization”) or virtualization (e.g., using VMs), Trusted Multi-Party-Compute (MPC) resources, or usingTEE 115. In either implementation, applications running on the REE/host platform may be capable of interfacing with the Trusted Compute resources using a suitable (secure) application programming interface (API). Where the Trusted Compute resources is/are implemented using secure enclaves, the applications running on the REE can also interface directly with the enclave of a secure application or other like entity, and/or interface with other enclaves. - In some embodiments, the
TEE 115 may be a physical hardware device that are separate from other components of the computing system 105 (e.g., as described with regard toFIG. 2 ). In these embodiments, theTEE 115 is a hardware-based technology that executes only validated tasks, produces attested results, provides protection from malicious host software, and ensures confidentiality of shared encrypted data. In various embodiments,TEE 115 may include one or more physically tamper-resistant embedded chipset including processors (e.g., trusted processing core(s), trusted crypto accelerators, etc.) and memory devices (e.g., trusted RAM, trusted ROM, etc.) that communicate with an REE (e.g., host platform, application circuitry, etc.) of thecomputing system 105. In such embodiments, applications that are not within the TEE 115 (e.g., ePOS client 110) may communicate with the physically tamper-resistant embedded processors and memory devices via a security (secure) API or some other suitable interface such as those discussed in various GlobalPlatform® TEE API standards such as GlobalPlatform, TEE Client API Specification v1.0 (July 2010); GlobalPlatform, TEE Internal Core API Specification v1.2.1 (May 2019); GlobalPlatform, TEE Secure Element API v1.1.1 (November 2016); and the like. In various embodiments, theTEE 115 may include a secure cryptoprocessor, which is a dedicated computer on a chip or a microprocessor designed to secure hardware by integrating cryptographic keys into devices and/or components of thecomputing system 105. In such embodiments, theTEE 115 may operate in accordance with the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) specification ISO/IEC 11889:2009. In some embodiments, theTEE 115 may have an architecture in accordance with the GlobalPlatform, TEE System Architecture standard version 1.2 (November 2018).Examples TEEs 115 may include a Desktop and mobile Architecture Hardware (DASH) compliant Network Interface Card (NIC), Intel® Management/Manageability Engine, Intel® Converged Security Engine (CSE) or a Converged Security Management/Manageability Engine (CSME), a financial-grade Secure Element microcontroller, Trusted Execution Engine (TXE) provided by Intel® each of which may operate in conjunction with Intel® Active Management Technology (AMT) and/or Intel® vPro™ Technology; AMD® Platform Security coProcessor (PSP), AMD® PRO A-Series Accelerated Processing Unit (APU) with DASH manageability, Apple® Secure Enclave coprocessor; IBM® Crypto Express3®, IBM® 4807, 4808, 4809, and/or 4765 Cryptographic Coprocessors, IBM® Baseboard Management Controller (BMC) with Intelligent Platform Management Interface (IPMI), Dell™ Remote Assistant Card II (DRAC II), integrated Dell™ Remote Assistant Card (iDRAC), and the like. An example of such embodiments is shown and described with regards toFIG. 2 . - The
TEE 115 is not constrained to an embedded platform or subsystem, and in various embodiments, theTEE 115 may be implemented as access card circuitry including, for example, an integrated circuit card (ICC) (also referred to as a “chip card” or “smart card”), universal ICC (UICC), Subscriber Identity Module (SIM) card, embedded UICC (eUICC), a form-factor secure element (e.g. SD cards, smart microSDs, USB tokens, etc.), and/or the like. In these embodiments, the access card circuitry contains theePOS acceptance driver 122 and ePOS applet 121 (discussed infra). Such embodiments allow the same payment instrument to be used in multiple platforms such as desktop computers, laptops, tablets, smartphones, and the like. In some implementations, the access card is removable or detachable security circuitry (e.g., smart card, UICC, SIM card, etc.), and theclient system 105 may include a card reader or card slot that is an input device configured to accept the access card (e.g., usually card shaped) and reads data from the access card's storage medium. Such access cards are usually implemented as a plastic (e.g., PVC) card containing semiconductors and embedded contacts, which can be inserted into and communicatively coupled with corresponding contacts in the card reader. In some implementations, the access card circuitry is non-removable access card (e.g., eUICC, SoC-based secure element, etc.), where the access card circuitry is embedded on a motherboard of thecomputing system 105 or on some other chip or component in thecomputing system 105. In either implementation, the access card may perform various access card functions, such as those defined by ISO/IEC 7816, European Telecommunications Standards Institute (ETSI) technical standard (TS) 102 221, ETSI TS 102 225, ETSI TS 102 226, ETSI TS 102 241, ETSI TS 102 600, 3GPP TS 31.101, 3GPP TS 31.116, 3GPP TS 31.121, 3GPP TS 31.220, 3GPP TS 31.828, Groupe Speciale Mobile Association (GSMA), “Remote Provisioning Architecture for Embedded UICC,” TS version 3.0, 30 Sep. 2015, and/or any other like standards. Additionally, the access card (e.g., SIM card) may securely stores access network information (e.g., an international mobile subscriber identity (IMSI) number and related keys or access credentials) which is used to identify and authenticate subscribers using radio equipment (e.g., smartphones, satellite phones, tablets, wearables, etc.). The access network information (or SIM) is registered and activated by a mobile network operator (MNO), and the access network information is then used to authenticate the subscriber during a connection or session establishment procedure. - In other embodiments, the
TEE 115 may be one or more software modules that operate in conjunction with one or more hardware devices (e.g., as described with regard toFIG. 3 ) to carry out secure operations and/or control the storage and use of personal and/or confidential data. In these embodiments, theTEE 115 may be one or more “enclaves” (also referred to as “secure enclaves”) within the memory of thecomputing system 105. An “enclave” is an instantiation of trusted compute resources within a hardware based environment, such as the REE (e.g., host platform, application processor circuitry) or within a hardware-basedTEE 115. For purposes of the present disclosure, the terms “TEE” and “enclave” may be used interchangeably. Secure enclaves may be isolated regions of code and/or data within the address space of a secure application. In most embodiments, only code executed within a secure enclave may access data within the same secure enclave, and the secure enclave may only be accessible using the secure application, and other applications may access the secure enclave via the secure application. Certain hardware based enclaves allow multiple instances of enclaves to execute concurrently. Examples of the secure enclave-basedTEE 115 may include secure enclaves defined using the Intel® Software Guard Extensions (Intel® SGX), Keystone Enclaves provided by Oasis Labs™ secure/trusted zones using ARM® TrustZone® hardware security extensions, and/or the like. An example of such embodiments is shown and described with regards toFIG. 3 . Other aspects of security hardening, hardware roots-of-trust, and trusted or protected operations may also be implemented in thedevice 105 through theTEE 115 and/or the processor circuitry of thedevice 105. - The
TEE 115 operates a Trusted OS, which is an OS running in theTEE 115 that is designed using security based design techniques to enable theTEE 115. The trusted OS provides TEE Internal APIs to Trusted Applications (TAs) and a proprietary methods to enable a TEE Client API to interface with applications operating within other EEs, such as thePOS client 110 operating within the REEs. TAs are applications that run inside theTEE 115 that provide security related functionality to CAs outside of theTEE 115 or to other TAs inside theTEE 115. The TAs communicate with the rest of the system via APIs exposed by Trusted OS components. TEE internal APIs define the fundamental software capabilities of aTEE 115 and TEE client APIs define interfaces for client applications to access or communicate with TAs. When a CA creates a session with a TA, the CA connects to an instance of the TA. A TA instance has physical memory address space which is separated from the physical memory address space of all other TA instances. A session is used to logically connect multiple commands invoked in a TA. Each session has its own state, which contains the session context and the context(s) of the task(s) executing the session. - As shown in
FIG. 1 , theTEE 115 includesvPOS 120 and payment credential database (DB) 125, which are TAs within theTEE 115. ThevPOS 120 aggregates payment instrument(s) and certain acquiring elements of POS terminals (e.g., CADs, PADs, etc.) within a single platform (e.g., the TEE 115). ThevPOS 120 may be one or more software element, engine, applet, modules, and/or other like collection of functions that operate in conjunction with one or more hardware devices (e.g.,processor circuitry 310 as described with regard toFIG. 2 ,processor circuitry 210 as described with regard toFIG. 3 , and the like) to interface with embedded payment credentials to obtain payment credential information, and interact with theePOS client 110 and/or other like secure applications to obtain user inputs and information from thecloud POS service 135. ThevPOS 120 may also validate and/or decrypt the user inputs and the information received from thecloud POS service 135 in order to authenticate a user of thecomputing system 105 and/or themerchant 140. Once a user has been successfully authenticated, thevPOS 120 may encrypt the obtained payment credential information and/or transaction signatures for subsequent transmission to an upstream payment processor (e.g., payment acquiring service 145). Furthermore, thevPOS 120 may generate POS transaction messages (which may be communicated via the ePOS client 110) in accordance with ISO 8583, which defines a standard for systems that exchange electronic transactions made by cardholders using payment cards. - Payment credential database (PCDB) 125 may be a hardware device or system for storing payment credentials and payment credential-related information for a plurality of payment credentials. The
PCDB 125 may also be referred to as a “payment credential storage unit,” “payment system environment” (PSE), or the like. In various embodiments, the payment credentials may be associated with a payment card issued to users for paying for goods and services (e.g., a credit card, charge card, debit card, electronic benefits transfer (EBT) cards, etc.). The payment credentials may be a digital/electronic version of a physical payment card, or the payment credentials may be digital/electronic payment credentials. ThePCDB 125 may also store cardholder data or other like sensitive information belonging to an authorized user of a payment card, which may include a cardholder name, billing address, shipping address, payment card number, PAN, PIN, verification codes, security questions and answers (e.g., cardholder birthdate, mother's maiden name, etc.), and the like. Furthermore, thePCDB 125 may store payment credentials and authorization information in accordance with EMV (Europay, MasterCard, and Visa) standards, which define worldwide interoperability and acceptance standards for secure card-present and card-not-present transactions. Moreover, in some embodiments, thePCDB 125 may store virtual currency information (e.g., Linden Dollars traded in the virtual online community Second Life®, one or more currencies exchanged in the massively multiplayer online role-playing game (MMORPG) World of Warcraft®, Amazon Coins®, Nintendo Points®, Facebook® Credits, frequent flyer miles, brick-and-mortar store rewards points, etc.), cryptocurrency information (e.g., bitcoins, litecoins, etc.) and/or other like information used as a medium of exchange. In such embodiments, the payment credentials stored in thePCDB 125 may include one or more digital currency wallets (e.g., a bitcoin wallet, etc.) and/or any other like mechanism for storing information necessary to account for digital currency transactions. In some embodiments, thePCDB 125 may store a Data Object List (DOL) for each payment credential. The DOLs specify the data that acorresponding credential applet 121 expects as inputs and will provide as (signed) outputs during each step of the transaction processing procedure/protocol, as well as the format for the data. The DOLs indicate the various data elements for each part of a transaction, the format and/or arrangement of the data elements to be used for each part of the transaction, and which data elements should be signed or encrypted. Example data elements include the Application Transaction Counter (ATC), transaction amount(s), currency type(s), country code, financial institution information, and payment credential or credential applet-chosen nonces. -
PCDB 125 may include one or more relational database management systems (RDBMS) one or more object database management systems (ODBMS), a column-oriented DBMS, correlation database DBMS, and the like. According to various example embodiments, thePCDB 125 may be stored on or otherwise associated with one or more data storage devices. These data storage devices may include at least one of a non-volatile random-access memory (NVRAM) device, a read-only memory (ROM) device, a flash memory device, a solid state drive (SSD), and/or other like data storage devices. In various embodiments,PCDB 125 may be accessed by thevPOS 120 such that thevPOS 120 may query thePCDB 125 to obtain payment credential information and/or store payment credential information in thePCDB 125. In some embodiments,PCDB 125 may be physically and/or logically divided into multiple databases, while in other embodiments, thePCDB 125 may be a single database that resides on one physical hardware data storage device. - The
TEE 115 may also include one or more Security Domains (SDs) (not shown byFIG. 1 ). An SD is an on-device representative entity of an Authority in theTEE 115. SDs are responsible for the control of administration operations, and are used to perform the provisioning of TEE properties and manage the life cycle of TAs. An Authority is an entity or actor that grants permission to perform a specific set of actions, such as thecloud POS service 135, themerchant 140, thepayment acquiring service 145, or theauth service 170. The SDs allow thedevice 105 to be managed by the associated Authority and can then be placed in in either a secured state (e.g., “TEE_SECURED”) or a locked state (e.g., “TEE_LOCKED”). In the secured state, theTEE 115 has been configured with at least one SD including personalization, keys, and data in order to perform administration operations. The locked state disables new accesses from CAs to any TAs within theTEE 115. In the locked state, any attempt by a CA to open a new session with a TA is rejected and provided with an error message/code. Once theTEE 115 is locked, only an SD having the necessary privileges is allowed to unlock theTEE 115. The unlock operation switches theTEE 115 from the locked state back to the secure state. Similarly, the SD may be in an accessible state or a block state. In the accessible state, the SD is fully operational, and can be used by CAs (active state) or is temporarily suspended to perform some maintenance operations (restricted state). In the blocked state, the SD can neither be used nor administrated until it is unblocked. The TAs may be in an active state or inactive state. In the active state, a TA can be accessed and used by CAs, and if the TEE is in the locked state, the TA is temporarily suspended to perform some maintenance operations. In the inactive state, the TA is directly controlled by an associated SD and can neither be used nor administrated until its SD is unblocked. -
Merchant domain 130 may be a collection of devices, systems, and/or services that are utilized by a merchant (e.g., merchant 140) to engage with ecommerce-related activities. As shownmerchant domain 130 may includemerchant server 140 andcloud POS service 135. - Merchant server 140 (also referred to as “
merchant 140”) may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services. The one or more services may include selling products and/or services, providing an online market place for the purchase and/or sale of products and services, mining demographic data, online marketing, and/or other like ecommerce-related services. In this regard, themerchant 140 may engage with a user of thecomputing system 105 to sell products and/or services to the user, and utilize thecloud POS service 135 to initiate a POS transaction with thecomputing system 105. Themerchant server 140 may include an operating system that may provide executable program instructions for the general administration and operation ofmerchant server 140, and may include a computer-readable medium storing instructions that, when executed by a processor of themerchant server 140, may allow themerchant server 140 to perform its intended functions. Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein. Furthermore, it should be understood that themerchant 140 may not be required and the applications and software components discussed herein may be executed on any appropriate device or host machine. -
Cloud POS service 135 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services. The one or more services provided by thecloud POS service 135 may include initiating a POS transaction with a client device that is enabled to process POS transactions (e.g., computing system 105), authenticating payment information and/or user identity information, and providing POS transaction-related information to thecomputing system 105 to process a POS transaction. In this regard,cloud POS service 135 may communicate data (i.e., transmit and receive) withePOS client 110, and thus, may communicate tovPOS 120 securely and indirectly through theePOS client 110. Additionally, thecloud POS service 135 may communicate data (i.e., transmit and receive) with themerchant 140 and/or thepayment acquiring service 145 purposes of processing POS transactions. In order to communicate with theePOS client 110, themerchant 140, and/or thepayment acquiring service 145, thecloud POS service 135 may generate POS transaction messages (which may be communicated to the ePOS client 110) in accordance with ISO 8583, which defines a standard for systems that exchange electronic transactions made by cardholders using payment cards. - The
cloud POS service 135 may be integrated with a payment system that is implemented by themerchant 140, and may capture POS transaction details for analysis and reporting to themerchant 140. In some embodiments, thecloud POS service 135 may be a standalone service such that thecloud POS service 135 is implemented separately from themerchant domain 130. In this way, thecloud POS service 135 may be hosted by an independent entity that may provide thecloud POS service 135 to a plurality of merchant services simultaneously. It should be noted that typical digital wallet services and/or online money transfer services may be hosted by an independent entity that provides their services to a plurality of merchants simultaneously. However, unlike the typical digital wallet services and/or online money transfer services, in various embodiments thecloud POS service 135 may not have to retain user payment information and user identification information. Instead, thecloud POS service 135 may allow users to retain possession and control of their personal account information and personally identifying information. Therefore, thecloud POS service 135 may provide network and computational resource efficiencies while also providing user privacy protections. Furthermore, because typical card-not-present transactions usually have a higher rate of fraud, merchants are usually charged higher bank processing fees and/or are required to absorb costs associated with data breaches and/or fraudulent transactions. Therefore, merchants are usually responsible for processing payments and providing security measures for handling payment information for typical card-not-present transaction. Accordingly, merchants that utilize thecloud POS service 135 could end up paying a lower transaction fee to process payments through the cloud POS service 135 (including the vPOS 120) rather than processing payments on their own. - The
cloud POS service 135 may include an operating system that may provide executable program instructions for the general administration and operation ofpayment acquiring service 145, and may include a computer-readable medium storing instructions that, when executed by a processor of theapplication server 130, may allow thepayment acquiring service 145 to perform its intended functions. Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein. Furthermore, it should be understood that thepayment acquiring service 145 may not be required and the applications and software components discussed herein may be executed on any appropriate device or host machine. - In embodiments, a payment kernel (e.g., the algorithm dictating the protocol interaction with the payment instrument) may run in the cloud 135 (not shown by
FIG. 1 ) while the acceptance endpoint (e.g., ePOS applet(s) 121) runs within the confines of thesecure TEE 115 platform. In some embodiments, the payment kernel maintains trusted state synchronization with the acceptance endpoint. This may be done over anetwork connection 150 or with an associated SD in the TEE 115 (e.g., the TEE_SECURED state, SD blocked state, or TA inactive state). TheTEE 115 includes one or more payment credentials (e.g., in PCDB 125), and also one or more ePOS applets 121 (also referred to as “credential applets” or the like). TheePOS applets 121 are responsible for providing internal and external access to the secure element instance (e.g., Trusted OS instance), processing account data, performing cardholder verification, and the like. TheePOS applets 121 may be implemented as widgets such as plug-ins, applets, desk accessories, or other like software component(s). A widget (applet) is a relatively small application that performs a specific task and runs within a secure OS, dedicated widget engine, or as part of a larger application. A widget engine is the software platform on which desktop or web widgets run. In some embodiments, theePOS applet 121 may be implemented as a smartcard payment applet compatible with EMV standards, GlobalPlatform standards, and the like. TheTEE 115 may include and/or operate a Trusted OS such as a secure OS, real-time OS (RTOS), widget engine, VM manager, or other like software element that that controls and manages access to theTEE 115 and/or theePOS applet 121. A Trusted OS is an operating system running in the TEE providing a TEE internal core API to TAs. In one example implementation, the Trusted OS may be the Java Card™ OpenPlatform (JCOP), which is a standardized smart card OS. The JCOP may include a Java Card™ Virtual Machine (JCVM) and/or implement a Java Card™ Runtime Environment (JCRE), which allow Java applets to run on UICCs and eUICCs. In other embodiments, the Trusted OS may be a native OS, which is a proprietary vendor-specific OS. In either embodiment, the Trusted OS may implement a profile loader (also referred to as a “profile installer” and/or a “profile manager”) for installing and managing provisioned profiles, applets, and/or payment credentials. In various embodiments,vPOS 120 may includemultiple ePOS applets 121 that are selectable and applied at the time of committing to a transaction (e.g., making payment). - The ePOS applet(s) 121 is/are personalized to contain the payment credentials in a same or similar manner to an applet contained on a standard payment card or standard access card. The personalization may be provided using, for example, Store Data data grouping identifiers (DGIs) and/or secure channel protocols. Personalization may also take place according to the EMV Card Personalization Specification version 1.0 (June 2003) and/or other like specifications. When there is a request for payment, the cloud payment kernel, interacting with the platform payment acceptance endpoint (e.g., TEE 115), communicates with the embedded
ePOS applet 121 to consummate the payment transaction. From the perspective of thepayment acquiring service 145, the transaction is identical to a payment transaction initiated between a conventional POS terminal interacting with a customer payment card. This provides assurance that the actual card is present at the time of transaction rather than a falsified card or malicious code. - Another aspect of a secure transactions is to prove that the authorized cardholder is present at the time of transaction. In general face-to-face payment card transactions, there are four levels of transaction security associated with cardholder presence. In increasing confidence of cardholder authenticity these include: No Verification, Signature, Local PIN, and Online PIN. In various embodiments, individual confidence levels of user authentication (e.g., depending on platform capabilities) are mapped to each of the cardholder authenticity four levels, providing compatibility with existing EMV user verification methods. In other embodiments, multiple confidence levels may be mapped to the same cardholder authenticity level to provide a more granular approach to verifying user authenticity locally at the
computing system 105. The combination of card authenticity coupled with credential authentication yields assurances that are compliant with traditional card-not-present situations. When such assurances are successfully asserted,merchants 130 benefit from decreased fraud and lower cost of payment acceptance, thereby reducing overall network and computational resource consumption. Payment card issuers and processing networks also benefit from increased transaction volume since there are significant numbers of people who refuse to participate in eCommerce due to fears surrounding fraud and/or identity theft. Moreover, these embodiments may be applied to other scenarios, such as preventing SIM swapping and/or SIM hijacking. - In various embodiments, the
ePOS acceptance driver 122 provides a bridge interface between the cloud ePOS kernel incloud 135 and theePOS applet 121 executing inside of theTEE 115. In some embodiments, theePOS driver 122 includes terminal logic and/or device pairing logic to maintain trusted state synchronization with thePOS cloud 135. Security of the transaction is provided by theePOS acceptance driver 122, which uses transaction-specific encryption to provide confidentiality of sensitive transaction elements. One example approach combines format-preserving-encryption with transaction-specific keying available with standards such as ANSI X9.24-1 (DUKPT) to provide transaction data confidentiality. Other encryption schemes may be used in other embodiments. -
FIG. 1 also shows elements of theePOS client 110, which supports both user authentication mechanisms, plusePOS logic 113 to support payment interactions and user interfaces. TheePOS logic 113 is factored between themerchant 140 and the credential hosting environment (e.g., vPOS 120). The authentication mechanisms may be referred to as “cardholder verification methods” or “CVMs” in EMV terminology. there are three options for PIN-based cardholder verification: online PIN where the PIN is provided to thecloud POS service 135 and/or theauth service 170 for authentication; offline unencrypted PIN where the PIN is sent to theePOS applet 121 without being encrypted; and offline encrypted PIN where the PIN is encrypted before being sent to theePOS applet 121. In conventional CVM, the access card is only involved in cardholder verification when offline PIN is used, and online PIN verification is performed using a protocol between the conventional POS terminal and the financial institution (e.g. service 145). If an access card supports both online and offline PIN CVMs, the issuing financial institution usually has to have mechanisms in place to ensure that the two PINs are synchronized. Synchronization is important, because when cardholders are asked to enter a PIN, they do not know whether they should enter their offline PIN or online PIN. By contrast, in various embodiments, thevPOS 120 is involved in online PIN verification at least to securely pass the PIN to thecloud 135 and/orauth service 170, which is more secure than conventional CVM. Although the present disclosure discusses using a PIN for user authentication/verification, which is usually four, six, or twelve digits, it should be noted that a passcode, password, biometric data, physical hardware mechanism, and/or any other type of authentication means may be used in place of a PIN in various embodiments. - Locally controlled (offline) user authentication is provided through the
secure PIN client 112, which provides a PIN (e.g., input by the user) to theePOS driver 122 overinterface 119. In these embodiments, the PIN are verified directly bycredential applet 121. For plaintext (unencrypted) PIN verification, the PIN code is sent to theePOS applet 121 via theePOS driver 122, and theePOS applet 121 returns an unauthenticated response to thesecure PIN client 112 via theePOS driver 122. The unauthenticated response indicates whether the PIN was correct or how many failed PIN attempts there are left before theePOS applet 121 blocks access to the selected payment credential. Additional or alternative security measures may be taken when the maximum number of attempts is reached. If encrypted PIN verification is used, theePOS applet 121 requests a nonce from theePOS driver 122 and/or thesecure PIN client 112. TheePOS applet 121 uses a public key of associated with the selected payment credential, encrypts the PIN together with the nonce and some random padding created by the ePOS applet 121 (e.g., using a suitable random number generator, hash function, etc.). A result of the verification may be returned to thePIN client 112 and displayed to the user in some embodiments. - Online user authentication is managed through an external authentication (auth)
service 170 via theauth client 111. In these embodiments, the online PIN is verified byauth service 170, and online service authentication assertions are received via connection 150-1 for verification by theePOS 121. In some embodiments, themerchant 130 that hosts the ePOS payment kernel (e.g., withincloud POS service 135 or in someother merchant 130 system or platform), and who is also a relying party to theauth service 170 is responsible for providing levels of user authentication relevant to the value of the transaction. In some embodiments, theauth client 111 provides the online PIN to theauth service 170 via connection 150-5. In some embodiments, theauth client 111 provides the online PIN to thecloud POS 135 over connection 150-3, which is then relayed to theauth service 170 over connection 150-4. In one implementation, the ‘what you see is what you get’ (WYSIWYS) digital signature techniques may be used to capture and protect the online PIN for verification by theePOS applet 121. In one example implementation, security of the online PIN entry may be achieved by using Intel® Identity Protection Technology (IPT), which uses Protected Transaction Display (PTD) to protect Public Key Infrastructure (PKI) certificates and RSA keys with a PIN. The PTD may be used to confirm transaction amounts and/or other transaction information. - The user authentication mechanisms (e.g.,
auth client 111 and/or secure PIN client 112) can include multiple and varying factors, including, but not limited to user name/ID and password, PIN, location-based, network-based (e.g., virtual private network (VPN), etc.) security tokens, physical authentication devices (e.g., wearable continuous authentication using a smartwatch or the like, YubiKey® provided by Yubico® or the like), and/or biometric data. Additionally or alternatively, authentication strategies based on NIST SP800-63 Electronic Authentication Guidelines may be used. - The cloud ePOS kernel is also interconnected to a
payment processing network 145 via connection 150-7 between thecloud ePOS service 135 andpayment acquirer service 145. This element understands standard payment protocols such as ISO 8583 and the like, common to the payment processing ecosystems. Interactions between theePOS cloud 135 and client ePOS elements ensure that data elements are present in the transaction such that thepayment networks 145 comprehend ePOS transactions to be equivalent to card-present payments and/or the like. - In some embodiments, the use of a contactless payment kernel hosted in the TEE 115 (e.g., a secure enclave) may communicate with the
ePOS Acceptance Driver 122, and theePOS Acceptance Driver 122 may be communicatively coupled with an NFC controller implemented in the computing system 105 (not shown). Such embodiments allow the payment instrument to be, or act as, an external contactless card such as an Apple Pay® contactless device. In these embodiments, thecloud ePOS 135 directs the actions of the client-hostedpayment kernel 121 to facilitate acceptance of existing contactless payment instruments. - As alluded to previously, the strength of user authentication is mapped to an appropriate value of the transaction. This capability is provided by
auth service 170. In one example, transaction inputs (e.g., EMV commands and/orauth service 170 assertions) are conveyed to thevPOS 120 via connection 150-1, and transaction outputs (e.g., cardholder authentication data, ISO 8583 transaction data, EMV responses, payment credentials, online PIN block, etc.) are provided to theePOS cloud 135 via connection 150-2. In some implementations, theauth service 170 may be provided by Intel® True Key (or “You Are the Password” or “YAP”). For example, YAP provides scoring levels associated with the strength of a given authentication. Mapping YAP scoring levels to EMV assurance categories of No Verification, Signature, Local PIN, or Online PIN, allows ePOS authentication/verification to be used with existing payment processing attributes designed to assert these various levels of user/cardholder verification. When combined with EMV metadata elements that bind required authentication strength to transaction value, theePOS system 100 provides both card issuers andmerchants 130 the controls necessary to dynamically manage risk. - The various entities, elements, systems, devices, etc., in
arrangement 100 are communicatively coupled via various network connections 150 (e.g., including connections 150-1 to 150-7 inFIG. 1 ), which may be part of any of one or more networks (referred to as “network 150”) that allow computers to exchange data.Network 150 may include one or more network elements (not shown) capable of physically or logically connecting computers. Thenetwork 150 may include any appropriate network, including an intranet, the Internet, a cellular network, a local area network (LAN), a wide area network (WAN), a personal network or any other such network or combination thereof. Components used for such a system can depend at least in part upon the type of network and/or environment selected. Protocols and components for communicating via such a network are well known and will not be discussed herein in detail. Communication over thenetwork 150 may be enabled by wired or wireless connections, and combinations thereof. -
Payment acquiring service 145 may be include one or more physical and/or virtual computing systems such as one or more servers or other like network elements for providing one or more services. Thepayment acquiring service 145 may be a financial institution, bank, and/or other like entity or group of entities that is able to process payment credential purchases on behalf of a merchant platform (e.g., merchant 140). In some embodiments, thepayment acquiring service 145 may be referred to as a “merchant bank”, “acquirer”, and the like. Thepayment acquiring service 145 may be contacted by thecloud POS service 135 to authorize a payment card purchase amount. Thepayment acquiring service 145 may be able to approve or decline a payment credential purchase amount, and if approved, thepayment acquiring service 145 may settle the transaction by placing the funds into an account associated with themerchant 140. Thepayment acquiring service 145 may include an operating system that may provide executable program instructions for the general administration and operation ofpayment acquiring service 145, and may include a computer-readable medium storing instructions that, when executed by a processor of theapplication server 130, may allow thepayment acquiring service 145 to perform its intended functions. Suitable implementations for the operating system and general functionality of the servers are known or commercially available, and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein. -
Messaging service 160 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services. Themessaging service 160 may be a service that forwards or otherwise provides notifications and/or other like messages from third parties to client devices (e.g., computing system 105). In such embodiments, the notifications or messages may be push notifications communicated in accordance with the Push Access Protocol (PAP), simple mail transfer protocol (SMTP), Extensible Messaging and Presence Protocol (XMPP), and/or other like push communication protocols. Such notifications or messages may include audio/video messages, text alerts, and/or the like. Themessaging service 160 may be contacted by thecloud POS service 135 to provide a POS transaction initiation message to thecomputing system 105 on behalf of thecloud POS service 135. In various embodiments, themessaging service 160 may be a mobile messaging service, such as Google Cloud Messaging (GCM), Apple Push Notification Services and/or Notification Center, Windows Push Notification Service (WNS), and/or other like messaging services. In other embodiments, the messaging service may be a Short Message Service (SMS) Function (SMSF) that sends SMS messages to cellular network subscribers (e.g., computing system 105) on behalf ofcloud POS service 135. - The
arrangement 100 may be implemented according to one or more of the following use cases. There are multiple use cases that can benefit fromarrangement 100 and several of these are listed below, although these use cases is not an exhaustive list, and the embodiments herein can be employed for various other use cases. - Use case 1: ecommerce or web-based purchases. According to
use case 1, thevPOS 120 may be accessible by rendering theePOS client 110 in a standard web browser. When the user of thecomputing system 105 goes through an ecommerce checkout process, the user may be asked to make an ecommerce payment. At this point, thecloud POS service 135, operating in conjunction with the ecommerce checkout process provided by themerchant 140, may solicit the POS transaction through theePOS client 110 rendered in the web browser. A variant ofuse case 1 may include out-of-band ecommerce transactions, such as those performed on untrusted or otherwise unsecure computing devices. In such instances, when the user is asked to provide payment, the user may provide a unique identifier (e.g., e.g., mobile phone number, an email address, and/or any other user-related identifier) associated with a computing device enable to process POS transactions (e.g., computing system 105) instead of entering payment information directly into a web browser of an untrusted computing device. Once the user enters the phone number, email address, etc. of the computing device enabled to process POS transactions the transaction initiation message may be sent to thecomputing system 105 via thecloud POS service 135 and/ormessaging service 160, instructingcomputing system 105 to process the POS transaction. - Use case 2: mail-order and/or telephone-order purchases. Telephone-order transactions traditionally require customers to dictate payment information over the phone to an agent of a merchant in order to purchase a product or service. According to
use case 2, a user of thecomputing system 105 may order a product or service over the phone. However, instead of requiring the user to dictate payment information over the phone, the user may provide a unique identifier (e.g., mobile phone number, an email address, and/or any other user-related identifier) to the merchant 140 (or an agent of the merchant 140). The merchant 140 (or an agent of the merchant 140) may enter the unique identifier into a merchant terminal that is enabled to interact with thecloud POS service 135, and thecloud POS service 135 and/ormessaging service 160 may send a transaction initiation to thecomputing system 105. The POS transaction may then be processed according to the various example embodiments disclosed herein. For mail-order purchases, which typically require a customer to write down payment information on a paper order form, the customer may manually write the unique identifier on the paper order form instead of writing payment information and/or authentication information into the order form. When the order form reaches themerchant 140, the unique identifier may be entered into a merchant terminal enabled to interact with thecloud POS service 135, which may immediately send a transaction initiation to thecomputing system 105 via thecloud POS service 135. When the merchant receives payment confirmation from thecomputing system 105, themerchant 140 may fulfill (e.g., ship) the ordered product or service. - Use case 3: brick-and-mortar purchases. Most brick-and-mortar transactions require customers to enter payment information into a standalone physical POS terminal (also referred to as a credit card terminal, payment terminal, electronic funds transfer (EFT) POS terminal, etc.) to purchase a product or service. In most cases, the standalone physical POS terminals allow customers or merchants to insert, swipe, or manually enter the required payment information. According to
use case 3, the user of thecomputing system 105 may provide a unique identifier to a brick-and-mortar store employee, who may then enter the unique identifier into a merchant terminal enabled to interact with thecloud POS service 135. - A variant of
use case 3 may involve other physical outlets that may not have a typical standalone physical POS terminal. These other physical outlets may include merchants at farmers' markets, trade shows, swap meets, flea markets, bazaars, conventions, concerts, and the like. Typically, merchants of these other physical outlets may have a computing device, such as a smartphone or tablet PC, which may mimic or replace the functionality of the standalone physical POS terminal hardware using a terminal application running on a the computing device. These terminal applications usually require manual entry of payment information, or may operate in conjunction with a peripheral hardware payment card reader that can transfer payment information to the terminal application. Such peripheral payment card readers may connect to the merchant's computing device through an audio jack of the computing device. Since these terminal applications typically mimic the standalone physical POS terminals, they often present the same or similar security concerns that apply to the standalone physical POS terminals. According to the variant ofuse case 3, the merchant's computing device may include its own POS UI that may interact with thecloud POS service 135, and a user of thecomputing system 105 may manually enter or otherwise provide a unique identifier to the merchant's POS UI to initiate the POS transaction via thecloud POS service 135. - Use case 4: user-initiated donations. In some instances, a user may wish to make a donation or tithe to an entity, such as a non-profit organization. Rather than requiring the donation recipients to manually process card requests using standalone physical POS terminals or a terminal application as discussed with regard to use
case 3, according to use case 4, theePOS client 110 may allow a user of thecomputing system 105 to initiate and complete payment requests on their own. In various embodiments, the donation recipient may deploy a Bluetooth low-energy (BLE) beacon that broadcasts one or more signals, which indicate that a POS payment may be made at a physical location. When thecomputing system 105 obtains the one or more BLE signals, thecomputing system 105 may indicate that a POS payment point associated with the donation recipient is nearby, and the user of thecomputing system 105 may execute theePOS client 110 to initiate a POS transaction according to the example embodiments disclosed herein. It should be noted that a variant of use case 4 may involve deploying BLE beacons in brick-and-mortar stores or other like physical outlets to facilitate the purchase of products or services, rather than requiring an employee to perform a checkout process and the like. - Use case 5: Out-of-band eCommerce payments are possible using the ePOS mechanisms described in
use case 2, and where a web checkout form offers an out-of-band ePOS payment capability. By entering a mobile phone number in the web checkout form, themerchant eCommerce system 140 provides a mechanism to redirect the eCommerce payment operation to the computing system 105 (e.g., usingmessaging service 160 or the like). This option is more secure from the perspective of not providing payment information through a computer that may not have secure payment acceptance capabilities (e.g. a public computer). - Use case 6: protection against SIM hijacking or SIM swapping scams. At its most basic level, a SIM swap or hijack is a type of account takeover fraud where an attacker convinces a victim's mobile carrier to switch the victim's phone number over to a SIM card own by the attacker. This allows the attacker to divert incoming messages (e.g., SMS messages) to the attacker's device so the attacker can easily complete text/SMS-based two-factor authentication to gain access to the victim's online accounts and/or other protected sensitive data or applications. It is conceivable that this type of fraud could be attempted for the
vPOS 120, where an attacker may convince a financial institution to switch or re-provision a victim's payment credentials to a SIM card orTEE 115 in a device owned by the attacker, such as when, theTEE 115 is a UICC, SIM card, or other access card that includes thevPOS 120 and/orPCDB 125. Usually, the contents/data stored by an access card (e.g., SIM card) cannot be perfectly copied/cloned, and therefore, swapping an access card with a different physical or virtualized access card would cause an authentication failure in the backend of thecloud system 135 and/orauth system 170. This is because theoriginal vPOS 120 would maintain a trusted state synchronization (e.g., secured state, blocked state, or inactive state) with thecloud system 135 and/or auth system 170 (or an associated SD in the TEE 115) that cannot be duplicated with to a new or different access card orTEE 115. In this use case, when the trusted state synchronization with thecloud system 135 and/orauth system 170 is broken, theTEE 115 may deny access to the vPOS 120 (e.g., by placing theTEE 115 in the locked state) until the trusted (secure) state is reestablished. Additionally or alternatively, a PIN may be set to access thevPOS 120, which may be the same or different than the PINs set to access individual payment credentials within thevPOS 120. The victim's PIN(s) may still be maintained in the emulated or stolen SIM. If the access card were cloned or stolen and placed in another device, then the attacker attempting to use it would also have to know the victim's PIN in order to utilize the stolen SIM and/orvPOS 120. Without the PIN, the overall authentication of a transaction would fail. -
FIG. 2 illustrates the components of thecomputing system 105, in accordance with various example embodiments. As shown,computing system 105 may includeprocessor circuitry 210, interconnect (IX) 220, network interface circuitry (NIC) 230, input/output (I/O)interface circuitry 240,memory circuitry 250, andTEE 115. As shown,TEE 115 may includememory 350 andprocessor circuitry 310. In various embodiments, one or more of the elements/components not included in theTEE 115 may be referred to as the REE or “host platform”. TheTEE 115 is an execution environment that runs alongside but is isolated from the REE. TheTEE 115 has security capabilities and meet certain security related requirements. TheTEE 115 protectsTEE 115 assets from general software attacks, defines rigid safeguards as to data and functions that a program can access, and resists a set of defined threats. -
Memory circuitry 250 may be a hardware device configured to store anoperating system 260 and program code for one or more software components, such asePOS client 110 and/or one or more other applications.Memory circuitry 250 may be a computer readable storage medium that generally includes a random access memory (RAM), read only memory (ROM), a flash memory device, a solid state disk (SSD), a secure digital (SD) card, and/or other like storage media capable of storing and recording data. The program code and/or software components may also be loaded from a separate computer readable storage medium intomemory circuitry 250 using a drive mechanism (not shown). Such separate computer readable storage medium may include a memory card, memory stick, removable flash drive, SIM card, and/or other like computer readable storage medium (not shown). In some embodiments, software components may be loaded intomemory circuitry 250 viaNIC 230, rather than via a computer readable storage medium. - Any number of memory devices may be used to provide for a given amount of
system memory 250. As examples, the memory may be random access memory (RAM) in accordance with a Joint Electron Devices Engineering Council (JEDEC) design such as the DDR or mobile DDR standards (e.g., LPDDR, LPDDR2, LPDDR3, or LPDDR4). In particular examples, a memory component may comply with a DRAM standard promulgated by JEDEC, such as JESD79F for DDR SDRAM, JESD79-2F for DDR2 SDRAM, JESD79-3F for DDR3 SDRAM, JESD79-4A for DDR4 SDRAM, JESD209 for Low Power DDR (LPDDR), JESD209-2 for LPDDR2, JESD209-3 for LPDDR3, and JESD209-4 for LPDDR4. Other types of RAM, such as dynamic RAM (DRAM), synchronous DRAM (SDRAM), and/or the like may also be included. Such standards (and similar standards) may be referred to as DDR-based standards and communication interfaces of the storage devices that implement such standards may be referred to as DDR-based interfaces. In various implementations, the individual memory devices may be of any number of different package types such as single die package (SDP), dual die package (DDP) or quad die package (Q17P). These devices, in some examples, may be directly soldered onto a motherboard to provide a lower profile solution, while in other examples the devices are configured as one or more memory modules that in turn couple to the motherboard by a given connector. Any number of other memory implementations may be used, such as other types of memory modules, e.g., dual inline memory modules (DIMMs) of different varieties including but not limited to microDIMMs or MiniDIMMs. - To provide for persistent storage of information such as data, applications, operating systems and so forth, storage device(s) may also be included in or coupled with the
system 105. In an example, the storage device(s) may be implemented via a solid-state disk drive (SSDD) and/or high-speed electrically erasable memory (commonly referred to as “flash memory”). Other devices that may be used for the storage device(s) include flash memory cards, such as SD cards, microSD cards, XD picture cards, and the like, and USB flash drives. In an example, the memory device may be or may include memory devices that use chalcogenide glass, multi-threshold level NAND flash memory, NOR flash memory, single or multi-level Phase Change Memory (PCM), a resistive memory, nanowire memory, ferroelectric transistor random access memory (FeTRAM), anti-ferroelectric memory, magnetoresistive random access memory (MRAM) memory that incorporates memristor technology, phase change RAM (PRAM), resistive memory including the metal oxide base, the oxygen vacancy base and the conductive bridge Random Access Memory (CB-RAM), or spin transfer torque (STT)-MRAM, a spintronic magnetic junction memory based device, a magnetic tunneling junction (MTJ) based device, a Domain Wall (DW) and Spin Orbit Transfer (SOT) based device, a thyristor based memory device, or a combination of any of the above, or other memory. Thememory circuitry 250 and/or storage circuitry may also incorporate three-dimensional (3D) cross-point (XPOINT) memories from Intel® and Micron®. In low power implementations, the storage device(s) may be on-die memory or registers associated with theprocessor circuitry 210. However, in some examples, the storage device(s) may be implemented using a micro hard disk drive (HDD). Further, any number of new technologies may be used for the storage device(s) in addition to, or instead of, the technologies described, such resistance change memories, phase change memories, holographic memories, or chemical memories, among others - During operation,
memory circuitry 250 may includeoperating system 260 andePOS client 110.Operating system 260 may manage computer hardware and software resources and provide common services for computer programs.Operating system 260 may include one or more drivers, such as a display driver, sensor drivers (e.g., a camera driver, etc.), audio drivers, and/or any other like drivers that provide an interface to hardware devices without needing to know the details of the hardware itself. According to various embodiments, theoperating system 260 may include one or more drivers for accessing theTEE 115 thereby enablingePOS client 110 to access hardware functions inside theTEE 115, such as thevPOS 120, without needing to know the details of theTEE 115 itself. Theoperating system 260 may be a general purpose operating system or an operating system specifically written for and tailored to thecomputing system 105. -
ePOS client 110 may be a collection of software modules and/or program code that enables thecomputing system 105 to access or obtain POS transaction data and/or other like data from thevPOS 120 within theTEE 115, and/or operate according to the various example embodiments as disclosed herein.ePOS client 110 may be a native application, a web application, or a hybrid application. In some embodiments,ePOS client 110 may be a web application that may be rendered in a web browser of thecomputing system 105. -
Processor circuitry 210 is configurable or operable to carry out instructions of a computer program by performing the basic arithmetical, logical, and input/output operations of the system. Theprocessor circuitry 210 includes circuitry such as, but not limited to one or more processor cores and one or more of cache memory, low drop-out voltage regulators (LDOs), interrupt controllers, serial interfaces such as SPI, I2C or universal programmable serial interface circuit, real time clock (RTC), timer-counters including interval and watchdog timers, general purpose I/O, memory card controllers such as secure digital/multi-media card (SD/MMC) or similar, interfaces, mobile industry processor interface (MIPI) interfaces and Joint Test Access Group (JTAG) test access ports. In some implementations, theprocessor circuitry 210 may include one or more hardware accelerators, which may be microprocessors, programmable processing devices (e.g., FPGA, ASIC, etc.), or the like. The one or more accelerators may include, for example, computer vision and/or deep learning accelerators. In some implementations, theprocessor circuitry 210 may include on-chip memory circuitry, which may include any suitable volatile and/or non-volatile memory, such as DRAM, SRAM, EPROM, EEPROM, Flash memory, solid-state memory, and/or any other type of memory device technology, such as those discussed herein. - The
processor circuitry 210 may include, for example, one or more processor cores (CPUs), application processors, GPUs, RISC processors, Acorn RISC Machine (ARM) processors, CISC processors, one or more DSPs, one or more FPGAs, one or more PLDs, one or more ASICs, one or more baseband processors, one or more radio-frequency integrated circuits (RFIC), one or more microprocessors or controllers, a multi-core processor, a multithreaded processor, an ultra-low voltage processor, an embedded processor, or any other known processing elements, or any suitable combination thereof. The processors (or cores) 210 may be coupled with or may include memory/storage and may be configured to execute instructions stored in the memory/storage to enable various applications or operating systems to run on thesystem 105. The processors (or cores) 210 is configured to operate application software to provide a specific service to a user of thesystem 105. In some embodiments, the processor(s) 210 may be a special-purpose processor(s)/controller(s) configured (or configurable) to operate according to the various embodiments herein. - As examples, the processor(s) 210 may include an Intel® Architecture Core™ based processor such as an i3, an i5, an i7, an i9 based processor; an Intel® microcontroller-based processor such as a Quark™, an Atom™, or other MCU-based processor; Pentium® processor(s), Xeon® processor(s), or another such processor available from Intel® Corporation, Santa Clara, Calif. However, any number other processors may be used, such as one or more of Advanced Micro Devices (AMD) Zen® Architecture such as Ryzen® or EPYC® processor(s), Accelerated Processing Units (APUs), MxGPUs, Epyc® processor(s), or the like; A5-A12 and/or S1-S4 processor(s) from Apple® Inc., Snapdragon™ or Centrig™ processor(s) from Qualcomm® Technologies, Inc., Texas Instruments, Inc.® Open Multimedia Applications Platform (OMAP)™ processor(s); a MIPS-based design from MIPS Technologies, Inc. such as MIPS Warrior M-class, Warrior I-class, and Warrior P-class processors; an ARM-based design licensed from ARM Holdings, Ltd., such as the ARM Cortex-A, Cortex-R, and Cortex-M family of processors; the ThunderX2® provided by Cavium™, Inc.; or the like. In some implementations, the processor(s) 210 may be a part of a system on a chip (SoC), System-in-Package (SiP), a multi-chip package (MCP), and/or the like, in which the processor(s) 210 and other components are formed into a single integrated circuit, or a single package, such as the Edison™ or Galileo™ SoC boards from Intel® Corporation. Other examples of the processor(s) 210 are mentioned elsewhere in the present disclosure.
- The
processor circuitry 210 may perform a variety of functions for thecomputing system 105 and may process data by executing program code, one or more software modules, firmware, middleware, microcode, hardware description languages, and/or any other like set of instructions stored in thememory circuitry 250. The program code may be provided toprocessor circuitry 210 bymemory circuitry 250 viaIX 220, one or more drive mechanisms (not shown), and/or viaNIC 230. In order to perform the variety of functions and data processing operations, the program code and/or software components may be executed by theprocessor circuitry 210. On execution by theprocessor circuitry 210, theprocessor circuitry 210 may causecomputing system 105 to perform the various operations and functions delineated by the program code. - For example, in various embodiments, the
ePOS client 110 may include various modules and/or program code configured to operate (using hardware and/or software components) to obtain POS transaction data from thevPOS 120 and communicate various POS transaction-related data with thevPOS 120 and/or thecloud POS service 135 as described herein. Once the various modules and/or program code of theePOS client 110 are loaded intomemory circuitry 250 and executed by theprocessor circuitry 210, theprocessor circuitry 210 is configurable or operable to causecomputing system 105 to receive a transaction initiation from thecloud POS service 135 or other merchant-related terminal; provide a selected payment credential to be used to process a POS transaction; provide authentication parameters to thecloud POS service 135 or other merchant-related terminal; receive a cryptographic merchant certificate from thecloud POS service 135 or other merchant-related terminal, and provide the cryptographic merchant certificate to thevPOS 120; receive a personal identification (PIN) solicitation from thecloud POS service 135 or other merchant-related terminal; provide a user interface to allow a user of thecomputing system 105 to enter a PIN; receive the input PIN and provide the inputted PIN to thecloud POS service 135 or other merchant-related terminal; receive updated transaction terms from thecloud POS service 135 or other merchant-related terminal; receive encrypted payment data from thevPOS 120; communicate the encrypted payment data to thecloud POS service 135 or other merchant-related terminal; and/or perform various other functions or combinations of functions as disclosed herein. While specific modules are described herein, it should be recognized that, in various embodiments, various modules may be combined, separated into separate modules, and/or omitted. Additionally, in various embodiments, one or more modules may be implemented on separate devices, in separate locations, or distributed, individually or in sets, across multiple processors, devices, locations, and/or in cloud-computing implementations. -
IX 220 is configurable or operable to enable the communication and data transfer between theprocessor circuitry 210 andmemory circuitry 250. TheIX 220 may include any number of technologies, including Industry Standard Architecture (ISA), extended ISA, inter-integrated circuit (I2C) IX, Serial Peripheral Interface (SPI), point-to-point interfaces, power management bus (PMBus), Peripheral Component Interconnect (PCI), PCI express (PCIe), PCI extended (PCIx), a Small Computer System Interface (SCSI) IX, Intel® Ultra Path Interconnect (UPI), Intel® Accelerator Link, Intel® Common Express Link (CXL), Coherent Accelerator Processor Interface (CAPI), OpenCAPI, Intel® QuickPath Interconnect (QPI), Intel® Omni-Path Architecture (OPA) IX, RapidIO™ system IXs, Cache Coherent Interconnect for Accelerators (CCIX), Gen-Z Consortium IXs, a HyperTransport interconnect, NVLink provided by NVIDIA®, a Time-Trigger Protocol (TTP) system, a FlexRay system, and/or any number of other IX technologies. TheIX 220 may be a proprietary bus, for example, used in a SoC based system. In some implementations, theIX 220 may comprise a high-speed serial bus, parallel bus, internal universal serial bus (USB), Front-Side-Bus (FSB), and/or other suitable communication technology for transferring data between components withincomputing system 105 and other like devices. -
NIC 230 may be a computer hardware component that connectscomputing system 105 to a computer network (e.g., network 150).NIC 230 may connectcomputing system 105 to a computer network via a wired or wireless connection.NIC 230 may operate in conjunction with a wireless transmitter/receiver and/or transceiver (not shown) that is configured to operate in accordance with one or more wireless standards. The wireless transmitter/receiver and/or transceiver is configurable or operable to operate in accordance with a wireless communications standard, such as the IEEE 802.11-2007 standard (802.11), the Bluetooth standard, and/or any other like wireless standards. The communications port is configurable or operable to operate in accordance with a wired communications protocol, such as a serial communications protocol (e.g., the Universal Serial Bus (USB), FireWire, Serial Digital Interface (SDI), and/or other like serial communications protocols), a parallel communications protocol (e.g., IEEE 1284, Computer Automated Measurement And Control (CAMAC), and/or other like parallel communications protocols), and/or a network communications protocol (e.g., Ethernet, token ring, Fiber Distributed Data Interface (FDDI), and/or other like network communications protocols). TheNIC 230 may also include one or more virtual network interfaces configured to operate withePOS client 110 and/or other like applications. - I/
O interface circuitry 240 may be a computer hardware component that provides communication between thecomputing system 105 and one or more other devices. The I/O interface circuitry 240 may include one or more user interfaces designed to enable user interaction with thecomputing system 105 and/or peripheral component interfaces designed to provide interaction between thecomputing system 105 and one or more peripheral components. User interfaces may include, but are not limited to a physical keyboard or keypad, a touchpad, a speaker, a microphone, etc. Peripheral component interfaces may include, but are not limited to, a non-volatile memory port, a USB port, an audio jack, and a power supply interface. - As discussed above,
computing system 105 may also include a transmitter and receiver or a transceiver (not shown). The transmitter may be any type of hardware device that generates or otherwise produces radio waves in order to communicate with one or more other devices. The transmitter may be coupled with an antenna (not shown) in order to transmit data to one or more other devices. The transmitter is configurable or operable to receive digital data from one or more components ofcomputing system 105 viaIX 220, and convert the received digital data into an analog signal for transmission over an air interface. The receiver may be any type of hardware device that can receive and convert a signal from a modulated radio wave into usable information, such as digital data. The receiver may be coupled with the antenna (not shown) in order to capture radio waves. The receiver is configurable or operable to send digital data converted from a captured radio wave to one or more other components ofcomputing system 105 viaIX 220. In embodiments where a transceiver (not shown) is included withcomputing system 105, the transceiver may be a single component configured to provide the functionality of a transmitter and a receiver as discussed above. -
TEE 115 may be one or more hardware devices and software modules configured to carry out secure operations and/or control the storage and use of personal and/or confidential data. In various embodiments, theTEE 115 may be a single integrated circuit (IC) containing a processing device, memory, an internal bus/IX, and/or an I/O interface. As shown byFIG. 2 , theTEE 115 includesmemory 350,processor circuitry 310,IX 320 and 325, and secure I/O interface 340. -
Memory 350 may be a same type of device or similar hardware device asmemory circuitry 250, such as RAM, ROM, a flash memory device, a SSD, and/or other like storage media capable of storing and recording data. However, according to various embodiments, thememory 350 may only be accessed (i.e., read and/or written to) byprocessor circuitry 310. In such embodiments, components that are external to trusted execution environment may access thememory 350 via secure I/O interface 340.Memory 350 is configurable or operable to program code for one or more software components, such asvPOS 120,PCDB 125, and/or one or more other like applications. The program code and/or software components may be loaded intomemory 350 from a separate computer readable storage medium, frommemory circuitry 250, using a drive mechanism (not shown),NIC 230, and/or I/O interface circuitry 240 via the secure I/O interface 340. - The
vPOS 120 may be a collection of software elements, engines, modules, applet(s), and/or program code that enables thecomputing system 105 to process POS transactions by validating and/or encrypting/decrypting POS transaction data, and/or otherwise operate according to the various example embodiments as disclosed herein. ThevPOS 120 may be a native application, an applet (e.g., Java® applet), or a firmware application.PCDB 125 may be one or more databases that stores payment credentials in association with other payment credential-related information. As discussed elsewhere, thePCDB 125 may be one or more relational databases, one or more object databases, one or more column-oriented databases, one or more correlation databases, and/or the like. -
IX 320 may be a same type of device or similar toIX 220 and/orIX 225 and/or other suitable IX/bus technology for transferring data between components withinTEE 115 and with components outside ofTEE 115. In various embodiments, theprocessor circuitry 310 may be the same or similar asprocessor circuitry 210. -
Processor circuitry 310 is configurable or operable to carry out instructions of a computer program (e.g., vPOS 120) by performing the basic arithmetical, logical, and input/output operations. Theprocessor circuitry 310 may include a single-core processor, a dual-core processor, a triple-core processor, a quad-core processor, one or more digital signal processor (DSP), an application-specific integrated circuit (ASIC) device, and/or the like. Theprocessor circuitry 310 may perform a variety of functions for thecomputing system 105 and may process data by executing program code, one or more software modules, firmware, middleware, microcode, hardware description languages, and/or any other like set of instructions stored in thememory 350. The program code may be provided toprocessor circuitry 310 bymemory 350 viabus 320, and/or byprocessor circuitry 210 via secure I/O interface 340. In order to perform the variety of functions and data processing operations, the program code and/or software components may be executed by theprocessor circuitry 310. On execution by theprocessor circuitry 310, theprocessor circuitry 310 may causecomputing system 105 to perform the various operations and functions delineated by the program code. - For example, in various embodiments, the
vPOS 120 may include various modules and/or program code configured to operate (using hardware and/or software components) to process POS transactions and communicate various POS transaction-related data with thecloud POS service 135 via theePOS client 110 as described herein. Once the various modules and/or program code of thevPOS 120 are loaded intomemory 350 and executed by theprocessor circuitry 310, theprocessor circuitry 310 is configurable or operable to causecomputing system 105 to obtain payment credentials and/or other like information from thePCDB 125; validate merchant terminals associated with a POS transaction by decrypting, deciphering, or otherwise decode merchant certificates; process POS transactions using the selected payment credentials; generate and encrypt payment data; and/or perform various other functions or combinations of functions as disclosed herein. While specific modules are described herein, it should be recognized that, in various embodiments, various modules may be combined, separated into separate modules, and/or omitted. Additionally, in various embodiments, one or more modules may be implemented on separate devices, in separate locations, or distributed, individually or in sets, across multiple processors, devices, locations, and/or in cloud-computing implementations. - In various embodiments, the
TEE 115 may be a graphics and memory controller hub and theprocessor circuitry 310 andmemory 350 may be part of microcontroller IC that includes the Management Engine firmware provided by Intel®. In some embodiments, theTEE 115 may be a Trusted Platform Module (TPM) provided by Intel® that operates in accordance with ISO/IEC 11889:2009, wherein theprocessor circuitry 310 is a secure cryptoprocessor. However, it should be noted that theTEE 115 may be any secure region of a computing device that may protect data that is stored and/or processed within theTEE 115. - In some embodiments,
computing system 105 may include many more components than those shown inFIG. 2 , such as a display device (e.g., a computer monitor, a touchscreen, etc.), one or more input devices (e.g., a physical keyboard, a touch screen, etc.), one or more image sensors, a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components. -
FIG. 3 illustrates the components of thecomputing system 105, in accordance with other various example embodiments. As shown byFIG. 3 ,computing system 105 may include similar components as shown byFIG. 2 , such asprocessor circuitry 210,bus 220,NIC 230, input/output (I/O)interface circuitry 240, andmemory circuitry 250, each of which may operate in a same or similar manner as discussed with regard toFIG. 2 . However, according to the example embodiment shown byFIG. 3 , theTEE 115 may be withinmemory circuitry 250. In some embodiments,computing system 105 may include many more components than those shown inFIG. 3 , such as a display device (e.g., a computer monitor, a touchscreen, etc.), one or more input devices (e.g., a physical keyboard, a touch screen, etc.), one or more image sensors, a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components. - According to the example embodiment shown by
FIG. 3 , theTEE 115 may be a hardware enforceable container called an enclave, a secure enclave, and the like. The enclaves may be used to store security critical code and/or data, such as payment credentials and/or other POS transaction data. The enclaves may be one or more isolated regions ofmemory circuitry 250 that are encrypted within thememory circuitry 250. In some embodiments, the enclaves may be managed by a virtual machine monitor (WM) of a virtual machine running as a guest operating system. The memory location of the enclaves may be protected from access by all hardware components and/or software components ofcomputing system 105, regardless of a privilege level assigned to the hardware components and/or software components. In such embodiments, only theprocessor circuitry 210 executing a secure application (e.g., ePOS client 110) may access an enclave. In such embodiments, theoperating system 260 may include a secure driver that provides an interface for hardware devices and/or software components to create secure applications; access enclaves created by the secure applications; create secure application certificates (e.g., an “application cryptogram” or “transaction certificate”) that allow one or more software components; hardware devices; or external computing devices to attest to validate their identity; create secure channels between multiple enclaves; and/or other like secure operations. In embodiments where theprocessor circuitry 210 is a multi-core processor, theprocessor circuitry 210 may execute program code from an enclave in parallel with unsecured program code. In various embodiments, theTEE 115 may be one or more secure enclaves defined using the Intel® Software Guard Extensions (Intel® SGX). -
FIG. 4 shows anarrangement 400 in which a POS transaction may be processed using the vPOS of the present disclosure, in accordance with various other example embodiments. As shown inFIG. 4 ,arrangement 400 may includecomputing system 105A,merchant domain 130,payment acquiring service 145,messaging service 160,network 150, and cloud trustedexecution environment 415. Additionally,computing system 105A may includeePOS client 110, and the cloud trustedexecution environment 415 may include thevPOS 120 andPCDB 125. Furthermore, the merchant domain may include acloud POS service 135 and the merchant server 140 (also referred to as “merchant 140”). - The
cloud POS service 135, themerchant server 140,payment acquiring service 145,messaging service 160, and thenetwork 150 as shown inFIG. 4 may be the same or similar to thecloud POS service 135, themerchant server 140,payment acquiring service 145,messaging service 160, and thenetwork 150 as shown inFIG. 1 . Additionally, theePOS client 110, thevPOS 120, and thePCDB 125 ofarrangement 400 may operate in a same or similar fashion as theePOS client 110, thevPOS 120, and thePCDB 125 ofarrangement 100. In contrast tocomputing system 105 ofFIG. 1 , as shown inFIG. 4 , thecomputing system 105A does not include aTEE 115, but instead, theTEE 115 is replaced with thecloud TEE 415. - The
cloud TEE 415 may be one or more hardware computing devices that may include one or more servers or other like network elements for providing one or more services. The one or more services provided by the cloud trustedexecution environment 415 may include processing POS transactions on behalf of thecomputing system 105. In this regard, cloud trustedexecution environment 415 may communicate data (i.e., transmit and receive) withePOS client 110 located in thecomputing device 105A vianetwork 150. In order to communicate with theePOS client 110, the cloud trustedexecution environment 415 may generate POS transaction messages (which may be communicated to the ePOS client 110) in accordance with ISO 8583 and/or any other like standards for encrypting and/or encapsulating data for exchanging electronic transactions made by cardholders using payment cards. In such embodiments, theePOS client 110 of thecomputing system 105A may also communicate with the cloud trustedexecution environment 415 vianetwork 150. The communications between thecomputing system 105A and cloud trustedexecution environment 415 may be carried out in a same or similar fashion as the communications between theePOS client 110 and thevPOS 120 as discussed previously with regard toFIGS. 1-3 . However, in thearrangement 400 the communications between theePOS client 110 and thevPOS 120 may additionally include encrypting and/or enciphering the POS transaction messages according to one or more encryption or enciphering algorithms discussed herein prior to communicating such messages over thenetwork connections 150. - In cloud-based embodiments, the ePOS applet(s) 121 may be web-based widgets or web-based applets that run in a browser, or within a native or hybrid application, operated by the
computing system 105. In these embodiments, thePOS cloud 135 or some other cloud service also hosts or otherwise stores user credentials on behalf of the user in a same or similar manner as discussed with respect to thePCDB 125. For cloud-hosted credentials, the systems that are granted credential access establish and maintain a strong pairing relationship with the cloud POS service 135 (e.g., a secure session or the like). In one example implementation, a time-based OTP (TOTP) cryptographic method may be used for this purpose. -
FIG. 5 illustrates the components ofexample computing system 105A and cloud trustedexecution environment 415 with thevPOS 120, in accordance with various example embodiments. As shown,computing system 105A may includeprocessor circuitry 210,bus 220,NIC 230, input/output (I/O)interface circuitry 240, andmemory circuitry 250. As shown, cloud trustedexecution environment 415 may include aprocessor 510, anetwork interface 530, and theTEE 115. The trusted execution environment may includememory 350 andprocessor circuitry 310. In some embodiments,computing system 105A and/or cloud trustedexecution environment 415 may include many more components than those shown inFIG. 5 , such as a display device (e.g., a computer monitor, a touchscreen, etc.), one or more input devices (e.g., a physical keyboard, a touch screen, etc.), one or more image sensors, a transmitter/receiver (or alternatively, a transceiver), a mobile video card and/or graphics processing unit (GPU), and other like components. - The
processor circuitry 210, thebus 220, theNIC 230, the I/O interface circuitry 240, and thememory circuitry 250 of thecomputing system 105A may be the same or similar as theprocessor circuitry 210, thebus 220, theNIC 230, the I/O interface circuitry 240, and thememory circuitry 250 of the computing device 10 discussed previously with regard toFIGS. 2-3 . Additionally, theTEE 115, thememory 350, theprocessor circuitry 310, thebus 320 and the secure I/O interface 340 of the cloud trustedexecution environment 415 may be the same or similar to theTEE 115, thememory 350, theprocessor circuitry 310, thebus 320 and the secure I/O interface 340 ofcomputing system 105 as discussed previously with regard toFIG. 2 . Furthermore, theprocessor 510 may be a same or similar device that operates in a same or similar fashion as theprocessor circuitry 210, and thenetwork interface 530 may be a same or similar device that operates in a same or similar fashion as theNIC 230. - In contrast to
computing system 105 discussed with regard toFIGS. 1-3 , as shown inFIG. 5 , theePOS client 110 ofcomputing system 105A may access thevPOS 120 via thenetwork 150 using theNIC 230 to communicate POS transaction messages to the cloud trustedexecution environment 415. Thenetwork interface 530 may receive the communicated POS transaction messages and provide the POS transaction messages in their encrypted form to theprocessor 510, which may then route the POS transaction messages to the secure I/O interface 340 in a same or similar fashion as discussed previously with regard toFIG. 2 . The cloud trustedexecution environment 415 may also communicate POS transaction messages to thecomputing system 105A via thenetwork 150 by using thenetwork interface 530. - Furthermore, although not shown, in various embodiments, the cloud trusted
execution environment 415 may have a component configuration that is similar to the configuration shown byFIG. 3 . In such embodiments,computing system 105A may still include similar components as shown byFIGS. 2 and 5 , such asprocessor circuitry 210,bus 220,NIC 230, input/output (I/O)interface circuitry 240, andmemory circuitry 250, each of which may operate in a same or similar manner as discussed with regard toFIG. 2 . Additionally, in such embodiments, theTEE 115 may be within a memory device of the cloud trusted execution environment 415 (not shown) and may operate in a same or similar fashion as discussed with regard toFIG. 3 , such as theTEE 115 of the cloud trustedexecution environment 415 including one or more secure enclaves defined using the Intel® SGX. -
FIG. 6 illustrates amethod 400 for processing a POS transaction, in accordance with various example embodiments.FIGS. 7-14 illustrate various user interface stages, each of which corresponds to an operation ofmethod 600 ofFIG. 6 having a same numeral. In particular, each ofFIGS. 7-14 illustrate an example user interface that may be displayed on a display device ofcomputing system 105 as each operation ofmethod 600 is performed usingcomputing system 105. However, it should be noted that theprocess 600 may be performed bycomputing system 105A, wherein the example user interfaces may be displayed on a display device ofcomputing system 105A as each operation ofmethod 600 is performed usingcomputing system 105A. While particular examples and orders of operations are illustrated inFIGS. 6-14 , in various embodiments, these operations may be re-ordered, broken into additional operations, combined, and/or omitted altogether. Furthermore, the user interfaces illustrated byFIGS. 7-14 may be generated or otherwise formed in various artistic representations without departing from the example embodiments disclosed herein. - Referring to
FIG. 6 , atoperation 700 thecomputing system 105 may provide a selection of payment options for completing a POS transaction. Referring toFIG. 7 , thecomputing system 105 may display a screen 505 that includes threepayment option buttons 710A-C. In various embodiments, the screen 505 may be displayed during an ecommerce checkout process for purchasing products and/or services from an online store or a merchant website (e.g., a website associated with merchant 140). As shown byFIG. 7 , thecomputing system 105 may be a mobile device including a touchscreen display device, wherein a user may provide an input to thecomputing system 105 by performing one or more gestures on the touchscreen display device using a finger, a stylus, etc. Thepayment option buttons 710A-C may be graphical control elements that may be used to provide a selection of one of a plurality of payment options. In such embodiments, the user may press one of thepayment option buttons 710A-C to select a desired payment option. When a user ofcomputing system 105 selects a desired payment option (e.g.,payment option 1 710A), thecomputing system 105 may activate theePOS client 110 so that the user may access thevPOS 120 to complete the POS transaction. - Referring back to
FIG. 6 , atoperation 800 thecomputing system 105 may obtain a unique identifier associated with thecomputing system 105 and provide the unique identifier to initiate the POS transaction. Referring toFIG. 8 , when theePOS client 110 is activated, theePOS client 110 may display a screen 605 that allows a user to enter or input a unique identifier associated with thecomputing system 105. In embodiments where thecomputing system 105 includes a touchscreen display device, thescreen 805 may include a keypad that may be overlaid on top of the ePOS client 110 (not shown) so as to enable the user of the computing device to enter the unique identifier into thetext box 810.Text box 810 may be any type of graphical control element that enables a user of thecomputing system 105 to input text information to be used for initiating a POS transaction. Thesend button 815 may be a graphical control element that may operate in a same or similar fashion as thepayment option buttons 710A-C, which may be used to submit the unique identifier to thecloud POS service 135. - In the embodiment shown by
FIG. 8 , the unique identifier may be a phone number associated with thecomputing system 105. As shown, a user of thecomputing system 105 may input the phone number intotext box 810, and when the user selects thesend button 815, theePOS client 110 may provide the phone number to thecloud POS service 135 to initiate the POS transaction. It should be noted that in some embodiments, the unique identifier may be an email address, a media access control (MAC) address, a domain name, an IP address, and/or any other like unique identifier. - Referring back to
FIG. 6 , atoperation 900, theePOS client 110 of thecomputing system 105 may receive a transaction initiation from thecloud POS service 135. Referring toFIG. 9 , when thecomputing system 105 receives the transaction initiation, theePOS client 110 may displayscreen 905, which includesmessage 910 that indicates that thecomputing system 105 has received a POS transaction initiation. In embodiments where the unique identifier is a phone number associated with thecomputing system 105, the transaction initiation may be received via a text message. In such embodiments, the text message may be a short message service (SMS) message, a multimedia messaging service (MMS) message, or any other type of message that based in cellular network technology. It should be noted that in embodiments where the unique identifier is a MAC address or an IP address, themessage 910 may be a push notification sent by a messaging service (e.g., messaging service 160), a notification in response to a client pull communication, and/or the like. In various embodiments, themessage 910 may be a graphical control element that allows a user of thecomputing system 105 to initiate processing the POS transaction indicated by themessage 910. For example, when the user selects themessage 910, theePOS client 110 may provide a user interface that allows the user to select one or more payment credentials to be used for processing the POS transaction. - Referring back to
FIG. 6 , atoperation 1000, theePOS client 110 of thecomputing system 105 may provide a selection of a payment credential to be used for processing the POS transaction. Referring toFIG. 10 , theePOS client 110 may displayscreen 1005, which includesmessage 1010,payment credential buttons 1015A-C, cancelbutton 1020, and authorizebutton 1025. - In the embodiment shown by
FIG. 10 , themessage 1010 may indicate a POS transaction amount (e.g., $54.50) and a merchant payee (e.g., merchant 140). Themessage 1010 may also include a trademark, symbol, emblem, or other like identifying image associated with the merchant payee. In some embodiments themessage 1010 may include the same or similar information asmessage 910. - The
payment credential buttons 1015A-C may be graphical control elements that may operate in a same or similar fashion asbuttons 710A-C and 815. Thepayment credential buttons 1015A-C may allow a user of thecomputing system 105 to select a desired payment credential stored in thePCDB 125. Each of the payment credentials represented bypayment credential buttons 1015A-C may include payment information that may be accepted by a merchant payee. In most embodiments, each of the payment credentials may be associated with a physical credit card, a charge card, a debit card, a prepaid card, a gift card, an automated teller machine (ATM) card, an EBT card, a stored-value card, a fleet card, an electronic check, digital currency wallet, and/or other like physical payment credentials. In such embodiments, each payment credential may include payment information, such as card number, expiration date, card verification code (CVC) code, digital currency public-private key pairs, cardholder name, billing address, security questions and answers, and the like. In some embodiments, each payment credential may be associated with an electronic form of payment, without a physical counterpart, such as an electronic script or any other type of substitute for legal tender. In such embodiments, the payment credentials may include the same or similar information as discussed previously with regard to physical payment cards. Additionally, each payment credential may also include additional information that is required or desired to complete a POS transaction, such as authentication terms and/or transaction terms required by a payment credential, a merchant authentication challenge, a cryptographic client certificate that is unique to a payment credential, and/or other like POS transaction-related data. - Furthermore,
FIG. 10 shows threepayment credential buttons 1015A-C, each of which is associated with a different payment credential. However, according to various embodiments, the number of payment credential buttons that are displayed inscreen 805 may vary according to the number and types of payment credentials accepted by themerchant 140 and/or the number and types of payment credentials that are stored in thePCDB 125. Therefore, many more (or fewer) payment credentials may be displayed inscreen 805. For example, themerchant 140 may only accept payment credentials associated withpayment credential buttons 1015A-C even though thePCDB 125 stores many more payment credentials. By way of another example, thePCDB 125 may only include the payment credentials associated withpayment credential buttons 1015A-C, even though themerchant 140 may accept many more payment credentials. Additionally, in some embodiments, the POS transaction initiation may indicate a geographic location of themerchant 140, and theePOS client 110 may obtain payment credentials from within thePCDB 125 that may be accepted within a jurisdiction or other like venue containing the geographic location of themerchant 140. By way of example, thePCDB 125 may include payment credentials that may be accepted in the United States and payment credentials that may be accepted in France, and if themerchant 140 is located within the United States, thepayment credential buttons 1015A-C may be associated with payment credentials that are issued by issuing banks located within the United States or otherwise accepted by merchants located within the United States, even though thecomputing system 105 may be located within France. In various embodiments, the POS transaction initiation may indicate the types of payment credentials accepted by themerchant 140, and theePOS client 110 may generatescreen 1005 to include a number of payment credential buttons 1015 based on a query of thePCDB 125 using the information contained in the POS transaction initiation. In some embodiments, theePOS client 110 may submit the query to thevPOS 120, which may conduct the actual search through thePCDB 125, while in other embodiments theePOS client 110 may search through the paymentcredential DB module 110 independent of thevPOS 120. For example, theePOS client 110 may submit the query through a secure I/O interface 340 (see e.g., the example embodiments described with regard toFIGS. 2 and 5 ) or may issue one or more SGX commands to query the PCDB 125 (see e.g., the example embodiments described with regard toFIGS. 3 and 5 ). - Once the user of the
computing system 105 selects one of the payment credentials to be used for processing the POS transaction, such by pressing thepayment credential button 1015A to selectpayment credential 1, the user may then select the authorizebutton 1025 to initiate thevPOS 120 to process the POS transaction using the selectedpayment credential 1, or the user of thecomputing system 105 may select the cancelbutton 1020 to cancel the POS transaction. - Referring back to
FIG. 6 , atoperation 1100, theePOS client 110 of thecomputing system 105 may provide a passcode to authorize use of the selected payment credential. Referring toFIG. 11 , the screen 1105 may includemessage 1110,keypad 1115, cancelbutton 1120, and authorizebutton 1125, which may operate in a same or similar manner asmessage 1010, keypad 1015, cancelbutton 1020, and submitbutton 1025 ofFIG. 10 , respectively. In various embodiments, each of thepayment credentials 1015A-C may require a passcode, password, or other like string of numerals or string of characters to authenticate or otherwise prove an identity of the user of thecomputing system 105. As will become apparent later, the passcode used atoperation 1100 may be different than a personal identification number (PIN) used to authorize use of a payment credential. In some embodiments, the passcode may be specific to each payment credential, while in other embodiments, the passcode may be a same passcode used to access thecomputing system 105, such as from a lockscreen or login screen of thecomputing system 105. Accordingly, in various embodiments, thePCDB 125 may store a passcode in association with each payment credential. - The
keypad 1115 may include a set of buttons or other like graphical control elements arranged in a block or pad that bear a digit, symbol, or character that enables the user of thecomputing system 105 to enter the passcode. Each of the graphical control elements within the keypad 915 may operate in a same or similar manner as discussed with regard tobuttons 710A-C, 815, 1015A-C, 1020, 1025, etc. As shown byFIG. 11 , thecomputing system 105 may be a mobile device including a touchscreen display device, wherein the user may press one or more of the graphical control elements of thekeypad 1115 using a finger or stylus to enter or input a passcode. In some embodiments where thecomputing system 105 includes a touchscreen display device, a gesture-based passcode may be used instead of usingkeypad 1115 to enter a numeric-based and/or character-based passcode. In such embodiments, a user may be required to perform one or more touch-gestures in a predetermined sequence to authenticate or otherwise prove an identity of the user. In embodiments where thecomputing system 105 does not include a touchscreen display device, the passcode may be entered using a physical keyboard or using mouse point-and-click actions. Once the user of thecomputing system 105 inputs a passcode using thekeypad 1115, the user may then select the authorizebutton 1125 to submit the passcode to thevPOS 120 to continue processing the POS transaction using the selected one of thepayment credentials 1015A-C. Additionally, the user of thecomputing system 105 may select the cancelbutton 1120 to cancel the POS transaction. In various embodiments, theePOS client 110 may be operate in conjunction with the Protected Transaction Display (PTD) provided by Intel®, such that the screen 1105 is generated by an application running within theTEE 115 or otherwise outside of theoperating system 260. In such embodiments, the PTD may provide a graphics overlay and randomly placed input options (e.g., buttons of keypad 1115), which may protect the selected inputs from malware scraping and/or other like malicious attempts to obtain payment credential-related information. Furthermore, it should be noted that in various embodiments, instead of requiring a passcode to be entered by a user ofcomputing system 105, atoperation 1100, biometric information (e.g., user voice recognition, facial recognition, eye scan, fingerprint, etc.) may be used as an authenticating factor for proving an identity of the user of thecomputing system 105. In such embodiments, instead of providing thekeypad 1115, thecomputing system 105 may execute an application that utilizes one or more biometric sensors, or other like sensors to obtain the biometric information. - Referring back to
FIG. 6 , atoperation 1200, thevPOS 120 of thecomputing system 105 may begin processing the POS transaction using the selected payment credential when the provided passcode matches a passcode associated with the payment credential. In various embodiments, theePOS client 110 may provide the input passcode fromoperation 1100 to thevPOS 120, wherein thevPOS 120 compares the input passcode with a passcode associated with the selected payment credential. If the input passcode matches the passcode associated with the selected payment credential, thevPOS 120 may provide theePOS client 110 with various POS transaction-related data associated with the selected payment credential to be communicated with thecloud POS service 135. In such embodiments, while thecomputing system 105 is communicating with thecloud POS service 135, theePOS client 110 may displayscreen 1205 to indicate to a user of thecomputing system 105 that the POS transaction is being processed.Message 1210 may indicate one or more operations that thecomputing system 105 is undertaking to process the POS transaction. Accordingly, in various embodiments, themessage 1210 may display information based on the operations that thecomputing system 105 is performing. As shown, thescreen 1205 may includeprogress image 1215, which may be a graphical control element used to visualize a progression of one or more computer operations. In some embodiments, theprogress image 1215 may include a progress bar, a textual representation of the progress in a percent format, a throbber, and/or other like an animated graphical control element that visualizes that one or more computer operations are being performed. - Referring back to
FIG. 6 , atoperation module 1300, theePOS client 110 of thecomputing system 105 may provide a PIN to authorize use of the selected payment credential. Referring toFIG. 13 , thescreen 1305 may includemessage 1310,keypad 1315, cancelbutton 1320, and submitbutton 1325, which may operate in a same or similar manner asmessage 1010, keypad 1015, cancelbutton 1020, and submitbutton 1025 ofFIG. 10 , respectively. In various embodiments, the PIN may be a numeric password that may be used to indicate whether the user of thecomputing system 105 is authorized to use the selected payment credential. In various embodiments, the PIN that is input atoperation module 1300 may be used to authenticate the user with thecloud POS service 135 and/or thevPOS 120, whereas the passcode discussed with regard tooperation 1000 may be used to access the payment credential located within theTEE 115. It should be noted that, in some embodiments, the requirement to enter a PIN may be dependent on the purchase price, merchant requirements and/or payment credential requirements. For example, some payment credentials or merchants may not require a user to enter a PIN when a purchase price is under a threshold amount or when the purchase price is not above a threshold amount. Once the user of thecomputing system 105 inputs a PIN using thekeypad 1315, the user may then select the authorizebutton 1325 to submit the PIN to thecloud POS service 135 to continue processing the POS transaction using the selected payment credential. Additionally, the user of thecomputing system 105 may select the cancelbutton 1320 to cancel the POS transaction. Furthermore, in various embodiments, afteroperation module 1100 theePOS client 110 may displayscreen 1205 as shown byFIG. 12 to indicate to the user of thecomputing system 105 that the POS transaction is currently being processed. - In various embodiments, the
ePOS client 110 may be operate in conjunction with the PTD provided by Intel®, such that the screen 1105 is generated by an application running within theTEE 115 or otherwise outside of theoperating system 260. In such embodiments, the PTD may provide a graphics overlay and randomly placed input options (e.g., buttons of keypad 1115), which may protect the selected inputs from malware scraping and/or other like malicious attempts to obtain payment credential-related information. Furthermore, it should be noted that in various embodiments, instead of requiring a PIN to be entered by a user ofcomputing system 105, atoperation 1300, biometric information (e.g., user voice recognition, facial recognition, eye scan, fingerprint, etc.) may be used as an authenticating factor for authorizing use of the selected payment credential. In such embodiments, instead of providing thekeypad 1315, thecomputing system 105 may execute an application that utilizes one or more biometric sensors, or other like sensors to obtain the biometric information. - Referring back to
FIG. 6 , atoperation 1400, theePOS client 110 of thecomputing system 105 may receive acknowledgment of completion of the POS transaction. Referring toFIG. 14 , theePOS client 110 may displayscreen 1410, which includesmessage 1410 andimage 1415. Themessage 1410 and theimage 1415 may indicate that the POS transaction was successful (as shown), or may indicate that the POS transaction was unsuccessful (not shown). -
FIG. 15 is a flowchart illustrating anexample process 1500 of processing a POS transaction, in accordance with various embodiments. For illustrative purposes, the operations ofprocess 1300 will be described as being performed by thecomputing system 105 utilizing the various modules, as described with respect toFIGS. 1-14 . However, it should be noted that other similar devices, such ascomputing system 105A as discussed with regard toFIGS. 4-5 , may operate theprocess 1500 as described below. While particular examples and orders of operations are illustrated inFIG. 15 , in various embodiments, these operations may be re-ordered, broken into additional operations, combined, and/or omitted altogether. - Referring to
FIG. 15 , atoperation 1505, thevPOS 120 may receive, via theePOS client 110, a transaction initiation from acloud POS service 135,messaging service 160, or other device within themerchant domain 130. In various embodiments, the transaction initiation may be a SMS message, a MMS message, an email message (or a file attached or otherwise included in an email message), a push notification, an OTT message, and/or any other like message that may be received by thecomputing system 105 over a wired or wireless network connection. - At
operation 1510, thevPOS 120 may receive a selection of a payment credential from theePOS client 110. The selection of the payment credential may obtained by theePOS client 110 in a same or similar fashion as discussed with regard toFIGS. 6 and 10 . Atoperation 1515, thevPOS 120 may obtain authentication parameters associated with the selected payment credential from within thePCDB 125. According to various embodiments, thevPOS 120 may obtain the authentication parameters by querying thePCDB 125 according to known database querying methods. Atoperation 1520, thevPOS 120 may provide, via theePOS client 110, authentication parameters associated with the selected payment credential to thecloud POS service 135 or other device within themerchant domain 130. In various embodiments, the authentication parameters may be security measures, defined by the selected payment credential, required for authenticating entities and/or communicating data between entities. - At
operation 1525, thevPOS 120 may receive from thecloud POS service 135, via theePOS client 110, a cryptographic merchant certificate based on the authentication parameters. The cryptographic merchant certificate may be an application cryptogram or a transaction cryptogram (e.g., referred to herein as a “merchant cryptogram”). Additionally or alternatively, the cryptographic merchant certificate may be a public key certificate, digital certificate, identity certificate, etc. that is unique to themerchant 140, which may be used to prove that themerchant 140 owns or otherwise possesses a public key. The cryptographic merchant certificate may include information indicating the identity of themerchant 140, such as an IP address and/or domain name of themerchant 140, a serial number that is unique to the cryptographic merchant certificate, a digital signature used to verify that the cryptographic merchant certificate originated from themerchant 140, a signature algorithm used to create the digital signature, an issuer identifier such as an IP address and/or domain name, generation date, expiration date, key-usage information, a public key, an algorithm used to hash the public key (also referred to as a “thumbprint algorithm”), a hashed public key (also referred to as a “thumbprint”), and/or any other like information. In various embodiments, the cryptographic merchant certificate may be generated and issued to themerchant 140 by a certificate authority in accordance with EMV standards 4.3 and/or other like standards. However, in various embodiments, the authentication parameters may define one or more criteria required by the selected payment credential to verify the identity of themerchant 140. Thus, in various embodiments, the cryptographic merchant certificate may be altered to fulfill one or more of the authentication parameters, or may include additional information required by the authentication parameters to validate the identity of themerchant 140. - At
operation 1530, thevPOS 120 may validate themerchant 140 identity using the cryptographic merchant certificate. ThevPOS 120 may validate the merchant identity according to known methods, such as by using a public key contained in the cryptographic merchant certificate, obtaining a public key associated with themerchant 140 from a certificate authority (either directly or via the cloud POS service 135), validating the public key signature from the cryptographic merchant certificate with the public key retrieved from the certificate authority, confirming the IP address and/or domain name of themerchant 140 listing in the cryptographic merchant certificate, generating a shared symmetric key to be used to encrypt POS transaction data, encrypting the symmetric key with the public key, and sending the encrypted symmetric key and public key back to ensure that only thecloud POS service 135 can decrypt the encrypted symmetric key and public key using a private key. In some embodiments, thevPOS 120 may validate a digital signature included with the cryptographic merchant certificate according to known methods, which may include obtaining a session key, obtaining a private key associated with themerchant 140, decrypting the session key using the private key, obtaining an encrypted hash value associated with themerchant 140, obtaining a public key associated with themerchant 140, decrypting the encrypted hash value using the public key, comparing the decrypted hash value with the calculated hash value, and validating the identity of themerchant 140 if the decrypted hash value matches the calculated hash value. It should be noted that themerchant 140 identity may be validated using one or more other known methods in addition to, or alternative to the aforementioned methods. - At
operation 1535, thevPOS 120 may generate transaction data upon properly validating themerchant 140. In various embodiments, the transaction data may include transaction terms required by the selected payment credential, a cryptographic client certificate, and an authentication challenge. The cryptographic client certificate may be an application cryptogram or a transaction cryptogram (e.g., referred to herein as a “client cryptogram”). Additionally or alternatively, the transaction terms may include authorization information required by the selected payment credential to authorize payment for the POS transaction. For example, authorization information may indicate whether the user of thecomputing system 105 is required to enter a PIN, and in some embodiments, the requirement to enter a PIN may be dependent on the purchase price or other like criteria. For example, some payment credentials may not require a user to enter a PIN when a purchase price is under a threshold amount or when the purchase price is not above a threshold amount. - At
operation 1540, thevPOS 120 may provide, via theePOS client 110, the transaction data to thecloud POS service 135. Prior to providing the transaction data to theePOS client 110, thevPOS 120 may encrypt the transaction data using an RSA encryption algorithm, a triple data encryption algorithm (3DES), a secure hash algorithm (SHA), a format preserving encryption algorithm, elliptic curve cryptography, an Advanced Encryption Standard (AES) algorithm, and/or according to any other type of encryption method. In response to properly validating the cryptographic client certificate and decrypting the authentication challenge, thecloud POS service 135 may solicit a PIN from theePOS client 110. The cryptographic client certificate may be validated in a same or similar manner as discussed previously with regard to validating themerchant 140 identity using the cryptographic merchant certificate. - At
operation 1545, thevPOS 120 may receive, via theePOS client 110, updated transaction terms from thecloud POS server 135. In various embodiments, the updated transaction terms may be a stricter version of the transaction terms required by themerchant 140 and/or thepayment acquiring service 145 and the transaction terms provided by thevPOS 120 atoperation 1540. In such embodiments, the updated transaction terms may include transaction terms that are common to both the transaction terms required by the selected payment credential and the transaction terms required by the merchant 140 (or required by the payment acquiring service 145), as well as any transaction terms that are required by the selected payment credential or themerchant 140/payment acquiring service 145 that are not included in the transaction terms of the other entity. For example, if the selected payment credential requires a user to enter a PIN for POS transactions that are more than $50, and themerchant 140 requires a user to enter a PIN for POS transactions that are more than $25, then the updated transaction terms may require a user to enter a PIN for a POS transaction having a payment amount that is more than $25. By way of another example, if the selected payment credential requires a user to enter a PIN and a cardholder birthdate for POS transactions that are more than $50, and themerchant 140 only requires a user to enter a PIN for POS transactions that are more than $50, then the updated transaction terms may require a user to enter a PIN and a cardholder birthdate for transaction that are more than $50. In various embodiments, thevPOS 120 may accept or deny the updated transaction terms, wherein thevPOS 120 may process the POS transaction according to the transaction terms delineated by the selected payment credential if thevPOS 120 denies the updated transaction terms, or thevPOS 120 may process the POS transaction using the updated transaction terms if thevPOS 120 accepts the updated transaction terms. - At
operation 1550, thevPOS 120 may generate and encrypt payment data. In various embodiments, the payment data may be generated and encrypted in response to properly validating a PIN and/or other like security information as required by the updated transaction terms. In various embodiments, the payment data may include transaction settlement authorization information (e.g., billing information such as payment amount, currency type, account number, billing/payment address, shipping address, and/or other like cardholder data) a digital signature associated with the payment credential and/or thecomputing system 105, and/or other like information. Once generated, the payment data may be encrypted using an RSA encryption algorithm, a triple data encryption algorithm (3DES), a secure hash algorithm (SHA), a format preserving encryption algorithm, elliptic curve cryptography, an Advanced Encryption Standard (AES) algorithm, and/or according to any other type of encryption method. Atoperation 1555, thevPOS 120 may provide, via theePOS client 110, the encrypted payment data to thecloud POS service 135. Once thevPOS 120 provides the encrypted payment data, thecomputing system 105 may proceed back tooperation 1505 to receive, via theePOS client 110, a transaction initiation from thecloud POS service 135. -
FIG. 16 is a flowchart illustrating anexample process 1400 of processing a POS transaction, in accordance with various embodiments. For illustrative purposes, the operations of process 1600 will be described as being performed by the various elements as described with respect toFIGS. 1-3 . However, it should be noted that other similar devices, such as thecomputing system 105A as described with regard toFIGS. 4-5 , may operate the process 1600 as described below. While particular examples and orders of operations are illustrated inFIG. 16 , in various embodiments, these operations may be re-ordered, broken into additional operations, combined, and/or omitted altogether. - Referring to
FIG. 16 , atoperation 1603, theePOS client 110 may transmit a payment initiation to themerchant 140. In various embodiments,operation 1603 may be performed during an ecommerce checkout procedure on a website associated with themerchant 140. In response to the payment initiation, atoperation 1606, themerchant 140 may transmit a payment request to thecloud POS service 135. - At
operation 1609, thecloud POS service 135 may transmit payment information to themessaging service 160. The payment information may include client device identification information (e.g., MAC address of thecomputing system 105, IP address of thecomputing system 105, and/or any other type of identifier), merchant identification information (e.g., MAC address of themerchant 140, IP address of themerchant 140, and/or any other like identifier), a POS transaction amount (e.g., a purchase price), a currency type for the POS transaction, merchant-accepted payment credentials, and/or other like POS transaction-related data. Atoperation 1612, themessaging service 160 may transmit the payment information notification to theePOS client 110. - At
operation 1615, theePOS client 110 may enumerate the payment credentials. In various embodiments, theePOS client 110 may query thePCDB 125 via thevPOS 120 to obtain a list of one or more payment credentials stored in thePCDB 125 that match the merchant-accepted payment credentials contained in the payment information notification. - At
operation 1618, theePOS client 110 may receive a selection of the one or more enumerated payment credentials, and may provide the selection of the one or more enumerated payment credentials to thevPOS 120. Atoperation 1621, thevPOS 120 may obtain one or more authentication parameters and/or other like information associated with the selected payment credential from thePCDB 125. As discussed previously, the authentication parameters may be security measures, defined by the selected payment credential, that are required for authenticating entities and/or communicating data between entities. Atoperation 1624, thevPOS 120 may provide authentication parameters to theePOS client 110, which in turn may transmit the authentication parameters to thecloud POS service 135. - At
operation 1627, thecloud POS service 135 may transmit merchant parameters and a merchant certificate to theePOS client 110, which in turn may provide the merchant parameters and the merchant certificate to thevPOS 120. The merchant parameters may be security measures, defined by themerchant 140 and/or thepayment acquiring service 145, that are required for authenticating entities and/or communicating data between entities. In various embodiments, the stricter security requirements between the authentication parameters and the merchant parameters may be used to authenticate entities, encrypt payment data, encode data packets containing the payment data, and/or the like. - At
operation 1630, the vPOS 1430 may validate the merchant certificate and the merchant parameters. Upon properly validating the merchant certificate and the merchant parameters, atoperation 1633, the vPOS may provide transaction terms, an authentication challenge and a cryptographic client certificate to theePOS client 110, which in turn may transmit the transaction terms, the authentication challenge and the cryptographic client certificate to thecloud POS server 135. - At
operation 1636, thecloud POS service 135 may validate the cryptographic client certificate and decrypt the authentication challenge. Upon properly decrypting the authentication challenge and properly validating the cryptographic client certificate, atoperation 1639, thecloud POS service 135 may transmit a PIN solicitation to theePOS client 110, and in response, theePOS client 110 may transmit an inputted PIN to thecloud POS service 135. Atoperation 1642, thecloud POS service 135 may generate a PIN block based on the PIN received during the PIN solicitation. In various embodiments, the user may be required to enter a PIN in order to authorize use of the selected payment credential for the POS transaction. The PIN may be issued to the user by an issuer of the payment credential and may be used to authenticate the user's identity. In typical POS transactions, the cardholder is usually required to enter their PIN into a standalone physical POS terminal, the standalone physical POS terminal encodes the PIN into a PIN block and sends the PIN block to themerchant domain 130 for payment processing. In typical POS transactions where the payment credential is a smart card that includes a EMV chip, the cardholder is usually required to enter their PIN into the standalone physical POS terminal, and the standalone physical POS terminal sends the PIN to the to the smart card to check if the PIN is correct, wherein the smart card sends the result to the terminal so that the transaction continues if the PIN is correct. According to various example embodiments, when the user of thecomputing system 105 enters a PIN, the PIN may be encoded into a PIN block to protect the PIN during transmission between theePOS client 110 and thecloud POS service 135. In such embodiments, the PIN may be enciphered/deciphered and communicated according to ISO 9564, one or more EMV standards, and/or any other like standard. According to other embodiments, thePCDB 125 may store a PIN associated with the selected payment credential, and when the user of thecomputing system 105 enters a PIN, the entered PIN may be checked against the stored PIN. In some embodiments, the PIN may not be required to be enciphered when shared between theePOS client 110 and thevPOS 120, which may reduce the amount of computational resources used for processing the POS transaction. It should be noted that in other embodiments, other types of authentication methods may be used instead of, or in addition to using a PIN to authorize use payment credentials. - At
operation 1645, thecloud POS service 135 may transmit the ciphered PIN and updated transaction terms to theePOS client 110, which in turn, may provide the ciphered PIN and the updated transaction terms to thevPOS 120. Atoperation 1648, thevPOS 120 may verify the PIN and digitally sign the updated transaction terms. - At
operation 1651, thevPOS 120 may generate and encrypt payment data. In various embodiments, the payment data may be encrypted according to EMV standards. Atoperation 1654, thevPOS 120 may provide the encrypted payment data to the POS UI, which in turn, may transmit the encrypted payment data to thecloud vPOS 135, which in turn, may transmit the encrypted payment data to theacquirer 145. Atoperation 1657, theacquirer 145 may transmit a payment status message to thecloud POS service 135. Atoperation 1660, thecloud POS service 135 may transmit a payment status message to themerchant 140. Atoperation 1663, themerchant 140 may transmit a payment confirmation to theePOS client 110. - Some non-limiting Examples are provided below.
- Example A01 includes a computer-implemented method for processing a point of sale (POS) transaction. The method may comprise receiving, by a virtual POS terminal within a trusted execution environment of a cloud trusted execution environment, a transaction initiation from a network element via a POS user interface (UI) module (or “POS client”) wherein the transaction initiation indicates the POS transaction and one or more payment options to be used for processing the POS transaction; receiving, by the virtual POS terminal from the ePOS client, a selection of a payment credential matching one of the one or more payment options; obtaining, by the virtual POS terminal, the selected payment credential from within a payment credential storage unit located in the trusted execution environment; validating, by the virtual POS terminal, a merchant domain associated with the transaction initiation; encrypting, by the virtual POS terminal, payment data when the merchant domain is properly validated; and providing, by the virtual POS terminal, the encrypted payment data to the ePOS client wherein the ePOS client communicates the encrypted payment data to the network element.
- Example A02 includes the method of the preceding example, and/or according to any example disclosed herein, wherein the payment credential storage unit stores a plurality of payment credentials and wherein obtaining the selected payment credential comprises obtaining one of the plurality of payment credentials.
- Example A03 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the selected payment credential defines authentication parameters required to validate the merchant identity and process the POS transaction using the payment credential, and the method further comprises providing the authentication parameters to the ePOS client, wherein the ePOS client is to provide the authentication parameters to the network element.
- Example A04 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, via the ePOS client, a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, wherein the validating comprises decrypting the cryptographic merchant certificate; generating transaction data upon validation of the merchant domain, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge; and encrypting the transaction data.
- Example A05 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, from the network element via the ePOS client, a PIN block; deciphering the PIN block; and upon properly deciphering the PIN block, generating the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example A06 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the payment credential storage unit stores a plurality of passcodes in association with a corresponding one of a plurality of payment credentials, wherein each of the plurality of passcodes is to be entered to authorize use of the corresponding one of the plurality of payment credentials, and the selected payment credential is one of the plurality of payment credentials, and the method further comprises providing an indication to the ePOS client to generate a UI for inputting passcodes; receiving an input passcode from the ePOS client; determining whether the input passcode is equal to a passcode stored in association with the selected payment credential; and authorizing the selected payment credential to be used for processing the POS transaction when the input passcode is determined to be equal to the passcode stored in association with the selected payment credential.
- Example A07 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein receiving a transaction initiation comprises receiving a transaction initiation that includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example A08 includes the method of any of the preceding examples, and/or according to any example disclosed herein, wherein the receiving of a transaction initiation, the receiving of a selection of a payment credential, the obtaining, the validating, the encrypting and the providing are performed by the virtual POS terminal operating on a secure processor of the trusted execution environment, with the ePOS client being an only interface communicatively coupled with the virtual POS terminal.
- Example A09 includes the method of any of the preceding examples, and/or according to any example disclosed herein, further comprising receiving, by the ePOS client, the transaction initiation via a text message or a messaging service message that includes a unique identifier of the computing device provided by a user of the computing device.
- Example B01 includes a computing device first means to receive a transaction initiation, and provide a selection of a payment credential to be used to process a POS transaction. The computing device comprises a second means, communicatively coupled with the first means, to process the POS transaction in response to the selection of the payment credential. The second means comprises a third means to store the selected payment credential; and a fourth means to validate a merchant associated with the transaction initiation, process the POS transaction using the selected payment credential to generate payment data, and encrypt the payment data. The first means is further to receive the encrypted payment data from the fourth means, and communicate the encrypted payment data to a network element.
- Example B02 includes the computing device of the preceding example, and/or according to any example disclosed herein, wherein the first means is to receive a transaction initiation that indicates one or more payment options to be used for the POS transaction, and the selected payment credential is to match one of the one or more payment options.
- Example B03 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to provide a selected payment credential that defines authentication parameters required to validate the merchant identity and the second means is to process the POS transaction using the payment credential, wherein the fourth means is to provide the authentication parameters to the first means, and the first means is to provide the authentication parameters to the network element.
- Example B04 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, and the fourth means is to decrypt the cryptographic merchant certificate to validate the merchant, and upon validation of the merchant, the fourth means is to generate and encrypt transaction data, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge.
- Example B05 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a personal identification number, PIN, solicitation upon proper decryption of the cryptographic client certificate by the network element, and upon proper decryption of the merchant authentication challenge, and in response to PIN solicitation, the first means is to provide a UI to input a PIN, and communicate the input PIN to the network element, wherein the first means is to receive a PIN block and updated transaction terms upon validation of the input PIN.
- Example B06 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive updated transaction terms that are based on a combination of the payment credential transaction terms and merchant required transaction terms, and provide the updated transaction terms to the fourth means, and the fourth means is to accept or deny the updated transaction terms, process the POS transaction according to the payment credential transaction terms when the fourth means denies the updated transaction terms, and process the POS transaction according to the updated transaction terms when the fourth means accepts the updated transaction terms.
- Example B07 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive updated transaction terms that include transaction terms which are common to both the payment credential transaction terms and merchant required transaction terms, and any transaction terms that are required by one of the payment credential transaction terms or the merchant required transaction terms but not including the other one of the payment credential transaction terms or the merchant required transaction terms, and provide the updated transaction terms to the fourth means, and the fourth means is to process the POS transaction according to the updated transaction terms.
- Example B08 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive PIN block that is enciphered using one of format 0,
format 1,format 2, orformat 3 in accordance with International Organization for Standardization (ISO) 9564. - Example B09 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the fourth means is to receive the PIN block from the first means, decipher the PIN block, and upon a proper decipher of the PIN block, the fourth means is to generate the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example B10 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a payment confirmation from the merchant when the encrypted payment information is properly decrypted by a payment acquiring service associated with the payment credential.
- Example B11 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store a plurality of payment credentials, and the first means is to display a set of the plurality of payment credentials based on information contained in the transaction initiation.
- Example B12 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store, in association with each of the plurality of payment credentials, information indicating one or more jurisdictions in which each of the plurality of payment credentials are accepted, and the first means is to display ones of the plurality of payment credentials that are accepted within a jurisdiction of the merchant based on a geographic location of the merchant, wherein the information contained in the transaction initiation includes information indicating the geographic location of the merchant.
- Example B13 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the third means is to store a plurality of passcodes in association with a corresponding one of a plurality of payment credentials wherein the selected payment credential is one of the plurality of payment credentials, and the passcode stored in association with the selected payment credential is to be entered to authorize use of the selected payment credential, and wherein the first means is to provide a UI for input of passcodes.
- Example B14 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive a transaction initiation that includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example B15 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the second means comprises another processor, the fourth means is to operate on the other processor to process the POS transaction, and the first means is an only module communicatively coupled with the fourth means.
- Example B16 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the second means is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- Example B17 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the first means is to receive the transaction initiation via a text message or a messaging service message wherein a unique identifier of the computing device is provided by a user of the computing device to initialize the transaction initiation.
- Example B18 includes the computing device of any of the preceding examples, and/or according to any example disclosed herein, wherein the text message is one of a short message service (SMS) message, a multimedia messaging service (MMS) message, an Over-the-Top (OTT) message, a push notification, or an email message.
- Example C01 includes a computing system comprising: application processor circuitry arranged to operate a point of sale (POS) client to: receive a transaction initiation, and provide a selection of a payment credential to be used to process a POS transaction; a trusted execution environment (TEE), the TEE communicatively coupled with the application processor circuitry, the TEE arranged to process the POS transaction in response to the selection of the payment credential, wherein the TEE comprises: a payment credential storage unit arranged to store one or more payment credentials including the selected payment credential; and a virtual POS terminal arranged to validate a merchant associated with the transaction initiation, obtain the selected payment credential from the payment credential storage unit, process the POS transaction using the selected payment credential to generate payment data, and encrypt the payment data, wherein the POS client is arranged to receive the encrypted payment data from the virtual POS terminal; and network interface circuitry communicatively coupled with the application processor circuitry, the network interface circuitry arranged to communicate the encrypted payment data to a merchant system owned or operated by the merchant.
- Example C02 includes the computing system of example C01 and/or some other examples herein, wherein the transaction initiation indicates one or more payment options to be used for the POS transaction, and the selected payment credential is to match one of the one or more payment options.
- Example C03 includes the computing system of examples C01-C02 and/or some other examples herein, wherein the POS client is arranged to provide a selected payment credential that defines authentication parameters required to validate a merchant identity of the merchant and the trusted execution environment is to process the POS transaction using the payment credential, wherein the virtual POS terminal is arranged to provide the authentication parameters to the network interface circuitry via the POS client for transmission to the merchant system.
- Example C04 includes the computing system of example C03 and/or some other examples herein, wherein: the POS client is arranged to receive, via the network interface circuitry and the POS client, a cryptographic merchant certificate that is based on the authentication parameters, and the virtual POS terminal is arranged to decrypt the cryptographic merchant certificate to validate the merchant identity, and upon validation of the merchant identity, the virtual POS terminal is arranged to generate and encrypt transaction data, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge.
- Example C05 includes the computing system of example C04 and/or some other examples herein, wherein the POS client is arranged to: receive, via the network interface circuitry and the POS client, a personal identification number (PIN) solicitation upon proper decryption of the cryptographic client certificate by the merchant system; and upon proper decryption of the merchant authentication challenge and in response to PIN solicitation, the POS client is arranged to: cause a UI to input a PIN to be generated and displayed; and provide the input PIN to the network interface circuitry via the POS client for transmission to the merchant system, wherein the POS client is arranged to receive, from the merchant system via the network interface circuitry, a PIN block and updated transaction terms upon validation of the input PIN.
- Example C06 includes the computing system of example C05 and/or some other examples herein, wherein the updated transaction terms are based on a combination of the payment credential transaction terms and merchant required transaction terms, and wherein: the POS client is arranged to provide the updated transaction terms to the virtual POS terminal, and the virtual POS terminal is arranged to accept or deny the updated transaction terms, process the POS transaction according to the payment credential transaction terms when the virtual POS terminal denies the updated transaction terms, and process the POS transaction according to the updated transaction terms when the virtual POS terminal accepts the updated transaction terms.
- Example C07 includes the computing system of examples C05-C06 and/or some other examples herein, wherein the updated transaction terms include transaction terms which are common to both the payment credential transaction terms and merchant required transaction terms, wherein any transaction terms are required by one of the payment credential transaction terms or the merchant required transaction terms but not included in the other one of the payment credential transaction terms or the merchant required transaction terms, and wherein: the POS client is arranged to provide the updated transaction terms to the virtual POS terminal, and the virtual POS terminal is arranged to process the POS transaction according to the updated transaction terms.
- Example C08 includes the computing system of examples C05-C07 and/or some other examples herein, wherein the virtual POS terminal is arranged to receive the PIN block from the POS client, decipher the PIN block, and upon a proper decipher of the PIN block, the virtual POS terminal is arranged to generate the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Example C09 includes the computing system of example C08 and/or some other examples herein, wherein the POS client is arranged to receive a payment confirmation from the merchant system via the network interface circuitry when the encrypted payment information is properly decrypted by a payment acquiring service associated with the payment credential.
- Example C10 includes the computing system of examples C01-C09 and/or some other examples herein, wherein the payment credential storage unit is arranged to store a plurality of payment credentials, and the POS client is arranged to cause display of a set of the plurality of payment credentials based on information contained in the transaction initiation.
- Example C11 includes the computing system of examples C01-C10 and/or some other examples herein, wherein the payment credential storage unit is arranged to store a plurality of passcodes in association with a corresponding one of a plurality of payment credentials wherein the selected payment credential is one of the plurality of payment credentials, and the passcode stored in association with the selected payment credential is to be entered to authorize use of the selected payment credential, and wherein the POS client is arranged to cause a UI for input of passcodes to be displayed.
- Example C12 includes the computing system of examples C01-C11 and/or some other examples herein, wherein the transaction initiation includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example C13 includes the computing system of examples C01-C12 and/or some other examples herein, wherein the TEE is a tamper-resistant chipset including a secure processor, and the virtual POS terminal is arranged to operate on the secure processor to process the POS transaction, and the POS client is an only module outside of the TEE communicatively coupled with the virtual POS terminal.
- Example C14 includes the computing system of examples C01-C12 and/or some other examples herein, wherein the TEE is one of Intel® Management Engine, Intel® Software Guard Extensions, or Intel® Converged Security Engine (CSE).
- Example C15 includes the computing system of examples C01-C14 and/or some other examples herein, wherein the network interface circuitry is arranged to receive the transaction initiation via a text message or a messaging service message, wherein a unique identifier of the computing system is provided by a user of the computing system to initialize the transaction initiation.
- Example C16 includes the computing system of example C15 and/or some other examples herein, wherein the text message is a short message service (SMS) message, a multimedia messaging service (MMS) message, an Over-the-Top (OTT) message, a push notification, or an email message.
- Example D01 includes a virtual point of sale (POS) method for processing a POS transaction, the method comprising: receiving a transaction initiation from a merchant system via network interface circuitry of a computing system that includes the computing device and a POS user interface (UI) module operated by an application processor of the computing system, wherein the transaction initiation indicates the POS transaction and one or more payment options to be used for processing the POS transaction; receiving, from the POS client, a selection of a payment credential matching one of the one or more payment options; obtaining the selected payment credential from within a payment credential storage unit located in a trusted execution environment (TEE); validating a merchant domain associated with the transaction initiation, the merchant domain including the merchant system; encrypting payment data when the merchant domain is properly validated; and providing the encrypted payment data to the network interface circuitry via the POS client for communication of the encrypted payment data to the merchant system.
- Example D02 includes the method of example D01 and/or some other examples herein, wherein the payment credential storage unit stores a plurality of payment credentials, and wherein obtaining the selected payment credential comprises: obtaining one of the plurality of payment credentials from the payment credential storage unit.
- Example D03 includes the method of examples D01-D02 and/or some other examples herein, wherein the selected payment credential defines authentication parameters required to validate a merchant identity of the merchant domain and process the POS transaction using the payment credential, and the method comprises: providing the authentication parameters to the network interface circuitry via the POS client for transmission to the merchant system.
- Example D04 includes the method of example D03 and/or some other examples herein, further comprising: receiving, from the merchant system via the network interface circuitry and the POS client, a cryptographic merchant certificate wherein the merchant certificate is based on the authentication parameters, wherein validating the merchant domain comprises: decrypting the cryptographic merchant certificate, generating transaction data upon validation of the merchant domain, wherein the transaction data includes a cryptographic client certificate, payment credential transaction terms defined by the authentication parameters, and a merchant authentication challenge, and encrypting the transaction data.
- Examples D05 includes the method of example D04 and/or some other examples herein, further comprising: receiving, from the merchant system via the network interface circuitry and the POS client, a PIN block; deciphering the PIN block; and generating, upon proper decipher of the PIN block, the payment data wherein the payment data includes a digital signature associated with the payment credential and a payment address associated with the payment credential.
- Examples D06 includes the method of examples D01-D05 and/or some other examples herein, wherein the payment credential storage unit stores a plurality of passcodes in association with a corresponding one of a plurality of payment credentials, wherein each of the plurality of passcodes is to be entered to authorize use of the corresponding one of the plurality of payment credentials, and the selected payment credential is one of the plurality of payment credentials, and the method comprises: providing an indication to the POS client to generate and display a UI for inputting passcodes; receiving an input passcode from the POS client; determining whether the input passcode is equal to a passcode stored in association with the selected payment credential; and authorizing the selected payment credential to be used for processing the POS transaction when the input passcode is determined to be equal to the passcode stored in association with the selected payment credential.
- Example D07 includes the method of examples D01-D06 and/or some other examples herein, wherein the transaction initiation includes a purchase price of the POS transaction and a currency to be used to process the POS transaction.
- Example D08 includes the method of examples A17-D07 and/or some other examples herein, wherein the computing device is a secure processor of the TEE, and wherein the POS client is to be operated by a host platform of a computing system including the secure processor, and the POS client is an only interface outside of the TEE that is communicatively coupled with the virtual POS terminal.
- Example D09 includes the method of examples D01-D08 and/or some other examples herein, wherein the transaction initiation is a text message or a messaging service message that includes a unique identifier of the computing device provided by a user of the computing device.
- Example Z01 may include an apparatus comprising means to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein. Example Z02 may include one or more non-transitory computer-readable media comprising instructions to cause an electronic device, upon execution of the instructions by one or more processors of the electronic device, to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein. Example Z03 may include an apparatus comprising logic, modules, or circuitry to perform one or more elements of a method described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or any other method or process described herein. Example Z04 may include a method, technique, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof. Example Z05 may include an apparatus comprising: one or more processors and one or more computer-readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof. Example Z06 may include a signal as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof. Example Z07 may include a datagram, packet, frame, segment, protocol data unit (PDU), or message as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure. Example Z08 may include a signal encoded with data as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure. Example Z09 may include a signal encoded with a datagram, packet, frame, segment, protocol data unit (PDU), or message as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions or parts thereof, or otherwise described in the present disclosure. Example Z10 may include an electromagnetic signal carrying computer-readable instructions, wherein execution of the computer-readable instructions by one or more processors is to cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof. Example Z11 may include a computer program comprising instructions, wherein execution of the program by a processing element is to cause the processing element to carry out the method, techniques, or process as described in or related to any of examples A01-A09, B01-B18, C01-C16, D01-D09, or portions thereof.
- Although certain embodiments have been illustrated and described herein for purposes of description, a wide variety of alternate and/or equivalent embodiments or implementations calculated to achieve the same purposes may be substituted for the embodiments shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the embodiments discussed herein, limited only by the claims.
Claims (22)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/559,413 US20200167775A1 (en) | 2015-06-15 | 2019-09-03 | Virtual pos terminal method and apparatus |
US18/172,797 US20230281612A1 (en) | 2015-06-15 | 2023-02-22 | Virtual pos terminal method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/739,911 US10410211B2 (en) | 2015-06-15 | 2015-06-15 | Virtual POS terminal method and apparatus |
US16/559,413 US20200167775A1 (en) | 2015-06-15 | 2019-09-03 | Virtual pos terminal method and apparatus |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/739,911 Continuation US10410211B2 (en) | 2015-06-15 | 2015-06-15 | Virtual POS terminal method and apparatus |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/172,797 Continuation US20230281612A1 (en) | 2015-06-15 | 2023-02-22 | Virtual pos terminal method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200167775A1 true US20200167775A1 (en) | 2020-05-28 |
Family
ID=57515955
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/739,911 Active 2037-11-07 US10410211B2 (en) | 2015-06-15 | 2015-06-15 | Virtual POS terminal method and apparatus |
US16/559,413 Abandoned US20200167775A1 (en) | 2015-06-15 | 2019-09-03 | Virtual pos terminal method and apparatus |
US18/172,797 Pending US20230281612A1 (en) | 2015-06-15 | 2023-02-22 | Virtual pos terminal method and apparatus |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/739,911 Active 2037-11-07 US10410211B2 (en) | 2015-06-15 | 2015-06-15 | Virtual POS terminal method and apparatus |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/172,797 Pending US20230281612A1 (en) | 2015-06-15 | 2023-02-22 | Virtual pos terminal method and apparatus |
Country Status (1)
Country | Link |
---|---|
US (3) | US10410211B2 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200394531A1 (en) * | 2019-06-11 | 2020-12-17 | Valorsec Sa | Handling of distributed ledger objects among trusted agents through computational argumentation and inference in the interest of their managers |
US10873578B1 (en) | 2019-12-09 | 2020-12-22 | Evan Chase Rose | Biometric authentication, decentralized learning framework, and adaptive security protocols in distributed terminal network |
US10902705B1 (en) | 2019-12-09 | 2021-01-26 | Evan Chase Rose | Biometric authentication, decentralized learning framework, and adaptive security protocols in distributed terminal network |
US11100479B2 (en) * | 2017-02-13 | 2021-08-24 | Bank Of America Corporation | Banking systems controlled by data bearing records |
US11113665B1 (en) * | 2020-03-12 | 2021-09-07 | Evan Chase Rose | Distributed terminals network management, systems, interfaces and workflows |
US11138589B2 (en) * | 2017-03-16 | 2021-10-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for supporting legacy and tokenized e-commerce |
US20210342842A1 (en) * | 2020-04-30 | 2021-11-04 | Mastercard Asia/Pacific Pte. Ltd. | Identity validation system and method |
US11171788B2 (en) * | 2019-06-03 | 2021-11-09 | Dell Products L.P. | System and method for shared end device authentication for in-band requests |
US11176531B1 (en) * | 2021-03-31 | 2021-11-16 | Square, Inc. | Integration of payment processing platform with payment making platform for differentiated payment allocations using cryptocurrency |
US11195173B2 (en) * | 2016-07-15 | 2021-12-07 | Cardinalcommerce Corporation | Authentication to authorization bridge using enriched messages |
US11200548B2 (en) | 2019-12-09 | 2021-12-14 | Evan Chase Rose | Graphical user interface and operator console management system for distributed terminal network |
US11276054B1 (en) * | 2021-03-31 | 2022-03-15 | Block, Inc. | Integration of payment processing platform with payment making platform for differentiated payment allocations using cryptocurrency |
US20220101286A1 (en) * | 2020-09-28 | 2022-03-31 | Vadim Nikolaevich ALEKSANDROV | Method of authenticating a customer, method of carrying out a payment transaction and payment system implementing the specified methods |
US11328280B1 (en) * | 2018-10-31 | 2022-05-10 | United Services Automobile Association (Usaa) | Biometric authentication system |
CN114529405A (en) * | 2022-02-24 | 2022-05-24 | 发明之家(北京)科技有限公司 | Information access management method and system based on intelligent transaction |
US11374962B2 (en) * | 2020-07-01 | 2022-06-28 | Mastercard International Incorporated | Method and system for prevention of spam attacks on a blockchain network |
US11379849B2 (en) * | 2019-03-07 | 2022-07-05 | Mastercard International Incorporated | Security for contactless transactions |
WO2022154789A1 (en) * | 2021-01-13 | 2022-07-21 | Visa International Service Association | Token-based off-chain interaction authorization |
DE102021110143A1 (en) | 2021-04-21 | 2022-10-27 | Bundesdruckerei Gmbh | Creation of a cryptographically secured electronic identity |
SE2250013A1 (en) * | 2022-01-11 | 2023-07-12 | Focalpay Ab | Payment method, system and computer software product |
US20230306408A1 (en) * | 2022-03-22 | 2023-09-28 | Bank Of America Corporation | Scribble text payment technology |
US20230325822A1 (en) * | 2020-08-31 | 2023-10-12 | Hitachi, Ltd. | Electronic payment system and electronic payment method |
US11893570B1 (en) * | 2019-11-22 | 2024-02-06 | United Services Automobile Association (Usaa) | Token based demand and remand system |
US20240114021A1 (en) * | 2022-10-04 | 2024-04-04 | Capital One Services, Llc | Systems and methods for successively executing an operation over multiple communication networks |
US20240152925A1 (en) * | 2022-11-09 | 2024-05-09 | Capital One Services, Llc | Methods and arrangements for credit card lock |
US12015717B2 (en) | 2021-12-08 | 2024-06-18 | Bank Of America Corporation | System for processing offline digital resource transfers using a hardware device based cryptographic application |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310050B2 (en) * | 2018-09-17 | 2022-04-19 | Microsoft Technology Licensing, Llc | Verifying a computing device after transport |
US10176467B2 (en) * | 2014-11-21 | 2019-01-08 | Gas Pump TV, LLC | System and method for facilitating and processing consumer transactions at a gas pump and for managing a fuel media network |
US10762496B2 (en) * | 2015-02-06 | 2020-09-01 | Google Llc | Providing payment account information associated with a digital wallet account to a user at a merchant point of sale device |
US11049090B2 (en) * | 2015-03-11 | 2021-06-29 | Paypal, Inc. | NFC application registry for enhanced mobile transactions and payments |
US10831922B1 (en) * | 2015-10-30 | 2020-11-10 | United Services Automobile Association (Usaa) | System and method for access control |
US11488128B2 (en) | 2015-12-21 | 2022-11-01 | Worldpay, Llc | Cloud-based configurable transaction management controller and method thereof |
US20170352029A1 (en) * | 2016-04-20 | 2017-12-07 | Sandhya Kalkunte | Payment data collection method and apparatus connected to a cloud platform |
CN111615105B (en) * | 2016-07-18 | 2023-08-04 | 创新先进技术有限公司 | Information providing and acquiring method, device and terminal |
US10361869B2 (en) * | 2016-08-23 | 2019-07-23 | International Business Machines Corporation | Event ledger |
US10468129B2 (en) * | 2016-09-16 | 2019-11-05 | David Lyle Schneider | Biometric medical antifraud and consent system |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
US10528721B2 (en) * | 2016-10-20 | 2020-01-07 | Intel Corporation | Trusted packet processing for multi-domain separatization and security |
US20180150816A1 (en) * | 2016-11-30 | 2018-05-31 | American Express Travel Related Services Company, Inc. | Mobile Payment System |
US10404691B2 (en) | 2017-03-02 | 2019-09-03 | Bank Of America Corporation | Preventing unauthorized access to secured information systems using authentication tokens |
US11514418B2 (en) * | 2017-03-19 | 2022-11-29 | Nxp B.V. | Personal point of sale (pPOS) device with a local and/or remote payment kernel that provides for card present e-commerce transaction |
JP6996856B2 (en) * | 2017-03-21 | 2022-01-17 | 東芝テック株式会社 | Product sales data processing device and display control program |
US11748756B2 (en) * | 2017-05-12 | 2023-09-05 | Samsung Electronics Co., Ltd. | System and method for fraud detection |
US11164188B2 (en) | 2017-11-14 | 2021-11-02 | Intel Corporation | Methods and apparatus to securely handle chip cards |
US9985786B1 (en) | 2017-11-21 | 2018-05-29 | Ca, Inc. | Cross-device authentication |
US11245523B2 (en) * | 2017-11-22 | 2022-02-08 | András VILMOS | Method for implementing client side credential control to authorize access to a protected device |
US11687929B2 (en) * | 2018-03-23 | 2023-06-27 | American Express Travel Related Services Co., Inc. | Authenticated secure online and offline transactions |
US20190362344A1 (en) * | 2018-05-24 | 2019-11-28 | Capital One Services, Llc | Secure element to protect transactions made by or within a vehicle |
US11620623B2 (en) | 2018-05-31 | 2023-04-04 | Nxp B.V. | Merchant transaction mirroring for personal point of sale (pPOS) for card present e-commerce and in vehicle transaction |
BE1026342B9 (en) * | 2018-06-04 | 2020-02-04 | Worldline Sa | DEVICE AND METHOD FOR SECURE IDENTIFICATION OF A USER |
JP2020028023A (en) * | 2018-08-10 | 2020-02-20 | キヤノン株式会社 | Communication device, control method of the same, and program |
KR20200032945A (en) * | 2018-09-19 | 2020-03-27 | 시큐리티플랫폼 주식회사 | System-on-chip for performing virtual vprivate network funtion and system comprising the same |
US11510259B2 (en) * | 2018-12-03 | 2022-11-22 | Encarnacion Gonzalez | Directionally oriented wireless voice communication with optional telephony or network handoff |
CN109743176B (en) * | 2018-12-28 | 2020-07-28 | 百富计算机技术(深圳)有限公司 | POS terminal certificate updating method, server and POS terminal |
US11282066B1 (en) * | 2019-01-18 | 2022-03-22 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
CN112711452B (en) | 2019-10-24 | 2023-11-03 | 华为技术有限公司 | Image display method and electronic equipment |
US11662894B1 (en) * | 2019-12-13 | 2023-05-30 | Worldpay, Llc | Methods and systems for secure authentication in a virtual or augmented reality environment using an interactive icon |
US11676137B2 (en) * | 2019-12-17 | 2023-06-13 | Panasonic Avionics Corporation | Payment schemes using light identification for passengers in commercial passenger vehicle |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11818252B2 (en) * | 2020-03-11 | 2023-11-14 | Toshiba Global Commerce Solutions Holdings Corporation | Configuring networked devices sharing a common firmware key |
US11336514B2 (en) * | 2020-03-25 | 2022-05-17 | Arris Enterprises Llc | Systems and methods for secure provisioning of SSH credentials |
CN113822663A (en) * | 2020-06-18 | 2021-12-21 | 支付宝实验室(新加坡)有限公司 | Bar code payment-based implementation method and device |
CN114038132B (en) * | 2021-11-11 | 2024-09-17 | 武汉天喻信息产业股份有限公司 | Off-line collection terminal, system and collection and cash withdrawal method based on internet access |
US20230186287A1 (en) * | 2021-12-15 | 2023-06-15 | Skipify, Inc. | User-linked payment methods for completion of an online transaction |
US20230186298A1 (en) * | 2021-12-15 | 2023-06-15 | Skipify, Inc. | User-linked payment methods for completion of an online transaction |
US11750751B1 (en) * | 2022-03-14 | 2023-09-05 | Toshiba Tec Kabushiki Kaisha | System and method for persistent presentation of cloud print user account information across multiple MFP applications |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870723A (en) * | 1994-11-28 | 1999-02-09 | Pare, Jr.; David Ferrin | Tokenless biometric transaction authorization method and system |
EP1172771B1 (en) * | 2000-07-14 | 2006-04-19 | Voice.Trust Ag | Process and system for authorising a commercial transaction |
US20020035542A1 (en) * | 2000-09-15 | 2002-03-21 | Tumey David M. | Transaction authentication system utilizing a key with integrated biometric sensor |
US20070022046A1 (en) * | 2005-07-25 | 2007-01-25 | Blackhawk Marketing Services, Inc. | Payment program for use in point-of-sale transactions |
US8290433B2 (en) * | 2007-11-14 | 2012-10-16 | Blaze Mobile, Inc. | Method and system for securing transactions made through a mobile communication device |
US9852426B2 (en) * | 2008-02-20 | 2017-12-26 | Collective Dynamics LLC | Method and system for secure transactions |
US9626821B2 (en) * | 2008-04-24 | 2017-04-18 | Qualcomm Incorporated | Electronic payment system |
US20160342995A9 (en) * | 2008-06-06 | 2016-11-24 | Ebay Inc. | Biometric authentication of mobile financial transactions by trusted service managers |
US20140025520A1 (en) * | 2008-06-06 | 2014-01-23 | Ebay Inc. | Biometric authentication of mobile financial transactions by trusted service managers |
EP2387775A4 (en) * | 2009-01-18 | 2013-07-03 | Gilbarco Inc | Payment processing system for use in a retail environment having segmented architecture |
US20100332400A1 (en) * | 2009-06-24 | 2010-12-30 | Craig Stephen Etchegoyen | Use of Fingerprint with an On-Line or Networked Payment Authorization System |
US20110153497A1 (en) * | 2009-12-21 | 2011-06-23 | Honeywell International Inc. | Secure transaction system and method based on biometric identification |
US10043180B2 (en) * | 2010-09-30 | 2018-08-07 | The Western Union Company | System and method for secure transactions at a mobile device |
EP2584491A1 (en) * | 2011-10-18 | 2013-04-24 | Accenture Global Services Limited | Biometric matching system |
KR20170121341A (en) * | 2011-12-21 | 2017-11-01 | 인텔 코포레이션 | Method for authentication using biometric data for mobile device e-commerce transactions |
HUP1200524A2 (en) * | 2012-09-12 | 2014-05-28 | Cellum Global Innovacios Es Szolgaltato Zrt | Mobile payment system application, as well as method of creating and using mobile payment |
CA3126471A1 (en) * | 2012-10-17 | 2014-04-17 | Royal Bank Of Canada | Virtualization and secure processing of data |
US20160019536A1 (en) * | 2012-10-17 | 2016-01-21 | Royal Bank Of Canada | Secure processing of data |
GB2508015A (en) * | 2012-11-19 | 2014-05-21 | Mastercard International Inc | Method and apparatus for secure card transactions |
US20150046328A1 (en) * | 2013-08-12 | 2015-02-12 | Manu Mitra | Secured point of sale transaction using fingerprint recognition |
US8990121B1 (en) * | 2014-05-08 | 2015-03-24 | Square, Inc. | Establishment of a secure session between a card reader and a mobile device |
US20160063504A1 (en) * | 2014-08-28 | 2016-03-03 | MobiCash Hong Kong Ltd. | Method and system for implementing biometric authenticated transactions |
WO2016122457A1 (en) * | 2015-01-27 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Virtual point of sale |
US20160364703A1 (en) * | 2015-06-09 | 2016-12-15 | Mastercard International Incorporated | Systems and Methods for Verifying Users, in Connection With Transactions Using Payment Devices |
-
2015
- 2015-06-15 US US14/739,911 patent/US10410211B2/en active Active
-
2019
- 2019-09-03 US US16/559,413 patent/US20200167775A1/en not_active Abandoned
-
2023
- 2023-02-22 US US18/172,797 patent/US20230281612A1/en active Pending
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11741462B2 (en) | 2016-07-15 | 2023-08-29 | Cardinalcommerce Corporation | Authentication to authorization bridge using enriched messages |
US11195173B2 (en) * | 2016-07-15 | 2021-12-07 | Cardinalcommerce Corporation | Authentication to authorization bridge using enriched messages |
US11100479B2 (en) * | 2017-02-13 | 2021-08-24 | Bank Of America Corporation | Banking systems controlled by data bearing records |
US11587068B2 (en) * | 2017-03-16 | 2023-02-21 | Jpmorgan Chase Bank, N.A. | Systems and methods for supporting legacy and tokenized e-commerce |
US20220027892A1 (en) * | 2017-03-16 | 2022-01-27 | Jpmorgan Chase Bank, N.A. | Systems and methods for supporting legacy and tokenized e-commerce |
US11138589B2 (en) * | 2017-03-16 | 2021-10-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for supporting legacy and tokenized e-commerce |
US11328280B1 (en) * | 2018-10-31 | 2022-05-10 | United Services Automobile Association (Usaa) | Biometric authentication system |
US12106279B1 (en) | 2018-10-31 | 2024-10-01 | United Services Automobile Assoication (USAA) | Biometric authentication system |
US11922428B2 (en) * | 2019-03-07 | 2024-03-05 | Mastercard International Incorporated | Security for contactless transactions |
US20220335436A1 (en) * | 2019-03-07 | 2022-10-20 | Mastercard International Incorporated | Security for contactless transactions |
US11392957B2 (en) | 2019-03-07 | 2022-07-19 | Mastercard International Incorporated | User verification for credential device |
US11379849B2 (en) * | 2019-03-07 | 2022-07-05 | Mastercard International Incorporated | Security for contactless transactions |
US11171788B2 (en) * | 2019-06-03 | 2021-11-09 | Dell Products L.P. | System and method for shared end device authentication for in-band requests |
US20200394531A1 (en) * | 2019-06-11 | 2020-12-17 | Valorsec Sa | Handling of distributed ledger objects among trusted agents through computational argumentation and inference in the interest of their managers |
US11893570B1 (en) * | 2019-11-22 | 2024-02-06 | United Services Automobile Association (Usaa) | Token based demand and remand system |
US10911463B1 (en) | 2019-12-09 | 2021-02-02 | Evan Chase Rose | Graphical user interface and console management system for distributed terminal network |
US10904259B1 (en) | 2019-12-09 | 2021-01-26 | Evan Chase Rose | Graphical user interface and console management system for distributed terminal network |
US10902705B1 (en) | 2019-12-09 | 2021-01-26 | Evan Chase Rose | Biometric authentication, decentralized learning framework, and adaptive security protocols in distributed terminal network |
US11108771B2 (en) * | 2019-12-09 | 2021-08-31 | Evan Chase Rose | Facial recognition, image analysis, and decentralized learning framework using adaptive security protocols in distributed terminal network |
US11019055B1 (en) | 2019-12-09 | 2021-05-25 | Evan Chase Rose | Biometric authentication, decentralized learning framework, and adaptive security protocols in distributed terminal network |
US10931677B1 (en) | 2019-12-09 | 2021-02-23 | Evan Chase Rose | Graphical user interface and console management system for distributed terminal network |
US11200548B2 (en) | 2019-12-09 | 2021-12-14 | Evan Chase Rose | Graphical user interface and operator console management system for distributed terminal network |
US11184361B2 (en) | 2019-12-09 | 2021-11-23 | Evan Chase Rose | Graphical user interface and operator console management system for distributed terminal network |
US10873578B1 (en) | 2019-12-09 | 2020-12-22 | Evan Chase Rose | Biometric authentication, decentralized learning framework, and adaptive security protocols in distributed terminal network |
US11113665B1 (en) * | 2020-03-12 | 2021-09-07 | Evan Chase Rose | Distributed terminals network management, systems, interfaces and workflows |
US11880841B2 (en) * | 2020-04-30 | 2024-01-23 | Mastercard Asia/Pacific Pte. Ltd. | Identity validation system and method |
US20210342842A1 (en) * | 2020-04-30 | 2021-11-04 | Mastercard Asia/Pacific Pte. Ltd. | Identity validation system and method |
US11374962B2 (en) * | 2020-07-01 | 2022-06-28 | Mastercard International Incorporated | Method and system for prevention of spam attacks on a blockchain network |
US20230325822A1 (en) * | 2020-08-31 | 2023-10-12 | Hitachi, Ltd. | Electronic payment system and electronic payment method |
US20220101286A1 (en) * | 2020-09-28 | 2022-03-31 | Vadim Nikolaevich ALEKSANDROV | Method of authenticating a customer, method of carrying out a payment transaction and payment system implementing the specified methods |
US11682008B2 (en) * | 2020-09-28 | 2023-06-20 | Vadim Nikolaevich ALEKSANDROV | Method of authenticating a customer, method of carrying out a payment transaction and payment system implementing the specified methods |
WO2022154789A1 (en) * | 2021-01-13 | 2022-07-21 | Visa International Service Association | Token-based off-chain interaction authorization |
US11176531B1 (en) * | 2021-03-31 | 2021-11-16 | Square, Inc. | Integration of payment processing platform with payment making platform for differentiated payment allocations using cryptocurrency |
US11276054B1 (en) * | 2021-03-31 | 2022-03-15 | Block, Inc. | Integration of payment processing platform with payment making platform for differentiated payment allocations using cryptocurrency |
DE102021110143A1 (en) | 2021-04-21 | 2022-10-27 | Bundesdruckerei Gmbh | Creation of a cryptographically secured electronic identity |
US12015717B2 (en) | 2021-12-08 | 2024-06-18 | Bank Of America Corporation | System for processing offline digital resource transfers using a hardware device based cryptographic application |
SE2250013A1 (en) * | 2022-01-11 | 2023-07-12 | Focalpay Ab | Payment method, system and computer software product |
WO2023136767A1 (en) * | 2022-01-11 | 2023-07-20 | Focalpay Ab | Payment method, system and computer software product |
CN114529405A (en) * | 2022-02-24 | 2022-05-24 | 发明之家(北京)科技有限公司 | Information access management method and system based on intelligent transaction |
US20230306408A1 (en) * | 2022-03-22 | 2023-09-28 | Bank Of America Corporation | Scribble text payment technology |
US20240114021A1 (en) * | 2022-10-04 | 2024-04-04 | Capital One Services, Llc | Systems and methods for successively executing an operation over multiple communication networks |
US20240152925A1 (en) * | 2022-11-09 | 2024-05-09 | Capital One Services, Llc | Methods and arrangements for credit card lock |
Also Published As
Publication number | Publication date |
---|---|
US10410211B2 (en) | 2019-09-10 |
US20160364723A1 (en) | 2016-12-15 |
US20230281612A1 (en) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167775A1 (en) | Virtual pos terminal method and apparatus | |
US11093932B2 (en) | Mobile-merchant proximity solution for financial transactions | |
TWI576778B (en) | Disabling mobile payments for lost electronic devices | |
US10853802B2 (en) | Data storage key for secure online transactions | |
US20170364911A1 (en) | Systems and method for enabling secure transaction | |
JP2022508010A (en) | Systems and methods for cryptographic authentication of non-contact cards | |
US20150310427A1 (en) | Method, apparatus, and system for generating transaction-signing one-time password | |
US20160189135A1 (en) | Virtual chip card payment | |
US10223690B2 (en) | Alternative account identifier | |
JP2018522353A (en) | Authentication system and method for server-based payment | |
JP2022501872A (en) | Systems and methods for cryptographic authentication of non-contact cards | |
US11100511B1 (en) | Application-based point of sale system in mobile operating systems | |
US20160086168A1 (en) | Establishing communication between a reader application and a smart card emulator | |
US12074909B2 (en) | Enabling communications between applications in a mobile operating system | |
US11727403B2 (en) | System and method for payment authentication | |
US11301862B2 (en) | Secure transfer of tokens between devices | |
KR20160008012A (en) | User authentification method in mobile terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:REESE, KENNETH W.;PRICE, MARK H.;SIGNING DATES FROM 20150608 TO 20150706;REEL/FRAME:055984/0236 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |