Systems and methods for merchant mobile acceptance

Systems and methods are provided for merchant mobile acceptance of user device data. For example, a method comprises receiving encrypted user device data and reader metadata from a merchant mobile device, determining a device reader API and device reader encryption scheme using the device reader metadata, parsing the encrypted user device data using the device reader API to determine encrypted personal information, and decrypting the encrypted personal information using the reader encryption scheme.

BACKGROUND

As the connectivity and capability of mobile devices increases, the desire to use mobile devices such as cell phones and tablet computers as point-of-sale (POS) terminals continues to grow. For example, merchant mobile acceptance of credit cards, debit cards, and other payment devices provides consumers and merchants with added portability and convenience. However, with this convenience, more opportunities for fraud and theft of data can exist.

Therefore, it is desirable to provide new systems and methods for merchant mobile acceptance to address such issues.

SUMMARY

Embodiments of the invention introduce systems and methods for merchant mobile acceptance of user device data.

One embodiment of the invention discloses a method comprising receiving encrypted user device data and reader metadata from a merchant mobile device, determining a device reader API and device reader encryption scheme using the device reader metadata, parsing the encrypted user device data using the device reader API to determine encrypted personal information, and decrypting the encrypted personal information using the reader encryption scheme.

One embodiment of the invention discloses a server computer. The server computer comprises a processor and a non-transitory computer-readable storage medium, comprising code executable by the processor for implementing a method comprising receiving encrypted user device data and reader metadata from a merchant mobile device, determining a device reader API and device reader encryption scheme using the device reader metadata, parsing the encrypted user device data using the device reader API to determine encrypted personal information, and decrypting the encrypted personal information using the reader encryption scheme.

One embodiment of the invention discloses a computer-implemented method comprising reading user device data from a portable user device, wherein the user device data comprises personal information, encrypting at least a portion of the user device data to generate encrypted user device data comprising encrypted personal information, and sending the encrypted user device data and device reader metadata to a mobile device, wherein the encrypted user device data comprises encrypted personal information, wherein the device reader metadata is operable to determine a device reader API and a device reader encryption scheme, and wherein the encrypted personal information is decryptable using the device reader encryption scheme.

Further details regarding embodiments of the invention can be found in the Detailed Description and the Figures.

DETAILED DESCRIPTION

Prior to discussing embodiments of the invention, description of some terms may be helpful in understanding embodiments of the invention.

The term “user device data” may include any data or information associated with a portable user device. Examples of user device data may include a name of a user associated with the portable user device, an organization associated with the portable user device, and an expiration date of the portable user device. The user device data may be stored on the portable user device in any suitable manner. For example, user device data may be stored as magnetic track data, or in a computer-readable memory.

In some cases, user device data may include “personal information.” Personal information may include any potentially sensitive data or information associated with a user or portable user device. Examples of personal information may include a primary account number (PAN) associated with the device, a social security number associated with the user, or a verification value associated with the device.

A “user device data format” may include any information relating to the structure or format of user device data. For example, a user device data format may include information regarding one or more data fields included in the user device data, the ordering of the fields, the length of the fields, etc.

The term “encrypted user device data” may include any data or information including user device data, wherein at least some of the user device data is encrypted, obfuscated, or otherwise protected. In some cases, personal information included in the user device data may be encrypted (i.e., “encrypted personal information”), and other user device data may remained unencrypted.

The term “device reader metadata” may include any data or information associated with a portable user device reader. For example, device reader metadata may include information relating to a manufacturer of the device reader, a model of the device reader, or a type of the device reader. In some embodiments of the invention, the device reader metadata may be usable to retrieve additional data or information associated with the portable user device reader, such as a device reader API or device reader encryption scheme.

The term “device reader API” may include any data, software, executable code, or other information used to process user device data and encrypted user device data. A device reader API may include, for example, a user device data format and executable code to parse user device data and encrypted user device data (e.g., to determine encrypted personal information). In some cases, different portable user device readers may require different device reader APIs.

The term “device reader encryption scheme” may include any data relating to an encryption method associated with encrypted user device data. For example, the device reader encryption scheme may include a key length, an encryption algorithm (e.g., DUKPT), and information used to determine a decryption key that may be used to decrypt the encrypted user device data (e.g., a key serial number).

It should be noted that the although the terms above may include a meaning relating to payment transactions, embodiments of the invention are not so limited. For example, embodiments of the invention may generally apply to any suitable methods of encrypting and decrypting user device data.

