Methods and systems for encrypting data for a web application

Embodiments provide methods, and systems for encrypting data for web aplication. A method includes receiving, by a server system, a cryptographic certificate including asymmetric key pair. The method includes generating a random value key that forms at least a part of a Content Encryption Key (CEK) to be generated by a web application. The method includes sending the random value key to a client device running the web application over a secure network communication channel for generating the CEK. The CEK is to be utilized for encrypting a content entered by a user of the web application on the client device and the CEK is encrypted using a public key of the asymmetric key pair for transmission over the secure network communication channel. Furthermore, the method includes translating, the CEK encrypted under public key to CEK encrypted under LMK using a private key being part of the asymmetric key pair.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to Singaporean Application Serial No. 10201805967S, filed Jul. 11, 2018, which is incorporated herein by reference in its entirety

TECHNICAL FIELD

The present disclosure relates to cryptographic services facilitated in a client-server architecture and, more particularly to, methods and systems for encrypting data for web application.

BACKGROUND

Data security over the internet has achieved importance today with the tremendous amount of data exchange between various parties. A large part of such data exchange happens over web applications, and there have been constant efforts in providing a secure communication for data exchange over the web applications. Cryptography is a technique to securely send and receive data using encryption and decryption methods, and it aims at preventing any unauthorized access over the network. Cryptography is classified into symmetric key cryptography and asymmetric key cryptography depending on what type of keys are being used for decrypting the data.

Asymmetric key cryptography uses two keys i.e., a public key and a private key which are complementary in function. One such example of the asymmetric key cryptography is Secure Sockets Layer (SSL) which is a standard security protocol for establishing encrypted links between a web server and a browser in an online communication. A web page should use encryption when it expects users to submit confidential data, including personal information, passwords, or credit card details. An SSL certificate is necessary to create SSL connection. The SSL certificate is issued based on authentication of the public key received from the client. Many times it happens that the SSL certificate is not issued by a trusted certification authority (CA). Further, the cryptographic keys that are used to set up the SSL connection between web clients and their web application servers are stored in the same web application servers which may be usually unsecured platforms. Thus, cryptographic keys that are stored on the same web server are vulnerable to theft and misuse. The encrypted data are only as safe as the cryptographic keys that protect the encrypted data. Further, SSL encryption may not be sufficient for highly secure data as the purpose behind SSL technology is not to hide data or make it inaccessible. Its purpose is to scramble or encrypt information.

Accordingly, there is a need for techniques that enable safe and secure data transmissions between the web application and the application server under the SSL pipeline.

SUMMARY

Various embodiments of the present disclosure provide systems, methods, electronic devices and computer program products to encrypt data for a web application.

In an embodiment, a computer-implemented method is disclosed. The method includes generating, by a server system, a cryptographic certificate. The cryptographic certificate includes an asymmetric key pair. The method includes generating a random value key. The random value key forms at least a part of a Content Encryption Key (CEK) to be generated by a web application. Moreover, the method includes sending the random value key to a client device running the web application over a secure network communication channel for generating the CEK. The CEK is to be utilized for encrypting a content entered by a user of the web application on the client device and the CEK is encrypted using a public key being part of the asymmetric key pair for transmission over the secure network communication channel. Furthermore, the method includes translating the CEK encrypted under public key to CEK encrypted under LMK using a private key being part of the asymmetric key pair.

In another embodiment, a server system is provided. The server system includes a communication interface configured to establish a secure network communication channel with a client device running a web application. The server system includes a hardware security module configured to generate a cryptographic certificate. The cryptographic certificate includes an asymmetric key pair. The hardware security module is further configured to generate a random value key forming at least a part of a Content Encryption Key (CEK) to be generated by the web application. Furthermore, the hardware security module is configured to translate the CEK encrypted under public key to CEK encrypted under LMK using a private key being part of the asymmetric key pair. The server system further includes a memory comprising executable instructions and a processor communicably coupled to the communication interface. The processor is configured to execute the instructions to cause the server system to at least send the random value key to a client device running the web application over the secure network communication channel for generating the CEK. The CEK is to be utilized for encrypting a content entered by a user of the web application on the client device and CEK is encrypted using a public key being part of the asymmetric key pair for transmission over the secure network communication channel.

In yet another embodiment, a computer-implemented method is disclosed. The method includes generating, by a web application running on a client device, a self-generated key. The method includes concatenating the self-generated key with a random value key to generate an intermediate key. The random value key is received from a server system. Moreover, the method includes creating a hash value of the intermediate key using a hashing algorithm. The method includes generating a CEK by randomly selecting a predefined length key from the hash value of the intermediate key. The method includes encrypting a content under the CEK. The method includes encrypting the CEK using a public key being part of an asymmetric key pair for transmission over the secure network communication channel to the server system, wherein the public key is retrieved from a cryptographic certificate sent by the server system.

DETAILED DESCRIPTION

OVERVIEW

Various example embodiments of the present disclosure provide methods, systems, user devices and computer program products for encrypting data for a web application.

In various example embodiments, the present disclosure facilitates encryption of a content under a content encryption key (CEK) using a symmetric encryption at a web client. The content is entered using a web application running on a client device. Some non-exhaustive examples of the content include login ID, password, PIN, Card Verification Value (CVV), payment card details or any payment related data that is sensitive enough for a misuse by a third party if retrieved during transmission from the web application to the corresponding application server.

