Saturday, May 28, 2011

(Un)Trusting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Cloud


Everybody loves The Cloud cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days, and it is not hard to understand why. When every person owns computers (devices), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud is really hard to beat when it comes to syncing all your digital life back and forth between all those devices, and also sharing with your family members, friends, and colleagues at work. From task lists, through calendars, through health & fitness data, to work-related documents. And I'm not even mentioning all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unencrypted email that is out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re.

One doesn't need to be especially smart or security conscious to realize how much this might be a threat to security and privacy. How much easier would it be to attack somebody's laptop if I knew precisely in which hotel and when he or she is planning to stay? How much more expensive would my health and life insurance be, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could get a look at my health and fitness progress? Etc.

But we're willing to sacrifice our privacy and security in exchange for easy of syncing and sharing of our data. We decide to trust The Cloud. What specifically does that mean?

First, it means we trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 particular cloud-based service vendor, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 provides of our training monitoring app and service. We trust that this vendor is: 1) non-malicious and ethical, and so is not going to sell our private data to some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r entity, e.g. insurance company, and 2) that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 software written by this vendor is somehow secure, so it would not be easy for an attacker to break into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir cloud service and download all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's data (and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n sell to health insurance companies).

Next, we trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud infrastructure provider, such as Amazon EC2. We trust that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider is 1) non-malicious and ethical, and that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y won't really read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual machine on which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previously mentioned cloud-service is running (and won't make it available to a local government officials, e.g. in China), and 2) that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y secured cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir infrastructure properly (e.g. it wouldn't be easy for one customer to “escape” from a VM and read all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMs belonging to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r customers).

Finally we trust all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 infrastructure that is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 middle between us and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 service provider, such as e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networking protocols, are safe to use (e.g. we trust all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 engineers working in any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ISP we use won't sniff/spoof our communication, e.g. by using some fake or quasi-fake SSL certs).

So, that's a hell of a lot of trusting! And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stake is high. Do we really need to make such a sacrifice? Do we really need to hand in all our private data to all those organizations? Of course we don't!

First, notice that in majority of cases, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud is only used basically as a on-line storage. No processing, just dump storage. Indeed, what kind of server-side processing does your task list or calender require? Or your freestyle swimming results? Or your conference slides? None.

And we know for very long how to safely keep secrets on untrusted storage, don't we? This is achieved via encryption (and digital signatures for integrity/aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticity). So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea is very simple: let's encrypt all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data before we send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud. The point here is, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encryption must be done by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app that is running on our client device. Not in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud, of course.

Ok, so let's say I have my calendar records encrypted in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud, how do I share it with my ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r devices and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r people, such as my partner and colleagues at work? Very simple – you encrypt each record with a random symmetric key and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n, for every ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r device or person who you want to grant access to your calendar you make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 symmetric key available to this person, by encrypting it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir public key (if you're paranoid, you can even verify fingerprints using some out-band communication channel, such as phone, to ensure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud/service provider didn't do MITM attack on you). What if you want to share only some events (or some details) with some group of people (e.g. only your availability info)? Very simple – just encrypt those records you want to share in non-full access with some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r symmetric key and publish only this key to those people/devices you want to grant such non-full access.

Implementing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above would require writing new end-user apps, or plugins for existing apps (such as Outlook), so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do encryption/decryption/signing/verification before sending cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data out to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud. But what stops cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malicious vendor from offering apps that would be leaking out our secrets, e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 keys? Well, nothing actually. But this time, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vendor would need to explicitly build in some kind of backdoor into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app. The same could be done with any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r vendor, and any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, non-cloud-based app. After all, how do we know that MS Word, which is not cloud-based yet, is not sending out fragments of our texts to Agent Smith? Note how different this is from a situation when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vendor already owns all our data, unencrypted, brought legitimately to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir servers, and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y need to do is to read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own disks. No need to plant and distribute any backdoors!

In practice few vendors would be risking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir reputation and would be willing to build in a backdoor into an app that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n made available to customers. Because every backdoor in such client-exposed code will sooner or later be found (You would really not believe what great lengths all those young people aimed with disassembler and debugger would go to, to win an economy class ticket to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 middle of desert in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hottest summer season, just to be able to deliver a presentation on how evil/stupid a company X is ;).

One problem is, however, with accessing our encrypted cloud over a Web Browser. In contrast to apps, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 web browser content is much less identifiable. An app can have a digital signature – everybody know its an App v 1.1, published by X. As explained above it would be racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r stupid for X to plant a backdoor into such an app. But a Web-delivered Javascript is much more tentative, and it's very possible for X to e.g. deliver various versions of scripts to different customers. Digital signature on client-side scripts, paired with ability to whitelist allowed client-side-scripts, would likely solve this problem.

So, why we still haven't got client-side-encrypted cloud-services? The question is rhetorical, of course. Most vendors actually loves cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of having unlimited access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir customers data. Do you think Google would be happy to give up an opportunity to data mine all your data? This might affect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir ad business, health research, or just Secret Plan To 0wn The World. After our dead body, I can almost hear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m yelling! After all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have just came up with Chrome OS to bring even more data into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir data mining machine...

To sum it up, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no technical reason we must entrust all those people with our most private data. Sooner or later somebody will start selling client-side-encrypted cloud services, and I would be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first person to sign up for it. Hopefully it will happen sooner than later (to late?).

This post also hopefully shows, again, one more aspect – that we can, relatively easy, move most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IT infrastructure out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “TCB” (Trusted Computing Base, used as metaphor here). In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, we can design our systems and services so that we don't need to trust a whole lot of things, including servers and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networking infrastructure (except for its reliability, but not for its security). But, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re always remains one element that we must trust – cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se are our client devices. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are compromised, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker can steal everything.

Strangely most people still don't get it, or get it backwards. Just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that “information is not stored on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPad but kept safe on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corporate network”, doesn't change anything! Really. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker owns your iPad, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n she also can do anything that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 legitimate user could do from this iPad. So if you could get to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company's secret trade data from your iPad's Receiver, so would be able to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware/attacker.

22 comments:

Simon said...

Great, as usual.

Anonymous said...

Great writing.

Anonymous said...

You might be interested in Firefox Sync (formerly Mozilla Weave), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol used in Firefox 4 for synchronization of user bookmarks, browsing history, etc., between multiple instances of Firefox on different systems. It doesnt exactly match your proposed system but does have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same general goal of storing only encrypted data in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud.

Google "firefox sync" for how it's explained to end users, and "how does weave use cryptography" for an explanation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying encryption scheme.

Anon said...

As for online/cloud storage cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are already a few services which provide a "client-side-encrypted cloud service".
Take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 swiss "Wuala" for example: You can store and backup your files, sync cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m between your computers and also share cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r people. It's based on "Cryptree, a cryptographic tree structure which facilitates access control in file systems operating on untrusted storage." (http://dcg.ethz.ch/publications/srds06.pdf)
Every file that leaves cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client gets encrypted, split into smaller fragments (Reed-Solomon) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n sent into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 distributed cloud (meaning: some Wuala-servers in Europe and many peers).
You can also mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 online storage into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 filesystem to access your files faster. It also has file versioning and deduplication ("global deduplication" unfortunaly but that's presumably gonna change/become optional afaik).

More infos about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security here: http://www.wuala.com/blog/2011/05/wualas-encryption-revisited.html

It's my first try "clouding" my data because this time I don't need to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company but only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir client software. Unfortunaly encrypting everything before uploading also means cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's no way to retrieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password if you forget it but we will have to become accustomed to that I think because that's simply how encryption rolls.

Shmerl said...

I agree fully, and like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous commenter also want to point out Mozilla's sync:
http://www.mozilla.com/en-US/mobile/sync/

Such kind of encrypted services are supposed to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 norm, not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exception.

ciastek said...

LastPass does that - https://lastpass.com/whylastpass_technology.php

Anonymous said...

With all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API buzz for each service would it be hard for security community to develop tools for client side encryption?

Ryan M. Ferris said...

It's difficult not to be convinced of a plot against privacy. Whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is location tracking cell phone (being abused by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 feds), "cloud computing", Operating Systems and Hardware with obvious security flaws, long-term 'co-operation' between telcos and governments...

Do you we each need to invent our own protocols, cellular technologies and encryption to achieve privacy?

zintia said...

very interesting but.. for instance i have a lot of documents in docs.google.com
how can I encrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m?
is is possible?

Anonymous said...

More passwords to manage? It will never become mainstream.

Joanna Rutkowska said...

@Anonymous: Whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r you must manage 3 password, or 33, or 333, or 3333 passwords -- it all takes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same amount of effort. In each case you should remember only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 master password/PIN.

Anonymous said...

@Joanna:

Any comments on Wuala service?

C. Brocas said...

As previously said, client side encryption effort exist in mainstream software/service like Firefox (Sync). You are able to rely on Mozilla Sync cloud storage or on your own sync server.

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r effort is syncany ( http://www.syncany.org/ ) where plugins provides you different types of storage backends (imap, rackspace, amazon etc) for your encrypted file chunks.

You are totally right johanna, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last thing that owns all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 keys is ... cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client side device.

But nowadays, in companies, when you are speaking about security aspect of a cloud project, even client side encryption/protection is not seen as a requirement. It is often seen as a cost for a non real threat. So speaking about client device security, you are right, it is not as easy as it should be.

Great article.

Bye Christophe

Anonymous said...

Good read, thanks Joanna !

Do you know about Syncany? It's a cloud storage with client-side encryption and multiple storage types (from buckets to imap or images).

Joanna Rutkowska said...

What I really would like to see is a client-encrypted calendar/task list service. With apps for iOS, Mac, Linux.

Cool that such things as Wuala, Firefox Sync, or Lastpass exist, although I cannot say anything about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir security. Why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y don't publish cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sources of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir client code? (except for Firefox Sync I guess)? Do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y sign at least cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir client apps?

Dieter Adriaenssens said...

Interesting read.

Some time ago I was thinking about protecting data you share on social network websites, and I came to a similar conclusion : encrypt everything before it leaves your PC/device : http://ruleant.blogspot.com/2010/10/open-source-social-networking.html

I guess this principle not only applies to clouds, social networking, internet data storage, ... but to all data you are willing to share with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs on a public network (if you are conscious/paranoid enough to protect it from being read by anyone else).

Anonymous said...

A partial approach would be to have some kind of proxy that encrypts any files that go to "cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud" on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly. This would avoid modifying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 application and even allow you to move this encryption engine to a different VM. Of course, cross platform support might be tricky but could possibly be done at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 router level (with an open source router)

Nicolas Wagrez

d2 said...

add passpack to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list of encrypted cloud storage apps you didn't know about.

As for publication of code, how'll you ever ensure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 live code is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 published code (what's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point, in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words)?

Joanna Rutkowska said...

@d2: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usual way to ensure code matches cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code is to build cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code (compile it) and compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hashes.

Anonymous said...

@ruleant

Surely cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 purpose of social networking is 'to share' - thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concept of putting data on a social network which you wish to keep private is kind of an oxymoron, surely?

Joanna Rutkowska said...

@Anonymous: I might want to share my holiday photos with just a group of friends, and not necessary with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world.

Anonymous said...

What program do you use as keychain?