Embodiments of the invention provide many technical advantages. For example, by sending encrypted user device data and device reader metadata to a mobile acceptance server to be parsed, embodiments of the invention provide the advantage of allowing a mobile acceptance application running on a merchant mobile device to interface with a variety of portable user device readers, each of which may be associated with a different user device data format and encryption scheme, without requiring the merchant acceptance application to include device reader APIs for each portable user device reader. This reduces the storage and processing requirements for the mobile acceptance application, and increases the speed of the merchant mobile device.

In addition, embodiments of the invention enable a mobile acceptance application to interface with new devices without requiring software updates. Since embodiments of the invention do not require the merchant acceptance application to include software to process each portable user device reader, embodiments enable the merchant acceptance application to interface with portable user device readers released after the mobile acceptance application was loaded onto the merchant mobile device. This may be especially advantageous in some scenarios in which a merchant mobile device may be commonly used, such as when access to the internet for software updates may be sporadic, bandwidth may be limited, or data usage caps may exist.

Embodiments of the invention provide the further advantage of allowing merchants to securely transmit personal information to a mobile acceptance server, without risking compromise of the data on the merchant mobile device. In some embodiments, the merchant mobile device may be a general-purpose mobile device such as a tablet running iOS™ or Android™ operating systems. Accordingly, the security of any sensitive data that is visible to the mobile acceptance application may not be guaranteed. However, since embodiments encrypt user device data before being received by the mobile acceptance application, and do not decrypt the encrypted user device data until after it is received by the mobile acceptance server, any unscrupulous applications running on the merchant mobile device cannot compromise the data.

The above examples highlight only a few of the advantages of the merchant mobile acceptance systems described herein.

I. Merchant Mobile Acceptance Systems

FIG. 1shows a system according to an embodiment of the invention. The system comprises a user (not shown) who may operate a portable user device101. The user may use portable device101to conduct payment transactions at a portable user device reader102connected to a merchant mobile device200. Merchant mobile device200may be connected to mobile acceptance server300. Mobile acceptance server300may be connected to merchant processor computer103. Merchant processor computer103may be connected to acquirer computer104. Acquirer computer104may be connected to issuer computer106via payment processing network105. Portable user device101may be manufactured by device manufacturer107, which in some embodiments may be associated with the issuer of portable user device101.

A “portable user device reader”102may include any device operable to read a portable user device101. The portable user device reader102may be operable to read credit cards, debit cards, smart cards, contactless devices, or any other suitable portable user device101. Accordingly, portable user device reader102may comprise a magnetic card reader, EMV interface, contactless interface, or other hardware. In some cases, portable user device reader102may be a peripheral device connected to a merchant mobile device200(e.g., through a USB cable, headphone jack, or any other suitable interface).

A “merchant mobile device”200may include any mobile device operable to conduct a transaction. For example, merchant mobile device200may be a tablet, smart phone, laptop, PDA, or netbook. In some cases, the merchant mobile device200may be a specialized device for conducting transactions. In other cases, the merchant mobile device200may be general-purpose. For example, merchant mobile device200may run a mobile operating system such as iOS™ or Android™.

A “mobile acceptance server”300may include any server computer operable to receive encrypted user device data and device metadata. In various embodiments, mobile acceptance server300may be associated with a merchant processor103, acquirer104, payment processing network105, or issuer106.

As used herein, an “issuer” may typically refer to a business entity (e.g., a bank) that maintains financial accounts for a user and often issues a portable user device101such as a credit or debit card to the user. A “merchant” is typically an entity that engages in transactions and can sell goods or services. An “acquirer” is typically a business entity (e.g., a commercial bank) that has a business relationship with a particular merchant or other entity. Some entities can perform both issuer and acquirer functions. Some embodiments may encompass such single entity issuer-acquirers. Each of the entities (e.g., merchant processor computer103, acquirer computer104, payment processing network105, and issuer computer106) may comprise one or more computer apparatuses to enable communications, or to perform one or more of the functions described herein.

The payment processing network105may include data processing subsystems, networks, and operations used to support and deliver certificate authority services, authorization services, exception file services, and clearing and settlement services. An example of a payment processing network may include VisaNet™′ Payment processing networks such as VisaNet™ are able to process credit card transactions, debit card transactions, and other types of commercial transactions. VisaNet™, in particular, includes a VIP system (Visa Integrated Payments system) which processes authorization requests and a Base II system which performs clearing and settlement services.

