Am a BSA for a web project. and currently we have a web based reporting application with all types of secure, sensitive information of a customer.
The business has asked for a DATA MASKING on such sensitive and secure information.
I would like to aks you all on the possible approaches to implement data masking.
Assmuing that, the data base is not touched for Masking activity do we have any masking algorithms available in JAVA.
in the code level can we implement the below requirements.
1. Data mask on the screen display for SSN #, bank card, Medical Info # etc.
2. Data Mask on export to file with above fields.
STOP THAT PROJECT IMMEDIATELY!
Data needs to be masked at the source before it ever leaves the database. That is the ONLY way to ensure that it is protected.
Sending sensitive data such as SSN#, bank card, Medical Info# over an unprotected network to an unprotected client machine is NO security at all. Your company is acting irresponsibly, and possibly illegally, if it allows such data to be transported in such an unsecure manner.
Both Federal and State laws (e.g. HIPAA requirements) mandate certain minimum protections for such sensitive data and violations of those laws carry stiff penalties and subject you and your company to the threat of some serious lawsuits.
You should raise this security issue to your IT manager and should not proceed to develop any such unprotected data transfers until you receive permission in writing (or email) from that manager to do so. That will at least give you some protection from future lawsuits should one of the 'owners' of that sensitive information find out that your company is NOT protecting their private information as required by law.
Would you want your bank to send your sensitive information and transmit your PIN number for your accounts over an unsecured network? What you have proposed doing would constitute a high-level security risk and should not be done.
I couldn't agree more. By the way, you must protect the data throughout your system(s) and not just in your Java. For example, your database shouldn't have unencrypted/unmasked sensitive data too. Also, you should not be sending such information to your log file for status or exception reporting. your programmers should not have access to the actual data for development work. Your web site (https) should also be hardened from SQL injection attacks, etc. This isn't really my area of knowledge so I can' t help any further. I would also question why you need bank account numbers. Perhaps you should look into a trusted third party (paypal?) to handle as much of that sensitive data as possible.