In one embodiment, the CEK is generated by the web application. The CEK includes at least two components: a random value key and a self-generated key by the web application. The random value key and the self-generated key are concatenated to generate an intermediate key. A hash value of the intermediate key is created using a hashing algorithm. The CEK is generated by randomly selecting a predefined length key from the hashed value of the intermediate key. In one embodiment, the random value key is generated by a Hardware Security Module (HSM) for sending it to the application server which further forwards it to the web application running on the client device.

In one embodiment, the server system facilitates encryption of the CEK using an asymmetric encryption. The HSM generates a cryptographic certificate that includes asymmetric key pair to be sent to the application server of the web application. The CEK is encrypted using a public key being a part of the asymmetric encryption. The public key is bound to the cryptographic certificate. The application server (an example of the server system) is configured to validate the cryptographic certificate based on one or more parameters. Some non-exhaustive examples of the one or more parameters include validity of a start date and an end date of the cryptographic certificate, validity of a certificate chain up to a subordinate certificate authority, validity of certificate extension, a certificate revocation list (CRL), an Online Certificate Status Protocol (OCP), a key usage frequency, and validity of a distributed name.

The private key being a part of the asymmetric encryption is stored securely in the HSM. Such a double layered encrypted content is sent from the web client to the application server over a secure network communication channel. Examples of secure network communication channel include Secure Socket Layer (SSL) protocol and Transport Layer Security (TLS) protocol.

In one embodiment, the translation of the encrypted CEK is performed by the HSM. The HSM receives the encrypted CEK from the application server again using SSL/TSL/other type of network protocol. The encrypted CEK is translated under a Local Master Key (LMK) using a private key being a part of the asymmetric encryption. The translated CEK i.e. CEK encrypted under the LMK is used either to decrypt the content or to an offset of the content. The offset is used for validation of the content encrypted by the web client and sent to the application server. Once the original offset matches with the obtained offset, the server system sends the confirmation to the web application.

FIG. 1illustrates an exemplary representation of an environment100related to at least some example embodiments of the present disclosure. In the illustrated environment100, a client device102is shown. Examples of the client device102include, but are not limited to, a smartphone, a tablet, a personal digital assistant (PDA), a notebook, or any electronic device having the capability to allow installation of third party applications and communicate with other devices via a network108. For example, the client device102may be a computer including a web browser, such that an application server106is accessible to the client device102using the Internet. The client device102is seen to be in operative communication with a Hardware Security Module (HSM)104and the application server106(combinedly referred to as server system) via the network108. In some cases, the HSM104and the application server106can be a single entity i.e. embodied within a single server system. The HSM104and the application server106can be example of a logical server system built on cloud computing platform. Alternatively, the HSM104and the application server106may be located at different facilities of entities managing them separately.

In an embodiment, the application server106hosts an application such as a web application110(hereinafter referred to as an application110) to be used by various users. Some non-exhaustive examples of the application110include a payment transaction application, an authentication application, a loyalty program application, a digital wallet application and an e-commerce application. The API and other components of the application110rest on the application server106. The application110can be made available at application stores such as Google playstore managed by Google®, Apple App store managed by Apple®, etc. The application110can be downloaded from the application stores, or from other sources such as web links and storage locations, to devices such as the client device102. The application110is a set of computer executable codes configured to perform functions inherently configured in the application110. The set of computer executable codes may be stored in a non-transitory computer-readable medium of the client device102so as to access the application110from the application server106. The application110installed on the client device102facilitates an application interface (not shown inFIG. 1) on the client device102to enable communication with the application server106. Alternatively, in some embodiments, the application110may be factory installed within the client device102associated with the end-user and, as such, the end-user may not need to explicitly request the application110from the application server106.

In an example embodiment, the application110may be a payment transaction application. Accessing the payment transaction application may redirect the client device102to establish a connection/session with the application server106for data communication.

The application server106can take example of any server which is the administrative part of the application110and which stores data sent from the client device102. In an example, the application server106may be associated with a financial institution such as an “issuer bank” or “issuing bank” or simply “issuer” or simply “bank”, in which a user operating the client device102may have an issuer account. The application server106is responsible for managing information of the user. The application server106includes an issuer database (not shown) for maintaining information such as one or more issuer accounts of the user, transaction history related information, permanent account number (PAN) with which the one or more issuer accounts are linked, etc.

Additionally or alternatively, the application server106may be associated with a merchant or a Point of Sale (POS) system network. For example, the application server106may be associated with an “acquirer bank” or “acquiring bank” or simply “acquirer”, in which a user operating the client device102may have an acquirer account.

Additional non-limiting examples of the application server106may be a digital wallet server, a cryptographic server and a payment server managed by payment cards issuing authorities and/or a payment server associated with a payment interchange network (not shown). Examples of payment interchange network include, but are not limited to, Mastercard® payment system interchange network. The Mastercard® payment system interchange network is a proprietary communications standard promulgated by Mastercard® International Incorporated for the exchange of financial transaction data between financial institutions that are members of Mastercard® International Incorporated. (Mastercard is a registered trademark of Mastercard International Incorporated located in Purchase, N.Y.).

