# US 11,121,883 B1 · Protecting user privacy in playback of user sessions

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

- Number: US 11,121,883 B1
- Document ID: US11121883B1
- Status: Granted
- Kind: B1
- Application number: 17/205,751
- Filed: 2021-03-18
- Granted: 2021-09-14
- Earliest claimed: 2020-03-18
- Assignees: FullStory, Inc.
- Applicants: FullStory, Inc.
- Inventors: Joel Grayson Webber; Benjamin David Dean; Mark Nicholas Seth Fowler
- Web page: https://patentgrep.com/patent/US11121883B1

## CPC

- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- H04L 63/0263: {Rule management}
- H04L 63/0435: {wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06)}
- H04L 2209/04: Masking or blinding
- H04L 2209/16: Obfuscation or hiding, e.g. involving white box
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for protecting user privacy in the playback of user sessions are described. In one aspect, a method includes accessing, for a user session with one or more user interfaces, event data that includes interface data specifying a structure of the user interface(s), and, for each of one or more user interface elements for which content was presented by the user interface(s) during the user session, an encrypted content element including the content of the user interface element encrypted using a public key corresponding to a rule enabling recording of the content of the user interface element and data identifying the rule. Playback of the user session is generated including, for each of the interface element(s), decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session.

## Claims

### Claim 1

A method, comprising:
accessing, for a user session with one or more user interfaces, event data that includes:
interface data specifying a structure of the one or more user interfaces; and
for each of one or more user interface elements for which content was presented by the one or more user interfaces during the user session:
an encrypted content element comprising the content of the user interface element encrypted using a given public key corresponding to a rule enabling recording of the content of the user interface element, wherein each rule corresponds to a key pair that includes a public key and a private key corresponding to the public key; and
data identifying the rule enabling recording of the content of the user interface element;
generating, based on the user session data, a playback of the user session that presents the one or more user interfaces, the generating including:
for each of the one or more interface elements:
determining, based on the data identifying the rule for the interface element, whether a key storage unit includes the private key of the key pair corresponding to the rule;
responsive to determining that the key storage unit includes the private key of the key pair corresponding to the rule, decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session; and
responsive to determining that the key storage unit does not include the private key corresponding to the rule, presenting, in place of the content of the user interface element, a masking element.

### Claim 2 (depends on 1)

The method of claim 1, wherein each rule corresponds to one or more user interface elements and enables recording of content of the corresponding one or more user interface elements.

### Claim 3 (depends on 1)

The method of claim 1, wherein presenting, in place of the content of the user interface element, a masking element comprises:
determining a presentation size of an object that includes the content of the user interface element; and
sizing the masking element based on the presentation size of the object.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving a request to delete a given rule; and
in response to receiving the request to delete the given rule:
deleting the given rule from a set of active rules that are downloaded to client devices prior to or during user sessions with user interfaces; and
deleting the private key of the key pair corresponding to the given rule.

### Claim 5 (depends on 1)

The method of claim 1, wherein the one or more user interfaces present a set of user interface elements that includes, as whitelisted user interface elements, the one or more user interface elements and one or more non-whitelisted user interface elements, the method further comprising:
providing, to a client device at which the user session occurs and prior to the user session occurring, the rule corresponding to each of the one or more user interface elements and the public key of the key pair corresponding to the rule.

### Claim 6 (depends on 5)

The method of claim 5, further comprising providing, to the client device, data that causes the client device to:
replace content of each non-whitelisted user interface element with a corresponding masking element; and
provide the corresponding masking element for each non-whitelisted element with the session data.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
each encrypted content element is encrypted using a public key for a user of the user session; and
generating, based on the user session data, playback of the user session that presents the one or more user interfaces comprises:
for each of the one or more interface elements:
determining whether the key storage unit includes a private corresponding to the public key of the user;
whenever the key storage unit includes the private key corresponding to the public key of the user, decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session; and
whenever the key storage unit does not include the private key corresponding to the public key of the user, presenting, in place of the content of the user interface element, the masking element.

### Claim 8

A system comprising:
a data storage device; and
one or more computers that interact with the data storage device and execute instructions that cause the one or more computers to perform operations comprising:
accessing, for a user session with one or more user interfaces, event data that includes:
interface data specifying a structure of the one or more user interfaces; and
for each of one or more user interface elements for which content was presented by the one or more user interfaces during the user session:
an encrypted content element comprising the content of the user interface element encrypted using a given public key corresponding to a rule enabling recording of the content of the user interface element, wherein each rule corresponds to a key pair that includes a public key and a private key corresponding to the public key; and
data identifying the rule enabling recording of the content of the user interface element;
generating, based on the user session data, a playback of the user session that presents the one or more user interfaces, the generating including:
for each of the one or more interface elements:
determining, based on the data identifying the rule for the interface element, whether a key storage unit includes the private key of the key pair corresponding to the rule;
responsive to determining that the key storage unit includes the private key of the key pair corresponding to the rule, decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session; and
responsive to determining that the key storage unit does not include the private key corresponding to the rule, presenting, in place of the content of the user interface element, a masking element.