The payment processing network105may include one or more server computers. A server computer is typically a powerful computer or cluster of computers. For example, the server computer can be a large mainframe, a minicomputer cluster, or a group of servers functioning as a unit. In one example, the server computer may be a database server coupled to a Web server. The payment processing network105may use any suitable wired or wireless network, including the Internet.

In a typical purchase transaction, the user purchases a good or service at a merchant mobile device200using a portable user device101. The user's portable user device101can interact with an portable user device reader102connected to the merchant mobile device200. For example, the user may tap the portable user device101against an NFC reader in the portable user device reader102. Alternately, the user may indicate payment details to the merchant electronically, such as in an online transaction.

The merchant mobile device200may receive encrypted user device data including personal information such as payment information, and send the encrypted user device data and device reader metadata to a mobile acceptance server300. In some embodiments, this may be performed in accordance with method700as shown inFIG. 7. Mobile acceptance server300may then generate an authorization request message for the transaction, or may cause merchant processor computer103to generate an authorization request message.

The authorization request message is then forwarded to the acquirer computer104. After receiving the authorization request message, the authorization request message is then sent to the payment processing network105. The payment processing network105then forwards the authorization request message to the corresponding issuer computer106associated with the issuer of the portable user device101.

After the issuer computer106receives the authorization request message, the issuer computer106sends an authorization response message back to the payment processing network105to indicate whether or not the current transaction is authorized (or not authorized). The payment processing network105then forwards the authorization response message back to the acquirer computer104. The acquirer computer104then sends the response message back to the merchant processor computer103.

After the merchant processor computer103receives the authorization response message, the merchant processor computer103may then provide the authorization response message to the merchant mobile device200. The response message may be displayed by the merchant mobile device200, or may be printed out on a receipt. Alternately, if the transaction is an online transaction, the merchant may provide a web page or other indication of the authorization response message.

At the end of the day, a normal clearing and settlement process can be conducted by the payment processing network105. A clearing process is a process of exchanging financial details between and acquirer and an issuer to facilitate posting to a user's payment account and reconciliation of the user's settlement position.

FIG. 2shows an example of a merchant mobile device200interacting with portable user device readers241-243and a mobile acceptance service250in one embodiment of the invention. The merchant mobile device200may comprise a mobile acceptance application210, a mobile acceptance software development kit (SDK)220, an SDK-Application API215, and a generic device reader interface230.

Mobile acceptance application210may include any application, program, app, or executable configured to conduct transactions. In some cases, mobile acceptance application210may be an application associated with a merchant processor, acquirer, or payment processing network. In such cases, the mobile acceptance application210may include point-of-sale (POS) functionality, which may allow a merchant to enter items or services to be purchased by a user, and calculate an amount for a transaction. Mobile acceptance application210may interface with a plurality of portable user device readers241-243using a generic device interface230. Mobile acceptance application210may interface with a mobile acceptance SDK using an SDK-Application API215.

Generic device reader SDK230may include any libraries, APIs, or other functionality operable to allow mobile acceptance application210to communicate with the plurality of portable user device readers241-243. Typically, generic device reader SDK230may include functionality to receive encrypted user device data from the device readers241-243, and to determine reader metadata associated with the device readers241-243. For example, if portable user device readers241-243are USB peripherals, generic device reader SDK230may include a generic USB driver. However, in some cases, SDK230may not include functionality to parse the encrypted user device data based on the reader API associated with the reader.

Mobile acceptance SDK220may include any libraries, shared objects, or other functionality operable to construct and send messages to a mobile acceptance server250. In some embodiments, mobile acceptance SDK220may be loaded onto merchant mobile device200separately from the mobile acceptance application210. In other embodiments, mobile acceptance SDK220may be included as a component of mobile acceptance application210. Mobile acceptance SDK225and mobile acceptance service250may interface using SDK-Service API225.

Mobile acceptance service250may include any executable code or other functionality operable to receive encrypted user device data and device metadata and decrypt the user device data. In some embodiments, mobile acceptance service250may comprise model specific SDKs or other functionality to parse the encrypted user device data based on the received device metadata. For example, if the encrypted user device data was generated by model A reader241, the mobile acceptance service may parse the encrypted user device data using a first device reader SDK; if the encrypted user device data was generated by model B reader242, the mobile acceptance service may parse the encrypted user device data using a second device reader SDK.