In another example, the application server106and the HSM104may be managed by the same entity. For example, the application server106and the HSM104may be managed by a financial institution such as an issuer bank, or by a payment interchange network such as Mastercard® payment system interchange network. In yet another example, both of the application server106and the HSM104may be managed by a merchant, a POS system network or by a digital wallet server.

The client device102, the application server106and the HSM104may communicate with one another via the communication network108. The communication network108may be a centralized network or may comprise a plurality of sub-networks that may offer a direct communication or may offer indirect communication between the client device102, the application server106and the HSM104. Examples of the communication network108may include any type of wired network, wireless network, or a combination of wired and wireless networks. A wireless network may be a wireless local area network (“WLAN”), a wireless wide area network (“WWAN”), or any other type of wireless network now known or later developed. Additionally, the communication network108may be or include the Internet, intranets, extranets, microwave networks, satellite communications, cellular systems, personal communication services (“PCS”), infrared communications, global area networks, or other suitable networks, etc., or any combination of two or more such networks.

In an example scenario, if the application110is a typical payment transaction application, the client device102accesses the application110to initiate a payment transaction. Accessing the application110may redirect the client device102to establish a connection/session with the application server106for data communication under a secure network communication channel established according to Secure Socket Layer (SSL) protocol. In an example embodiment, the payment transaction application may be configured to display various form fields (not shown) to be filled by the user such as a payment card number (e.g., xxxx where ‘x’ is an integral number) of the payment card, expiry date (e.g., MM/YY, month and year of expiry), Card Verification Value (CVV) number (e.g., *** where * is an integral number) and the like which may need extra layer of protection under SSL based transmission. This may be the case when the HSM104and the application server106can both be accessed via a single application i.e. a payment transaction application.

Since there is an extra layer of protection for data communication between the application110and the application server106, the risk of data (hereinafter alternatively referred to as content) breach reduces tremendously. In existing (conventional) encryption methods, (i.e., not in accordance with the present disclosure), the content entered by user on the web browser is only encrypted according to SSL protocol or TLS protocol which can be decrypted easily or may be compromised at the source itself. Further, the HSM is used generally for CVV validation in payment industry. In contrast to existing encryption methods, by using the embodiments of the present disclosure, the content is protected using a combination of symmetric and asymmetric encryption facilitated by the HSM104and thereafter transmitted using SSL protocol which gives additional layers of protection. Some non-exhaustive example embodiments of encrypting data for the application110and securely transmitting the data to the application server106are described with reference to the following description, particularly with reference toFIGS. 2 to 10.

FIG. 2represents a sequence flow diagram200representing a content encryption and decryption, in accordance with an example embodiment. The sequence of operations of the flow diagram200may not be necessarily executed in the same order as they are presented. Further, one or more operations may be grouped together and performed in form of a single step, or one operation may have several sub-steps that may be performed in parallel or in sequential manner.

In an example embodiment, a web client202operating within a web browser installed on a client device (e.g., the client device102) for entering the content (such as a password) to be protected, is shown. The web client202is an example of the web application110.

At205, the HSM104generates a cryptographic certificate. The cryptographic certificate includes a public key and a private key. The HSM104is further configured to encrypt the private key under a Local Master Key (LMK) and store it for future decryption processes. At least one person from a Key Management Service (KMS) team may enable an authorization mode of the HSM104to generate the asymmetric key pair. In an embodiment, the web client202uses the public key to send data to the HSM104via the application server106. In an example embodiment, the asymmetric key pair is not generated per session, and rather the key rotation is tied to the cryptographic certificate such that a predefined number of shared public keys are reused after every predefined time interval.

At210, the HSM104generates a random value key (e.g., z1). In an example embodiment, the application server106sends a request to the HSM104to generate the random value key. The random value key may be 16 byte long. In at least one embodiment, z1 is later used for generating a content encryption key at the web client202.

At215, the HSM104sends the cryptographic certificate to the application server106. The cryptographic certificate includes the public key part of the asymmetric key pair to be used by the web client202for encryption of the content being entered by the user. At220, the HSM104sends the random value key to the application server106.

At225, the application server106sends the cryptographic certificate and the random value key to the web client202. In an embodiment, when a user enters the application host Uniform Resource Locator (URL) in the web browser of the client device102, the URL request gets forwarded to the corresponding application server106for loading the data to be presented in the application. The application server106provides an initial response to the web client202. The initial response includes the cryptographic certificate and the random value key generated by the HSM104.

At230, the web client202validates the cryptographic certificate based on one or more parameters. Some non-exhaustive examples of the one or more parameters include validity of a start date and an end date of the cryptographic certificate, validity of a certificate chain up to a subordinate certificate authority, validity of certificate extension, a certificate revocation list (CRL), an Online Certificate Status Protocol (OCP), and a key usage frequency and validity of a distributed name. Upon successful validation of the cryptographic certificate only, the encryption process proceeds further. Further, the public key is retrieved from the cryptographic certificate by the web client202only after validation of the cryptographic certificate. In another example embodiment, the application server106and the web client202both validate the cryptographic certificate and upon successful validation, the public key is retrieved by the web client202.