### Claim 9 (depends on 8)

The system of claim 8, wherein each rule corresponds to one or more user interface elements and enables recording of content of the corresponding one or more user interface elements.

### Claim 10 (depends on 8)

The system of claim 8, wherein presenting, in place of the content of the user interface element, a masking element comprises:
determining a presentation size of an object that includes the content of the user interface element; and
sizing the masking element based on the presentation size of the object.

### Claim 11 (depends on 8)

The system of claim 8, wherein the operations comprise:
receiving a request to delete a given rule; and
in response to receiving the request to delete the given rule:
deleting the given rule from a set of active rules that are downloaded to client devices prior to or during user sessions with user interfaces; and
deleting the private key of the key pair corresponding to the given rule.

### Claim 12 (depends on 8)

The system of claim 8, wherein the one or more user interfaces present a set of user interface elements that includes, as whitelisted user interface elements, the one or more user interface elements and one or more non-whitelisted user interface elements, the operations comprising:
providing, to a client device at which the user session occurs and prior to the user session occurring, the rule corresponding to each of the one or more user interface elements and the public key of the key pair corresponding to the rule.

### Claim 13 (depends on 12)

The system of claim 12, wherein the operations comprise providing, to the client device, data that causes the client device to:
replace content of each non-whitelisted user interface element with a corresponding masking element; and
provide the corresponding masking element for each non-whitelisted element with the session data.

### Claim 14 (depends on 8)

The system of claim 8, wherein:
each encrypted content element is encrypted using a public key for a user of the user session; and
generating, based on the user session data, playback of the user session that presents the one or more user interfaces comprises:
for each of the one or more interface elements:
determining whether the key storage unit includes a private corresponding to the public key of the user;
whenever the key storage unit includes the private key corresponding to the public key of the user, decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session; and
whenever the key storage unit does not include the private key corresponding to the public key of the user, presenting, in place of the content of the user interface element, the masking element.

### Claim 15

A non-transitory computer readable medium storing instructions that upon execution by one or more computers cause the one or more computers to perform operations comprising:
accessing, for a user session with one or more user interfaces, event data that includes:
interface data specifying a structure of the one or more user interfaces; and
for each of one or more user interface elements for which content was presented by the one or more user interfaces during the user session:
an encrypted content element comprising the content of the user interface element encrypted using a given public key corresponding to a rule enabling recording of the content of the user interface element, wherein each rule corresponds to a key pair that includes a public key and a private key corresponding to the public key; and
data identifying the rule enabling recording of the content of the user interface element;
generating, based on the user session data, a playback of the user session that presents the one or more user interfaces, the generating including:
for each of the one or more interface elements:
determining, based on the data identifying the rule for the interface element, whether a key storage unit includes the private key of the key pair corresponding to the rule;
responsive to determining that the key storage unit includes the private key of the key pair corresponding to the rule, decrypting the encrypted content element for the user interface element and presenting the decrypted content during the playback of the user session; and
responsive to determining that the key storage unit does not include the private key corresponding to the rule, presenting, in place of the content of the user interface element, a masking element.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein each rule corresponds to one or more user interface elements and enables recording of content of the corresponding one or more user interface elements.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein presenting, in place of the content of the user interface element, a masking element comprises:
determining a presentation size of an object that includes the content of the user interface element; and
sizing the masking element based on the presentation size of the object.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the operations comprise:
receiving a request to delete a given rule; and
in response to receiving the request to delete the given rule:
deleting the given rule from a set of active rules that are downloaded to client devices prior to or during user sessions with user interfaces; and
deleting the private key of the key pair corresponding to the given rule.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the one or more user interfaces present a set of user interface elements that includes, as whitelisted user interface elements, the one or more user interface elements and one or more non-whitelisted user interface elements, the operations comprising:
providing, to a client device at which the user session occurs and prior to the user session occurring, the rule corresponding to each of the one or more user interface elements and the public key of the key pair corresponding to the rule.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19, wherein the operations comprise providing, to the client device, data that causes the client device to:
replace content of each non-whitelisted user interface element with a corresponding masking element; and
provide the corresponding masking element for each non-whitelisted element with the session data.
