System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data
First Claim
1. A method for providing session protection for user privacy over a network, by means including at least a client and a remote server, wherein a user, using a client application, may submit a request through said client for a specified action to be performed in response to said request by said remote server, said user-submitted request comprising identity information that identifies the user making the request, and action information that specifies the action requested from said remote server by said user, and wherein said communications are provided in a secure and anonymous manner in that said action information is submitted to said remote server without revealing said identity information to said remote server, and in that only said client, and not any facility through which said action information or any response thereto passes in the course of being submitted to or received from said remote server, possesses both said identity information and said action information, said system comprising (in addition to said client and remote server):
- (a) separating, within said client application, said identity information and said action information from the user'"'"'s information request, encrypting said identity information and said action information, and sending said identity information and said action information as so encrypted to an identity server;
(b) decrypting, within said first intermediate server, said encrypted identity information but not said encrypted action information, and transmitting said encrypted action information to a second intermediate server;
(c) decrypting, within said second intermediate server, said action information, transmitting said decrypted action information to said remote server, receiving the remote server'"'"'s response, encrypting said remote server response, and transmitting said encrypted remote server response to said first intermediate server;
(d) receiving, within said first intermediate server said encrypted remote server response from said second intermediate server, associating said encrypted remote server response with said identity information and sending said encrypted remote server response to said application; and
(e) decrypting, within said client application, said remote server response and forwarding said decrypted remote server response to said client for presentation to said user.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides secure and private communication over a network, as well as persistent private storage and private access control to the stored information, which is accomplished by imposing mechanisms that separate a user'"'"'s actions from their identity. The system provides (i) anonymous network browsing, in which event the anonymity system is unaware of both the user'"'"'s identity and browsing activities, (ii) private network storage and retrieval of data such as passwords, profiles and files in a manner such that the data can be stored into the system and later retrieved without the system knowing the contents or owners of the data, and (iii) the ability of the user to control and manage access to the remotely stored data without the system knowing the contents, owners, or accessors of the data.
85 Citations
12 Claims
-
1. A method for providing session protection for user privacy over a network, by means including at least a client and a remote server, wherein a user, using a client application, may submit a request through said client for a specified action to be performed in response to said request by said remote server, said user-submitted request comprising identity information that identifies the user making the request, and action information that specifies the action requested from said remote server by said user, and wherein said communications are provided in a secure and anonymous manner in that said action information is submitted to said remote server without revealing said identity information to said remote server, and in that only said client, and not any facility through which said action information or any response thereto passes in the course of being submitted to or received from said remote server, possesses both said identity information and said action information, said system comprising (in addition to said client and remote server):
-
(a) separating, within said client application, said identity information and said action information from the user'"'"'s information request, encrypting said identity information and said action information, and sending said identity information and said action information as so encrypted to an identity server;
(b) decrypting, within said first intermediate server, said encrypted identity information but not said encrypted action information, and transmitting said encrypted action information to a second intermediate server;
(c) decrypting, within said second intermediate server, said action information, transmitting said decrypted action information to said remote server, receiving the remote server'"'"'s response, encrypting said remote server response, and transmitting said encrypted remote server response to said first intermediate server;
(d) receiving, within said first intermediate server said encrypted remote server response from said second intermediate server, associating said encrypted remote server response with said identity information and sending said encrypted remote server response to said application; and
(e) decrypting, within said client application, said remote server response and forwarding said decrypted remote server response to said client for presentation to said user. - View Dependent Claims (10, 11, 12)
-
-
2. A method for providing private storage of data within a network, to a user operating a computer connected to said network, said computer having a client application resident therein, there being available to said user on said network a server to provide storage services, said method for providing private storage comprising:
-
(a) generating within said client application a first encryption key and a first decryption key;
(b) encrypting said data within said client using said first encryption key, (c) generating a data object identifier within said client application;
(d) creating a data object that contains said data object identifier and said encrypted data;
(e) sending said data object to said server;
(f) storing said data object in a database under the control of said server, using said data object identifier as a locator;
(g) writing said data object identifier to a user object within said client application;
(h) writing said first decryption key to said user object;
(i) generating within said client application a user object encryption key based on information private to said user and reproducible in future sessions by said user, in a manner such that said private information cannot practicably be derived from said user object encryption key;
(j) encrypting said user object with said user object encryption key;
(k) generating within said client application a user object identifier based on information private to said user and reproducible in future sessions by said user, in a manner such that said private information cannot practicably be derived from said user object identifier;
(l) associating said user object identifier with said user object;
(m) sending said user object and user object identifier to said server; and
(n) storing said user object in said database, using said user object identifier as a locator. - View Dependent Claims (3, 9)
-
-
4. A method for providing private storage of data within a network, to a storing user operating a computer connected to said network, wherein access to said data is granted by said user to an accessing user, said computer having a client application resident therein, there being available to said storing user on said network a server to provide storage services, said method for providing private storage with access to said accessing user comprising:
-
(a) said storing user identifying the data to be stored and said accessing user, who is to have access thereto;
(b) generating within said client application a first encryption key and a first decryption key;
(c) encrypting said data within said client using said first encryption key;
(d) generating a data object identifier within said client application;
(d) generating a challenge public-private key pair for said data;
(e) reading with said client application an identifier for said accessing user;
(f) generating a coded user identifier from said user identifier in a manner such that said user identifier cannot practicably be deduced from said coded user identifier;
(g) sending said coded user identifier to said server together with a request for the accessing user'"'"'s message queue public key;
(h) said server identifying the message queue public key associated with said coded user identifier and returning said message queue public key to said client application;
(i) creating a message object comprising said data object identifier, said first decryption key, and said private challenge key, (j) encrypting said message object with said message queue public key;
(k) sending said encrypted message object to the message queue on said server associated with said coded user identifier;
(l) creating a data object comprising said data object identifier, said encrypted data, and said public challenge key;
(m) sending said data object to said server;
(n) said server storing said encrypted data in a database under the control of said server, using said data object identifier as a locator and maintaining an association with said public challenge key. - View Dependent Claims (5, 6, 7, 8)
-
Specification