At235, a Content Encryption Key (CEK) is generated. In an embodiment, a self-generated key (z2) is generated by the web client202forming at least a part of the CEK. The self-generated key (z2) is concatenated with the random value key (z1) (e.g., z1 obtained at operation235from the application server106) to generate an intermediate key (z3). A hash value (e.g., Sha1(z3)) of the intermediate key (z3) is created using a hashing algorithm such as a Sha1 or Sha3 algorithm. A predefined length key is randomly selected from the hashed value of the intermediate key (Sha1(z3)). The parity is adjusted and the final value is considered as the CEK. In an example embodiment, the self-generated key is 16 byte long, the intermediate key (z3) is 32 byte long and the predefined length key i.e. CEK is 16 byte long. In at least one embodiment, the CEK is generated using symmetric encryption.

At240, a content to be protected is encrypted under the CEK. The content is entered by the user using the web client202. Some non-exhaustive examples of the content include a password, a PIN, a CVV number and the like. The content can be any data that needs to be sent to the application server106over a network communication channel.

At245, the CEK is encrypted by the web client202using the public key retrieved from the cryptographic certificate.

At250, the encrypted content is sent to the application server106under a secure network communication channel. The secure network communication channel can be according to the SSL protocol. When the encrypted content reaches the application server106, the transmission pipeline cannot be compromised by a third party because the private key is securely stored in the HSM104under the LMK and therefore only the HSM104can decrypt the encrypted content. Additionally, the application server106also validates the cryptographic certificate by retrieving data from the SSL message received from the web client202.

At255, the application server106sends the encrypted content to the HSM104for decryption. The HSM104may be physically connected to the application server106or may be in a remote entity.

At260, the HSM104translates the CEK encrypted under public key to CEK encrypted under LMK using a complementary private key stored therein. The HSM104includes an identifier of an encryption algorithm used by the web client202for encrypting the CEK under public key.

At265, the HSM104retrieves the content encrypted under LMK using the CEK encrypted under LMK.

At270, the HSM104decrypts the content encrypted under LMK to generate an offset i.e. a content offset. At275, the HSM104validates the original content by matching with the content offset. At280, the HSM104sends the status notification to the application server106. If the offset matches with the original content, the HSM104sends successful message. If the offset doesn't match with the original content, the HSM104sends the failure message to the application server106. At285, the application server106sends the status notification to the web client202. The process completes at290. Thus, a technical effect of a content encryption completed using symmetric and asymmetric encryption methods is a secure content transmission from the web client202to the application server106. Such encrypted content is further sent using SSL protocol which adds to one more layer of the security. One specific example of a secure communication of a sensitive content is explained with reference toFIG. 3.

FIG. 3represents a sequence flow diagram300representing a Personal Identification Number (PIN) encryption and decryption, in accordance with an example embodiment. The sequence of operations of the flow diagram300may not be necessarily executed in the same order as they are presented. Further, one or more operations may be grouped together and performed in form of a single step, or one operation may have several sub-steps that may be performed in parallel or in sequential manner.

At305, the HSM304(e.g., payShield 9000) generates a cryptographic certificate such as including but not limited to cryptographic certificate X.509. X.509 is a standard that defines the format of public key certificates. X.509 certificates are used in many Internet protocols, including TLS/SSL and the secure protocol for browsing the web. In an embodiment, the HSM304is a tamper resistant device. In one non-limiting example, the asymmetric key pair is generated using Rivest-Shamir-Adleman (RSA) algorithm. The RSA algorithm involves operations such as key generation, key distribution, encryption and decryption. The HSM304is further configured to encrypt the RSA generated private key under a Local Master Key (LMK) and to store it for future decryption processes. In an embodiment, X.509 certificate is generated by signing a certificate signing request using the private key of the asymmetric key pair. Further, distribution of the certificate is done only after client authentication. In an embodiment, the web client202, for example a cardholder portal302(hereinafter referred to as the CHP302) uses the public key to send data to the HSM304via an application server306. The CHP302may be an example of the payment transaction application.

At310, the HSM304generates a random value key (y1). In an example embodiment, the application server306sends a request to the HSM304to generate the random value key (y1). The random value key (y1) may be 16 byte long, and y1 is later used for generating a content encryption key at the CHP302.

At315, the HSM304sends X.509 certificate to the application server306. The X.509 certificate includes the public key part of the asymmetric key pair to be used by the CHP302for encryption of the CEK generated by the CHP302. At320, the HSM304sends the random value key to the application server306.

At325, the application server306sends X.509 certificate and the random value key to the CHP302. In an embodiment, when a user enters the CHP URL (e.g., www.cardholderxyz.com) in the web browser of a client device, the URL request gets forwarded to the corresponding application server306for loading the data to be presented. In an embodiment, the communication occurs according to HTTP Strict Transport Security (HSTS). HSTS is a web security policy mechanism that helps to protect websites against hijacking. The application server306provides an initial response to the CHP302. The initial response includes the X.509 certificate and the random value key generated by the HSM304.

At330, the CHP302validates the X.509 certificate based on one or more parameters as explained with reference toFIG. 2. Upon successful validation of the X.509 certificate only, the encryption process proceeds further. Further, the RSA generated public key is retrieved from the X.509 certificate by the CHP302only after validation of the X.509 certificate.