Mobile acceptance service250may be in communication with a hardware security module (HSM)251that stores one or more encryption keys. For example, HSM251may store a base derivation key (BDK) used to generate a decryption key for encrypted user device data. The HSM251may be managed by an HSM admin252. The HSM admin252and mobile acceptance server may also be in communication with one or more databases253. In some embodiments, database(s)253may include BDK database400and API database500. In some embodiments, database(s)253may implement the database model ofFIG. 6.

FIG. 3shows an example of a mobile acceptance server300according to some embodiments of the invention. The mobile acceptance server300may comprise a server computer310, a BDK database400, and an API database500. Typically, the mobile acceptance server300may use server computer310to receive encrypted user device data, parse the encrypted user device data using API database500to determine encrypted personal information, and decrypt the encrypted personal information using BDK database400.

Server computer310may comprise a plurality of modules such as mobile acceptance interface module311, device data parsing module312, payment processing module313, and DUKPT module314. Modules311-314may be implemented using any suitable combination of software and hardware, as can any other modules described herein.

Mobile acceptance interface module311may be configured to communicate with merchant mobile devices200and receive encrypted user device data and device reader metadata. Typically mobile acceptance service module311may implement SDK-Service API225.

Device data parsing module312may be configured to parse encrypted user device data. For example, device data parsing module312may use API database500to determine a reader data format identifier504associated with device reader metadata received from a merchant mobile device200.

Payment processing module313may be configured to conduct a payment transaction using decrypted personal information such as card track data or other payment information. In some embodiments, payment processing module313may be configured to generate an authorization request message as described for the system ofFIG. 1.

Derived Unique Key Per Transaction (DUKPT) module314may be configured to decrypt encrypted data (e.g., encrypted user device data) that has been encrypted using a derived key such as a future key. For example, DUKPT module314may be configured to determine a base derivation key (BDK) cryptogram associated with a portable user device reader102using received device reader metadata. DUKPT module314may also be configured to derive a decryption key using a BDK and information included in a key serial number (KSN).

BDK database400may be used to store data associated with one or BDKs. In some embodiments, BDK database400may be operable to retrieve a BDK used by a portable user device reader102given device metadata associated with the device reader102. For example, if all portable user device readers102of a certain type use a particular BDK, a record in BDK database400may be stored for each portable user device type. An example of a BDK database400is shown inFIG. 4.

API database500may be used to store data associating device reader types to device reader APIs or other information used to parse user device data. In some embodiments, API database500may be operable to retrieve a device reader API or a device reader encryption scheme used by a portable user device reader102given device metadata associated with the device reader102. For example, if all portable user device readers102of a certain type use a particular device reader API, a record in API database500may be stored for each portable user device type. An example of an API database500is shown inFIG. 5.

FIG. 4shows an example of a BDK database according to some embodiments of the invention. The BDK database400may have a plurality of fields, including a device reader type identifier401, issuer identifier402, hardware security module (HSM) identifier403, group identifier404, BDK cryptogram405, and an HSM cluster406.

Device reader type identifier401may include any identifier suitable for identifying a device reader type. A “device reader type” may include a collection of similar portable user device readers. In some embodiments, a device reader type may include all device readers that use the same device reader API or that may be otherwise processed in the same manner. In various embodiments, the device reader type identifier401may include the manufacturer, model, and version of a portable user device reader102. For example, the device reader type identifier401“IDTECH-V1” may indicate a device reader manufactured by IDTECH™ and adhering to a “Version 1” data format. In some embodiments, the device reader type of a portable user device reader102may depend on the software or firmware installed on the portable user device reader102.

Issuer identifier402may include any name, number, or other identifier suitable for identifying an issuer. For example, issuer identifier402may be an issuer ID number (IID) associated with a portable user device reader102. In some embodiments, the IID of a portable user device reader102may be a number uniquely assigned to a manufacturer. HSM identifier403may include any identifier suitable for identifying an HSM used to store a BDK. Group identifier404may include any identifier suitable for identifying a BDK within a group of BDKs stored in a HSM. Each combination of an issuer identifier402, HSM identifier403, and group identifier404may be associated with a unique BDK.

BDK cryptogram405may include any cryptogram or other data that includes a BDK. Typically, BDK cryptogram405may be specially secured compared to other entries in BDK database400. For example, BDK cryptogram405may be stored in an HSM at a location and format identified by HSM cluster407.

