1. Field of the Invention
The present invention relates generally to computer systems and, more particularly, to methods of and systems for carrying out transactions through a computer network, including an authorization phase and a fulfillment phase.
2. Description of the Related Art
In recent years, there have been several notable security failures at points of sale in which point-of-sale equipment has been compromised, resulting in theft of massive amounts of purchaser credentials. The manner in which millions of purchases are conducted daily is no longer secure. A particularly sensitive scenario is a cash withdrawal from an ATM. With stolen credentials, a thief could withdraw substantial sums of a victim's cash from any of a multitude of locations.
What is needed is a way to more securely carry out authorization and fulfillment of transactions.
In accordance with the present invention, a transaction server authenticates a client device during a fulfillment phase of a transaction as having authorized the transaction using cryptographic data sent to the device during an authorization phase of the transaction. In particular, prior to fulfilling the transaction through point-of-sale equipment, the transaction server requires that the device successfully decrypt a transaction token using a transaction key sent to the device during authorization of the transaction.
It is helpful to consider an example in which the transaction is a cash withdrawal from a bank account and the point-of-sale equipment is an automated teller machine (ATM). In a first session with the transaction server in which the transaction is authorized, the user is authenticated and uses the device to submit a request for the transaction. Upon authentication of the user and the device and validation of the transaction request, the transaction server sends a transaction identifier and a transaction key to the device.
In a second session in which the transaction is fulfilled, the user retrieves the transaction identifier from the device and enters the transaction identifier into point-of-sale equipment, which then sends the transaction identifier to the transaction server. To verify that the device is the same device through which the transaction was authorized, the transaction server encrypts a transaction token in a manner that decryption and recovery of the transaction token requires the transaction key sent to the device in the first, authorization session. In particular, the transaction server encrypts the transaction token with the transaction key. The transmission server also uses a transaction initiation vector (IV) to encrypt the transaction token.
The transaction server sends the encrypted transaction token and the transaction IV to the device. For example, the transaction server can send the data to the point-of-sale equipment for communication to the device, e.g., by display of a QR code that can be captured and decoded by the device.
The device decrypts the transaction token using both the transaction key received during the first, authorization session and the transaction IV received during the second, fulfillment session and displays the resulting transaction token to the user. The user enters the transaction token into the point-of-sale equipment, e.g., by use of an ATM keypad.
If the transaction token matches the one encrypted by the transmission server, the transmission server has determined that the device attempting fulfillment of the transaction is the same device that authorized the transaction and effects the transaction. For example, the transmission server can effect the transaction by causing the point-of-sale equipment (e.g. the ATM) to dispense cash in the amount specified in the transaction request.
Other systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims. Component parts shown in the drawings are not necessarily to scale, and may be exaggerated to better illustrate the important features of the invention. In the drawings, like reference numerals may designate like parts throughout the different views, wherein:
In accordance with the present invention, a transaction server 108 (
Transaction fulfillment system 100 includes device 102, point-of-sale equipment 106, and transaction server 108 that are connected to one another through a wide area computer network 104, which is the Internet in this illustrative embodiment. Device 102 can be any of a number of types of networked, mobile computing devices, including smart phones, tablets, netbook computers, and laptop computers. Point-of-sale equipment 106 is a device with which financial transactions can be effected. Examples of point-of-sale equipment 106 include credit card terminals and automated teller machines (ATMs). Transaction server 108 is a server that manages financial transactions that can be fulfilled through point-of-sale equipment 106. For example, if point-of-sale equipment 106 is an ATM, transaction server 108 manages bank transactions. If point-of-sale equipment 106 is a credit card terminal at a store, transaction server 108 manages on-line purchases of merchandise that can be picked up at the store.
Transaction flow diagram 200 (
In step 204 (
Transaction flow diagram 250 (
An initialization vector is an additional encryption key, like a nonce or salt used in conventional encryption. Encrypting the transaction token with both the transaction key and the transaction IV results in both the transaction key and the transaction IV being required to decrypt the transaction token.
In step 256, transaction server 108 sends the encrypted transaction token and the transaction IV to device 102. In step 258, device 102 uses both the transaction IV received in step 256 and the transaction key received in step 204 (
In step 260 (
Thus, the transaction key and transaction IV are both required to decrypt and recover the transaction token and therefore collectively authenticate device 102 as the device participating in both the authorization session and the fulfillment session. While it is described that the transaction key is delivered to device 102 during the authentication session and the transaction IV is delivered to device 102 during the fulfillment session, it should be appreciated that the transaction IV can be delivered during the authorization session and the transaction key can be delivered during the fulfillment session.
Logic flow diagram 300 (
Upon successful authentication of the user and device 102, transaction server 108 sends a response so indicating to device 102 in step 304. In step 306, device 102 sends a transaction request to transaction server 108.
The transaction request specifies a financial transaction that the user would like to conduct. For example, the transaction can be a cash withdrawal at a specific ATM. In this example, the transaction request can specify a bank account from which the cash is to be withdrawn, an amount to be withdrawn, and the specific ATM to dispense the cash. The transaction can also be a purchase of merchandise to be received at a specific store location. In that example, the transaction request can specify a payment method (such as credit card billing information for example), merchandise to be purchased, and the specific store location at which the merchandise will be received.
As described more completely below, device 102 includes transaction client logic 820 (
In response to receipt of the transaction request in step 306 (
If transaction server 108 determines that the requested transaction is not valid, transaction server 108 denies the request. In this illustrative embodiment, transaction server 108 informs device 102 of the denial and transaction client logic 820 (
If transaction server 108 determines that the requested transaction is valid, processing transfers to step 310 in which transaction server 108 sends a digital fingerprint challenge to device 102. Digital fingerprints are described in greater detail in the '982 Application but are briefly described here for completeness. For device and user authentication using digital fingerprints, device 102 has previously registered with transaction server 108, providing a number of device and user attributes that can be used in combination for such authentication. The device challenge sent in step 310 specifies both (i) a number of those attributes to be collected and (ii) a manner in which those attributes are to be combined into, and represented within, a digital fingerprint.
By using different challenges in separate acts of authentication, snooping network traffic for such challenges and corresponding responsive digital fingerprints does not provide sufficient information to allow another device to spoof being device 102 by properly responding to a future digital fingerprint challenge. Specifically, the future digital fingerprint challenge will very likely differ from any previous challenges that might have been intercepted, so the proper response for device 102 will be different from any responses that might have been intercepted.
In step 312, digital fingerprint generator 840 (
In step 316, transaction server 108 verifies the digital fingerprint to authenticate device 102 and its user. Transaction server 108 verifies the digital fingerprint by applying the digital fingerprint challenge sent in step 310 to device and user attributes received from device 102 during prior registration and comparing the result to the received digital fingerprint.
If the received digital fingerprint does not authenticate device 102, transaction server 108 denies the transaction requested in step 306. Conversely, if the received digital fingerprint authenticates device 102, transaction server 108 continues with step 318, creating a transaction record such as transaction record 400 (
Transaction record 400 includes transaction attributes 402 that collectively represent the transaction requested in step 306 (
Transaction identifier 408 is an identifier of the transaction represented by transaction record 400. Transaction token 410 is data that must be presented by the user in the fulfillment phase to complete the transaction.
Device key 412 and device IV 414 are an encryption key and initialization vector, respectively, that are unique to device 102. Device key 412 is derived from the digital fingerprint received in step 314 (
In step 320, transaction server 108 encrypts transaction key 404 and transaction identifier 408 using device key 412 and device IV 414. In step 322, transaction server 108 sends the results of the encryption of step 320 and device IV 414 to device 102. In step 324, device 102 stores the data received in step 322 for use in the fulfillment phase of the transaction.
Logic flow diagrams 500A (
In step 502 (
In step 504 (
In step 506, device 102 decrypts transaction key 404 and transaction identifier 408 from the encrypted data stored in step 324 using the device key created in step 504 and device IV 414, which was stored in step 324. Thus, transaction key 404 and transaction identifier 408 are recovered by device 102 without receiving device key 412 from transaction server 108. In addition, since device 102 derives the device key from digital fingerprint 842, which was derived from attributes of device 102, the proper device key cannot be derived by any device other than device 102. Device 102 presents transaction identifier 408 to the user using user output devices 810.
In step 508, the user enters transaction identifier 408 into point-of-sale equipment 106, e.g., using a keypad or other user input device 608 of point-of-sale equipment 106. In step 510, point-of-sale equipment 106 sends transaction identifier 408 and an identifier of the location of point-of-sale equipment 106.
In this illustrative embodiment, transactions are specific to a location at which fulfillment of the transaction is to be performed. To illustrate the advantage of location-specific transactions, it is helpful to consider the example of cash withdrawals from ATMs in a network of thousands of ATMs. At any given time, there may be thousands of authorized but not yet fulfilled transactions throughout the network of ATMs but each ATM location might have just a few such transactions. In addition, since the user manually enters the transaction identifier, particularly long transaction identifiers increase the difficulty with which users can accurately enter the transaction identifier.
Suppose an unscrupulous user at an ATM enters randomly guessed transaction identifiers in an attempt to intercept cash authorized for withdrawal by another. If the ATM is authorized to fulfill any pending transaction for any ATM in the network, the unscrupulous user must guess any one of thousands of pending transactions. If transaction identifiers are only six (6) digits in length, the odds are rather good that the unscrupulous user can successfully guess the identifier of a pending transaction. However, the ATM can only fulfill pending transactions that are associated with that ATM location, the unscrupulous user must guess any one of perhaps just a few pending transactions. The odds that the unscrupulous user can successfully guess the identifier of a pending transaction are far, far less.
In step 512, transaction server 108 validates the transaction identifier and the location of point-of-sale equipment 106. In particular, transaction server 108 searches transaction data 732 (
If the transaction identifier and the location of point-of-sale equipment 106 are valid, i.e., correspond to a pending transaction, processing by transaction server 108 transfers to step 516. In step 516, transaction server 108 encrypts transaction token 410 using transaction key 404 and transaction IV 406. In step 518, transaction server 108 encrypts transaction IV 406 using device key 412 and device IV 414.
In step 520, transaction server 108 represents the results of encryption of steps 516 and 518, along with device IV 414, in an optical code that can be recognized and parsed by device 102. In this illustrative embodiment, the optical code is a QR (Quick Response) code. QR codes are known and not described herein.
In step 522, transaction server 108 sends the QR code to point-of-sale equipment 106 and, in step 524, point-of-sale equipment displays the QR code to the user.
In step 526, the user captures the displayed QR code with device 102, e.g., using a camera of device 102, and device 102 decodes the QR code to retrieve the resulting encrypted data of steps 516 and 518 and device IV 414.
In step 528 (
At this point, device 102 has transaction key 404 (decrypted in step 506) and transaction IV 406 (decrypted in step 530). The data from which transaction key 404 is decrypted is received from transaction server 108 during the authorization phase of the transaction. The data from which transaction IV 406 is decrypted is received during the fulfillment phase of the transaction. Accordingly, device 102 must be used in both phases of the transaction to acquire both transaction key 404 and transaction IV 406.
In step 532, device 102 decrypts transaction token 410 from the received encrypted data using transaction key 404 and transaction IV 406 and presents transaction token 410 to the user, e.g., through any of user output devices 810 (
In step 534, the user enters transaction token 410 into point-of-sale equipment 106, e.g., using a keypad or other user input device 608 of point-of-sale equipment 106. In step 536, point-of-sale equipment 106 sends transaction token 410 and an identifier of the location of point-of-sale equipment 106.
In step 538, transaction server 108 validates the received transaction token and the location of point-of-sale equipment 106 as both corresponding to the particular transaction record 400 identified by the transaction identifier received in step 510 (
If the transaction token and location of point-of-sale equipment 106 are determined by transaction server 108 to be invalid, transaction server 108 causes point-of-sale equipment 106 to report the error to the user in step 540 and processing by point-of-sale equipment 106 transfers to step 534 to accept re-entry of the transaction token by the user. In an alternative embodiment, processing transfers from step 540 to step 522 (
While the illustrative embodiment described above does not require device 102 to be connected to a network during the fulfillment phase of the transaction, it should be appreciated that device 102 can be connected to wide area network 104 and communicate directly with transaction server 108 during fulfillment of the transaction. In this alternative embodiment, device 102 can identify point-of-sale equipment 106 from other, co-located point-of-sale equipment through an identifier that the user can enter into device 102 or that can be captured and decoded by device 102, e.g., as represented by a QR code. Transaction key 404 and transaction token 406 can be sent directly from device 102 to transaction server 108 without requiring that the user enter them in steps 508 and 534, respectively. Transaction server 108 can infer the location of point-of-sale equipment 106 from the identifier thereof received from device 102 or by determining that device 102 is connected to a local area network (LAN) with a known location.
Even if device 102 is not connected to a computer network, user error in steps 508 and 534 can be reduced by including in point-of-sale equipment 106 the ability to capture and decode QR codes. In this alternative embodiment, manual entry of the transaction identifier in step 508 is replaced with display by device 102 of a QR code representing the transaction identifier and positioning of device 102 by the user in a location at which a camera of point-of-sale equipment 106 can capture the QR code. Similarly, manual entry of the transaction token in step 534 is replaced with display by device 102 of a QR code representing the transaction token and positioning of device 102 by the user in a location at which a camera of point-of-sale equipment 106 can capture the QR code.
It should also be appreciated that different device keys can be used at various steps for added security. In the illustrative example described above, digital fingerprint 842 (
In another alternative embodiment, transaction server 108 creates a second device key in step 518 according to a second digital fingerprint challenge. Transaction server 108 communicates the second digital fingerprint challenge to device 102 through the QR code sent in step 522. Accordingly, the device key created by device 102 in step 528 differs from the device key created in step 504.
Point-of-sale equipment 106 is shown in greater detail in
CPU 602 and memory 604 are connected to one another through a conventional interconnect 606, which is a bus in this illustrative embodiment and which connects CPU 602 and memory 604 to one or more input devices 608, output devices 610, and network access circuitry 612. Input devices 608 can include, for example, a keyboard, a keypad, a touch-sensitive screen, a mouse, a microphone, and one or more cameras. Output devices 610 can include, for example, a display—such as a liquid crystal display (LCD)—and one or more loudspeakers. Network access circuitry 612 sends and receives data through computer networks such as wide area network 104 (
A number of components of point-of-sale equipment 106 are stored in memory 604. In particular, point-of-sale logic 620 is all or part of one or more computer processes executing within CPU 602 from memory 604 in this illustrative embodiment but can also be implemented using digital logic circuitry.
Transaction server 108 is shown in greater detail in
A number of components of transaction server 108 (
Device 102 is a portable personal computing device and is shown in greater detail in
CPU 802 and memory 804 are connected to one another through a conventional interconnect 806, which is a bus in this illustrative embodiment and which connects CPU 802 and memory 804 to one or more input devices 808, output devices 810, and network access circuitry 812. Input devices 808 can include, for example, a keyboard, a keypad, a touch-sensitive screen, a mouse, a microphone, and one or more cameras. Output devices 810 can include, for example, a display—such as a liquid crystal display (LCD)—and one or more loudspeakers. Network access circuitry 812 sends and receives data through computer networks such as wide area network 104 (
A number of components of device 102 are stored in memory 804. In particular, transaction client logic 820 and digital fingerprint generator 840 are each all or part of one or more computer processes executing within CPU 802 from memory 804 in this illustrative embodiment but can also be implemented using digital logic circuitry. As used herein, “logic” refers to (i) logic implemented as computer instructions and/or data within one or more computer processes and/or (ii) logic implemented in electronic circuitry.
Transaction client logic 820 interacts with the user of device to facilitate transactions in the manner described above. Digital fingerprint generator 840 facilitates authentication of device 102 in the manner described above.
Operating system 830 is all or part of one or more computer processes executing within CPU 1402 from memory 804 in this illustrative embodiment but can also be implemented using digital logic circuitry. An operating system (OS) is a set of programs that manage computer hardware resources and provide common services for application software such as transaction client logic 820 and digital fingerprint generator 840.
Digital fingerprint 842 is data stored persistently in memory 804 and can be organized as all or part of one or more databases.
The above description is illustrative only and is not limiting. The present invention is defined solely by the claims which follow and their full range of equivalents. It is intended that the following appended claims be interpreted as including all such alterations, modifications, permutations, and substitute equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | |
---|---|---|---|
62022554 | Jul 2014 | US |