At335, a content encryption key (CEK) is generated by the web client202as explained with reference toFIG. 2. An example of the CEK is a Zone Pin Key Internet (ZPK-Internet). In an embodiment, a self-generated key (y2) is generated by the CHP302forming at least a part of the CEK. The self-generated key (y2) is concatenated with the random value key (y1) (e.g., generated by the HSM304) to generate an intermediate key (y3). A hash value (e.g., Sha3(y3)) of the intermediate key (y3) is created using a hashing algorithm such as Sha3 algorithm. A predefined length key is randomly selected from the hashed value of the intermediate key (Sha3(y3)). The parity is adjusted and the final value is considered as the CEK. This is explained in detail with reference toFIG. 4.

At340, a Personal Identification Number (PIN) entered by a user on the CHP302is converted into a PIN block (e.g., Pin Block format 05). The PIN block format 05 can exemplarily be represented as ‘141234FFFFFFFFFF’. To protect the PIN during transmission from the PIN entry device i.e. the CHP302, the PIN is encoded into a PIN block which is further encrypted by an algorithm such as a triple data encryption algorithm, RSA, advanced encryption standard and the like. In an embodiment, for the content other than PIN, the HSM304may be configured with different commands accordingly for implementation.

At345, the PIN Block is encrypted under CEK by the CHP302. The PIN block encrypted under CEK may exemplarily be represented as ‘CE8249625379DD26’. At350, the CEK is encrypted by the CHP302using the public key retrieved from the X.509 certificate. At355, PIN block memory and CEK memory are wiped from the CHP302for ensuring the extra level of security.

At360, the encrypted PIN block is sent to the application server306under a secure network communication channel such as SSL protocol. At365, the application server306sends the encrypted PIN to the HSM304for translation. At370, the HSM304translates CEK (or ZPK-Internet) encrypted under public key to CEK encrypted under LMK using private key encrypted under LMK. At375, the HSM304retrieves the PIN block encrypted under the LMK from the CEK.

At380, the HSM304uses the PIN block encrypted under LMK to generate a PIN offset. The PIN offset may exemplarily be represented as ‘8499FFFFFFFF’. At385, the HSM304validates the original PIN offset (or request PIN offset) by matching with the generated PIN offset. At390, the HSM304sends the status notification to the application server306. At395, the application server306sends the status notification to the CHP302. The process completes at399. Thus, as the CEK (e.g., ZPK-internet) is generated on client side i.e. on the CHP302, the application developer or the application server306are not capable of knowing the clear ZPK-Internet. When the encrypted PIN block reaches the HSM304, the HSM304translates the CEK under RSA public key to retrieve the CEK encrypted under LMK. Therefore, the tunnel between the CHP302and the HSM304cannot be broken any time.

FIG. 4shows a simplified example representation400of generation of a content encryption key, in accordance with an example embodiment. More specifically,FIG. 4explains step335ofFIG. 3in detail. A Zone Pin Key Internet (ZPK-Internet) is an example of the CEK to be generated by the web client (e.g., the CHP302). A self-generated key (y2) (see,404) is generated by the CHP302forming at least a part of the ZPK-Internet. y2 is exemplarily depicted as ‘424F3D9E712ED1C95B8AB3239D88A6CC’. The self-generated key (y2) (see,404) is concatenated with the random value key (y1) (see,402) (generated by the HSM304) to generate an intermediate key (y3). y1 is exemplarily depicted as ‘A6AA33F11CB4F2020441565B3A1BC851’. A hash value (e.g., Sha1(y3) or Sha3(y3)) (see,406) of the intermediate key (y3) is created using a hashing algorithm such as Sha1 algorithm. Sha1(y3) (see,406) is exemplarily depicted as ‘113E4A347302770E4407B6DD42325C6A354A9518’. A predefined length key is randomly selected from the hashed value of the intermediate key (Sha1(y3)). After adjusting the parity of the predefined length key, the ZPK-Internet (see,408) is generated. The ZPK-Internet is exemplarily depicted as ‘34434A344A5D43DC5D6B0E5D19193434’.

FIG. 5illustrates a flow diagram of a method500for encrypting data for web application, in accordance with an example embodiment. The method500depicted in the flow diagram may be executed by, for example, the at least one server system such as a digital wallet server, an acquirer server, an issuer server, an ecommerce server, a payment server and the like. Further, the server system may include a HSM for encrypting and decrypting data for the web application. The Operations of the flow diagram500, and combinations of operation in the flow diagram500, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions. The method500starts at operation502.

At502, the method500includes generating, by a server system, a cryptographic certificate. The cryptographic certificate includes an asymmetric key pair. In a preferred embodiment, Rivest Shamir Adleman (RSA) encryption algorithm is used to generate the asymmetric key pair. In various embodiments, other asymmetric encryption algorithms may be used. Some examples include Diffie-Hellman key agreement algorithm, Elliptic Curve Cryptography (ECC), El Gamal, Digital Signature Algorithm (DSA) and the like.

At504, the method500includes, generating, by the server system, a random value key, where the random value key forms at least a part of a Content Encryption Key (CEK) to be generated by a web application. In an embodiment, any of Pseudo Random Number Generator (PRNG) algorithms such as Lagged Fibonacci generators or linear feedback shift registers may be used to generate the random value key.

At506, the method500includes sending, by the server system, the random value key to a client device running the web application over a secure network communication channel for generating the CEK. The CEK is to be utilized for encrypting a content entered by a user of the web application on the client device. Further, the CEK is encrypted using a public key being part of the asymmetric key pair for transmission over the secure network communication channel.

