Secure File Storage Over Non-Trusted FTP?
hmckee writes "Does any software exist that enables me to store/backup/sync files from my local computer to a non-trusted FTP site? To accomplish this, I'm using a script to check timestamps, encrypt and sign the files individually, then copy each file to an offsite FTP directory. I've looked over many different tools (Duplicity, Amanda, Bacula, WinSCP, FileZilla) but none of them seem to do exactly what I want: (1) multi-platform (Windows and Linux), stand-alone client (can be run from a portable drive). (2) Secure backup (encrypted and signed) to non-trusted FTP site. (3) Sync individual files without saving to a giant tar file. (4) Securely store timestamps and file names on the FTP server. Any help or info on alternative solutions appreciated."
This guy was always complaining about headaches. He would constantly be pounding his head into his fist and whimper to me that he felt like his head would split open. He took pain killers all the time, and for a long duration was addicted to a certain prescription pain medication. But none of that helped because as soon as the medication started to wear off, the pain would come right back again.
Finally, I had had enough of his complaining. I told him to stop pounding his head with his fist. Whaddayano! His headaches went away in a day.
Moral of the story: Don't try to find workarounds for your problem. Fix the problem.
I have explicitly asked my web host provider for either SFTP or FTPS. They basically said that it wasn't possible to provide that on a shared host. This seems untrue to me, I just can't state it as a fact since I haven't attempted it myself. But to get what the OP wants, one would essentially need a secure file system implementation on top of FTP. Ie. only the client can see the unencrypted file, not the in between transport over FTP, or the server side disk drive.
"Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
No, it's more like someone running around naked outside holding a frosted pane of glass in front of them wondering if maybe they should also build a tool to hold a second pane of frosted glass behind them.
"secure" and "untrusted" don't go hand in hand. If you want security, don't put things in untrusted spaces. Period.
Are you sure about that? I consider my SSH connections secure even tho' they traverse untrusted links. Same goes for my encrypted mails, https connections to my bank, etc.
Anyway, to the submitter - is areca close to what you want?
There are shills on slashdot. Apparently, I'm one of them.
I'm working on a backup solution that allows people to back up their data to a remote server securely and efficiently. For "efficiently", think rsync: only the differences are sent (and some information necessary to identify what the differences are). For "securely", think assymetric cryptography: your backup is stored in encrypted form, so that only someone who possesses your private key can use it.
All this is currently in very early stages of design. I'd welcome any suggestions for protocols or software I could use. Currently, I am thinking to implement a transactional network block device protocol, and implement the backup protocol on top of that. I still need to decide on a programming language I can use for parts I need to write myself, too (something safe (no buffer overflows, please), yet with byte level access...and no Java or .NET, please).
By the way, this is going to be a commercial product, but the code and the protocols will be open. I'll charge for the storage and bandwidth. :-D
Please correct me if I got my facts wrong.
Am I the only one thinking this is like someone saying they want privacy then running around butt naked then wondering how they can keep their privacy at the same time.
And the answer of course is security through obscuring. Wear a mask ;-)
(I guess you're not completely naked, but hey, close enough)
There are shills on slashdot. Apparently, I'm one of them.
See http://www.truecrypt.org/ for cross platform encryption...you can throw your files in there.
Obligatory blog plug: http://www.caseybanner.ca/
I use Amazons S3 service and a great multi-platform UI called JungleDisk. S3 costs a little bit, but you get security (encryption), backup, reliability for a cheap price. Check out: http://www.amazon.com/s3 and http://www.jungledisk.com/
"secure" and "untrusted" don't go hand in hand. If you want security, don't put things in untrusted spaces. Period.
I disagree. Everywhere you can store your files should be considered "untrusted". And "securing" the files is what we do to mitigate that reality.
duplicity combined with ftplicity:
"Anyone storing data on an unfamiliar FTP server needs to encrypt and sign it to ensure reliable protection against prying eyes and external manipulation. duplicity is just the tool for this, and the ftplicity script from c't magazine makes working with it child's play."
http://www.heise-online.co.uk/security/Backups-on-non-trusted-FTP-servers--/features/79882
http://duplicity.nongnu.org/
If you want security, don't put things in untrusted spaces. Period.
Completely, utterly incorrect. It's a sad comment on the ambient understanding of data security that this got modded insightful.
Trust is seldom a good approach to security. Good security is when you can trust nobody and still sleep at night. That means strong encryption. That is exactly the approach implied by the article and it is exactly the right thing to do.
I think it is very unwise to ever assume any level of trust in the storage of backups, certainly offsite backups. The whole idea of backups is that you keep them around for a long time, in several copies and several locations. The more valuable your data, paradoxically, the more copies you need and the more widely dispersed they should be. This is antithetical to maintaining trust. The right way, indeed the only way out of this paradox is strong encryption.
Even if his userid/passwd are compromised, his data wouldn't.
So if someone used his userid/passwd to delete his archive or overwrite it, his data wouldn't be compromised?
Or has the data no value, so the archive can be deleted/corrupted without loss? Then what is the use of archiving it at all?
This may well mean that despite whatever you do, encypt etc, someone can sniff the password and then simply come in and delete all your files. i.e, whatever other steps you take, this is inherently worthless.
Well, it's feature list is exactly what you want and some more :). Here's the project description:
Manent is an algorithmically strong backup and archival program. It features efficient backup to anything that looks like storage. Currently it supports plain filesystems ("directories"), FTP, and SFTP. Planned are Amazon S3, optical disks, and email (SMTP and IMAP). It can work (making progress towards finishing a backup) over a slow and unreliable network. It can offer online access to the contents of the backup. Backed up storage is completely encrypted. Backup is incremental, including changed parts of large files. Moved, renamed, and duplicate files will not require additional storage. Several computers can use the same storage for backup, automatically sharing data. Both very large and very small files are supported efficiently. Manent does not rely on timestamps of the remote system to detect changes.
Check it out: http://freshmeat.net/projects/manent. It's under active development (the UI and the setup are currently in fetal stage) but the basic functionality is there and is well tested.
Disclaimer: I am the author.
A rabbi and a minister went swimming naked at a lake when some children came. Both ran out of the water to their clothes.
The minister covered his 'private parts' while the rabbi covered his face. When the minister asked why the rabbi did not cover his genitals for the children, the rabbi said : "Hey they recognize me by the face."
Don't fight for your country, if your country does not fight for you.
Then you should have put this as a requirement in your query. But I would ask WHY you want a gui? Backups should be set-and-forget! My USB sticks have multi-platform autorun scripts to execute my backup. I only need an interface if I choose to expand or shrink the backup set--I can edit a text file that has the list of what to exclude.
Python is pretty easy to put on a portable hard drive and there are multiple portable versions.
So I wrote it myself. http://freshmeat.net/projects/manent
It depends on what you put behind the word "security".
"Backup" is also "security". And a cheap of-site backup is better than no off-site backup at all.
I have the same need as the submiter as my ISP provides 10 GiB of public web space available only through FTP (r/w), HTTP (r) or HTTP+PHP (r/w). I have the storage, I need the software to use it while hiding backup content from my ISP and from other web eyes.
After thinking about this, I realize that I never should have written "non-trusted" in the description. I was thinking about FTP in the sense that it's inherently non-secure, which would make "non-trusted" redundant. I actually trust the FTP server as much one can be trusted.
This made me think about side question to which others in this thread have alluded: When is FTP as secure as SFTP? When you're on a non-trusted computer. It's a minor issue, but if you're trying to access an encrypted file from a non-trusted computer, a compromised SFTP client will do you no good if you use the same password on the SFTP server and your encrypted data.
It's been educational reading all these posts and thinking about various security issues with any of the solutions. I'm glad I submitted this question.
Rsyncrypto
http://rsyncrypto.lingnu.com/
Encrypts while making the above sentence untrue - a small change in the file results in a (relatively) small change in the cypher text.
It's stable, been around a while, and is written by me :-)
Shachar
P.s.
It is, in fact, written by me for the purpose of a commercial backup service. The software itself, however, is free.
Access means they can decrypt them. Given enough cycles, encryption can be broken.
What are you talking about? Encryption that can be broken with any feasible level of computing power is worthless. If you're assuming that once the bad guys get your ciphertext they'll be able to decrypt it sooner or later, why encrypt your data at all?
Certainly I'd prefer to have my valuable data stored with both physical security and encryption. But if I had to choose one or the other, I'd definitely choose encryption. If you compare the cost of the security measure with the cost to circumvent it, strong encryption is many orders of magnitude better than physical security.
All encryption can be broken. The solution then, is to ensure that the encryption cannot be broken within a useful timeframe. I really don't care if you manage to decrypt my credit card number if the card has already expired. If I'm having a secret meeting this time tomorrow then the encryption only needs to last just over 24 hours, since by the time you work it out it will be too late.
I actually think you've got it backwards. Encrypt them strongly and you can put the data on a billboard in the centre of picadilly circus and no one will be able to work it out in a useful timeframe. Ever seen Kryptos? http://en.wikipedia.org/wiki/Kryptos The data is public, there are many thousands of people attempting to break it, and yet the hardest section remains unresolved. The acceptable risk is related to the minimum amount of time that you can allow for the code to be broken, which determines how strong you need your encryption.
This may well mean that despite whatever you do, encypt etc, someone can sniff the password and then simply come in and delete all your files.
i.e, whatever other steps you take, this is inherently worthless.
Hardly. As long as the data is encrypted well enough to stop people from stealing or modifying the data in ways that could have serious privacy and financial implications this is a net gain in data availability.
Even if the chance of someone doing this was as high as 5% over the period in question, it would still mean that there was 95% chance of you having a good off site backup. That is better than nothing as long as you realise that there is still a 5% risk and don't act like it is totally secure.
As a simplified example; if your PC at home is 95% sure of retaining all of its data in the period and your portable USB hard drive is 95% sure of retaining all of the data, the chance of you losing any data at all is 0.0125%. Even with exaggarated risk factors, this is not bad.
I think you've missed the point. If you're not allowing access to the files then encryption isn't particularly important now is it?
The whole point of encryption is that you could email it to your arch-nemesis and they would still be unable to decrypt it in a useful time-frame. Take AES with a 256 bit key. That would (on average) take all of the computers in the world millions of years to brute force. It's possible that someone could get lucky, but they'd have to dedicate years of processing time on the off-chance that you had encrypted something particularly juicy.
Lol.. If your going to pay for insecure redundancy, why not consolidate the expense and use a secure solution from the start?
That's assuming a "secure solution" exists. I think I adequately proved that such a "secure solution" is at least as impractical -- it pretty much involves a machine that you've configured running in the apartment of someone you trust not to let it be physically tampered with.
Your missing the point, FTP isn't secure. You transmit the user name and passwords in plain text.
Yeah, I got that. So what?
And even though crypto is pretty good, it isn't fool proof nor it is impossible to break.
Fine then -- so suppose I use your "secure solution" from the start, and I'm using rsync over ssh to a machine in my friend's apartment.
What's to stop them from cracking the SSH?
After checking your credentials, making sure you as well as your server is in the US and under the US's jurisdiction, yes, I probably would. I'm not against a remote backup,
Neither am I.
Suppose for a moment that you wouldn't. Does encrypting the files start to make sense?
If you're already encrypting the files, SFTP doesn't buy you a lot over FTP.
Well, there are some things that you have to trust that ethic laws and plain old laws will stop someone from doing something.
Unless my files are encrypted. Then I don't actually have to trust "ethic laws" or "plain old laws" -- short of being myself kidnapped and waterboarded, I'm safe.
AES 256 is something like 10^(76) possible answers which is huge. But by breaking down the possibilities, you have a better chance of getting lucky.
Right. But let's do the math. Assume a million computers:
10^76 / 10^6 = 10^70.
Is it really that much more likely that you will get lucky with 10^70 possibilities than with 10^76?
when you divide the pool down to the number of nodes, you could end up with it being within the first day of calculation.
Right. Still isn't going to happen.
See, Quantum Physics also predicts that it's entirely possible that every molecule in your body could simultaneously jump a foot to the right. It's just so ridiculously improbable that, in fact, no one has ever seen it happen -- and no one ever will.
Let's assume, for the moment, that each compromised machine has a dual-core 2 ghz chip -- likely far less on most, but let's just assume. Assume 1.5 million of them. Assume that it takes only one cycle to attempt one key -- it doesn't, but pretend it does. And assume that threading is perfect -- you can keep both cores warm -- you can't, but pretend you can.
Note that all of these allowances are in your favor.
So, that's 2 ghz = 2 billion operations, times 2 cores per machine, times 1.5 million machines. By my count, that's 6 quadrillion tests per second. That's a lot, right?
Let me give you some more numbers: 60 seconds per minute, 60 minutes per hour, 24 hours per day, 365 days per year. So, a little over 31.5 million seconds in a year.
It will take 52849653306274315810851830343929408752938685099409408 years to search that keyspace.
That also means that the probability of a hit in the first 100 years, assuming that the key could be anywhere in the keyspace, is approximately 0.00000000000000000000000000000000000000000000000000189216 -- percent.
Adjusting for Moore's Law, and assuming that we'll have 2^(2*50) = 2^100 times more power by then -- and then, to make the math simpler, assuming we have that kind of power from now until then -- it's still about 0.0000000000000000000023986 -- again, that's a percentage.
I keep trying to make your odds better, and I still can't get anything remotely realistic to suggest that even if a botnet were devoted full-time to cracking my personal backup, that there's even a reasona
Don't thank God, thank a doctor!