IP Library Granted Patent US 12711270
Granted Patent B1
US 12711270 · App. 18/429,024 · Granted Aug 18, 2026

Allowing programmatic access to customer data in a privacy-preserving manner

Inventors: Alan D. Ross (Hingham, MA); Vadan Thimmegowda (San Jose, CA)
Assignee: Cisco Technology, Inc.
G06F21/6254G06F21/604G06F2221/2111G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12711270
App. No.
18/429,024
Granted
Aug 18, 2026
Kind
B1
Abstract

A method comprises obtaining personal identifiable information (PII) acquired by a production environment of a software application. The method further comprises transforming the PII to produce de-identified data corresponding to the PII, and enabling access to the de-identified data corresponding to the PII by a development environment of the software application while preventing access to the PII by the development environment of the software application.

Claims (59)

1 . A method comprising:

obtaining a data packet comprising personal identifiable information (PII) acquired by a production environment of a software application, wherein the data packet is labeled with one or more data tags comprising at least one of a region tag, a source type tag, or a company tag;

transforming the PII to produce de-identified data corresponding to the PII by applying one or more of a central de-identification policy or a region specific de-identification policy to the PII; and

enabling, by a computer system, access to the de-identified data corresponding to the PII by a development environment of the software application while preventing access to the PII by the development environment of the software application by applying role-based access control to the de-identified data, wherein:

the enabling access to the de-identified data and the preventing access to the PII collectively comprise applying a de-identification policy to the PII to produce the de-identified data, and applying the role-based access control to control access by a plurality of software development users to the de-identified data; and

the applying the de-identification policy comprises automatically selecting a region-specific de-identification policy, of a plurality of region-specific de-identification policies, for use in de-identifying the PII, wherein the plurality of region-specific de-identification policies comprise de-identification policies for a plurality of different geographic regions corresponding respectively to a plurality of different political entities; and

the selecting the region-specific de-identification policy is based on a region identifier contained in a received data packet that contains the PII.

2 . The method as recited in claim 1 , wherein the transforming is performed in response to a request for data containing the PII from a user of the development environment of the software application.

3 . The method as recited in claim 1 , wherein the transforming is performed in the production environment of the software application upon acquisition of data containing the PII by the production environment of the software application, prior to any request for the data containing the PII from the development environment of the software application.

4 . The method as recited in claim 1 , wherein the transforming is performed in the production environment of the software application upon acquisition of data containing the PII by the production environment of the software application, prior to any request for the data containing the PII from the development environment of the software application, and wherein the transforming comprises updating a lookup table with a key that maps the de-identified data to the PII.

5 . The method as recited in claim 1 , wherein the transforming is performed in the development environment of the software application, prior to any request for the data containing the PII from a user of the development environment.

6 . The method as recited in claim 1 , further comprising:

enabling a user of the development environment to use the de-identified data to train one or more machine learning models associated with the software application.

7 . The method as recited in claim 1 , wherein the software application is a cybersecurity application.

8 . The method as recited in claim 1 ,

wherein the de-identification policy and role-based access control are applied in the development environment.

9 . The method as recited in claim 1 , wherein

the role-based access control is based on a source type identifier in the data packet.

10 . The method as recited in claim 1 , further comprising:

generating, by a computer system, a user interface that enables a user to specify and update a plurality of data de-identification policies, including a separate data de-identification policy, to be applied by a computer system, for ingested data associated with each of a plurality of geographic regions, the plurality of geographic regions corresponding respectively to a plurality of different political entities that have different data privacy laws.

11 . The method as recited in claim 1 , further comprising:

generating, by a computer system, a user interface that enables a user to specify and update a plurality of data de-identification policies, including a separate data de-identification policy, to be applied by a computer system, for ingested data associated with each of a plurality of geographic regions, the plurality of geographic regions corresponding respectively to a plurality of different political entities that have different data privacy laws;

ingesting, into the computer system, a plurality of data elements, each containing at least a portion of the PII; and

determining, by the computer system, a geographic region associated with each of the data elements;

