Showing posts with label cloud. Show all posts
Showing posts with label cloud. Show all posts

Tuesday, December 13, 2011

Trusted Execution In Untrusted Cloud


Wouldn't it be nice if we could actually own our data and programs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud? By “owning” here I mean to have control over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir confidentiality and integrity. When it comes to confidentiality and integrity for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data, it's not much of a rocket since, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 classic crypto (and secure client systems) is all that we need. I have already wrote about it in an earlier post.
But it would also be nice, if we could somehow get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same confidentiality and integrity assurance for our programs that we upload for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 execution in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud...

For example, a company might want take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir database application, that deal with all sorts of corporate critical sensitive data, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n upload and safely run this application on e.g. Amazon's EC2, or maybe even to some China-based EC2-clone. Currently there is really nothing that could stop cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 provider, who has a full control over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor under which our application (or our VM) executes, from reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contents of our process' memory and stealing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 secrets from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re. This is all easy stuff to do from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical point of view, and this is also not just my own paranoia...


Plus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usual concerns, such as: is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 infrastructure of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider really that safe and secure, as it is advertised? How do we know nobody found an exploitable bug in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor and was not able to compromise ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r customer's VMs from within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker-hired VM? Perhaps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same question applies if we didn't decided to outsource cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 apps to a 3rd party cloud, but in case of a 3rd party clouds we really don't know about what measures have been applied. E.g. does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 physical server on which my VMs are hosted also used to host some foreign customers? From China maybe? You get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point.

Sometimes all we really need is just integrity, e.g. if we wanted to host an open source code revision system, e.g. a git repository or a file server. Remember cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel.org incident? On a side note, I find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Jonathan Corbet's self-comforting remarks on how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was really nothing to worry about, to be strikingly naive... I could easily think of a few examples of how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker(s) could have exploited this incident, so that Linus & co. would never (not soon) find out. But that's anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r story...

But, how can one protect a running process, or a VM, from a potentially compromised OS, or a hypervisor/VMM?

To some extent, at least cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365oretically, Intel Trusted Execution Technology (TXT), could be used to implement such protection. Intel TXT can attest to a remote entity, in that case this would be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud customer, about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hash of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor (or kernel) that has been loaded on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 platform. This means it should be possible for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user to know that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unmodified Xen 4.1.1 binary as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor and not some modified version, with a built-in FBI backdoor for memory inspection. Ok, it's a poor example, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen architecture (and any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r commercially used VMM) allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 administrator who controls Dom0 (or equivalent) to essentially inspect and modify all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, also that belonging to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r VMs, and no special backdoors in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor are needed for this.

But let's assume hypocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tically that Xen 5.0 would change that architecture, and so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dom0 would not be able to access any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r VM's memory anymore. Additionally, if we also assumed that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor was secure, so that it was not possible to exploit any flaw in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervior, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we should be fine. Of course, assuming also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re were also no flaws in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TXT implementation, and that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM was properly sandboxed, or that we trusted (some parts of) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se are really complex problems to solve in practice, but I know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is some work going on in this area, so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is some hope).

Such a TXT-bases solution, although a step forward, still requires us to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider a bit... First, TXT doesn't protect against bus-level physical attacks – think of an attacker who replaces cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRAM dies with some kind of DRAM emulator – a device that looks like DRAM to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host, but on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r end allows full inspection/modification of its contents (well, ok, this is still a bit tricky, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of synchronization, but doable).

Additionally for Remote Attestation to make any sense, we must somehow know that we “talk to” a real TPM, and not to some software-emulated TPM. The idea here is that only a “real” TPM would have access to a private key, called Endorsement Key, used for signing during Remote Attestation procedure (or used during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 AIK key, that can be used alternatively for Remote Attestation). But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n again who generates (and so: owns) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private endorsement keys? Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM manufacturer, that can be... some Asian company that we not necessarily want to trust that much...

Now we see it would really be advantageous for customers, if Intel decided to return to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 practice of implementing TPM internally inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y did in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir Series 4 chipsets (e.g. Q45). This would also protect against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 LCP bus-level attacks against TPM (although somebody told me recently that TPM in current systems cannot be so easily attacked from LCP bus, because of some aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication protocol being used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re – I really don't know, as physical attacks have not been cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 area we ever looked at extensively; any comments on that?).

But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n again, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem of DRAM content sniffing always remains, although I would consider this to be a complex and expensive attack. So, it seems to me that most governments would be able to bypass such TXT-ensured guarantees in order to “tap” cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's programs executing in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provides that operate within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir jurisdictions. But at least this could stop malicious companies from staring up fake cloud services with an intent to easily harvest some sensitive data from unsuspecting users.

It seems that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only way to solve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above problem of DRAM sniffing attacks is to add some protection at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor level. We can imagine two solutions that processor vendors could implement:

First, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could opt for adding an in-processor hardware mechanism for encrypting all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data that leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor, to ensure that everything cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 is kept in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRAM is encrypted (and, of course, also integrity-protected), with some private key that never leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor. This could be seen as an  extension to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel TXT.

This would mean, however, we still needed to relay on: 1) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor to not contain bugs, 2) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole VMM architecture to properly protect VM's memory, specifically against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dom0, 3) Intel TXT to not be buggy eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, 4) SMM being properly sandboxed, or alternatively to trust (some parts of) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS and SMI handler, 5) TPM's EK key to be non-compromised and verifiable as genuine, and 6) TPM bus attacks made impossible (those two could be achieved by moving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM back onto cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chipset, as mentioned above), and finally, 7) on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encryption key used by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor for data encryption to be safely kept in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor.

That's still quite a lot of things to trust, and it requires quite a lot of work to make it practically really secure...

The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r option is a bit more crazy, but also more powerful. The idea is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor might allow to create untrusted supervisors (or hypervisors). Bringing this down to x86 nomenclature, it would mean that kernel mode (or VT-x root) code cannot sniff or inject code into (crypto-protected) memory of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usermode processes (or VT-x guests). This idea is not as crazy as you might think, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re has even been some academic work done in this area. Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are many catches here, as this would require specifically written and designed applications. And if we ever considered to use this technology also for client systems (how nice it would be if we could just get rid of some 200-300 kLOC of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TCB in Qubes OS!), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenges are even bigger, mostly relating to safe and secure trusted output (screen) and, especially, input (keyboard, mouse).

If this worked out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we would need to trust just one element: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor. But we need to trust it anyway. Of course, we also need to trust some software stack, e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compilers we use at home to build our application, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 libraries it uses, but that's somehow an unrelated issue. What is important is that we now would be able to choose that (important) software stack ourselves, and don't care about all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r software used by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider.

As I wrote above, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor is this final element we always need to rust. In practice this comes down to also trusting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 US government :) But we might imagine users consciously choosing e.g. China-based, or Russia-based cloud providers and require (cryptographically) to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir hosted programs on US-made processors. I guess this could provide reasonable politically-based safety. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is also ARM, with its licensable processor cores, where, I can imagine, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 licensee (e.g. an EU state) would be able to put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own private key, not known to any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r government (here I assume cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 licensee also audits cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor RTL for any signs of backdoors). I'm not sure if it would be possible to hide such a private key from a foundry in Hong Kong, or somewhere, but luckily cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are also some foundries within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EU.

In any case, it seems like we could make our cloud computing orders of magnitude safer and more secure than what is now. Let's see whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry will follow this path...

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.