# US 8,572,119 B2 · System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,572,119 B2
- Document ID: US8572119B2
- Status: Granted
- Kind: B2
- Application number: 12/206,079
- Filed: 2008-09-08
- Published: 2009-06-25
- Granted: 2013-10-29
- Earliest claimed: 1999-12-02
- Assignees: Ponoi Corp.
- Applicants: Colin Savage; Christopher Petro; Sascha Goldsmith
- Inventors: Colin Savage; Christopher Petro; Sascha Goldsmith
- Web page: https://patentgrep.com/patent/US8572119B2

## CPC

- G06F 21/31: User authentication
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- G06Q 20/383: {Anonymous user system}
- H04L 9/3213: {using tickets or tokens, e.g. Kerberos (network architectures or network communication protocols for entities authentication using tickets in a packet data network H04L63/0807)}
- H04L 9/3271: {using challenge-response}
- H04L 63/0407: {wherein the identity of one or more communicating identities is hidden (cryptographic mechanisms or cryptographic arrangements for anonymous credentials or for identity based cryptographic systems H04L9/00)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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.

## Claims

### Claim 1

A method for providing private storage of data on a server within a network, wherein the storage is persistent, encrypted, and anonymous, to a user having a client computer connected to the network, comprising:
(a) providing to the user a client application, the client application being configured to:
generate a first encryption key and a first decryption key;
encrypt the data using the first encryption key;
generate a data object identifier;
create a data object comprising the data object identifier and the encrypted data;
write the data object identifier to a user object;
write the first decryption key to the user object;
generate a user object encryption key based on information private to the user and reproducible in future sessions by the user, in a manner such that the private information cannot practicably be derived from the user object encryption key;
encrypt the user object with the user object encryption key;
generate a user object identifier based on information private to the user and reproducible in future sessions by the user, in a manner such that the private information cannot practicably be derived from the user object identifier;
associate the user object identifier with the user object;
send the data object to the server; and
send the user object and user object identifier to the server;
(b) responsive to receiving the data object from the user, storing the data object in a database under the control of the server, using the data object identifier as a locator; and
(c) responsive to receiving the user object from the user, storing the user object in the database, using the user object identifier as a locator.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
(a) in the step of providing the client application to the user, providing said client application with additional configuration to perform as follows:
generate a user object identifier based on the same information that was used to generate the user identifier by which the data had previously been stored;
send the user object identifier and a request for a user object to the server; and
generate a user object decryption key based on the same information that was used to generate the user object encryption key by which the user object was previously encrypted;
responsive to receiving the requested user object from the server:
decrypt the user object using the user object decryption key;
select from the decrypted user object the data object identifier corresponding to the encrypted data desired to be retrieved;
send the data object identifier and a request for the encrypted data to the server; and
read the data object decryption key from the decrypted user object; and
responsive to receiving the encrypted data from the server:
decrypt the encrypted data with the data object decryption key; and
make the decrypted data available to the user;
(b) receiving the user object identifier and a request for the user object from the client application, and responsive thereto, if the user object identifier matches a user object identifier previously stored by the server, sending the requested user object to the client application; and
(c) receiving the data object identifier and the request for the encrypted data from client application, and responsive thereto, retrieving the encrypted data from the database, using the data object identifier as a locator, and sending the encrypted data to the client application.

### Claim 3 (depends on 1)

The method of claim 1, wherein data transfer to and from the server is conducted in accordance with secure socket layer protocols.

### Claim 4 (depends on 2)

The method of claim 2, wherein data transfer to and from the server is conducted in accordance with secure socket layer protocols.