HSM cluster406may include any locator or other information identifying a location of an HSM in which a BDK is stored. For example, HSM cluster406may include an IP address used to access the HSM, a port on the IP address, or an HSM format or manufacturer.

B. Example API Databases

FIG. 5shows an example of an API database500according to some embodiments of the invention. The API database500may have a plurality of fields, including device reader type identifier501, device reader manufacturer identifier502, device reader model identifier503, user device data format identifier504, device reader API identifier505, and encryption scheme506.

Device reader type identifier501may include any identifier suitable for identifying a device reader type. Typically, device reader type identifier501may correspond to device reader type identifier401in BDK database400.

Device reader manufacturer identifier502may include any identifier suitable to identify a device reader manufacturer corresponding to a device reader type identifier501. Similarly, device reader model identifier503may include any identifier suitable to identify a device reader model corresponding to a device reader type identifier501. For example, a device reader manufacturer may be “ID TECH” and a device reader model may be “UniPay”.

User device data format identifier504may include any identifier suitable to identify a user device data format for user device data or encrypted user device data generated by a portable user device reader102with an associated device reader type identifier501. In some embodiments, the user device data format identifier504may be a reference to an XML schema or other description of the structure of user device data.

Device reader API identifier505may include any identifier suitable to identify a device reader application programming interface (API), software development kit (SDK), software library, or other functionality suitable to decrypt encrypted user device data or parse user device data associated with a device reader type identifier501. For example, device reader API identifier505may identify one of a plurality of APIs from a variety of portable user device reader manufacturers to use to parse user device data generated by a particular portable user device reader.

Encryption scheme506may include any data, executable code, or other indication of an encryption scheme associated with a device reader type. Examples of encryption schemes may include encryption algorithms used (e.g., RSA, ECC, TDES, and AES), parameters to the encryption algorithms, and the formatting of the encrypted data.

C. Example Database Models

FIG. 6shows an example of a database model600used by a mobile acceptance server in one embodiment of the invention. As shown, database model600may include several tables such as CardReaderDevice table610, DeviceManufacturer table620, MerchantGroup table630, BDK table640, and HSMCluster table650. Each of tables610-650may comprise one or more fields.

In some embodiments, database model600may be used instead of, or in addition to, BDK database400and API database500. For example, a database implementing database model600may be operable to retrieve a BDK, a device reader API, and a device reader encryption scheme for a portable user device reader102.

II. Mobile Merchant Acceptance Methods

FIG. 7shows a method700for conducting a transaction using encrypted user device data. Typically, the method700may be performed when a user initiates a payment transaction at a merchant. For example, the user may swipe or tap portable user device101at portable user device reader102.

At step701, portable user device reader102reads portable user device101to determine user device data. Portable user device reader102may perform the read in any suitable manner. For example, if portable user device101is a credit card or debit card comprising a magnetized data track, portable user device reader102may include a magnetic reader. Alternately, if portable user device101is a contactless device, portable user device reader102may establish a wireless connection with the portable user device101. In some embodiments, the user device data may also comprise user input. For example, portable user device reader102may read a PIN or password entered by a user operating a keypad element of portable user device reader102.FIG. 8shows an example of user device data820in a user device data format810.

As shown inFIG. 8, a user device data format810may comprise three fields: a field for a user's name811, a field for personal information such as a PAN812associated with the portable user device101, and a field for an expiration date813associated with the portable user device101. For example, user device data820corresponding to the user device data format810may have a name821of “John Smith”, a PAN822of “4117-7312-4567-6147”, and an expiration date of “11/2018”. However, it should be noted that any other format or values for user device data may be used.

At step702, portable user device reader102encrypts the user device data. The term “encrypted user device data” may include any data or information including user device data, wherein at least some of the user device data is encrypted, obfuscated, or otherwise protected. In some cases, personal information included in the user device data may be encrypted (i.e., “encrypted personal information”), and any other user device data may remained unencrypted.

The user device data may be encrypted in any suitable manner. In some embodiments, the user device data may be encrypted using an asymmetric encryption algorithm such as ECC or RSA. For example, the user device data may be encrypted using a public key associated with mobile acceptance server300and signed using a private key associated with the portable user device reader102. In other embodiments, the user device data may be encrypted using a symmetric encryption algorithm such as DES or AES. For example, the user device data may be encrypted using a secret key known to mobile acceptance server300and portable user device reader102. In some embodiments, the secret key may be determined in accordance with a derived unique key per transaction (DUKPT) algorithm. In some embodiments, method900as shown inFIG. 9may be used to encrypt the user device data.