wherein the transforming the PII to produce de-identified data includes automatically identifying a de-identification policy to use for each of the data elements, based on the associated geographic region.

12 . The method as recited in claim 1 , further comprising:

ingesting, into the computer system, a data element containing PII;

in response to the ingesting of the data element,

performing said transforming, including applying a de-identification policy to the data element, and

storing a plurality of versions of the data element, each version representing the data element after a different level of PII de-identification has been performed;

receiving, from a user, a request for access to the data element;

determining a level of access associated with the user; and

selecting one of the stored plurality of versions of the data element to be provided to the user, based on the level of access associated with the user.

13 . The method as recited in claim 1 , further comprising:

receiving, from a user, a request for access to a stored data element that includes PII;

determining a level of access associated with the user; and

in response to the request for access to the stored data element,

selecting one of a plurality of de-identification policies to be applied to the data element based on the level of access associated with the user, each of the plurality of de-identification policies corresponding to a different level of PII de-identification;

retrieving the stored data element;

applying the selected de-identification policy to the data element to produce a modified data element; and

providing the modified data element to the user.

14 . A non-transitory computer-readable medium having stored therein instructions, execution of which by at least one processor in a processing system causes the processing system to perform operations including:

obtaining a data packet comprising personal identifiable information (PII) acquired by a production environment of a software application, wherein the data packet is labeled with one or more data tags comprising at least one of a region tag, a source type tag, or a company tag;

transforming the PII to produce de-identified data corresponding to the PII by applying one or more of a central de-identification policy or a region specific de-identification policy to the PII; and

enabling, by a computer system, access to the de-identified data corresponding to the PII by a development environment of the software application while preventing access to the PII by the development environment of the software application by applying role-based access control to the de-identified data, wherein:

the enabling access to the de-identified data and the preventing access to the PII collectively comprise applying a de-identification policy to the PII to produce the de-identified data, and applying the role-based access control to control access by a plurality of software development users to the de-identified data; and

the applying the de-identification policy comprises automatically selecting a region-specific de-identification policy, of a plurality of region-specific de-identification policies, for use in de-identifying the PII, wherein the plurality of region-specific de-identification policies comprise de-identification policies for a plurality of different geographic regions corresponding respectively to a plurality of different political entities; and

the selecting the region-specific de-identification policy is based on a region identifier contained in a received data packet that contains the PII.

15 . The at least one non-transitory computer-readable medium as recited in claim 14 , such that the transforming is performed in response to a request for data containing the PII from a user of the development environment of the software application.

16 . The at least one non-transitory computer-readable medium as recited in claim 14 , such that the transforming is performed in the production environment of the software application upon acquisition of data containing the PII by the production environment of the software application, prior to any request for the data containing the PII from the development environment of the software application.

17 . A computer system comprising:

at least one processor; and

at least one non-transitory computer-readable storage medium having stored thereon instructions, execution of which by the at least one processor causes the computer system to perform operations including:

obtaining a data packet comprising personal identifiable information (PII) acquired by a production environment of a software application, wherein the data packet is labeled with one or more data tags comprising at least one of a region tag, a source type tag, or a company tag;

transforming the PII to produce de-identified data corresponding to the PII by applying one or more of a central de-identification policy or a region specific de-identification policy to the PII; and

enabling, by a computer system, access to the de-identified data corresponding to the PII by a development environment of the software application while preventing access to the PII by the development environment of the software application by applying role-based access control to the de-identified data, wherein:

the enabling access to the de-identified data and the preventing access to the PII collectively comprise applying a de-identification policy to the PII to produce the de-identified data, and applying the role-based access control to control access by a plurality of software development users to the de-identified data; and

the applying the de-identification policy comprises automatically selecting a region-specific de-identification policy, of a plurality of region-specific de-identification policies, for use in de-identifying the PII, wherein the plurality of region-specific de-identification policies comprise de-identification policies for a plurality of different geographic regions corresponding respectively to a plurality of different political entities; and

the selecting the region-specific de-identification policy is based on a region identifier contained in a received data packet that contains the PII.