You can have both. Encrypt everything before uploading, decrypt on download (and I don't mean SSL, I mean client encrypts, sends encrypted data over SSL, data is stored encrypted, only decrypted by client).
Yep, client-side encryption is the only working solution.
The funky bit is that on Linux you can make this fully transparent at the OS level. Expose remote storage via iSCSI, and attach to it so the storage shows up as a block device on your client system. Then put regular on-disk ("partition level") encryption on top of the blockdevice using cryptsetup, and that's it. All storage data sent over the wire is now encrypted, and the crypto mapping layer takes care of hiding the gritty details.
Because the encryption happens beneath the filesystem layer, all the usual tools work as before. For them the only difference is the latency. (Network connection naturally causes an upper bound that is way lower than a local drive.) Works wonderfully for backups, where you want to do incrementals in any case. Just ship rdiff deltas and have a backup tool which takes care of the work.
I actually implemented this as my Master's thesis back in 2006, only to be informed later on that logically identical construct had been shown as early as 2003.
Comments
Yep, client-side encryption is the only working solution.
The funky bit is that on Linux you can make this fully transparent at the OS level. Expose remote storage via iSCSI, and attach to it so the storage shows up as a block device on your client system. Then put regular on-disk ("partition level") encryption on top of the blockdevice using cryptsetup, and that's it. All storage data sent over the wire is now encrypted, and the crypto mapping layer takes care of hiding the gritty details.
Because the encryption happens beneath the filesystem layer, all the usual tools work as before. For them the only difference is the latency. (Network connection naturally causes an upper bound that is way lower than a local drive.) Works wonderfully for backups, where you want to do incrementals in any case. Just ship rdiff deltas and have a backup tool which takes care of the work.
I actually implemented this as my Master's thesis back in 2006, only to be informed later on that logically identical construct had been shown as early as 2003.