The development team is receiving production data (as Database backup files) in order to fix bugs and application enhancements. The Development team restore these backups in their environment and perform the application development work/bug fixing etc..
Client is concerned about exposing sensitive production data such as PII(Personal Identifiable Information) to the development team. Client needs to screen these sensitive data while preserving its properties where the dev team can perform day to day work without interruption.
There is no requirement of reversing the screened data.
Probable Solution 1 : Data Masking
As I see the most correct solution for this problem is identify the PII database fields and perform Data masking. One problem we are facing is we need to preserve data properties in the DB such as follows.
- The masked data length cannot go beyond the particular field length.
- The masked data should be in the same data type as original data : Eg if the DB field type is int the masked data also should be an int
- If the masked result of value ABC is XYZ, all instances of data ABC should masked to XYZ (This is because some PIIs are using as DB keys)
Since we do not need to reverse masked data, can we use hashing to accomplish this? If so , how to maintain the data properties I described above ?
If we are going to use encryption, can we preserve data properties ? What are the best algorithms we do have?
Are there any other techniques do we have to accomplish this objective ?
Can we prevent data Data inference using data masking ?