FIG. 8shows example of encrypted user device data830. The encrypted user device data830shown comprises the unencrypted user's name831(i.e., “John Smith”), the encrypted PAN832(i.e., “NDExNy03MzEyLTQ1NjctNjE1Nw==”), and the unencrypted expiration date (i.e., “11/2018”). However, it should be noted that any set of user device data fields may be encrypted.

At step703, portable user device reader102sends the encrypted user device data and device reader metadata to merchant mobile device200. Device reader metadata may include any data or information associated with a portable user device reader. For example, device reader metadata may include information relating to a manufacturer of the device reader, a model of the device reader, or a type of the device reader. In some embodiments of the invention, the device reader metadata may be usable to retrieve additional data or information associated with the portable user device reader, such as a device reader API or device reader encryption scheme.

Portable user device reader102may send the encrypted user data and device reader metadata to the merchant mobile device200in any suitable manner. In some embodiments, the encrypted user data and device reader metadata may be communicated to the merchant mobile device200using a standardized format that is shared between multiple device reader manufacturers or models. For example, the device reader metadata may be communicated to merchant mobile device200using “vendor ID”, “device ID”, and other fields present in the Universal Serial Bus (USB) protocol.

At step704, merchant mobile device200sends encrypted user device data, device reader metadata, and transaction information to mobile acceptance server300. The term “transaction information” may include any information associated with a current transaction, such as the transaction amount, merchant identifier, merchant location, etc., as well as any other information that may be utilized in determining whether to identify and/or authorize a transaction.

At step705, mobile acceptance server300determines a device reader API and a device reader encryption scheme using the received device reader metadata. A “device reader API” may include any data, software, executable code, or other information used to process user device data and encrypted user device data. A device reader API may include, for example, a user device data format and executable code to parse user device data and encrypted user device data (e.g., to determine encrypted personal information). A “device reader encryption scheme” may include any data relating to an encryption method associated with encrypted user device data. For example, the device reader encryption scheme may include a key length, an encryption algorithm (e.g., DUKPT), and information identifying a decryption key (e.g., a BDK) that may be used to decrypt the encrypted user device data.

In some embodiments, mobile acceptance server300may use an API database400to determine the device reader API and device reader encryption scheme.

At step706, mobile acceptance server300parses the encrypted user device data using the device reader API to determine encrypted personal information. The encrypted personal information may include any potentially sensitive data or information associated with a user or portable user device encrypted in any suitable manner. Examples of personal information may include a primary account number (PAN) associated with the device, a social security number associated with the user, and a verification value associated with the device. For example, for the example encrypted user device data830shown inFIG. 8, the encrypted personal information may be the encrypted PAN832.

At step707, mobile acceptance server300decrypts the encrypted personal information using the determined device reader encryption scheme. The user device data may be decrypted in any suitable manner. In some embodiments, if the user device data is encrypted using an asymmetric encryption algorithm, the encrypted user device data may be decrypted using a private key associated with mobile acceptance server300. If the encrypted user device data is signed using a private key associated with the portable user device reader102, the signature may be verified by a corresponding public key associated with the portable user device reader102. In other embodiments, if the user device data is encrypted using a symmetric encryption algorithm, the encrypted user device data may be decrypted using a secret key known to mobile acceptance server300and portable user device reader102. In some embodiments, the secret key may be determined in accordance with a derived unique key per transaction (DUKPT) algorithm. In some embodiments, method1000as shown inFIG. 10may be used to decrypt the user device data. For example, for the example encrypted PAN832(i.e., “NDExNy03MzEyLTQ1NjctNjE1Nw==”), the corresponding unencrypted PAN822(i.e., “4117-7312-4567-6147”) may be determined.

At step708, mobile acceptance server300uses the decrypted personal information to conduct a transaction. For example, if the personal information is a PAN, the PAN may be transmitted to a merchant processor computer103or acquirer computer104as part of an authorization request message for the transaction.

A. Example Encryption Methods

FIG. 9shows a method900for encrypting user device data according to a derived unique key per transaction (DUKPT) encryption scheme. Typically, prior to method900, an initial encryption key associated with the portable user device reader102may be derived using a base derivation key (BDK) stored at a mobile acceptance server300and a unique device identifier (e.g., a device ID or tamper-resistant security module ID) associated with the portable user device reader102. One or more future keys may then be derived using the initial encryption key and one or more counter values. The initial encryption key and future keys may be derived using any suitable key derivation function. The future keys may then be loaded onto the portable user device reader102. Typically, method900may be performed after the portable user device reader102reads user device data from the portable user device101. In some embodiments, method900may be performed at step702of method700.

