US20220201084A1 - Encryption of proxy session activity data using user-provided encryption keys - Google Patents
Encryption of proxy session activity data using user-provided encryption keys Download PDFInfo
- Publication number
- US20220201084A1 US20220201084A1 US17/125,600 US202017125600A US2022201084A1 US 20220201084 A1 US20220201084 A1 US 20220201084A1 US 202017125600 A US202017125600 A US 202017125600A US 2022201084 A1 US2022201084 A1 US 2022201084A1
- Authority
- US
- United States
- Prior art keywords
- activity data
- user
- encryption key
- session activity
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H04L67/2804—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Definitions
- Proxy servers may generate session activity data during proxy sessions.
- the generated session activity data may include private data, which may be stored on the proxy servers.
- FIG. 1 depicts a block diagram of an apparatus that may encrypt session activity data during a proxy session of a user using an encryption key obtained from the user, in accordance with an embodiment of the present disclosure
- FIG. 2 shows a block diagram of a system within which the apparatus depicted in FIG. 1 may be implemented, in accordance with an embodiment of the present disclosure
- FIG. 3 shows a flow diagram of a method for encrypting session activity data during a proxy session of a user using an encryption key received from the user and decrypting the encrypted session activity data using the encryption key received from the user, in accordance with an embodiment of the present disclosure
- FIG. 4 depicts a block diagram of a computer-readable medium that may have stored thereon computer-readable instructions to authenticate a user to manage a proxy server and decrypt an encrypted session activity data using an encryption key associated with the user, in accordance with an embodiment of the present disclosure.
- the terms “a” and “an” are intended to denote at least one of a particular element.
- the term “includes” means includes but not limited to, the term “including” means including but not limited to.
- the term “based on” means based at least in part on.
- a proxy server may be disposed between a client device and a server, and may be implemented to provide a proxy session to act as an intermediary for requests from clients to the server.
- the proxy server may generate session activity data associated with events that may have occurred during the proxy session.
- the proxy server may also store the generated session activity data on the proxy server for access by an entity, such as an administrator of the proxy server or network on which the proxy server may operate.
- a technical concern associated with proxy sessions may be that the session activity data may include private data associated with users of the proxy sessions, which may cause security concerns if accessed by malevolent actors.
- Proxy servers that provide the proxy sessions may be construed as man-in-the-middle systems (MitM systems).
- the private data may be exposed to third parties that provide the proxy sessions.
- the private data may be encrypted for added protection, but in these instances, the encryption keys are typically owned by the MitM systems, which may pose risks to the private data, such as persistent storage of the private data on the third party servers.
- an apparatus e.g., a proxy server
- a processor may obtain an encryption key from a user.
- the processor may also identify session activity data during a proxy session of the user and may encrypt the identified session activity data using the encryption key obtained from the user.
- the processor may store the encrypted session activity data such that the encrypted session activity data, including any private data, may be accessible only using the user's encryption key.
- the processor may receive instructions from the user to replace and/or purge the encryption key, which may render inaccessible any previously stored session activity data associated with that encryption key. In this manner, the processor may improve privacy of the client's private data, for instance, by preventing persistent storage of the client's private data on the proxy server.
- a processor may enable improved security and control of users' private data stored on the proxy server.
- the processor may ensure the users that their private data may be stored without exposure to third parties, e.g., the proxy server.
- the processor may prevent persistent storage of the private data by enabling the user to replace and/or purge their encryption keys, thereby preventing unauthorized access to the stored private data.
- the processor may identify private data among the session activity data and may encrypt the identified private data among the session activity data, which may reduce a load on the processor to encrypt the session activity data.
- a technical improvement afforded through implementation of the features of the present disclosure may thus be that data, e.g., private session activity data, may be stored in a relatively more secure manner.
- data e.g., private session activity data
- security of client devices as well as network security may be improved through implementation of the features of the present disclosure.
- FIG. 1 shows a block diagram of an apparatus 100 that may encrypt session activity data during a proxy session of a user using an encryption key obtained from the user, in accordance with an embodiment of the present disclosure.
- FIG. 2 shows a block diagram of an example system 200 that may include the apparatus 100 depicted in FIG. 1 , in accordance with an embodiment of the present disclosure. It should be understood that the apparatus 100 depicted in FIG. 1 and/or the system 200 depicted in FIG. 2 may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of the apparatus 100 and/or the system 200 .
- the apparatus 100 may include a processor 102 and a memory 110 .
- the apparatus 100 may be a computing device, including a server, a node in a network (such as a data center), a desktop computer, a laptop computer, a tablet computer, a smartphone, an electronic device such as Internet of Things (IoT) device, and/or the like.
- the processor 102 may include a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device.
- the apparatus 100 may include multiple processors and/or cores without departing from a scope of the apparatus.
- references to a single processor as well as to a single memory may be understood to additionally or alternatively pertain to multiple processors and multiple memories.
- the memory 110 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- the memory 110 may be, for example, Read Only Memory (ROM), flash memory, solid state drive, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, or the like.
- ROM Read Only Memory
- RAM Random Access memory
- EEPROM Electrically Erasable Programmable Read-Only Memory
- the memory 110 may be a non-transitory computer-readable medium.
- the term “non-transitory” does not encompass transitory propagating signals.
- the processor 102 may execute instructions 112 - 118 to encrypt session activity data during a proxy session of a user using an encryption key obtained from the user.
- the instructions 112 - 118 may be machine-readable instructions, e.g., non-transitory computer-readable instructions.
- the apparatus 100 may include hardware logic blocks or a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions 112 - 118 .
- the apparatus 100 may be disposed between a user device 202 and a server 204 .
- the user device 202 and the server 204 may communicate with via a network 206 , which may be the Internet, a local area network, and/or the like.
- the apparatus 100 may act as a proxy for the user device 202 and may facilitate and/or enable a proxy session 208 for a user on the user device 202 to securely access data and/or services from the server 204 .
- the processor 102 may generate session activity data 210 associated with the proxy session 208 .
- the session activity data 210 may include any information pertaining to activities that the user performed during the sessions, such as, websites visited, documents accessed, information inputted, information downloaded, timestamps corresponding to the times at which data was accessed, and/or the like.
- the processor 102 may fetch, decode, and execute the instructions 112 to obtain an encryption key 212 from the user.
- the encryption key 212 may be any suitable type of secret key that may be unique to the user.
- the processor 102 may provide a user interface (UI) for the user to access and manage the proxy session 208 .
- the processor 102 may cause the UI to be displayed at the user device 202 and the user may input and/or upload information, e.g., the encryption key 212 , into the UI.
- the processor 102 may fetch, decode, and execute the instructions 112 to obtain an encryption key 212 from the user.
- the encryption key 212 may be any suitable type of secret key that may be unique to the user.
- the processor 102 may provide a user interface (UI) for the user to access and manage the proxy session 208 .
- the processor 102 may cause the UI to be displayed at the user device 202 and the user may input and/or upload information, e.g., the encryption key 212 , into
- the processor 102 may authenticate the user through information obtained from the user via the UI. For instance, the user may log into the apparatus 100 via the UI using their credentials, such as a user identification/password, and/or the like.
- the processor 102 may authenticate the user and may determine a privilege level of the user. That is, the user may have any of a number of different privileges, such as an administrator level having administrative privileges, a user/participant level of the proxy session 208 , and/or the like. Based on the user being authentic and/or having sufficient privileges, the processor 102 may obtain the encryption key 212 from the user. In some examples, the processor 102 may allow the encryption key 212 to be uploaded through the UI.
- the processor 102 may associate the user with the user-provided encryption key 212 .
- the processor 102 may store the encryption key 212 in a key vault (not shown) provided in the apparatus 100 .
- the processor 102 may distribute the encryption key 212 to multiple geographically distributed nodes, which may prevent delays in communication/access from different the nodes.
- the processor 102 may fetch, decode, and execute the instructions 114 to identify the session activity data 210 during the proxy session 208 of the user.
- the processor 102 may implement the proxy session 208 to enable the user to have secure access to the data/services at the server 204 .
- the user device 202 may include a browser interface to enable the user to access the proxy session 208 .
- the processor 102 may control user access based on predetermined privileges, and may prevent sensitive data/documents from exiting a browser sandbox, for instance, by preventing printing and/or downloading documents to the user device 202 .
- the processor 102 may generate the session activity data 210 associated with the proxy session 208 .
- the session activity data 210 may be meta data including information associated with the session activity.
- the processor 102 may detect an unauthorized access attempt to a file on the server 204 by a user at the user device 202 .
- the processor 102 may prevent access to the file and may generate the session activity data 210 associated with this event, which may include meta data about the unauthorized access attempt such as a date/time, a filename, a user name, user device 202 address, and/or the like.
- the processor 102 may identify private data (or private information) among the session activity data 210 .
- the private data may be associated with predetermined fields identified as being private in the session activity data 210 . For instance, a user may designate a particular field among a plurality of fields as being private, such as, a user name field, a user social security number filed, a password field, and/or the like. In this instance, the processor 102 may identify the data stored in these fields as being private data among the session activity data 210 .
- the processor 102 may fetch, decode, and execute the instructions 116 to encrypt the identified session activity data 210 to generate the encrypted session activity data 214 using the encryption key 212 obtained from the user.
- the processor 102 may identify the private data among the session activity data 210 and may encrypt the identified private data, without encrypting session activity data that is not identified as being private data.
- the processor 102 may fetch, decode, and execute the instructions 118 to store the encrypted session activity data 214 .
- the processor 102 may associate the encrypted session activity data 214 with the encryption key 212 received from the user. That is, for instance, the processor 102 may enable access to the encrypted session activity data 214 only by the user that is associated with the encryption key 212 .
- the processor 102 may receive a request from the user to access the encrypted session activity data 214 .
- the user may be a user having privileges to manage the proxy session 208 , for instance, to view the encrypted session activity data 214 .
- the processor 102 may determine that the user is authorized to access the encrypted session activity data 214 based on the user being identified as being associated with the encryption key 212 .
- the processor 102 may authenticate the user based on user credentials, such as user identification and password, or the like, input at the UI.
- the processor 102 may allow the authenticated user access to manage the session activity data 210 .
- the processor 102 may determine whether the encryption key 212 associated with the user is available and, based on a determination that the encryption key 212 is available, the processor 102 may decrypt the encrypted session activity data 214 using the encryption key 212 used to encrypt the encrypted session activity data 214 .
- the processor 102 may also cause the decrypted session activity data 210 to be displayed on the UI.
- the encryption key 212 may be based on a symmetric-key algorithm. In these examples, the encryption key 212 used to encrypt the session activity data 210 may be used to decrypt the encrypted session activity data 214 .
- the processor 102 may obtain a second encryption key from the user.
- the second encryption key may be a new or updated encryption key as may be used to enhance security.
- the processor 102 may replace the encryption key 212 with the second encryption key.
- the encrypted session activity data 214 encrypted using the replaced encryption key 212 may be inaccessible after the encryption key 212 is replaced.
- the processor 102 may revalidate the encryption key 212 , to allow continued access to associated encrypted session activity data 214 , purge or revoke the encryption key 212 , which may prevent future access to the encrypted session activity data 214 , update the encryption key 212 , for instance to add additional users associated with the encryption key 212 , and/or the like.
- FIG. 3 depicts a flow diagram of a method 300 for encrypting session activity data 210 during a proxy session 208 of a user using an encryption key 212 received from the user and decrypting the encrypted session activity data 214 using the encryption key 212 received from the user, in accordance with an embodiment of the present disclosure. It should be understood that the method 300 depicted in FIG. 3 may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scope of the method 300 . The description of the method 300 is made with reference to the features depicted in FIGS. 1 and 2 for purposes of illustration.
- the processor 102 may receive the encryption key 212 from a user.
- the user may upload the encryption key 212 to the apparatus 100 through a UI displayed at a user device 202 .
- the user may upload the encryption 212 in other manners.
- the processor 102 may store the encryption key 212 in a key vault, e.g., a secure key storage location on the apparatus 100 .
- the processor 102 may also or additionally store the encryption key 212 across multiple nodes.
- the processor 102 may identify session activity data 210 during a proxy session 208 of the user. For instance, the processor 102 may generate the session activity data 210 during management of the proxy session 208 for the user. The processor 102 may generate the session activity data 210 by, for instance, generating event log information in response to denying the user access to certain data/services. The generated session activity data 210 may be meta data including private information associated with the user.
- the processor 102 may identify private data among the session activity data 210 using predetermined fields designated by the user as being private. For instance, the processor 102 may identify fields of data in the session activity data 210 designated as being private, and may identify data in the private fields as being private data.
- the processor 102 may encrypt the session activity data 210 using the encryption key 212 received from the user. In some examples, instead of encrypting the entire session activity data 210 , the processor 102 may encrypt private information identified in the session activity data 210 . In these examples, the processor 102 may encrypt the identified private data without encrypting session activity data that is not identified as being private data.
- the processor 102 may store the encrypted session activity data 214 , for instance, in a data store (not shown).
- the processor 102 may receive a request from the user to access the encrypted session activity data 214 .
- the processor 102 may decrypt the encrypted session activity data 214 using the encryption key 212 received from the user.
- the processor 102 may use the encryption key 212 used to encrypt the session activity data 210 to decrypt the encrypted session activity data 214 .
- the encryption key 212 may be based on a symmetric-key algorithm.
- the processor 102 may output the decrypted session activity data 210 to the user.
- the processor 102 may determine that the user is authorized to access the encrypted session activity data 214 based on the user being identified as being associated with the encryption key 212 . In some examples, the processor 102 may determine that the user has the encryption key 212 associated with the user's account, and based on a determination that the encryption key 212 is available, the processor 102 may decrypt the encrypted session activity data 214 using the encryption key 212 . The processor 102 may cause the session activity data 210 to be displayed on the UI, communicate the session activity data 210 to the user device 202 , and/or the like.
- the processor 102 may obtain a second encryption key from the user. In response to receipt of the second encryption key, the processor 102 may replace the encryption key 212 with the second encryption key. In this instance, the session activity data 210 that is encrypted using the replaced encryption key 212 may be inaccessible after the encryption key 212 is replaced, and subsequent session activity data 210 may be accessible using the second encryption key. In some examples, the processor 102 may purge or revoke the encryption key 212 to ensure that corresponding encrypted session activity data 214 is no longer accessible, revalidate the encryption key 212 to enable continued use of the encryption key 212 , update the association for the encryption key 212 to allow different users to be associated with the encryption key 212 , and/or the like.
- Some or all of the operations set forth in the method 300 may be included as utilities, programs, or subprograms, in any desired computer accessible medium.
- the method 300 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine-readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer-readable storage medium.
- non-transitory computer-readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- FIG. 4 there is shown a block diagram of a computer-readable medium 400 that may have stored thereon computer-readable instructions to authenticate a user to manage a proxy server and decrypt an encrypted session activity data using an encryption key associated with the user, in accordance with an embodiment of the present disclosure.
- the computer-readable medium 400 depicted in FIG. 4 may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium 400 disclosed herein.
- the description of the computer-readable medium 400 is made with reference to the features depicted in FIGS. 1 and 2 for purposes of illustration.
- the computer-readable medium 400 may be a non-transitory computer-readable medium.
- the term “non-transitory” does not encompass transitory propagating signals.
- the computer-readable medium 400 may have stored thereon machine-readable instructions 402 - 414 that a processor disposed in an apparatus 100 may execute.
- the computer-readable medium 400 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- the computer-readable medium 700 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like.
- the processor may fetch, decode, and execute the instructions 402 to authenticate a user to manage a proxy session 208 of the user.
- the processor may provide a UI to enable the user to log in to manage the proxy session 208 .
- the processor may fetch, decode, and execute the instructions 404 to obtain an encryption key 212 from the user.
- the processor may fetch, decode, and execute the instructions 406 to associate the encryption key 212 to the user.
- the processor may fetch, decode, and execute the instructions 408 to encrypt session activity data 214 of the proxy session 208 using the encryption key 212 associated with the user.
- the processor may fetch, decode, and execute the instructions 410 to receive a request from the user to access the encrypted session activity data 214 .
- the processor may authenticate the user to confirm that the request to access the encrypted session activity data 214 is received from an authentic user.
- the processor may fetch, decode, and execute the instructions 412 to decrypt the encrypted session activity data 214 using the encryption key 212 associated with the user.
- the encryption key 212 may be based on a symmetric-key algorithm.
- the processor may fetch, decode, and execute the instructions 414 to output the decrypted session activity data to the user.
- the processor may obtain a second encryption key from the user, and in response to receipt of the second encryption key, the processor may replace the encryption key 212 with the second encryption key.
- the encrypted session activity data 214 encrypted using the replaced encryption key 212 may be inaccessible after the encryption key 212 is replaced.
- the processor may identify private data among the session activity data 210 .
- the private data may be associated with predetermined fields identified as being private in the session activity data.
- the processor may encrypt the identified private data without encrypting session activity data that is not identified as being private data.
- the processor may generate the session activity data 210 during management of the proxy session 208 , identify private information in the generated session activity data 210 , and encrypt the private information identified in the generated session activity data 210 .
- the generated session activity data 210 may be meta data including the private information.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
- Proxy servers may generate session activity data during proxy sessions. The generated session activity data may include private data, which may be stored on the proxy servers.
- Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
-
FIG. 1 depicts a block diagram of an apparatus that may encrypt session activity data during a proxy session of a user using an encryption key obtained from the user, in accordance with an embodiment of the present disclosure; -
FIG. 2 shows a block diagram of a system within which the apparatus depicted inFIG. 1 may be implemented, in accordance with an embodiment of the present disclosure; -
FIG. 3 shows a flow diagram of a method for encrypting session activity data during a proxy session of a user using an encryption key received from the user and decrypting the encrypted session activity data using the encryption key received from the user, in accordance with an embodiment of the present disclosure; and -
FIG. 4 depicts a block diagram of a computer-readable medium that may have stored thereon computer-readable instructions to authenticate a user to manage a proxy server and decrypt an encrypted session activity data using an encryption key associated with the user, in accordance with an embodiment of the present disclosure. - For simplicity and illustrative purposes, the principles of the present disclosure are described by referring mainly to embodiments and examples thereof. In the following description, numerous specific details are set forth in order to provide an understanding of the embodiments and examples. It will be apparent, however, to one of ordinary skill in the art, that the embodiments and examples may be practiced without limitation to these specific details. In some instances, well known methods and/or structures have not been described in detail so as not to unnecessarily obscure the description of the embodiments and examples. Furthermore, the embodiments and examples may be used together in various combinations.
- Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
- A proxy server may be disposed between a client device and a server, and may be implemented to provide a proxy session to act as an intermediary for requests from clients to the server. During the proxy session, the proxy server may generate session activity data associated with events that may have occurred during the proxy session. The proxy server may also store the generated session activity data on the proxy server for access by an entity, such as an administrator of the proxy server or network on which the proxy server may operate. A technical concern associated with proxy sessions may be that the session activity data may include private data associated with users of the proxy sessions, which may cause security concerns if accessed by malevolent actors.
- Proxy servers that provide the proxy sessions may be construed as man-in-the-middle systems (MitM systems). As a result, the private data may be exposed to third parties that provide the proxy sessions. In some instances, the private data may be encrypted for added protection, but in these instances, the encryption keys are typically owned by the MitM systems, which may pose risks to the private data, such as persistent storage of the private data on the third party servers.
- Disclosed herein are apparatuses, systems, methods, and computer-readable media that may enable secure management of session activity data generated during proxy sessions. In some examples, an apparatus, e.g., a proxy server, may allow a client to encrypt session activity data using the client's own encryption key. As discussed herein, a processor may obtain an encryption key from a user. The processor may also identify session activity data during a proxy session of the user and may encrypt the identified session activity data using the encryption key obtained from the user. The processor may store the encrypted session activity data such that the encrypted session activity data, including any private data, may be accessible only using the user's encryption key. In some examples, the processor may receive instructions from the user to replace and/or purge the encryption key, which may render inaccessible any previously stored session activity data associated with that encryption key. In this manner, the processor may improve privacy of the client's private data, for instance, by preventing persistent storage of the client's private data on the proxy server.
- Through implementation of the features of the present disclosure, a processor, e.g., of an apparatus such as a proxy server, may enable improved security and control of users' private data stored on the proxy server. By enabling users to use their own encryption keys, the processor may ensure the users that their private data may be stored without exposure to third parties, e.g., the proxy server. In some examples, the processor may prevent persistent storage of the private data by enabling the user to replace and/or purge their encryption keys, thereby preventing unauthorized access to the stored private data. In some examples, the processor may identify private data among the session activity data and may encrypt the identified private data among the session activity data, which may reduce a load on the processor to encrypt the session activity data. A technical improvement afforded through implementation of the features of the present disclosure may thus be that data, e.g., private session activity data, may be stored in a relatively more secure manner. As a result, the security of client devices as well as network security may be improved through implementation of the features of the present disclosure.
- Reference is first made to
FIGS. 1 and 2 .FIG. 1 shows a block diagram of an apparatus 100 that may encrypt session activity data during a proxy session of a user using an encryption key obtained from the user, in accordance with an embodiment of the present disclosure.FIG. 2 shows a block diagram of anexample system 200 that may include the apparatus 100 depicted inFIG. 1 , in accordance with an embodiment of the present disclosure. It should be understood that the apparatus 100 depicted inFIG. 1 and/or thesystem 200 depicted inFIG. 2 may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of the apparatus 100 and/or thesystem 200. - The apparatus 100 may include a
processor 102 and amemory 110. The apparatus 100 may be a computing device, including a server, a node in a network (such as a data center), a desktop computer, a laptop computer, a tablet computer, a smartphone, an electronic device such as Internet of Things (IoT) device, and/or the like. Theprocessor 102 may include a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device. In some examples, the apparatus 100 may include multiple processors and/or cores without departing from a scope of the apparatus. In this regard, references to a single processor as well as to a single memory may be understood to additionally or alternatively pertain to multiple processors and multiple memories. - The
memory 110 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thememory 110 may be, for example, Read Only Memory (ROM), flash memory, solid state drive, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, or the like. Thememory 110 may be a non-transitory computer-readable medium. The term “non-transitory” does not encompass transitory propagating signals. - As shown in
FIG. 1 , theprocessor 102 may execute instructions 112-118 to encrypt session activity data during a proxy session of a user using an encryption key obtained from the user. The instructions 112-118 may be machine-readable instructions, e.g., non-transitory computer-readable instructions. In other examples, the apparatus 100 may include hardware logic blocks or a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions 112-118. - The apparatus 100 may be disposed between a user device 202 and a
server 204. The user device 202 and theserver 204 may communicate with via anetwork 206, which may be the Internet, a local area network, and/or the like. The apparatus 100 may act as a proxy for the user device 202 and may facilitate and/or enable aproxy session 208 for a user on the user device 202 to securely access data and/or services from theserver 204. In addition to providing access to data and/or services from theserver 204, theprocessor 102 may generatesession activity data 210 associated with theproxy session 208. Thesession activity data 210 may include any information pertaining to activities that the user performed during the sessions, such as, websites visited, documents accessed, information inputted, information downloaded, timestamps corresponding to the times at which data was accessed, and/or the like. - The
processor 102 may fetch, decode, and execute the instructions 112 to obtain anencryption key 212 from the user. Theencryption key 212 may be any suitable type of secret key that may be unique to the user. In some examples, theprocessor 102 may provide a user interface (UI) for the user to access and manage theproxy session 208. In these examples, theprocessor 102 may cause the UI to be displayed at the user device 202 and the user may input and/or upload information, e.g., theencryption key 212, into the UI. Theprocessor 102 may - The
processor 102 may authenticate the user through information obtained from the user via the UI. For instance, the user may log into the apparatus 100 via the UI using their credentials, such as a user identification/password, and/or the like. Theprocessor 102 may authenticate the user and may determine a privilege level of the user. That is, the user may have any of a number of different privileges, such as an administrator level having administrative privileges, a user/participant level of theproxy session 208, and/or the like. Based on the user being authentic and/or having sufficient privileges, theprocessor 102 may obtain theencryption key 212 from the user. In some examples, theprocessor 102 may allow theencryption key 212 to be uploaded through the UI. Theprocessor 102 may associate the user with the user-providedencryption key 212. Theprocessor 102 may store theencryption key 212 in a key vault (not shown) provided in the apparatus 100. In some examples, theprocessor 102 may distribute theencryption key 212 to multiple geographically distributed nodes, which may prevent delays in communication/access from different the nodes. - The
processor 102 may fetch, decode, and execute the instructions 114 to identify thesession activity data 210 during theproxy session 208 of the user. By way of particular example and for purposes of illustration, theprocessor 102 may implement theproxy session 208 to enable the user to have secure access to the data/services at theserver 204. In some examples, the user device 202 may include a browser interface to enable the user to access theproxy session 208. Theprocessor 102 may control user access based on predetermined privileges, and may prevent sensitive data/documents from exiting a browser sandbox, for instance, by preventing printing and/or downloading documents to the user device 202. - During the
proxy session 208, theprocessor 102 may generate thesession activity data 210 associated with theproxy session 208. Thesession activity data 210 may be meta data including information associated with the session activity. By way of particular example and for purposes of illustration, theprocessor 102 may detect an unauthorized access attempt to a file on theserver 204 by a user at the user device 202. In this example, theprocessor 102 may prevent access to the file and may generate thesession activity data 210 associated with this event, which may include meta data about the unauthorized access attempt such as a date/time, a filename, a user name, user device 202 address, and/or the like. - In some examples, the
processor 102 may identify private data (or private information) among thesession activity data 210. The private data may be associated with predetermined fields identified as being private in thesession activity data 210. For instance, a user may designate a particular field among a plurality of fields as being private, such as, a user name field, a user social security number filed, a password field, and/or the like. In this instance, theprocessor 102 may identify the data stored in these fields as being private data among thesession activity data 210. - The
processor 102 may fetch, decode, and execute theinstructions 116 to encrypt the identifiedsession activity data 210 to generate the encryptedsession activity data 214 using theencryption key 212 obtained from the user. In some examples, theprocessor 102 may identify the private data among thesession activity data 210 and may encrypt the identified private data, without encrypting session activity data that is not identified as being private data. - The
processor 102 may fetch, decode, and execute theinstructions 118 to store the encryptedsession activity data 214. Theprocessor 102 may associate the encryptedsession activity data 214 with theencryption key 212 received from the user. That is, for instance, theprocessor 102 may enable access to the encryptedsession activity data 214 only by the user that is associated with theencryption key 212. - In some examples, the
processor 102 may receive a request from the user to access the encryptedsession activity data 214. The user may be a user having privileges to manage theproxy session 208, for instance, to view the encryptedsession activity data 214. Theprocessor 102 may determine that the user is authorized to access the encryptedsession activity data 214 based on the user being identified as being associated with theencryption key 212. For instance, theprocessor 102 may authenticate the user based on user credentials, such as user identification and password, or the like, input at the UI. - Based on the user being authenticated, the
processor 102 may allow the authenticated user access to manage thesession activity data 210. Theprocessor 102 may determine whether theencryption key 212 associated with the user is available and, based on a determination that theencryption key 212 is available, theprocessor 102 may decrypt the encryptedsession activity data 214 using theencryption key 212 used to encrypt the encryptedsession activity data 214. Theprocessor 102 may also cause the decryptedsession activity data 210 to be displayed on the UI. - In some examples, the
encryption key 212 may be based on a symmetric-key algorithm. In these examples, theencryption key 212 used to encrypt thesession activity data 210 may be used to decrypt the encryptedsession activity data 214. - In some examples, the
processor 102 may obtain a second encryption key from the user. The second encryption key may be a new or updated encryption key as may be used to enhance security. Theprocessor 102 may replace theencryption key 212 with the second encryption key. In this instance, the encryptedsession activity data 214 encrypted using the replacedencryption key 212 may be inaccessible after theencryption key 212 is replaced. In other examples, theprocessor 102 may revalidate theencryption key 212, to allow continued access to associated encryptedsession activity data 214, purge or revoke theencryption key 212, which may prevent future access to the encryptedsession activity data 214, update theencryption key 212, for instance to add additional users associated with theencryption key 212, and/or the like. - Various manners in which a
processor 102 implemented on the apparatus 100 may operate are discussed in greater detail with respect to themethod 300 depicted inFIG. 3 .FIG. 3 depicts a flow diagram of amethod 300 for encryptingsession activity data 210 during aproxy session 208 of a user using anencryption key 212 received from the user and decrypting the encryptedsession activity data 214 using theencryption key 212 received from the user, in accordance with an embodiment of the present disclosure. It should be understood that themethod 300 depicted inFIG. 3 may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scope of themethod 300. The description of themethod 300 is made with reference to the features depicted inFIGS. 1 and 2 for purposes of illustration. - At
block 302, theprocessor 102 may receive theencryption key 212 from a user. The user may upload theencryption key 212 to the apparatus 100 through a UI displayed at a user device 202. In other examples, the user may upload theencryption 212 in other manners. In addition, theprocessor 102 may store theencryption key 212 in a key vault, e.g., a secure key storage location on the apparatus 100. Theprocessor 102 may also or additionally store theencryption key 212 across multiple nodes. - At
block 304, theprocessor 102 may identifysession activity data 210 during aproxy session 208 of the user. For instance, theprocessor 102 may generate thesession activity data 210 during management of theproxy session 208 for the user. Theprocessor 102 may generate thesession activity data 210 by, for instance, generating event log information in response to denying the user access to certain data/services. The generatedsession activity data 210 may be meta data including private information associated with the user. - In some examples, the
processor 102 may identify private data among thesession activity data 210 using predetermined fields designated by the user as being private. For instance, theprocessor 102 may identify fields of data in thesession activity data 210 designated as being private, and may identify data in the private fields as being private data. - At
block 306, theprocessor 102 may encrypt thesession activity data 210 using theencryption key 212 received from the user. In some examples, instead of encrypting the entiresession activity data 210, theprocessor 102 may encrypt private information identified in thesession activity data 210. In these examples, theprocessor 102 may encrypt the identified private data without encrypting session activity data that is not identified as being private data. Atblock 308, theprocessor 102 may store the encryptedsession activity data 214, for instance, in a data store (not shown). - At
block 310, theprocessor 102 may receive a request from the user to access the encryptedsession activity data 214. Atblock 312, based on the user being authenticated, theprocessor 102 may decrypt the encryptedsession activity data 214 using theencryption key 212 received from the user. Theprocessor 102 may use theencryption key 212 used to encrypt thesession activity data 210 to decrypt the encryptedsession activity data 214. In this regard, theencryption key 212 may be based on a symmetric-key algorithm. Atblock 314, theprocessor 102 may output the decryptedsession activity data 210 to the user. - In some examples, the
processor 102 may determine that the user is authorized to access the encryptedsession activity data 214 based on the user being identified as being associated with theencryption key 212. In some examples, theprocessor 102 may determine that the user has theencryption key 212 associated with the user's account, and based on a determination that theencryption key 212 is available, theprocessor 102 may decrypt the encryptedsession activity data 214 using theencryption key 212. Theprocessor 102 may cause thesession activity data 210 to be displayed on the UI, communicate thesession activity data 210 to the user device 202, and/or the like. - In some examples, the
processor 102 may obtain a second encryption key from the user. In response to receipt of the second encryption key, theprocessor 102 may replace theencryption key 212 with the second encryption key. In this instance, thesession activity data 210 that is encrypted using the replacedencryption key 212 may be inaccessible after theencryption key 212 is replaced, and subsequentsession activity data 210 may be accessible using the second encryption key. In some examples, theprocessor 102 may purge or revoke theencryption key 212 to ensure that corresponding encryptedsession activity data 214 is no longer accessible, revalidate theencryption key 212 to enable continued use of theencryption key 212, update the association for theencryption key 212 to allow different users to be associated with theencryption key 212, and/or the like. - Some or all of the operations set forth in the
method 300 may be included as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, themethod 300 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine-readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer-readable storage medium. - Examples of non-transitory computer-readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- Turning now to
FIG. 4 , there is shown a block diagram of a computer-readable medium 400 that may have stored thereon computer-readable instructions to authenticate a user to manage a proxy server and decrypt an encrypted session activity data using an encryption key associated with the user, in accordance with an embodiment of the present disclosure. It should be understood that the computer-readable medium 400 depicted inFIG. 4 may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium 400 disclosed herein. The description of the computer-readable medium 400 is made with reference to the features depicted inFIGS. 1 and 2 for purposes of illustration. The computer-readable medium 400 may be a non-transitory computer-readable medium. The term “non-transitory” does not encompass transitory propagating signals. - The computer-
readable medium 400 may have stored thereon machine-readable instructions 402-414 that a processor disposed in an apparatus 100 may execute. The computer-readable medium 400 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The computer-readable medium 700 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. - The processor may fetch, decode, and execute the instructions 402 to authenticate a user to manage a
proxy session 208 of the user. The processor may provide a UI to enable the user to log in to manage theproxy session 208. - Based on the user being authentic, the processor may fetch, decode, and execute the instructions 404 to obtain an
encryption key 212 from the user. The processor may fetch, decode, and execute the instructions 406 to associate theencryption key 212 to the user. The processor may fetch, decode, and execute theinstructions 408 to encryptsession activity data 214 of theproxy session 208 using theencryption key 212 associated with the user. - The processor may fetch, decode, and execute the instructions 410 to receive a request from the user to access the encrypted
session activity data 214. In some examples, the processor may authenticate the user to confirm that the request to access the encryptedsession activity data 214 is received from an authentic user. - The processor may fetch, decode, and execute the
instructions 412 to decrypt the encryptedsession activity data 214 using theencryption key 212 associated with the user. In some examples, theencryption key 212 may be based on a symmetric-key algorithm. The processor may fetch, decode, and execute theinstructions 414 to output the decrypted session activity data to the user. - In some examples, the processor may obtain a second encryption key from the user, and in response to receipt of the second encryption key, the processor may replace the
encryption key 212 with the second encryption key. In this regard, the encryptedsession activity data 214 encrypted using the replacedencryption key 212 may be inaccessible after theencryption key 212 is replaced. - In some examples, to encrypt the identified
session activity data 210, the processor may identify private data among thesession activity data 210. The private data may be associated with predetermined fields identified as being private in the session activity data. The processor may encrypt the identified private data without encrypting session activity data that is not identified as being private data. - In some examples, to encrypt the identified
session activity data 210, the processor may generate thesession activity data 210 during management of theproxy session 208, identify private information in the generatedsession activity data 210, and encrypt the private information identified in the generatedsession activity data 210. In some examples, the generatedsession activity data 210 may be meta data including the private information. - Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
- What has been described and illustrated herein is an example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/125,600 US11716391B2 (en) | 2020-12-17 | 2020-12-17 | Encryption of proxy session activity data using user-provided encryption keys |
US18/335,073 US20230403327A1 (en) | 2020-12-17 | 2023-06-14 | Encryption of proxy session activity data using user-provided encryption keys |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/125,600 US11716391B2 (en) | 2020-12-17 | 2020-12-17 | Encryption of proxy session activity data using user-provided encryption keys |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/335,073 Continuation US20230403327A1 (en) | 2020-12-17 | 2023-06-14 | Encryption of proxy session activity data using user-provided encryption keys |
Publications (2)
Publication Number | Publication Date |
---|---|
US20220201084A1 true US20220201084A1 (en) | 2022-06-23 |
US11716391B2 US11716391B2 (en) | 2023-08-01 |
Family
ID=82022767
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/125,600 Active 2041-01-11 US11716391B2 (en) | 2020-12-17 | 2020-12-17 | Encryption of proxy session activity data using user-provided encryption keys |
US18/335,073 Pending US20230403327A1 (en) | 2020-12-17 | 2023-06-14 | Encryption of proxy session activity data using user-provided encryption keys |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/335,073 Pending US20230403327A1 (en) | 2020-12-17 | 2023-06-14 | Encryption of proxy session activity data using user-provided encryption keys |
Country Status (1)
Country | Link |
---|---|
US (2) | US11716391B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026286A1 (en) * | 2004-07-06 | 2006-02-02 | Oracle International Corporation | System and method for managing user session meta-data in a reverse proxy |
US7165175B1 (en) * | 2000-09-06 | 2007-01-16 | Widevine Technologies, Inc. | Apparatus, system and method for selectively encrypting different portions of data sent over a network |
US7308477B1 (en) * | 2001-01-10 | 2007-12-11 | Cisco Technology, Inc. | Unified messaging system configured for transport of encrypted messages |
US20140122866A1 (en) * | 2012-10-31 | 2014-05-01 | Vmware, Inc. | Crypto Proxy for Cloud Storage Services |
US20200026708A1 (en) * | 2018-07-17 | 2020-01-23 | Praxi Data, Inc. | Data discovery solution for data curation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146505B1 (en) * | 1999-06-01 | 2006-12-05 | America Online, Inc. | Secure data exchange between date processing systems |
US8954740B1 (en) * | 2010-10-04 | 2015-02-10 | Symantec Corporation | Session key proxy decryption method to secure content in a one-to-many relationship |
US9215064B2 (en) * | 2013-10-21 | 2015-12-15 | Adobe Systems Incorporated | Distributing keys for decrypting client data |
US10680804B2 (en) * | 2017-09-27 | 2020-06-09 | Salesforce.Com, Inc. | Distributed key caching for encrypted keys |
US11483147B2 (en) * | 2020-01-23 | 2022-10-25 | Bank Of America Corporation | Intelligent encryption based on user and data properties |
US11537761B2 (en) * | 2020-09-25 | 2022-12-27 | Intel Corporation | Transparent network access control for spatial accelerator device multi-tenancy |
-
2020
- 2020-12-17 US US17/125,600 patent/US11716391B2/en active Active
-
2023
- 2023-06-14 US US18/335,073 patent/US20230403327A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165175B1 (en) * | 2000-09-06 | 2007-01-16 | Widevine Technologies, Inc. | Apparatus, system and method for selectively encrypting different portions of data sent over a network |
US7308477B1 (en) * | 2001-01-10 | 2007-12-11 | Cisco Technology, Inc. | Unified messaging system configured for transport of encrypted messages |
US20060026286A1 (en) * | 2004-07-06 | 2006-02-02 | Oracle International Corporation | System and method for managing user session meta-data in a reverse proxy |
US20140122866A1 (en) * | 2012-10-31 | 2014-05-01 | Vmware, Inc. | Crypto Proxy for Cloud Storage Services |
US20200026708A1 (en) * | 2018-07-17 | 2020-01-23 | Praxi Data, Inc. | Data discovery solution for data curation |
Also Published As
Publication number | Publication date |
---|---|
US20230403327A1 (en) | 2023-12-14 |
US11716391B2 (en) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7545489B2 (en) | Blockchain integration in enterprise environments, group permissions and access management | |
JP6838799B2 (en) | Key export technology | |
EP3398073B1 (en) | Securely storing and distributing sensitive data in a cloud-based application | |
EP3585032B1 (en) | Data security service | |
US10673862B1 (en) | Token-based access tracking and revocation | |
US11201741B2 (en) | System for improving data security | |
US9917832B2 (en) | Remote keychain for mobile devices | |
US11829513B2 (en) | System for improving data security when storing data | |
JP2012518330A (en) | Reliable cloud computing and cloud service framework | |
US20190068372A1 (en) | Transmitting an Encrypted Communication to a User in a Second Secure Communication Network | |
US10963582B1 (en) | Apparatus and method for enabling owner authorized monitored stewardship over protected data in computing devices | |
US11954230B2 (en) | System for improving data security through key management | |
US20240086504A1 (en) | System for improving data security when redeeming data | |
Chinnasamy et al. | A scalable multilabel‐based access control as a service for the cloud (SMBACaaS) | |
US20160234215A1 (en) | Method and system for managing data access within an enterprise | |
US10791196B2 (en) | Directory lookup for federated messaging with a user from a different secure communication network | |
US20190068567A1 (en) | Receiving an Encrypted Communication from a User in a Second Secure Communication Network | |
Dowsley et al. | A distributed key management approach | |
US11716391B2 (en) | Encryption of proxy session activity data using user-provided encryption keys | |
Zeidler et al. | Towards a framework for privacy-preserving data sharing in portable clouds | |
US20180124054A1 (en) | Parameter based data access on a security information sharing platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AZULAY, ITAMAR;CHERNI, TOMER;REEL/FRAME:054686/0549 Effective date: 20201217 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |