A small electrical installation company has a big list of customers. The list contains personal information like names, phone numbers, addresses, info (like what product/installation) and some small notes. The customer data is stored at the computers in the office of the company. The company does not use any cloud service for anything. Backups are manually created and saved in a different location. A computer administrator arranges this. Now the company owner wants to be able to access customer data on his phone. When a customer calls him, he wants to lookup the customer details via something like an app for when he isn't at the office.
The plan is as follows: Customer data will be put into Google Drive. Everytime the data changes this will also be updated on the cloud service. The app uses the Google Drive API to retrieve the customer information. The computer administrator has indicated that he can easily make an app that can do this.
The following options are discussed to make it safe:
- The customer list in the cloud is one big encrypted file using AES. The app has the key. When data is requested from the cloud, the encrypted file can be loaded and decrypted in the app. When data is updated (from the office), the new version of the file will be created, encrypted and sent to the cloud.
- The file in the cloud is not encrypted in total, but every single 'row' containing customer data (in that same file) is encrypted. The advantage is that you can seperate the 'rows' and give every row an unencrypted identifier (like an unique customer number).
- The file itself is not encrypted at all and the app just uses the SSL encryption of the API. The disadvantage is that when someone gets access to the cloud service, he can see the plain file.
The situation seems a little bit unprofessional. They actually want to hide the data even for the cloud service. I think if that's a part of the goal, its actually okay.
The two big questions are: If a file (say 400 Mb) is AES-encrypted, and is decrypted on a pnone, how long does that processing genarally take. Some people say it can take 2 minutes, others say 2 seconds. If it takes too long, it's no option anymore.
And most important: Is it safe enough to handle the information this way? Or is it better to not mess around and just store the file in plain text in the cloud, and load it using the standard SSL of the API.