At508, the method500includes translating, by the server system, the CEK encrypted under public key to CEK encrypted under LMK using a private key being part of the asymmetric key pair. The method completes at operation508.

FIG. 6illustrates a flow diagram of another method600for encrypting data for web application, in accordance with an example embodiment. The method600depicted in the flow diagram may be executed by, for example, by a web application running on a client device (e.g., the client device102ofFIG. 1) such as a payment transaction application. Operations of the method600, and combinations of operation in the method600, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions. The method600starts at operation602.

At602, the method600includes generating a self-generated key, by a web application running on a client device.

At604, the method600includes, concatenating the self-generated key with a random value key to generate an intermediate key, where the random value key is received from a server system. In an embodiment, the server system includes an application server facilitating the web application on the client device and a hardware security module communicably coupled to the application server.

At606, the method600includes creating a hash value of the intermediate key using a hashing algorithm.

At608, the method600includes generating a CEK by randomly selecting a predefined length key from the hash value of the intermediate key.

At610, the method600includes encrypting a content under the CEK.

At612, the method600includes encrypting the CEK using a public key being part of an asymmetric key pair for transmission over the secure network communication channel to the server system. The public key is retrieved from a cryptographic certificate sent by the server system. The method ends at operation612.

FIG. 7is a simplified block diagram of a server system700configured to encrypt data for a web application, in accordance with one embodiment of the present disclosure. The server system700is an example of a server system that includes the application server106operably connected to the hardware security module104ofFIG. 1. Examples of the server system700includes, but not limited to, an acquirer server, an issuer server, a digital wallet server, a payment server and the like connected to a hardware security module. The server system700includes a computer system705and a database710. The computer system705includes a processor715for executing instructions. Instructions may be stored in, for example, but not limited to, a memory720. The processor715may include one or more processing units (e.g., in a multi-core configuration). The processor715is operatively coupled to a communication interface725such that the computer system705can communicate with a client device740(e.g., the client device102). For example, the communication interface725may receive data/content from the web client running on the client device740.

The processor715may also be operatively coupled to the database710. The database710is any computer-operated hardware suitable for storing and/or retrieving data. The database710may include multiple storage units such as hard disks and/or solid-state disks in a redundant array of inexpensive disks (RAID) configuration. The database710may include, but not limited to, a storage area network (SAN) and/or a network attached storage (NAS) system. In some embodiments, the database710is integrated within the computer system705. For example, the computer system705may include one or more hard disk drives as the database710. In other embodiments, the database710is external to the computer system705and may be accessed by the computer system705using a storage interface730. The storage interface730is any component capable of providing the processor715with access to the database710. The storage interface730may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing the processor715with access to the database710.

The computer system705further includes a hardware security module (HSM)735configured to generate asymmetric key pair and a random value key to be used by the client device740for encrypting a content. The HSM735is an example of the HSM104described with reference toFIG. 1. The HSM735is further configured to decrypt the encrypted content using the private key part of the asymmetric key pair for content validation. The processor715is configured to send the public part of the asymmetric key to the web client running on the client device740via the communication interface725. Further, the server system700is configured to facilitate a UI on the client device740using which the user of the web application can enter a content. The processor715is also configured to validate the cryptographic certificate generated by the HSM735before retrieving the public key from the certificate.

In an embodiment, the communication interface725is capable of facilitating operative communication with the client device740(e.g., the client device102) using API calls. The communication may be achieved over a communication network, such as the network108. The components of the server system700provided herein may not be exhaustive, and that the server system700may include more or fewer components than that of depicted inFIG. 7. Further, two or more components may be embodied in one single component, and/or one component may be configured using multiple sub-components to achieve the desired functionalities. Some components of the server system700may be configured using hardware elements, software elements, firmware elements and/or a combination thereof.

FIG. 8is a simplified block diagram of another server system800used for encrypting data of a web application, in accordance with one embodiment of the present disclosure. The server system800is an example of the application server106ofFIG. 1. The server system800includes a computer system805and a database810. The computer system805includes a processor815for executing instructions. Instructions may be stored in, for example, but not limited to, a memory820. The processor815may include one or more processing units (e.g., in a multi-core configuration). The processor815is operatively coupled to a communication interface825such that the computer system805can communicate with the client device102as well as the HSM104ofFIG. 1. For example, the communication interface825may receive the encrypted content from the client device102and forward the encrypted content to the HSM104for decryption.

The processor815may also be operatively coupled to the database810. The database810is any computer-operated hardware suitable for storing and/or retrieving data. The database810may include multiple storage units such as hard disks and/or solid-state disks in a redundant array of inexpensive disks (RAID) configuration. The database810may include, but not limited to, a storage area network (SAN) and/or a network attached storage (NAS) system. In some embodiments, the database810is integrated within the computer system805. For example, the computer system805may include one or more hard disk drives as the database810. In other embodiments, the database810is external to the computer system805and may be accessed by the computer system805using a storage interface830. The storage interface830is any component capable of providing the processor815with access to the database810. The storage interface830may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing the processor815with access to the database810.

