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:

  1. 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.
  2. 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).
  3. 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.

  • How fast a phone will do something with a custom-made app is not something strangers can assess. Run tests.
    – schroeder
    Dec 30, 2017 at 20:35
  • "Handle the information this way" - what way? You offered 3 different ways to handle the information. Do you mean the first way? If so, that's pretty safe.
    – schroeder
    Dec 30, 2017 at 20:37
  • 1
    I think what you are missing from the discussion is what you want to secure this file from. It's called a threat analysis. Do you want to protect the data from people with unauthorized access to the phone? From people sniffing the data in transit? From the cloud provider? Who? Where? Once you define this, then that answers your questions you have above.
    – schroeder
    Dec 30, 2017 at 20:38


You must log in to answer this question.