Skip to main content
Version: 3.0

Default Maskers

Overview

Obfusware is configured with a set of default maskers that are appropriate for the most common classes of sensitive data. An Obfusware masker is a specific configuration of an Obfusware data masking algorithm. The default maskers configurations are loaded at startup. Obfusware also allows additional maskers to be defined and loaded through the use of JSON configurations loaded programmatically or using pre-defined configuration files.

Default Maskers

IdentityMasker

Simple identity masker which performs a NOP masking operation and returns the original object to be masked. The IdentityMasker can be useful for testing and benchmarking.

Algorithm: Identity

Example
        original value: AnExampleString
        masked value: AnExampleString

RedactMasker

Redaction masker replaces strings with the string <REDACTED>.

Algorithm: Redact

Example
        original value: AnExampleString
        masked value: <REDACTED>

HiddenMasker

Replaces the characters of the string being masked with the * character.

Algorithm: Hidden

Example
        original value: AnExampleString
        masked value: ***************

LoremIpsumMasker

Replaces the text being masked with an equivalent (less than or equal) length Lorem Ipsum text. For short text strings the minimum returned is the string Lorem.

Algorithm: TextSubstitution

Example
        original value: The quick brown fox jumped over the lazy dogs.
        masked value: Lorem ipsum dolor sit amet, consectetur.

EmailMasker

Replaces an email address with an email address for the domain @example.com. The user-part (before the @) is replaced with name generated using a first name or initial and a last name with a possible 3-4 digit number (example: msmith1234@example.com).

Algorithm: Email

Example
        original value: johnsmith@company.com
        masked value: mbrown1234@example.com

USLastNameMasker

Replaces original string data with a realistic, culturally USA, last name.

Algorithm: HashList

Example
        original value: MacDonald
        masked value: Figeroa

USFirstNameMasker

Replaces original string data with a realistic, culturally USA, first name.

Algorithm: HashList

Example
        original value: Veronika
        masked value: Maryann

USFullNameMasker

Replaces original string data with a realistic, culturally USA, full name (Firstname Lastname).

Algorithm: HashList

Example
        original value: Mattie Poquette
        masked value: Willard Kolmetz

USCommaNameMasker

Replaces original string data with a realistic, culturally USA, lastname first, comma seperated full name (i.e. Lastname, Firstname).

Algorithm: HashList

Example
        original value: Gillian, Valentine
        masked value: Kolmetz, Willard

USStreetAddress1Masker

Replaces original string data with a realistic USA street address.

Algorithm: HashList

Example
        original value: 12 Clark St
        masked value: 74 S Westgate St

USCityMasker

Replaces original string data with a realistic USA city address.

Algorithm: HashList

Example
        original value: Brooklyn
        masked value: Albany

USStateNameMasker

Replaces original string data with a realistic USA State name.

Algorithm: HashList

Example
        original value: New York
        masked value: Maryland

USStateAbbrMasker

Replaces original string data with a realistic USA State abbreviation.

Algorithm: HashList

Example
        original value: NY
        masked value: MD

CountryMasker

Replaces original string data with a realistic Country name.

Algorithm: HashList

Example
        original value: Switzerland
        masked value: Denmark

CountryAbbrMasker

Replaces original string data with a realistic Country abbreviation.

Algorithm: HashList

Example
        original value: CH
        masked value: DK

USCountyMasker

Replaces original string data with a realistic USA County name.

Algorithm: HashList

Example
        original value: Dallas County
        masked value: Macon County

USVariableDateMasker

Replaces the original date item, in US m/d/yyyy format, with a new date with the same month and year but a different day value.

Algorithm: MultiDate

Example
        original value: 1/31/1963
        masked value: 1/15/1963

SSNMasker

Replaces the original Social Security Number (SSN) string by generating a new SSN preserving the first three digits

Algorithm: Segment

Example
        original value: 900-12-3456
        masked value: 900-65-7890

SSNLast4Masker

Replaces the all digits except the last 4 digits of the Social Security Number (SSN) string being masked with the '*' character

Algorithm: Segment

Example
        original value: 900-12-3456
        masked value: ***-**-7890

CCLast4Masker

Replaces all but the last 4 digits of the credit card number with the '*' character

Algorithm: CCAccount

Example
        original value: 3782 822463 10005
        masked value: **** ****** *0005

CreditCardMasker

Generates a new credit card number, preserving the first 4 digits and generating a valid Luhn digit. If the credit card number is invalid (Luhn check is false), then the digits are replaced by all '1' digits.

Algorithm: CCAccount

Example
        original value: 3782 822463 10005
        masked value: 3782 231620 76882

US555TelephoneMasker

Generates a new telephone number, replacing the exchange with '555' and the final digits with a new sequence of digits. Since there are no '555' exchanges, this can be used to prevent unwanted potential calls by automated systems.

Algorithm: USTelephone

Example
        original value: 603-971-1234
        masked value: 603-555-2143

USExchangeTelephoneMasker

Generates a new telephone number, replacing the exchange and the final digits with a new sequence of digits.

Algorithm: USTelephone

Example
        original value: 603-971-1234
        masked value: 603-732-2143

VariableZipcodeMasker

Generates a new zipcode, preserving the first 3 digits, and replacing the 4 & 5 digits and replacing any plus4 digits.

Algorithm: USZipcode

Example
        original value: 03031-1234
        masked value: 03055-4321

What other maskers does Obfusware support

Obfusware supports over a dozen different masking algorithms. Each of these algorithms can be configured to implement multiple maskers which depend on the specific parameters being used. The number of specific maskers which can be configured is virtually unlimited.