At step901, portable user device reader102retrieves a session encryption key from the set of future keys. In some embodiments, a future key may be chosen such that it is unique to the transaction. For example, a transaction counter may be maintained and incremented by portable user device reader102after each transaction. For each subsequent transaction, a future key associated with the current transaction count may be used as the session encryption key.

At step902, portable user device reader102determines card track data included in the user device data associated with portable user device101. In some embodiments, card track data may include Track 1 or Track 2 data. Track 1 (“International Air Transport Association”) may store more information than Track 2, and may include the user's name as well as account number, and other discretionary data. Track 1 data is sometimes used by the airlines when securing reservations with a credit card. Track 2 (“American Banking Association”) data may comprise the user's account number, encrypted PIN data, and other discretionary data.

At step903, portable user device reader102encrypts the card track data using the session encryption key. The resulting encrypted card track data may be stored in any suitable form, such as a fixed-length string of bits.

At step904, portable user device reader102determines a key serial number (KSN) associated with the session encryption key. Typically, the KSN includes information that allows a decrypting party (such as the mobile acceptance server300) to determine or derive a key used to decrypt the encrypted card track data. For example, the KSN may include the unique device identifier associated with the portable user device reader102and the transaction counter maintained by the portable user device reader102.

At step905, portable user device reader102appends the KSN to the encrypted card track data. Typically, the KSN is not encrypted using the session encryption key, so that it may be used to derive a corresponding decryption key.

It should be noted that although method900is described as encrypting card track data, any suitable personal information may be similarly encrypted. For example, if the portable user device101is a contactless device, a cryptogram, dCVV2, or other data may be similarly encrypted. In another example, the personal information may be payment data entered by a user as part of an electronic commerce transaction.

B. Example Decryption Methods

FIG. 10shows a method1000for decrypting user device data encrypted according to a derived unique key per transaction (DUKPT) encryption scheme. Typically, prior to method1000, mobile acceptance server300parses the encrypted device data using a device reader API. In some embodiments, method1000may be performed at step707of method700.

At step1001, mobile acceptance server300determines a KSN using the device reader API. The device reader API may be operable to, for example, determine a number of bits in a string storing the encrypted card track data, and a number of bits in the string storing the KSN. The device reader API may then split the string into a first field comprising the encrypted card track data, and a second field comprising the KSN.

At step1002, mobile acceptance server300determines a device reader base derivation key (device reader BDK) using the KSN. In some embodiments, the KSN may comprise a device reader type identifier401that may be used to retrieve a corresponding BDK cryptogram405from BDK database400. In other embodiments, the KSN may comprise one or more identification numbers such as an issuer ID number (IIN), a customer ID (CID), and a group ID (GID). In such embodiments, the IIN, CID, and GID may correspond to issuer identifier402, HSM identifier403, and group identifier404in BDK database400, and may be used to retrieve a BDK cryptogram405.

At step1003, mobile acceptance server300generates the session encryption key using the determined device reader BDK and KSN. In some embodiments, the KSN may comprise a unique device identifier such as a device ID (DID) or a tamper-resistant security module ID (TRSM ID). An initial encryption key for the portable user device reader may be derived from the determined device reader BDK and the unique device identifier. The KSN may also comprise a transaction counter associated with the transaction. A future key associated with the transaction counter may be derived using the initial encryption key and the transaction counter. Typically, the derived future key may be identical to the future key used by the portable user device reader102as the session key.

At step1004, mobile acceptance server300decrypts the encrypted card track data using the session encryption key to determine the card track data. The card track data may then be used for any suitable purpose, such as conducting a transaction.

C. Example User Device Data Flows

FIG. 11shows a flow diagram illustrating data dependencies according to some embodiments of the invention. As shown, the flow may include device manufacturer107, portable user device reader102, and mobile acceptance server300. Device manufacturer107, portable user device reader102, and mobile acceptance server300may include one or more data elements1101-1113.

