SOFTWARE SECURITY SYSTEM AND METHOD FOR PIN ENTRY, STORAGE AND TRANSMISSION TO SOFTWARE-BASED POS (SOFTPOS)

20220108297 · 2022-04-07

    Inventors

    Cpc classification

    International classification

    Abstract

    A secure PIN entry to verify the cardholder in over-limit transactions of mobile devices receiving payment via POS software. The system includes a POS application installed in the mobile device, which allows payment to be received and which is managed by the server application, an L3 business layer that manages the user interface, experience, and workflows of POS application, a POS memory which enables the software operation of security, key creation and cryptographic algorithms for POS application, a POS security layer which ensures that payment is made safely through POS memory, a PIN application that provides the user interface for secure PIN entry and securely forwards PIN entry to the POS application, a PIN memory which enables the software operation of security, key creation and cryptographic algorithms for PIN application, and a PIN security layer that enables secure reception and transmission of the PIN through the PIN memory.

    Claims

    1. A system to provide secure PIN entry to verify the cardholder in over-limit transactions of mobile devices receiving payment via POS software, the system comprising: a POS application installed in the mobile device, which allows payment to be received and which is managed by a server application; an L3 business layer that manages a user interface, experience, and workflows of the POS application; POS memory which enables the software operation of security, key creation and cryptographic algorithms for the POS application; a POS security layer which ensures that payment is made safely through a POS memory; a PIN application that provides the user interface for secure PIN entry and securely forwards PIN entry to the POS application; a PIN memory which enables the software operation of security, key creation and cryptographic algorithms for the PIN application; and a PIN security layer that enables secure reception and transmission of the PIN through the PIN memory.

    2. The system according to claim 1, comprising a L2 kernel in which the core applications of payment schemes in the POS application run.

    3. The system according to claim 1, comprising a communication layer, which provides secure communication between the POS application and the server applications.

    4. The system according to claim 1, comprising a control and approval application that recognizes the mobile device and the POS application and performs security checks accordingly.

    5. The system according to claim 1, comprising a database application in which the required data is kept.

    6. A method to provide a secure PIN entry to verify the cardholder in over-limit transactions of mobile devices receiving payment via POS software, the method comprising the steps of: entering a payment amount by starting the POS application and starting payment flow (1001), checking whether the payment amount is above a cardholder verification limit in the POS application, (1002) if the payment amount is over the cardholder verification limit, notifying an L3 Business Layer by a L2 kernel where the core applications are running, (1003) checking whether a pin application is installed at the L3 Business Layer (1004), if the PIN application is not installed, displaying an error message to the user and terminating the stream (1005), triggering of the PIN application to open if installed (1006), the PIN application to start listening by opening a socket (1009), the POS application tries to connect to the opened socket (1010), if the POS application fails to connect to the socket, an error or timeout message is displayed and the stream is terminated (1011), in case the connection is established, sending a special encrypted message over TCP/IP to display a pop-up window of the POS application, (1012) using an automatically generated AES key to encrypt the said message, encryption of the entire message with an RSA Public key in the originally injected Whitebox form by the POS application (4), the PIN application decodes the received message with the RSA Private key in the originally injected Whitebox form to reach the MEK key in the Whitebox form (1013), encryption of the PIN application with the PIN encryption key (PEK) in Whitebox form and in the secure area of memory after filling it with “F” by preparing a PIN sequence in itself according to the PIN format of the payment scheme (1014), PIN application displays the numeric keypad where the numbers are randomly placed on the screen and wait for the PIN to be entered (1015), when the user presses a number on the keypad, the PIN application proceeds as follows (1016); random alteration in the places of the numbers, the PIN sequence is decoded with PEK and the number is placed to the right and then the PIN sequence is erased from memory after being re-encrypted with PEK, This operation continues until the user presses the Enter button, PIN application (3) prepares the PIN input message; If the user presses the “enter” button, the screen result is successful and contains the PIN sequence encrypted with PEK, the entire message is encrypted with the RSA public key in Whitebox form and transmitted to the POS application via (4) TCP/IP socket, if the user presses the “Cancel” button, the display will show the result as a failure, the POS application decodes the received message with the RSA Private key in the Whitebox form and incorporates the PIN data into the authorization message (1017).

    7. The method according to claim 6, characterized by comprising the step of checking of the following items when opening the PIN application; (1007) whether the app Hash has changed, whether the device is being rooted or not, whether debugging is performed or not, whether there is an overlay attack, whether the application runs in the emulator, whether there are any apps on the server-issued blacklist on the device, whether tried to take a screenshot or not.

    8. The method according to claim 6, comprising the step of: if there is a drawback in the controls, the user will be shown the error message and flow is terminated (1008).

    9. The method according to claim 7, comprising the step of: if there is a drawback in the controls, the user will be shown the error message and flow is terminated (1008).

    Description

    BRIEF DESCRIPTION OF THE FIGURES

    [0020] FIG. 1, is the general representation of the system of the invention.

    [0021] FIG. 2, is the general representation of the method of the invention.

    [0022] The drawings do not necessarily have to be scaled, and the details that are not necessary to understand the invention may be neglected. Other than that, elements that are substantially identical, or at least have substantially identical functions, are denoted by the same number.

    REFERENCE NUMBERS

    [0023] 1. Mobile Device [0024] 2. Server Application [0025] 3. PIN application [0026] 4. POS application [0027] 5. PIN memory (Whitebox) [0028] 6. POS memory (Whitebox) [0029] 7. PIN security layer [0030] 8. L3 Business Layer [0031] 9. L2 Kernel [0032] 10. POS security layer [0033] 11. Communication Layer [0034] 12. Control and Approval Application [0035] 13. Database Application

    DETAILED DESCRIPTION OF THE INVENTION

    [0036] In this detailed description, preferred structures of the invention are explained only for a better understanding of the subject matter and without any restrictive effect.

    [0037] The invention relates to a system and method that offers a software-based infrastructure, user interface and data flow to secure PIN entry to verify the cardholder for transactions exceeding the limit of the commercial of the shelf mobile devices (1) receiving EMV contactless payments through POS software (softPOS).

    [0038] Mobile devices (1) such as android or mobile phones with a different operating system, or tablets are used in the system of the invention. The mobile device (1) contains the PIN application (3) and the POS application (4). POS application (4) is the application of receiving payment. Contactless payment is made via the NFC antenna by bringing the card closer to the mobile device (1) and payment is made via the POS application (4). The POS application (4) is managed by the server application (2).

    [0039] L3 Business Layer (8) manages the user interface and experience and workflows of the POS application (4). The L2 kernel (9) is the layer on which the core applications of payment schemes in the POS application operate. POS memory (Whitebox) (6) consists of a library that enables security, key creation, and cryptographic algorithms to work in software for POS application (4). POS security layer (10) is the layer that allows the payment process to be done safely through POS memory (6).

    [0040] The PIN application (3) provides a user interface for secure PIN entry and securely transmits the PIN entry to the POS application (4). The libraries that enable software operation of the security, key creation, and cryptographic algorithms constitute PIN memory (Whitebox) (5). PIN security layer (7) provides secure reception and transmission of the PIN through PIN memory (5).

    [0041] The communication layer (11) is the layer that provides secure communication between POS application (4) and server applications (2). Control and approval application (12) is the server application that recognizes mobile device (1) and POS application (4) and performs security checks accordingly. Database application (13) is the standard database application in which the required data is kept.

    [0042] The process steps realized with the system of the invention are as follows; [0043] Entering payment amount by starting POS application (4) and starting payment flow (1001), [0044] Checking whether the payment amount is above the cardholder verification limit in POS application (4), (1002) [0045] If the payment amount is over the limit, notifying the L3 Business Layer (8) by the L2 kernel (9) where the core applications are running, (1003) [0046] Checking whether the pin application (3) is installed at the L3 Business Layer (8) (1004), [0047] If the PIN application (3) is not installed, displaying an error message to the user and terminating the stream (1005), [0048] Triggering of the PIN application (3) to open if installed (1006), [0049] When opening the PIN application (3), controlling the following items (1007); [0050] Has the app hash changed? [0051] Is the device rooted? [0052] Is debugging performed? [0053] Is there any overlay attacks? [0054] Does the application work in the emulator? [0055] Is there any of the blacklisted apps provided by the server on the device? [0056] Trying to get a screenshot? [0057] If there is a problem with the controls, the user will be shown the error message and the stream will be terminated (1008). [0058] PIN application (3) to start listening by opening a socket (1009), [0059] POS application (4) tries to connect to opened socket (1010), [0060] If the POS application (4) fails to connect to the said socket, an error or timeout message is displayed and the stream is terminated (1011), [0061] In case the connection is established, sending a special encrypted message over TCP/IP to display the pop-up/pop-up window of the POS application (4), (1012) [0062] Using an automatically generated AES key to encrypt the said message, [0063] Encryption of the entire message with the RSA public/Public key in the originally injected Whitebox form by the POS application (4), [0064] The PIN application (3) decodes the received message with the RSA Private key in the originally injected Whitebox form to reach the MEK key in the Whitebox form (1013), [0065] Encryption of the PIN application (3) with the PIN encryption key (PEK) in Whitebox form and in the secure area of memory after filling it with “F” by preparing a PIN sequence in itself according to the PIN format of the payment scheme (1014), [0066] PIN application (3) displays the numeric keypad where the numbers are randomly placed on the screen and wait for the PIN to be entered (1015), [0067] When the user presses a number on the keypad, the PIN application (3) proceeds as follows (1016); [0068] Random alteration in the places of the numbers (a), [0069] The PIN sequence is decoded with PEK and the number is placed to the right and then the PIN sequence is erased from memory after being re-encrypted with PEK (b), [0070] This operation continues until the user presses the Enter button (c), [0071] PIN application (3) prepares the PIN input message (d); [0072] If the user presses the “enter” button, the screen result is successful and contains the PIN sequence encrypted with PEK, the entire message is encrypted with the RSA public key in Whitebox form and transmitted to the POS application (4) via TCP/IP socket, [0073] If the user presses the “Cancel” button, the display will show the result as failure (e), [0074] The POS application (4) decodes the received message with the RSA Private key in the Whitebox form and incorporates the PIN data into the authorization message (1017).