Masking Extensions (MXS-1302)

[MXS-1306] Obfuscation Created: 2017-06-29  Updated: 2017-07-20  Resolved: 2017-07-18

Status: Closed
Project: MariaDB MaxScale
Component/s: masking
Affects Version/s: None
Fix Version/s: 2.2.0

Type: Sub-Task Priority: Major
Reporter: Johan Wikman Assignee: Massimiliano Pinto (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Sprint: 2017-37, 2017-38

 Description   

It should be possible to use the masking filter for obfuscating values. That is, o consistently replace a certain value with something else.

For instance:

Bob   -> Dfg
Cecil -> Ghkrd
John  -> Klot
Bob   -> Dfg
John  -> Klot
...

The two critical properties are:

  • A particular string should always be obfuscated in the same way.
  • The obfuscation method should be such that it should not be trivial to reach to the original value from the obfuscated value (not e.g. ROT13).

In the masking configuration file this could be represented e.g. as.

{
    "rules": [
        {
            "obfuscate": {
                "column": "ssn"
            },
            "applies_to": [ ... ],
            "exempted": [ ... ]
        },
    ...

but note that the above is only for illustrative purposes. The actual way for expressing what should be obfuscated and how is to be defined during the development.



 Comments   
Comment by Massimiliano Pinto (Inactive) [ 2017-07-05 ]

A new rule option has been added: ‘obfuscate’:
{
"obfuscate":

{ "column": "name" }

-bash-4.1$ select id, name from test.masking"
-------------+

id name

-------------+

1 znffv
2 erzb
1999 crcr
99 N-n&(Z

-------------+

Currently a basic obfuscation routine is used.

Configuration:

"rules": [
{
"obfuscate":

{ "column": "name" }

}, ...

Comment by Massimiliano Pinto (Inactive) [ 2017-07-18 ]

New output follows the new algorithm:

name = 'remo'

+------
+| name |
+------
+| $-~) |
+------

Only printable ASCII chars in output, range 32 .. 126, from a nonreversible obfuscation method.

Comment by Massimiliano Pinto (Inactive) [ 2017-07-18 ]

Nw obfuscation method, tests and code review

Comment by Dipti Joshi (Inactive) [ 2017-07-20 ]

Massimiliano Pinto Where can I find user documentation on this ?

Comment by Massimiliano Pinto (Inactive) [ 2017-07-20 ]

Current documentation for partial masking and obfuscation is here:

https://github.com/mariadb-corporation/MaxScale/blob/develop/Documentation/Filters/Masking.md

Generated at Thu Feb 08 04:05:45 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.