The computer system805further includes an application module835. The application module835is configured to implement features of the application on the client device102upon installation. As an example, the application may be a payment transaction application or a cardholder portal such as the CHP302ofFIG. 3. The application module835may be configured to receive content entered by the user using the UI facilitated by the communication interface825on the client device102. The application module835further sends response to the client device102. The application module835may be configured to enable the client device102to generate the CEK at the client end. The computer system805further includes a validation module840. The validation module840is configured to validate the cryptographic certificate generated by the HSM based on one or more parameters as explained with reference toFIG. 2.

In one embodiment, the communication interface825includes a transceiver for wirelessly communicating information to, or receiving information from, the remote devices or other suitable display device, and/or another type of remote processing device. In another embodiment, the communication interface825is capable of facilitating operative communication with the remote devices and a cloud server using Application Program Interface (API) calls. The communication may be achieved over a communication network, such as the network108. The components of the server system800provided herein may not be exhaustive, and that the server system800may include more or fewer components than that of depicted inFIG. 8. Further, two or more components may be embodied in one single component, and/or one component may be configured using multiple sub-components to achieve the desired functionalities. Some components of the server system800may be configured using hardware elements, software elements, firmware elements and/or a combination thereof.

FIG. 9is a simplified block diagram of a hardware security module900(HSM900) used for encrypting data for a web application, in accordance with one embodiment of the present disclosure. The HSM900includes at least one processor905communicably coupled to a communication interface910, a storage module915, a database920, a cryptographic certificate generation module925, an asymmetric key generation module930, a random value key generation module935and a decryption module940. In at least one embodiment, the HSM900may be accessible to remote devices, such as a remote device950(e.g., the application server700, the client device102), through a communication network, such as the network108.

The processor905is capable of executing the stored machine executable instructions in the storage module915or within the processor905or any storage location accessible to the processor905. The cryptographic certificate generation module925generates a cryptographic certificate to be distributed to a web client. The asymmetric key generation module930generates a pair of keys i.e. a public key and a private key. The processor905is configured to bind the public key with the cryptographic certificate for distributing with the web client. The random value key generation module935generates a predetermined length random value key to be used by the web client for generating the CEK. The processor905is configured to include one or more encryption and decryption algorithms to be used by various modules of the HSM900. For example, the processor900includes Rivest Shamir Adleman (RSA) encryption algorithm, Diffie-Hellman key agreement algorithm, Elliptic Curve Cryptography (ECC), El Gamal, Digital Signature Algorithm (DSA), Lagged Fibonacci generators, linear feedback shift registers and the like.

Further, the processor905is configured to perform different encryption and decryption functions such as including, but not limited to, symmetric block ciphers, padding schemes for public-key system, one-way hash functions, message authentication codes, cipher constructions based on hash functions, prime number generation and verification and the like. The processor905is configured to send the random value key and the cryptographic certificate to the remote device950such as the application server106via the communication interface910. The decryption module940includes one or more decryption algorithms for decrypting the content offset from the encrypted content received under the SSL pipeline. The processor905is configured to validate the content offset with the original content.

In an embodiment, the processor905may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like.

In an embodiment, the HSM900may include an input/output module (I/O module) (not shown) configured to receive inputs from and provide outputs to the end-user. For instance, the I/O module may include at least one input interface and/or at least one output interface. Examples of the input interface may include, but are not limited to, a keyboard, a mouse, a joystick, a keypad, a touch screen, soft keys, a microphone, and the like. Examples of the output interface may include, but are not limited to, a UI display (such as a light emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, etc.), a speaker, a ringer, a vibrator, and the like.

The storage module915can be any type of storage accessible to the processor905. The storage module915may include volatile or non-volatile memories, or a combination thereof. In some non-limiting examples, the storage module915can be four to sixty-four Megabytes (MB) of Dynamic Random Access Memory (“DRAM”) or Static Random Access Memory (“SRAM”). In addition, some examples may include supplementary flash memory installed via a PCMCIA slot.

FIG. 10shows simplified block diagram of a client device1000capable of implementing at least some embodiments of the present disclosure. For example, the client device1000may correspond to the client device740(e.g., the client device102ofFIG. 1) ofFIG. 7. The client device1000is depicted to include one or more applications1006.

It should be understood that the client device1000as illustrated and hereinafter described is merely illustrative of one type of device and should not be taken to limit the scope of the embodiments. As such, it should be appreciated that at least some of the components described below in connection with that the client device1000may be optional and thus in an example embodiment may include more, less or different components than those described in connection with the example embodiment of theFIG. 10. As such, among other examples, that the client device1000could be any of a mobile electronic devices, could be any of a mobile electronic device, for example, cellular phones, tablet computers, laptops, mobile computers, personal digital assistants (PDAs), mobile televisions, mobile digital assistants, or any combination of the aforementioned, and other types of communication or multimedia devices.