Base derivation key (BDK)1101may be any suitable BDK. As examples, BDK1101may be generated by device manufacturer107, mobile acceptance server300, or another entity, such as acquirer computer104, payment processing network105, or issuer computer106. Typically, BDK1101at device manufacturer107may be the same key as BDK1110at mobile acceptance server300. This may be achieved, for example, by the device manufacturer107sending the BDK1101to mobile acceptance server300, or mobile acceptance server300sending the BDK1110to device manufacturer107.

Initial encryption key1103is generated using BDK1101and a unique device identifier1102. In some embodiments, the initial encryption key1103may be generated using a key derivation function (KDF). For example, in KDFs that take as input a key and salt, the key may include the BDK1101, and the salt may include the unique device identifier1102.

One or more future keys1105are generated using initial encryption key1103and one or more transaction counts1104. For example, a first future key1105may be generated using the initial encryption key1103and a transaction count1104of zero, a second future key1105may be generated using the initial encryption key1103and a transaction count1104of one, etc.

Session encryption key1107may be chosen from the one or more future keys1105, and may be used to encrypt user device data1106to generate encrypted user device data1109. In some embodiments, the session encryption key1107may be chosen such that a different future key1105is used for each transaction conducted by the portable user device reader102. The encrypted user device data1109may be associated with a key serial number (KSN)1108, which may include unique device identifier1102, transaction count1104, an identifier associated with BDK1101, or any other suitable data to determine a session decryption key1111corresponding to the session encryption key1107.

Once KSN1108and encrypted user device data1109are sent by portable user device reader102, they may be received by merchant acceptance server300as KSN1112and encrypted data1113.

A session decryption key1111may be determined from BDK1110and the received KSN1112. For example, if the KSN1112includes the unique device identifier1102and transaction count1104, the session encryption key1107may be regenerated and used as the session decryption key1111. In some embodiments, in order to determine the session decryption key1111, mobile acceptance server300may use device reader metadata associated with portable user device reader102. For example, mobile acceptance server300may determine a device reader encryption scheme and device reader API associated with the portable user device reader102.

The session decryption key1111may be used to decrypt the encrypted data1113to determine the decrypted user device data1114. Thus, mobile acceptance server300may determine user device data1106through an encrypted transmission from portable user device reader102.

FIG. 12shows an example of a payment device101″ in the form of a card. As shown, the payment device101″ comprises a plastic substrate101(m). In some embodiments, a contactless element101(o) for interfacing with an access device102may be present on, or embedded within, the plastic substrate101(m). User information101(p) such as an account number, expiration date, and/or a user name may be printed or embossed on the card. A magnetic stripe101(n) may also be on the plastic substrate101(m). In some embodiments, the payment device101″ may comprise a microprocessor and/or memory chips with user data stored in them.

As noted above and shown inFIG. 12, the payment device101″ may include both a magnetic stripe101(n) and a contactless element101(o). In some embodiments, both the magnetic stripe101(n) and the contactless element101(o) may be in the payment device101″. In some embodiments, either the magnetic stripe101(n) or the contactless element101(o) may be present in the payment device101″.

FIG. 13is a high level block diagram of a computer system that may be used to implement any of the entities or components described above. The subsystems shown inFIG. 13are interconnected via a system bus1375. Additional subsystems include a printer1303, keyboard1306, fixed disk1307, and monitor1309, which is coupled to display adapter1304. Peripherals and input/output (I/O) devices, which couple to I/O controller1300, can be connected to the computer system by any number of means known in the art, such as a serial port. For example, serial port1305or external interface1308can be used to connect the computer apparatus to a wide area network such as the Internet, a mouse input device, or a scanner. The interconnection via system bus1375allows the central processor1302to communicate with each subsystem and to control the execution of instructions from system memory1301or the fixed disk1307, as well as the exchange of information between subsystems. The system memory1301and/or the fixed disk may embody a computer-readable medium.

As described, the inventive service may involve implementing one or more functions, processes, operations or method steps. In some embodiments, the functions, processes, operations or method steps may be implemented as a result of the execution of a set of instructions or software code by a suitably-programmed computing device, microprocessor, data processor, or the like. The set of instructions or software code may be stored in a memory or other form of data storage element which is accessed by the computing device, microprocessor, etc. In other embodiments, the functions, processes, operations or method steps may be implemented by firmware or a dedicated processor, integrated circuit, etc.

While certain exemplary embodiments have been described in detail and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not intended to be restrictive of the broad invention, and that this invention is not to be limited to the specific arrangements and constructions shown and described, since various other modifications may occur to those with ordinary skill in the art.