Abstract:
A method, non-transitory computer readable medium and application manager computing device comprises obtaining at least one cryptographic key from a request by a client computing device for a user session. User information corresponding to a user is encrypted or decrypted using the cryptographic key. The request is authenticated based on encryption or decryption of the user information. The cryptographic key is deleted after the completion or termination of the user session.

Description:
TECHNICAL FIELD 
     This technology generally relates to managing user information and, more particularly, to methods for securing user information using a unique per-client one-time use cryptographic key for securing client&#39;s information thereof. 
     BACKGROUND 
     Client information generally relates to confidential information of clients such as user name, passwords, bank account details, client cookies etc. This confidential information is often stored in a server of the service provider and the service provider needs to ensure that confidential information of the clients/customers are not stolen or misused. Accordingly, there is a need to protect this confidential information. 
     In the existing solutions, there is an encryption/decryption key stored at the server which is used to encrypt/decrypt the client information securely. Since this is already present in the server, it would not provide the best security as a third party can hack or steal the encryption/decryption key and then has access to all the confidential information. Also, when the access to the server is compromised or if the server memory is dumped as part of process cores, secure information pertaining to various clients/customers might also be retrieved. 
     SUMMARY 
     A method for managing user information comprises obtaining by the application manager computing device at least one cryptographic key from a request by a client computing device. The application manager computing device encrypts or decrypts user information corresponding to a user using the cryptographic key. The application manager computing device authenticates the request based on the encryption or decryption of the user information. The cryptographic key is deleted by the application manager computing device after the completion of the user session. 
     A non-transitory computer readable medium having stored thereon instructions for managing user information comprising machine executable code which when executed by at least one processor, causes the processor to perform steps comprising obtaining at least one cryptographic key from a request by a client computing device for a user session. User information corresponding to a user is encrypted or decrypted using the cryptographic key. The request is authenticated based on encryption or decryption of the user information. The cryptographic key is deleted after the completion or termination of the user session. 
     An application manager computing device including one or more processors, a memory coupled to the one or more processors, and a configurable logic unit coupled to the one or more processors and the memory via at least one bus, at least one of the configurable logic unit configured to implement and the one or more processors configured to execute programmed instructions stored in the memory includes obtaining at least one cryptographic key from a request sent by a client computing device. User information corresponding to a user is encrypted or decrypted using the at least one cryptographic key. The request is authenticated based on encryption or decryption. The at least one cryptographic key is deleted after the completion or termination of a new user session. 
     This technology provides a number of advantages including providing more effective methods, non-transitory computer readable medium and devices for securing user information. This exemplary technology makes managing user information more secure by storing the cryptographic key used for encrypting user&#39;s sensitive information in a location that is different from the location of the encrypted user&#39;s sensitive information itself. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an exemplary network environment with an application manager computing device for managing user information; 
         FIGS. 2   a - 2   b  are flowcharts of an exemplary method for managing user information. 
     
    
    
     DETAILED DESCRIPTION 
     An exemplary network environment  10  with an application manager computing device  14  for managing user information to a service is illustrated in  FIG. 1 . The exemplary environment  10  includes client computing devices  12 , the application manager computing device  14 , servers  16  and user information server  17  which are coupled together by local area networks (LANs)  28  and wide area network (WAN)  30 , although the environment can include other types and numbers of devices, components, elements and communication networks in other topologies and deployments. While not shown, the exemplary environment  10  may include additional network components, such as routers, switches and other devices, which are well known to those of ordinary skill in the art and thus will not be described here. This technology provides a number of advantages including providing more effective methods, non-transitory computer readable medium and devices for securing user information. 
     Referring more specifically to  FIG. 1 , application manager computing device  14  is coupled to client computing devices  12  through one of the LANs  28  and WAN  30 , although the client computing devices  12  and application manager computing device  14  may be coupled together via other topologies. Additionally, the application manager computing device  14  is coupled to the servers  16  through the WAN  30  and another one of the LANs  28 , although the servers  16  and application manager computing device  14  may be coupled together via other topologies. The application manager computing device  14  also is coupled to the user information server  17  through the WAN  30 , although the application manager computing device  14  and the user information server  17  may be coupled together via other topologies. 
     The application manager computing device  14  assists with managing user information as illustrated and described with the examples herein, although application manager computing device  14  may perform other types and numbers of functions. The application manager computing device  14  includes at least one processor  18 , memory  20 , optional configurable logic device  21 , input and display devices  22 , and interface device  24  which are coupled together by bus  26 , although application manager computing device  14  may comprise other types and numbers of elements in other configurations. 
     Processor(s)  18  may execute one or more computer-executable instructions stored in the memory  20  for the methods illustrated and described with reference to the examples herein, although the processor(s) can execute other types and numbers of instructions and perform other types and numbers of operations. The processor(s)  18  may comprise one or more central processing units (“CPUs”) or general purpose processors with one or more processing cores, such as AMD® processor(s), although other types of processor(s) could be used (e.g., Intel®). 
     Memory  20  may comprise one or more tangible storage media, such as RAM, ROM, flash memory, CD-ROM, floppy disk, hard disk drive(s), solid state memory, DVD, or any other memory storage types or devices, including combinations thereof, which are known to those of ordinary skill in the art. Memory  20  may store one or more non-transitory computer-readable instructions of this technology as illustrated and described with reference to the examples herein that may be executed by the one or more processor(s)  18 . The flow chart shown in  FIG. 2   a  and  FIG. 2   b  is representative of example steps or actions of this technology that may be embodied or expressed as one or more non-transitory computer or machine readable instructions stored in memory  20  that may be executed by the processor(s)  18  and/or may be implemented by configured logic in the optional configurable logic device  21 . 
     The configurable logic device  21  may comprise specialized hardware configured to implement one or more steps of this technology as illustrated and described with reference to the examples herein. By way of example only, the optional configurable logic device  21  may comprise one or more of field programmable gate arrays (“FPGAs”), field programmable logic devices (“FPLDs”), application specific integrated circuits (ASICs”) and/or programmable logic units (“PLUs”). 
     Input and display devices  22  enable a user, such as an administrator, to interact with the application manager computing device  14 , such as to input and/or view data and/or to configure, program and/or operate it by way of example only. Input devices may include a keyboard and/or a computer mouse and display devices may include a computer monitor, although other types and numbers of input devices and display devices could be used. 
     The interface device  24  in the application manager computing device  14  is used to operatively couple and communicate between the application manager computing device  14  and the client computing devices  12  and the servers  16  which are all coupled together by one or more of the local area networks (LAN)  28  and/or the wide area network (WAN)  30 , although other types and numbers of communication networks or systems with other types and numbers of connections and configurations to other devices and elements. By way of example only, the local area networks (LAN)  28  and the wide area network (WAN)  30  can use TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks, can be used. In this example, the bus  26  is a hyper-transport bus in this example, although other bus types and links may be used, such as PCI. 
     Each of the client computing devices  12 , servers  16  and the user information server  17  include a central processing unit (CPU) or processor, a memory, an interface device, and an I/O system, which are coupled together by a bus or other link, although other numbers and types of network devices could be used. The client computing devices  12 , in this example, may run interface applications, such as Web browsers, that may provide an interface to make requests for and send content and/or data to different server based applications at servers  16  via the LANs  28  and/or WANs  30 . Additionally, in order for the client computing devices  12  to requests for content to one or more of the servers  16 , each client computing device  12  may have to provide one or more user credential information for authentication. 
     Generally, servers  16  process requests received from requesting client computing devices  12  via LANs  28  and/or WANs  30  according to the HTTP-based application RFC protocol or the CIFS or NFS protocol in this example, but the principles discussed herein are not limited to this example and can include other application protocols. A series of applications may run on the servers  16  that allow the transmission of data, such as a data file or metadata, requested by the client computing devices  12 . The servers  16  may provide data or receive data in response to requests directed toward the respective applications on the servers  16  from the client computing devices  12 . It is to be understood that the servers  16  may be hardware or software or may represent a system with multiple servers  16 , which may include internal or external networks. In this example the servers  16  may be any version of Microsoft® IIS servers or Apache® servers, although other types of servers may be used. Further, additional servers may be coupled to the LAN  28  and many different types of applications may be available on servers coupled to the LAN  28 . 
     In this example, the exemplary environment  10  includes user information server  17 . The user information server  17  receives the request from the application manager computing device  14  via WAN  30  according to the HTTP-based application RFC protocol or the CIFS or NFS protocol in this example, but the principles discussed herein are not limited to this example and can include other application protocols. One or more user related information such as user name, password may reside in the user information server  17 , although other types of user related information may also be present in the user information server  17 . The user information server  17  may provide data in the form of encrypted/decrypted user information corresponding to a user in response to requests directed toward the user information server  17 , although other types of information may also be provided. It is to be understood that the user information server  17  may be hardware or software. 
     Although an exemplary network environment  10  with the client computing devices  12 , the application manager computing device  14 , servers  16 , the LANs  28  and the WAN  30  are described and illustrated herein, other types and numbers of systems, devices, blades, components, and elements in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s). 
     Additionally, in this example, a user session is established between the application manager computing device  14  and the requesting client computing device  12  through one or more of LANs  28  and/or WANs  30 . The session may be a semi-permanent interactive information exchange between the application manager computing device  14  and the client computing devices  12  which has sent the request for authentication. The user session may be established at a certain point of time and may also be terminated at a later point of time. An established communication session may involve more than one message exchanged between the application manager computing device  14  and the client computing devices  12 . Further, the session may also be a stateless communication wherein an independent request may be received only once by the application manager computing device  14  and the application manager computing device  14  may need to respond only once. 
     Furthermore, each of the systems of the examples may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and micro-controllers, programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those of ordinary skill in the art. 
     In addition, two or more computing systems or devices can be substituted for any one of the systems or devices in any example. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer system(s) that extend across any suitable network using any suitable interface mechanisms and traffic technologies, including by way of example only teletraffic in any suitable form (e.g., voice and modem), wireless traffic media, wireless traffic networks, cellular traffic networks, G3 traffic networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof. 
     The examples may also be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the technology as described and illustrated by way of the examples herein, which when executed by a processor (or configurable hardware), cause the processor to carry out the steps necessary to implement the methods of the examples, as described and illustrated herein. 
     An exemplary method for managing user information to a service will now be described with reference to  FIGS. 1 ,  2   a - 2   b . In step  201 , the application manager computing device  14  receives a request from a client computing device  14 , although the application manager computing device  14  may receive additional information such as client/user credentials from the client computing device  12 . 
     In step  202 , the application manager computing device  14  verifies and validates the client credentials from the requesting one of the client computing devices  12  using session validation logic, although other types of session validation algorithms may also be used. The validation of the session identification information is performed only when the new user session has been created by the application manager computing device  14 . If in step  202  the session identification information is not verified, then the No branch is taken to step  250  where this exemplary process ends. If in step  210  the session identification information is verified, then the Yes branch is taken to step  203 . 
     In step  203 , the application manager computing device  14  checks if the requested is associated with a new user session or an already existing session based on the a session identification information and/or a cryptographic key. If the application manager computing device  14  determines that it is a new user session, a Yes branch is taken to step  204 , else a No branch is taken to step  215 . 
     In step  204 , the application manager computing device  14  creates a new user session with session identification information and a new at least one cryptographic key. In another exemplary method, the new at least one cryptographic key or an attribute of the cryptographic key can be used as a session identification information. 
     In step  205 , the application manager computing device  14  a new session state for the requesting client computing device  12  is allocated. 
     In step  206 , the application manager computing device  14  calculates a one-way hash value of the cryptographic key, although other types of functions can be calculated. The hash value can be used by the application manager computing device  14  to identify the session state allocated on the application manager computing device. 
     In step  207 , the application manager computing device  14  stores the user information along with the cryptographic key in the newly created session state for the client computing device  12 , although the user information and the cryptographic key can also be stored in the memory  20  of the application manager computing device  14 . 
     In step  208 , the application manager computing device  14  associates the session state with the one-way hash value of the cryptographic key, this association is used by application manager computing device to select the session state whenever it needs to access the client&#39;s information pertaining to a client. Based on the cryptographic key retrieved from the client, application manager computing device can retrieve the associated session state, although other types and numbers of states and other values can be associated. 
     In step  209 , the application manager computing device  14  transmits the cryptographic key and the session identification information back to the requesting one of the client computing devices  12  for storage, although parts or the entire cryptographic key could be stored in other manners. By way of example, the cryptographic key may be split by the application manager computing device  14  and at least one part of the cryptographic key may be stored in the memory of the requesting one of the client computing devices  12  and the other parts may be stored at other locations. The application manager computing device  14  keeps track of the cryptographic key stored at different locations by storing the location information in the session state. An appropriate session state is used to store the keys location information by selecting a session state based on the hash of the cryptographic key. 
     Further, in another example the application manager computing device  14  may store the cryptographic key in a different location and may send the address of the location to the requesting one of the client computing devices  12 . Further, the session identification information and/or the cryptographic key may be stored in the requesting one of the client computing devices  12  as a cookie. The cryptographic key created by the application manager computing device  14  is used to securely encrypt user sensitive information such as user name, password etc. 
     With reference to  FIG. 2   b , in step  215 , the application manager computing device  14  determines if the cryptographic key is present in the request sent by the client computing device  12 . If in step  215  the application manager computing device  14  determines that the entire cryptographic key is present in the request sent by the client computing device  12 , it extracts the cryptographic key and takes the Yes branch to step  240 . Further, the application manager computing device  14  on extracting, caches the cryptographic key for processing the subsequent request, although the cryptographic key could be obtained and stored in other manners. 
     If in step  215  the application manager computing device  14  determines that the entire cryptographic key is not present in the request sent by the client computing device  12 , the No branch is taken to step  220 . In step  220 , the application manager computing device  14  checks if the obtained cryptographic key was split into a plurality of parts with one part in the current request. If in step  220  the application manager computing device determines that the cryptographic key was split into a plurality of parts with one part in the current request, then the Yes branch is taken to step  225 . 
     In step  225 , the application manager computing device  14  retrieves the one part of the cryptographic key from the current request sent from the client computing device  12  and the other missing parts of the cryptographic key from one or more other locations by retrieving the list of locations from session state, although other manners for splitting and then retrieving the parts of the cryptographic key can be used. For example, the application manager computing device  14  may only retrieve a subset of the other missing parts from the one or more locations or could retrieve all of the missing parts from different locations. An appropriate session state is selected by using the hash of cryptographic key and proceeds to step  240 . 
     If back in step  220  the application manager computing device determines that the cryptographic key was not split into a plurality of parts with one part in the current request, then the No branch is taken to step  230 . In step  230 , the application manager computing device  14  determines if the cryptographic key is stored in a different location. If in step  230 , the application manager computing device  14  determines the cryptographic key is not stored in a different location, then the No branch is taken to step  250  to end the process. 
     If in step  230 , the application manager computing device  14  determines the cryptographic key is stored in a different location, then the Yes branch is taken to step  235 . In step  235 , the application manager computing device  14  obtains the cryptographic key from the location based on the address retrieved from the request sent by the client computing device  12 . 
     In step  240 , the application manager computing device  14  obtains the user information from the user information server  17  based on the received request and decrypts or encrypts the user information present in the user information server  17  with the at least one unique cryptographic key. Additionally, the application manager computing device  14  may decrypt the user information corresponding to a user and authenticate a request sent to the server  16  on behalf of the client computing device  12 . Further, the application manager computing device  14  after providing authentication may encrypt the user information in the user information server to store it securely. 
     Proceeding to step  245 , the application manager computing device  14  deletes the cached cryptographic key after the request has been serviced or if the new user session has been terminated and the process ends at step  250 . 
     In the above disclosed example, the secure storage of user/client information acts as a per-client secure vault which is only accessible of the client computing device  12  if it has passed the session identification information validation and has the cryptographic key. Additionally, for each new user session a new cryptographic key is generated making this per-client secure vault to be one-time use only. Further, a second cryptographic key may also be generated and stored by the application manager computing device  14  within the new user session. Accordingly, as illustrated and described with references to the examples herein, this technology makes managing user information both secure and efficient. 
     Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.