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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 184
- 230000000977 initiatory Effects 0.000 claims abstract description 114
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000010200 validation analysis Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000002955 isolation Methods 0.000 claims description 6
- 238000009877 rendering Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 abstract description 92
- 230000015654 memory Effects 0.000 description 172
- 238000004891 communication Methods 0.000 description 24
- 239000000203 mixture Substances 0.000 description 24
- 230000001702 transmitter Effects 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 22
- 230000000875 corresponding Effects 0.000 description 16
- 230000002093 peripheral Effects 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000003993 interaction Effects 0.000 description 12
- 230000001413 cellular Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 239000004570 mortar (masonry) Substances 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 230000004224 protection Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000001419 dependent Effects 0.000 description 6
- 230000003287 optical Effects 0.000 description 6
- 101700051247 EPYC Proteins 0.000 description 4
- 240000007419 Hura crepitans Species 0.000 description 4
- 230000001427 coherent Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001815 facial Effects 0.000 description 4
- 230000001965 increased Effects 0.000 description 4
- 230000003278 mimic Effects 0.000 description 4
- 239000010979 ruby Substances 0.000 description 4
- 229910001750 ruby Inorganic materials 0.000 description 4
- 238000007790 scraping Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000001360 synchronised Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- PGLIUCLTXOYQMV-UHFFFAOYSA-N 2-[2-[4-[(4-chlorophenyl)-phenylmethyl]piperazine-1,4-diium-1-yl]ethoxy]acetic acid;dichloride Chemical compound Cl.Cl.C1CN(CCOCC(=O)O)CCN1C(C=1C=CC(Cl)=CC=1)C1=CC=CC=C1 PGLIUCLTXOYQMV-UHFFFAOYSA-N 0.000 description 2
- 101700062627 A1H Proteins 0.000 description 2
- 101700084722 A1H1 Proteins 0.000 description 2
- 101700061511 A1H2 Proteins 0.000 description 2
- 101700048824 A1H3 Proteins 0.000 description 2
- 101700051538 A1H4 Proteins 0.000 description 2
- 101700051076 A1HA Proteins 0.000 description 2
- 101700015578 A1HB1 Proteins 0.000 description 2
- 101700027417 A1HB2 Proteins 0.000 description 2
- 101700018074 A1I1 Proteins 0.000 description 2
- 101700039128 A1I2 Proteins 0.000 description 2
- 101700004404 A1I4 Proteins 0.000 description 2
- 101700073726 A1IA1 Proteins 0.000 description 2
- 101700075321 A1IA2 Proteins 0.000 description 2
- 101700022939 A1IA3 Proteins 0.000 description 2
- 101700022941 A1IA4 Proteins 0.000 description 2
- 101700023549 A1IA5 Proteins 0.000 description 2
- 101700040959 A1IA6 Proteins 0.000 description 2
- 101700061864 A1IA7 Proteins 0.000 description 2
- 101700071702 A1IA8 Proteins 0.000 description 2
- 101700015972 A1IB1 Proteins 0.000 description 2
- 101700078659 A1IB2 Proteins 0.000 description 2
- 101700076103 A1IB3 Proteins 0.000 description 2
- 101700056046 A1IB4 Proteins 0.000 description 2
- 101700081488 A1IB5 Proteins 0.000 description 2
- 101700062266 A1IB6 Proteins 0.000 description 2
- 101700002220 A1K Proteins 0.000 description 2
- 101700015324 A1KA Proteins 0.000 description 2
- 101700008193 A1KA1 Proteins 0.000 description 2
- 101700010369 A1KA2 Proteins 0.000 description 2
- 101700013447 A1KA3 Proteins 0.000 description 2
- 101700081640 A1KA4 Proteins 0.000 description 2
- 101700057270 A1KA5 Proteins 0.000 description 2
- 101700087084 A1KA6 Proteins 0.000 description 2
- 101700065792 A1KB Proteins 0.000 description 2
- 101700048210 A1KB1 Proteins 0.000 description 2
- 101700046590 A1KB2 Proteins 0.000 description 2
- 101700009736 A1KB3 Proteins 0.000 description 2
- 101700011865 A1KC Proteins 0.000 description 2
- 101700080679 A1L Proteins 0.000 description 2
- 101700051073 A1L1 Proteins 0.000 description 2
- 101700052658 A1L2 Proteins 0.000 description 2
- 101700008597 A1L3 Proteins 0.000 description 2
- 101700026671 A1LA Proteins 0.000 description 2
- 101700012330 A1LB1 Proteins 0.000 description 2
- 101700036775 A1LB2 Proteins 0.000 description 2
- 101700060504 A1LC Proteins 0.000 description 2
- 101700050006 A1MA1 Proteins 0.000 description 2
- 101700050259 A1MA2 Proteins 0.000 description 2
- 101700050664 A1MA3 Proteins 0.000 description 2
- 101700003843 A1MA4 Proteins 0.000 description 2
- 101700003604 A1MA5 Proteins 0.000 description 2
- 101700001262 A1MA6 Proteins 0.000 description 2
- 101700041596 A1MB Proteins 0.000 description 2
- 101700049125 A1O Proteins 0.000 description 2
- 101700017240 A1OA Proteins 0.000 description 2
- 101700024712 A1OA1 Proteins 0.000 description 2
- 101700028879 A1OA2 Proteins 0.000 description 2
- 101700032345 A1OA3 Proteins 0.000 description 2
- 101700087028 A1OB Proteins 0.000 description 2
- 101700062393 A1OB1 Proteins 0.000 description 2
- 101700081359 A1OB2 Proteins 0.000 description 2
- 101700071300 A1OB3 Proteins 0.000 description 2
- 101700031670 A1OB4 Proteins 0.000 description 2
- 101700030247 A1OB5 Proteins 0.000 description 2
- 101700014295 A1OC Proteins 0.000 description 2
- 101700068991 A1OD Proteins 0.000 description 2
- 101700008688 A1P Proteins 0.000 description 2
- 101700071148 A1X1 Proteins 0.000 description 2
- 101700020518 A1XA Proteins 0.000 description 2
- 101700017295 A1i3 Proteins 0.000 description 2
- 101700011284 A22 Proteins 0.000 description 2
- 101700067615 A311 Proteins 0.000 description 2
- 101700064616 A312 Proteins 0.000 description 2
- 101710005568 A31R Proteins 0.000 description 2
- 101710005570 A32L Proteins 0.000 description 2
- 101700044316 A331 Proteins 0.000 description 2
- 101700045658 A332 Proteins 0.000 description 2
- 101700004768 A333 Proteins 0.000 description 2
- 101700007547 A3X1 Proteins 0.000 description 2
- 101700079274 A411 Proteins 0.000 description 2
- 101700063825 A412 Proteins 0.000 description 2
- 101700039137 A413 Proteins 0.000 description 2
- 101710005559 A41L Proteins 0.000 description 2
- 101700056514 A42 Proteins 0.000 description 2
- 101700003484 A421 Proteins 0.000 description 2
- 101700048250 A422 Proteins 0.000 description 2
- 101700060284 A423 Proteins 0.000 description 2
- 101700086421 A424 Proteins 0.000 description 2
- 101710008954 A4A1 Proteins 0.000 description 2
- 101700004929 A611 Proteins 0.000 description 2
- 101700001981 A612 Proteins 0.000 description 2
- 101700009064 A71 Proteins 0.000 description 2
- 101700020790 AX1 Proteins 0.000 description 2
- 101710003793 B1D1 Proteins 0.000 description 2
- 101700038578 B1H Proteins 0.000 description 2
- 101700025656 B1H1 Proteins 0.000 description 2
- 101700025455 B1H2 Proteins 0.000 description 2
- 101700058885 B1KA Proteins 0.000 description 2
- 101700028285 B1KB Proteins 0.000 description 2
- 101700058474 B1LA Proteins 0.000 description 2
- 101700031600 B1LB Proteins 0.000 description 2
- 101700004835 B1M Proteins 0.000 description 2
- 101700054656 B1N Proteins 0.000 description 2
- 101700022877 B1O Proteins 0.000 description 2
- 101700046587 B1Q Proteins 0.000 description 2
- 101700010385 B1R Proteins 0.000 description 2
- 101700032784 B1R1 Proteins 0.000 description 2
- 101700012097 B1R2 Proteins 0.000 description 2
- 101700072176 B1S Proteins 0.000 description 2
- 101700045578 B1S1 Proteins 0.000 description 2
- 101700052720 B1S2 Proteins 0.000 description 2
- 101700046810 B1S3 Proteins 0.000 description 2
- 101700016166 B1T1 Proteins 0.000 description 2
- 101700008274 B1T2 Proteins 0.000 description 2
- 101700085024 B1U1 Proteins 0.000 description 2
- 101700070037 B1U2 Proteins 0.000 description 2
- 101700039556 B1V Proteins 0.000 description 2
- 101700001301 B2H Proteins 0.000 description 2
- 101700011411 B2I Proteins 0.000 description 2
- 101700043400 B2I1 Proteins 0.000 description 2
- 101700013212 B2I2 Proteins 0.000 description 2
- 101700037945 B2I3 Proteins 0.000 description 2
- 101700013584 B2I4 Proteins 0.000 description 2
- 101700076307 B2I5 Proteins 0.000 description 2
- 101700070759 B2J Proteins 0.000 description 2
- 101700047017 B2J1 Proteins 0.000 description 2
- 101700086457 B2J2 Proteins 0.000 description 2
- 101700030756 B2K Proteins 0.000 description 2
- 101700011185 B2KA1 Proteins 0.000 description 2
- 101700034482 B2KA2 Proteins 0.000 description 2
- 101700059671 B2KA3 Proteins 0.000 description 2
- 101700051428 B2KA4 Proteins 0.000 description 2
- 101700067858 B2KB1 Proteins 0.000 description 2
- 101700021477 B2KB2 Proteins 0.000 description 2
- 101700041272 B2KB3 Proteins 0.000 description 2
- 101700026045 B2KB4 Proteins 0.000 description 2
- 101700027558 B2KB5 Proteins 0.000 description 2
- 101700032261 B2KB6 Proteins 0.000 description 2
- 101700073146 B2KB7 Proteins 0.000 description 2
- 101700079550 B2KB8 Proteins 0.000 description 2
- 101700056037 B2KB9 Proteins 0.000 description 2
- 101700036551 B2KBA Proteins 0.000 description 2
- 101700055440 B2KBB Proteins 0.000 description 2
- 101700077277 B2KBC Proteins 0.000 description 2
- 101700056297 B2KBD Proteins 0.000 description 2
- 101700079394 B2KBE Proteins 0.000 description 2
- 101700075860 B2L1 Proteins 0.000 description 2
- 101700067766 B2L2 Proteins 0.000 description 2
- 101700017463 B31 Proteins 0.000 description 2
- 101700004120 B312 Proteins 0.000 description 2
- 101700005607 B32 Proteins 0.000 description 2
- 101710025734 BIB11 Proteins 0.000 description 2
- 101700041598 BX17 Proteins 0.000 description 2
- 101700045280 BX2 Proteins 0.000 description 2
- 101700043880 BX3 Proteins 0.000 description 2
- 101700046017 BX4 Proteins 0.000 description 2
- 210000004556 Brain Anatomy 0.000 description 2
- 101700016678 Bx8 Proteins 0.000 description 2
- 102100016160 CAD Human genes 0.000 description 2
- 101700081816 DDR4 Proteins 0.000 description 2
- 101710025150 DTPLD Proteins 0.000 description 2
- 102100002165 EPYC Human genes 0.000 description 2
- 210000000887 Face Anatomy 0.000 description 2
- 206010016275 Fear Diseases 0.000 description 2
- 101710005624 MVA131L Proteins 0.000 description 2
- 101710005633 MVA164R Proteins 0.000 description 2
- 210000004279 Orbit Anatomy 0.000 description 2
- 101700060028 PLD1 Proteins 0.000 description 2
- 101710009126 PLDALPHA1 Proteins 0.000 description 2
- 210000002356 Skeleton Anatomy 0.000 description 2
- 235000004652 Tilia americana var heterophylla Nutrition 0.000 description 2
- 235000015450 Tilia cordata Nutrition 0.000 description 2
- 240000007591 Tilia tomentosa Species 0.000 description 2
- 235000010840 Tilia tomentosa Nutrition 0.000 description 2
- 101710005563 VACWR168 Proteins 0.000 description 2
- 101700084597 X5 Proteins 0.000 description 2
- 101700062487 X6 Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 239000005387 chalcogenide glass Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 201000008739 coronary artery disease Diseases 0.000 description 2
- 230000003247 decreasing Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000002567 electromyography Methods 0.000 description 2
- 230000002708 enhancing Effects 0.000 description 2
- 230000004438 eyesight Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000007789 gas Substances 0.000 description 2
- 230000004301 light adaptation Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000000051 modifying Effects 0.000 description 2
- 230000004118 muscle contraction Effects 0.000 description 2
- 239000002070 nanowire Substances 0.000 description 2
- 239000001301 oxygen Substances 0.000 description 2
- MYMOFIZGZYHOMD-UHFFFAOYSA-N oxygen Chemical compound O=O MYMOFIZGZYHOMD-UHFFFAOYSA-N 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 230000002085 persistent Effects 0.000 description 2
- 229920003023 plastic Polymers 0.000 description 2
- 229920000915 polyvinyl chloride Polymers 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001755 vocal Effects 0.000 description 2
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
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 (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/559,413 US20200167775A1 (en) | 2015-06-15 | 2019-09-03 | 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 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200167775A1 true US20200167775A1 (en) | 2020-05-28 |
Family
ID=57515955
Family Applications (2)
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 Pending US20200167775A1 (en) | 2015-06-15 | 2019-09-03 | 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 |
Country Status (1)
Country | Link |
---|---|
US (2) | US10410211B2 (en) |
Cited By (18)
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 |
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 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN111615105A (en) * | 2016-07-18 | 2020-09-01 | 阿里巴巴集团控股有限公司 | Information providing method, information obtaining method, information providing device, information obtaining 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 |
US10528721B2 (en) * | 2016-10-20 | 2020-01-07 | Intel Corporation | Trusted packet processing for multi-domain separatization and security |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
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 |
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 |
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 |
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 |
CN112711452A (en) * | 2019-10-24 | 2021-04-27 | 华为技术有限公司 | Image display method and electronic equipment |
US20210288796A1 (en) * | 2020-03-11 | 2021-09-16 | 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 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007014189A2 (en) * | 2005-07-25 | 2007-02-01 | Blackhawk Network, 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 |
US20100268612A1 (en) * | 2009-01-18 | 2010-10-21 | Gaston Berrio | Payment processing system for use in a retail environment having segmented architecture |
HU1200524A2 (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 |
US9082119B2 (en) * | 2012-10-17 | 2015-07-14 | Royal Bank of Canada. | Virtualization and secure processing of data |
GB2508015A (en) * | 2012-11-19 | 2014-05-21 | Mastercard International Inc | Method and apparatus for secure card transactions |
US8990121B1 (en) * | 2014-05-08 | 2015-03-24 | Square, Inc. | Establishment of a secure session between a card reader and a mobile device |
WO2016122457A1 (en) * | 2015-01-27 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Virtual point of sale |
-
2015
- 2015-06-15 US US14/739,911 patent/US10410211B2/en active Active
-
2019
- 2019-09-03 US US16/559,413 patent/US20200167775A1/en active Pending
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11138589B2 (en) * | 2017-03-16 | 2021-10-05 | 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 |
US11587068B2 (en) * | 2017-03-16 | 2023-02-21 | 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 |
US11379849B2 (en) * | 2019-03-07 | 2022-07-05 | Mastercard International Incorporated | Security for contactless transactions |
US11392957B2 (en) | 2019-03-07 | 2022-07-19 | Mastercard International Incorporated | User verification for credential device |
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 |
US10931677B1 (en) | 2019-12-09 | 2021-02-23 | Evan Chase Rose | Graphical user interface and console management system for 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 |
US11184361B2 (en) | 2019-12-09 | 2021-11-23 | Evan Chase Rose | Graphical user interface and operator console management system for 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 |
US11200548B2 (en) | 2019-12-09 | 2021-12-14 | Evan Chase Rose | Graphical user interface and operator console management system for distributed terminal network |
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 |
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 |
US11374962B2 (en) * | 2020-07-01 | 2022-06-28 | Mastercard International Incorporated | Method and system for prevention of spam attacks on a blockchain network |
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 |
WO2022154789A1 (en) * | 2021-01-13 | 2022-07-21 | Visa International Service Association | Token-based off-chain interaction authorization |
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 |
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 |
DE102021110143A1 (en) | 2021-04-21 | 2022-10-27 | Bundesdruckerei Gmbh | Creation of a cryptographically secured electronic identity |
CN114529405A (en) * | 2022-02-24 | 2022-05-24 | 发明之家(北京)科技有限公司 | Information access management method and system based on intelligent transaction |
Also Published As
Publication number | Publication date |
---|---|
US10410211B2 (en) | 2019-09-10 |
US20160364723A1 (en) | 2016-12-15 |
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 | |
US10846663B2 (en) | Systems and methods for securing cryptocurrency purchases | |
CN108027926B (en) | Authentication system and method for service-based payment | |
US10853802B2 (en) | Data storage key for secure online transactions | |
US20170364911A1 (en) | Systems and method for enabling secure transaction | |
US20150310427A1 (en) | Method, apparatus, and system for generating transaction-signing one-time password | |
US20160189135A1 (en) | Virtual chip card payment | |
TW201525892A (en) | Online payments using a secure element of an electronic device | |
JP2022508010A (en) | Systems and methods for cryptographic authentication of non-contact cards | |
US10223690B2 (en) | Alternative account identifier | |
US11100511B1 (en) | Application-based point of sale system in mobile operating systems | |
JP2022501872A (en) | Systems and methods for cryptographic authentication of non-contact cards | |
JP2022501875A (en) | Systems and methods for cryptographic authentication of non-contact cards | |
US20160086168A1 (en) | Establishing communication between a reader application and a smart card emulator | |
US20210360030A1 (en) | Enabling communications between applications in a mobile operating system | |
WO2022035857A1 (en) | Augmented reality information display and interaction via nfc based 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 |
|
STCB | Information on status: application discontinuation |
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 |
|
STCB | Information on status: application discontinuation |
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 |