views:

108

answers:

3

HI there:

I m a software developer and as (probably) most of you, have an app that has data that i want to back up to a different location.

I created this little application that will back up my data every so often and then keep a copy to ourselves and do another copy and upload it to S3.

The "customer" (ie the actual owner of this data) asked me, how secure is that, and I though well...

  • We have many locations where the data is stored, so at least there will be a copy of the data available
  • The way we upload the data is safe ( or so I think)
  • The data in S3 is encrypted

So I would consider that safe enough for this app, Am I missing something?

+1  A: 

The only two things that I'd make sure are that:

  1. You authenticate for uploading the data with SSL (assuming the data is encrypted when you upload, otherwise it should be)
  2. You don't store the encryption key anywhere where the data is stored.

Based on where I've seen data lost recently I'd say you are more likely to lose it through one of your servers being hacked or a laptop being stolen than a MITM attack or Amazon being hacked.

I'd ask why you don't store it encrypted for your local backup too?

Mike McQuaid
Just a thought, but if you are already encrypting the data, what is the point of uploading it via SSL too?
Simon P Stevens
Extra layer of security? Also, presumingly one has to log in to S3 before one can upload to any particular account, that should definitely be over a secure connection.
KTC
Good points guys, made my answer more specific.
Mike McQuaid
@KTC, S3 authentication uses hmac and a time-dependent token, if the connection is sniffed the worst that happens is the attacker knows the URL (but can't read it later), and can overwrite the data (if you didn't send a MD5, which you should) in the next 15 minutes.
bdonlan
+2  A: 

Depends on how mission critical and confidential the data is.

At one extreme you might want is a multi-site back-up in different seismic locations with biometric guarded fireproof cabinets where the data is encrypted with encryption keys stored on hardware devices... you get my drift right?

The question then is.. well, read the first line.

Ryan Fernandes
A: 

One of the most secure ways to do it is to use public key encryption to encrypt all the data as soon as its created. Then there is no way to decrypt it w/o the secret key, which doesn't even have to be on the computer doing the encryption. This way it doesn't matter how you upload it, you can do it with plain http or ftp or even just post it on the internet :). As long as the secret key is safe your data is safe too. Be careful though not to loose the key or you wont be able to access your data.

BTW, this is exactly what astrails-safe is doing (actually its just one of the modes of operation. you can use plain password or no encryption as well)

Vitaly Kushner