Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

I have read that Dropbox encrypts all the files that are uploaded with a single encryption key. Where is this key stored and why do they bother encrypting the stored items if they just store the key as well? It seems like if someone got a hold of the data, they could also get a hold of the key. Why is this not the case?

Update:

I am writing some software that will have to solve the problem of encrypting data on a server while still being able to decrypt it myself, but not let others do so. I am interested in how Dropbox solved this problem, not in how reliable/secure dropbox is as a service (though, if it isn't secure, I only want to know how they solved the problem so I can avoid doing it that way).

share|improve this question
    
A nice article it may answer some part of your question dereknewton.com/2011/04/dropbox-authentication-static-host-ids –  Ali Ahmad Oct 18 '13 at 23:20
    
@AliAhmad actually that's not quite what I'm asking since it has nothing to do with what dropbox does with the key they encrypt files with on the server. –  Andrzej Oct 18 '13 at 23:32
    
A cloud service's server-side encryption is a sales pitch. It simply increases the hoops a hacker penetrating their network has to go through. If your data is important, you would either use third-party encryption like GnuPG or use the client-aspects of Dropbox or Dropbox-compliant apps that encrypt/decrypt locally. –  LateralFractal Oct 19 '13 at 2:13
    
Self plug, I wrote a client side app to encrypt files before uploads. Might be a little buggy still though. github.com/Ayrx/pyDropSecure –  Terry Chia Oct 19 '13 at 2:47
2  
@Andrzej Ah. I see. You might want to update the question to mention you are, in effect a cloud provider and wish to know how Dropbox solves this problem. –  LateralFractal Oct 19 '13 at 5:44
show 5 more comments

3 Answers

I've had a short look around, but can't seem to find anything alleging that only a single key is used to encrypt data. Their security overview page does use the word "keys" (plural). The question is also tricky to answer, because Dropbox doesn't go into much detail about their security arrangements.

But key management is really only one link in the chain. For example, even if every file had its own unique key, your files would not be secure if Dropbox happily handed copies of the key and data to anyone who asked.

Briefly:

  1. Dropbox's systems have access to the content of your files (this is how they detect duplicate files, which saves storage space and increases responsiveness).
  2. Dropbox encrypts your files at rest and in transit.
  3. Therefore, Dropbox must have access to (and copies of) the encryption keys.

Also, while Dropbox staff are prohibited by company policy from viewing file content, they still can access it (e.g. if law enforcement compels Dropbox to provide copies).

Therefore, this must mean that the real way Dropbox keeps your files secure is by:

  1. Having internal controls, checks, balances, and audits. (e.g. Logging all unusual file access and following up).
  2. Having a talented legal team to challenge any law enforcement requests that are inappropriate, overly broad, or otherwise harmful to their reputation.

So:

  • Dropbox keeps your files secure against its own staff by having good internal controls.
  • Dropbox keeps your files secure against eavesdropping by encrypting it in transit and at rest
  • Dropbox keeps your files secure against against government agencies by having a good legal team

If you trust Dropbox, great. If you would prefer to not have to trust Dropbox, use Spideroak or Wuala, or encrypt your files yourself before uploading them.

share|improve this answer
    
I am specifically wondering how they would store the key and data separately so that if you got access to the file contents, you would not automatically have access to the key as well. This seems difficult since the server must have access to both the key and the files to do dedup, etc. Also I am wondering this because I am a programmer implementing something similar (not to Dropbox, just an app with encrypted information), not because I am deciding whether or not to use dropbox. –  Andrzej Oct 19 '13 at 1:45
add comment

Dropbox on windows platform uses DPAPI (Data Protection Application Programming Interface) which allows developers to use user's domain authentication credentials to derive secret key for the dropbox key them selves and is machine protected.

Source : A critical analysis of Dropbox software security

share|improve this answer
add comment

Actually I do not see how one can still do dedup when dealing with ciphered data, and sadly I have no expertise on DropBox behavior, however since the edit section of the question shows some broader interest here is my two pence answer on how the above mentioned requirement could have been answered.

When a new account is created, a new ciphering key is generated, and this key is indeed stored along with the data but not in clear form : this key is ciphered using user's credential. Thanks to this:

  • The key cannot be found without finding user's password,

  • When the user changes its password, only the key needs to be re-ciphered with the new password, the key itself remaining the same the data does not need to be wholly re-encrypted.

When there is a requirement (legal, etc.) for some kind of management access over this data, the ciphering key will simply be stored twice, one protected by the user's key as described above, one protected using a secret known at higher management level only (using asymmetric encryption for instance, a server would have the possibility to cipher the key without storing enough knowledge to decipher it).

Such system can be regularly found to secure file storage like file systems and so on. Again, I do not know if DropBox applied this scheme or used any other method (and I doubt that DropBox will ever publish technical details about their internal security, at most some commercial speech).

share|improve this answer
    
I'm not sure this gets you all the way but could you send a hash along with the encypted data that would be used for dedup? –  Crash893 Nov 5 '13 at 15:18
    
@Crash893: User A puts some data. Then user B puts some data: thank to the hash you may indeed detect that this data may be the same as user A. However, will you store this data on disk ciphered with the key of user A, or the key of user B ? Since the data must be ciphered using different keys for different users (otherwise each user could decrypt any data from any user), the ciphered form will be different, and this breaks dedup... –  GZBK Nov 5 '13 at 19:34
    
yes I was figuring that the hash would be generated pre crypto. I do not think that the hash would pose a significant threat to reverse engineering the cipher. most modern crypto methods are resistant to even known text attacks I'm not sure how a SHA-3-512 hash would provide a viable attach surface. –  Crash893 Nov 8 '13 at 1:28
    
My concern is not about a security issue regarding the hash. The fact is that if User A and User B use different random crypto keys, the ciphered data stored on disk will be actually different (even if the original data was the same), and therefore dedup will not apply since the data stored on the disk will be actually different (duplication = very same data present twice on the disk). To allow dedup you should use the same crypto key for all users, but this will have a very high impact on the data security. –  GZBK Nov 8 '13 at 8:34
    
Agreed Like i said before you could use hash to determine you have a collision but I'm not sure what you could do about it. it would seem pretty obvious to me that dropbox able to decrypt at will so. It would be a neat idea to have common files be encrypted with a "universal" key (or no key at all) and things that don't have a hash collision (aka files you have created) encrypted with a known only to you key. It would never fly of course but its a neat idea –  Crash893 Nov 8 '13 at 17:14
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.