The illustrated client device1000includes a controller or a processor1002(e.g., a signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing such tasks as signal coding, data processing, image processing, input/output processing, power control, and/or other functions. An operating system1004controls the allocation and usage of the components of the client device1000and support for one or more applications programs (see, the applications1006), that implement one or more of the innovative features described herein. The applications1006may include payment based application and/or any common mobile computing applications (e.g., telephony applications, email applications, calendars, contact managers, web browsers, messaging applications) or any other computing application. The healthcare delivery application, in at least one example embodiment, may be configured to provide the logic to display/retrieve/share relevant medical multimedia data of a patient during a medical procedure, as explained with reference toFIGS. 1 to 9.

The illustrated client device1000includes one or more memory components, for example, a non-removable memory1008and/or a removable memory1010. The non-removable memory1008and/or the removable memory1010may be collectively known as database in an embodiment. The non-removable memory1008can include RAM, ROM, flash memory, a hard disk, or other well-known memory storage technologies. The removable memory1010can include flash memory, smart cards, or a Subscriber Identity Module (SIM). The one or more memory components can be used for storing data and/or code for running the operating system1004and the applications1006. The client device1000may further include a user identity module (UIM)1012. The UIM1012may be a memory device having a processor built in. The UIM1012may include, for example, a subscriber identity module (SIM), a universal integrated circuit card (UICC), a universal subscriber identity module (USIM), a removable user identity module (R-UIM), or any other smart card. The UIM1012typically stores information elements related to a mobile subscriber. The UIM1012in form of the SIM card is well known in Global System for Mobile Communications (GSM) communication systems, Code Division Multiple Access (CDMA) systems, or with third-generation (3G) wireless communication protocols such as Universal Mobile Telecommunications System (UMTS), CDMA9000, wideband CDMA (WCDMA) and time division-synchronous CDMA (TD-SCDMA), or with fourth-generation (4G) wireless communication protocols such as LTE (Long-Term Evolution).

The client device1000can support one or more input devices1020and one or more output devices1030. The input devices1020and the output devices1030configure the input/output (I/O) module for the client device1000. Examples of the input devices1020may include, but are not limited to, a touch screen/a display screen1022(e.g., capable of capturing finger tap inputs, finger gesture inputs, multi-finger tap inputs, multi-finger gesture inputs, or keystroke inputs from a virtual keyboard or keypad), a microphone1024(e.g., capable of capturing voice input), a camera module1026(e.g., capable of capturing still picture images and/or video images) and a physical keyboard1028. Examples of the output devices1030may include, but are not limited to a speaker1032and a display1034. Other possible output devices can include piezoelectric or other haptic output devices. Some devices can serve more than one input/output function. For example, the touch screen1022and the display1034can be combined into a single input/output device.

A wireless modem1040can be coupled to one or more antennas (not shown in theFIG. 10) and can support two-way communications between the processor1002and external devices, as is well understood in the art. The wireless modem1040is shown generically and can include, for example, a cellular modem1042for communicating at long range with the mobile communication network, a Wi-Fi compatible modem1044for communicating at short range with an external Bluetooth-equipped device or a local wireless data network or router, and/or a Bluetooth-compatible modem1046. The wireless modem1040is typically configured for communication with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, between cellular networks, or between the client device1000and a public switched telephone network (PSTN). The wireless modem1040may in at least one example embodiment configure the communication module of the client device1000.

The client device1000can further include one or more input/output ports1050, a power supply1052, one or more sensors1054for example, an accelerometer, a gyroscope, a compass, or an infrared proximity sensor for detecting the orientation or motion of the client device1000, a transceiver1056(for wirelessly transmitting analog or digital signals) and/or a physical connector1060, which can be a USB port, IEEE 1294 (FireWire) port, and/or RS-232 port. The illustrated components are not required or all-inclusive, as any of the components shown can be deleted and other components can be added.

The disclosed method with reference toFIGS. 5 and 6, or one or more operations of the methods500and600may be implemented using software including computer-executable instructions stored on one or more computer-readable media (e.g., non-transitory computer-readable media, such as one or more optical media discs, volatile memory components (e.g., DRAM or SRAM), or nonvolatile memory or storage components (e.g., hard drives or solid-state nonvolatile memory components, such as Flash memory components) and executed on a computer (e.g., any suitable computer, such as a laptop computer, net book, Web book, tablet computing device, smart phone, or other mobile computing device). Such software may be executed, for example, on a single local computer or in a network environment (e.g., via the Internet, a wide-area network, a local-area network, a remote web-based server, a client-server network (such as a cloud computing network), or other such network) using one or more network computers. Additionally, any of the intermediate or final data created and used during implementation of the disclosed methods or systems may also be stored on one or more computer-readable media (e.g., non-transitory computer-readable media) and are considered to be within the scope of the disclosed technology. Furthermore, any of the software-based embodiments may be uploaded, downloaded, or remotely accessed through a suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, an intranet, software applications, cable (including fiber optic cable), magnetic communications, electromagnetic communications (including RF, microwave, and infrared communications), electronic communications, or other such communication means.

Particularly, the server system700and its various components such as the computer system705and the database710may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry). Various embodiments of the invention may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or computer to perform one or more operations. A computer-readable medium storing, embodying, or encoded with a computer program, or similar language, may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations. Such operations may be, for example, any of the steps or operations described herein. In some embodiments, the computer programs may be stored and provided to a computer using any type of non-transitory computer readable media. Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g. magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (BLU-RAY® Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash memory, RAM (random access memory), etc.). Additionally, a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. In some embodiments, the computer programs may be provided to a computer using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.

Various embodiments of the invention, as discussed above, may be practiced with steps and/or operations in a different order, and/or with hardware elements in configurations, which are different than those which, are disclosed. Therefore, although the invention has been described based upon these exemplary embodiments, it is noted that certain modifications, variations, and alternative constructions may be apparent and well within the spirit and scope of the invention.