IP Library Granted Patent US 10,534,931
Granted Patent B2
US 10,534,931 · App. 13/050,690 · Granted Jan 14, 2020

Systems, devices and methods for automatic detection and masking of private data

Inventors: Michael Allen Rogers, Jr. (Federal Way, WA); Eric William Gilbertson (Everett, WA)
Assignee: ATTACHMATE CORPORATION
G06F21/6245G06F17/21G06Q40/00G08B13/19686H04L63/0428H04W12/12G06Q2220/10
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 10,534,931
App. No.
13/050,690
Granted
Jan 14, 2020
Kind
B2
Abstract

Private, personal, secret, or otherwise sensitive data is masked or redacted in response to receiving an event signal indicative of an occurrence, if any, of at least one of a number of defined events associated with the set of data. The data to mask is detected by matching it to one or more defined patterns and then validating it, in the case of the data being a financial account or credit card account number, by using a validation process, such as the Luhn algorithm. Among others, the defined event may be a transmission of the data between a host computer system and a terminal emulator, an entry of the data into a host screen, or an export of a set of host screen data to an external application by an end user computer system.

Claims (46)

1. A computer-implemented method, comprising:

determining, by at least one processor and for each of a plurality of sets of text data, and based on receiving an event signal indicative of an occurrence of at least one of a number of defined events associated with the set of text data, whether the set of text data that gave rise to the occurrence of the event to which the event signal corresponds includes a subset of text data that matches at least one of a number of user-defined patterns and storing, by the at least one processor, the subset of text data in a protected buffer in memory and retaining remaining portions of the set of text data in an unprotected buffer;

causing, by the at least one processor and for at least one of the plurality of sets of text data that is determined to have at least one subset of text data that matches at least one of the number of defined user-patterns, at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns to be masked with masked data by replacing the subset of text data in the unprotected buffer with different data as the masked data from the subset of text data with remaining portions of the set of text data that are not associated with the subset of text data remaining in the unprotected buffer as unmasked data after the at least one subset of text data was removed from the unprotected buffer; and

preventing, by the at least one processor, any exporting and permanent storing of the subset of text data from the protected buffer and detecting data entry events associated with typing, cutting, pasting the subset of text data from the protected buffer and processing the causing in response to the data entry events.

2. The computer-implemented method of claim 1 wherein the number of defined events includes at least a transmission of the set of text data between a host computer system and a terminal emulator executing on an end user computer system, an entry of the set of text data into a host screen displayed by the end user computer system, and an export of a set of host screen data to an external application by the end user computer system.

3. The computer-implemented method of claim 1 , further comprising:

based on determining that the subset of text data matches at least one of the number of user-defined patterns, validating the subset of text data by the at least one processor, wherein the at least one processor performs the causing at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns.

4. The computer-implemented method of claim 3 , further comprising:

alternatively producing an alert by the at least one processor for any subset of sensitive text data that is not validated.

5. The computer-implemented method of claim 3 wherein validating comprises determining whether the subset of text data represents a valid account identifier of a financial account.

6. The computer-implemented method of claim 3 wherein determining whether the subset of text data represents a valid account identifier of a financial account includes executing a user configurable algorithm on the subset of text data.

7. The computer-implemented method of claim 1 wherein the number of user-defined patterns includes a single user-pattern, the single user-pattern consisting of a number of digits representing an account identifier of a financial account.

8. The computer-implemented method of claim 1 wherein the number of user-defined patterns includes a first user-pattern of contiguous digits and a second user-pattern of digits and separator characters which separate some of the digits.

9. The computer-implemented method of claim 1 wherein the number of user-defined patterns includes a user-pattern of digits formed from a number of digits in each of at least two different fields of a data record.

10. The computer-implemented method of claim 1 wherein the number of user-defined patterns includes at least one user defined pattern of digits defined after distribution by a producer of a set of software executable by the at least one processor to perform the computer-implemented method.

11. The computer-implemented method of claim 1 , further comprising:

removing any separator characters of a defined set of extraneous separator characters from the set of text data by the at least one processor before determining whether the set of text data that gave rise to the occurrence of the event to which the event signal corresponds includes the subset of text data that matches at least one of the number of user-defined patterns.

12. The computer-implemented method of claim 1 wherein causing at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns to be masked includes causing at least a first portion of the subset of text data to be masked while causing at least a second portion of the subset of text data to be unmasked.

13. The computer-implemented method of claim 12 wherein the causing at least a first portion of the subset of text data to be masked while causing at least a second portion of the subset of text data to be unmasked is based on a user configurable masking format.

14. The computer-implemented method of claim 1 , further comprising:

logging an identifier of a user identifier and an identifier of the subset of text data by the at least one processor for any occurrence of access to the subset of text data by a user identified by the user identifier.

15. The computer-implemented method of claim 1 , further comprising:

preventing any export of the subset of text data to any other software application by the at least one processor for any subset of text data that matches the at least one of the number of user-defined patterns.

16. The computer-implemented method of claim 1 wherein the occurrence of the at least one of the number of defined events is an end user indicating the set of text data is to be entered as input.

17. A system comprising:

a computer processor; and

a non-transitory memory communicatively coupled to the computer processor having computer-executable instructions stored thereon that when executed by the computer processor cause the computer processor to perform:

for each of a plurality of sets of text data, and based on receiving an event signal indicative of an occurrence of at least one of a number of defined events associated with the set of text data, determining whether the set of text data that gave rise to the occurrence of the event to which the event signal corresponds includes a subset of text data that matches at least one of a number of user-defined patterns and removing the subset of text data from an unprotected buffer in memory that includes the set of text data and storing the subset of text data in a protected buffer within the memory;

for at least one of the plurality of sets of text data that is determined to have at least one subset of text data that matches at least one of the number of defined user-patterns, causing at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns to be masked with masked data by replacing the subset of text data in the unprotected buffer with different text data as the masked data from the subset of text data with remaining portions of the set of text data that are not associated with the subset of text data remaining in the unprotected buffer as unmasked data after the subset of text data was removed from the unprotected buffer; and

preventing any exporting and permanent storing of the subset of text data from the protected buffer and detecting data entry events associated with typing, cutting, pasting the subset of text data from the protected buffer and processing the causing in response to the data entry events.

18. The system of claim 17 wherein the number of defined events includes at least a transmission of the set of data between a host computer system and a terminal emulator executing on an end user computer system, an entry of the set of text data into a host screen displayed by the end user computer system, and an export of a set of host screen data to an external application by the end user computer system.

19. The system of claim 17 wherein the computer-executable instructions, when executed by the computer processor, further cause the computer processor to perform:

based on determining that the subset of text data matches at least one of the number of user-defined patterns, validating the subset of text data by the at least one processor, wherein the causing at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns.

20. The system of claim 19 wherein the computer-executable instructions, when executed by the computer processor, further cause the computer processor to perform:

alternatively producing an alert for any subset of sensitive text data that is not validated.

21. The system claim of 19 wherein the validating comprises determining whether the subset of text data represents a valid account identifier of a financial account.

22. A non-transitory computer-readable medium includes instructions that are executed by at least one computer system to perform:

determining, by the computer system and for each of a plurality of sets of text data, and based on receiving an event signal indicative of an occurrence of at least one of a number of defined events associated with the set of data, whether the set of text data that gave rise to the occurrence of the event to which the event signal corresponds includes a subset of text data that matches at least one of a number of user-defined patterns and removing, by the computer system, the subset of text data from an unprotected buffer in memory having the set of text data and storing, by the computer system, the subset of text data in a protected buffer within the memory;

causing, by the computer system and for at least one of the plurality of sets of text data that is determined to have at least one subset of text data that matches at least one of the number of user-defined patterns, at least a portion of the at least one subset of text data that matches the at least one of the number of user-defined patterns to be masked with masked data by replacing the subset of text data in the unprotected buffer with different text data as the masked data from the subset of text data with remaining portions of the set of text data that are not associated with the subset of text data remaining in the unprotected buffer as unmasked data after the subset of text data was removed from the unprotected buffer;

preventing any exporting and permanent storing of the subset of text data from the protected buffer and detecting data entry events associated with typing, cutting, pasting the subset of text data from the protected buffer and processing the causing in response to the data entry events.

23. The non-transitory computer-readable medium of claim 22 wherein the number of defined events includes at least a transmission of the set of text data between a host computer system and a terminal emulator executing on an end user computer system, an entry of the set of text data into a host screen displayed by the end user computer system, and an export of a set of host screen data to an external application by the end user computer system.

24. The non-transitory computer-readable medium of claim 22 wherein the instructions, when executed by the at least one computer system, further cause at least one computer system to perform:

based on determining that the subset of text data matches at least one of the number of defined user-patterns, validating the subset of text data by the at least one processor, wherein the causing at least a portion of the at least one subset of text data that matches the at least one of the number of defined user-patterns.

25. The non-transitory computer-readable medium of claim 24 wherein the instructions, when executed by the at least one computer system, further cause at least one computer system to perform:

alternatively producing an alert for any subset of sensitive text data that is not validated.

26. The non-transitory computer-readable medium of claim 24 wherein the validating comprises determining whether the subset of text data represents a valid account identifier of a financial account.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF INCORPORATION OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 67670 FRAME 508. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 24, 2025
From: ATTACHMATE CORPORATION
To: ROCKET SOFTWARE, INC.
Reel/Frame 071031/0357 →
SECURITY INTEREST Recorded Jan 10, 2025
From: ADMIRAL SOFTWARE LLC F/K/A AMC SOFTWARE LLC; ROCKET SOFTWARE, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 069819/0708 →
SECURITY INTEREST Recorded Dec 18, 2024
From: ADMIRAL SOFTWARE LLC; ROCKET SOFTWARE, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 069623/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2024
From: ATTACHMATE CORPORATION
To: ROCKET SOFTWARE, INC.
Reel/Frame 067670/0508 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2011
From: ROGERS, MICHAEL ALLEN, JR.; GILBERTSON, ERIC WILLIAM
To: ATTACHMATE CORPORATION
Reel/Frame 025977/0366 →