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...

17 comments:

c43ssmas73r said...

No because

...think of an attacker who replaces cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor dies with some kind of processor emulator – a device that looks like processor 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, but doable)...

Joanna Rutkowska said...

@c43ssmas73r: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole exercise is that it would not be possible to build such a processor emulator for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 adversary, because she would not know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key that is only in a legitimate processor.

Shayan Pooya said...

Are you considering git's signatures when talking about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possible hard-to-discover exploits on kernel.org? (considering cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only important thing on that server is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel itself). Would you please elaborate on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se possible exploits?

Also, this post is not showing well in google reader (in firefox and in android app). Some spaces between words are missing.

Joanna Rutkowska said...

@Shayan:

No, of course I didn't assume properly applied and checked digital signatures -- those should provide ultimate safety, naturally. However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Corbet's explanation does _not_ resort to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m! And we know why: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are lot of e.g. kernel branches on kernel.org that are never (or very rarely) signed! Yet, this doesn't stop cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re from self-comforting that all is fine. Considering this specific example of git, I think it should really be enforcing digital signature (signed tags) on _every_ commit automatically.

Regarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wrong formatting: hmmm, I don't see that. Sounds strange though, because I used Google Blogger to create cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 blog... Anybody else see this problem?

Anonymous said...

Fully homomorphic encryption might once solve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud computing issues.
With fully homomorphic encryption you wouldn't even need to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider.
But it's still a matter of research...

Joanna Rutkowska said...

@Anonymous: can you elaborate more on how could we not trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor?

mzlee said...

There is strain of more recent research (Overshadow, Cloudvisor) that tries to tackle this untrusted intermediary problem. Overshadow takes on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of a trusted hypervisor that protects user applications from an untrusted OS in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 middle. A more recent, and perhaps more promising variant of this idea is Cloudvisor: It takes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 form of a small security VMM that uses nested virtualization to prevent a real VMM from inspecting a particular VM.

In many ways, this is just a game of controlling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lowest layer, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Cloudvisor people) make a compelling argument that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir VMM only needs a small interface to enforce isolation between an untrusted VMM and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 different VM's.

Alexey said...

The anonymous poster is talking about fully homomorphic encryption, which, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365oretically, could allow to perform arbitrary computations by manipulating ciphertext, without any knowledge of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plaintext. Some signature produced as a part of computation would certify that computation sequence itself was not tampered with. However, this field is not very advanced yet (as far as I know). Possible vulnerabilities are not well understood, and it's totally impractical with current technology.

Anonymous said...

Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 basic idea of fully homomorphic encryption (FHE) is to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operations you want to do on encrypted data. Then, when you decrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result, you will get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result as if you had worked on plaintext data.
The algorithms cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves which work on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encrypted data are public though.
Back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider example: I could decide to run some fancy well-known data mining algorithm on my private data, encrypt it using FHE, send it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider, who executes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data mining algorithm on that data. Afterwards I receive cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encrypted result and decrypt it on my machine to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real result. Hence I don't need to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider's CPU. Ok I agree that I must trust it to execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data mining algorithm correctly, but usually cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 algorithms are not that important to be kept secretly.

Anyway this is probably far away in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future. However current research indicates that it might once be possible. Actually cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re already exist FHE cryptosystems, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are highly inefficient so far (Craig Gentry et al).

Ahmed Masud said...

There are a lot of man-in-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-middle attack scenarios that leave a bitter taste in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mouth, unless cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire communications path and intermediate processors are also verified. Which still leaves cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem of ensuring tampering of clear text. Here you would say FHE so let's just have a trivial look at that:

As for FHE Let's take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 situation where you have a scheme where E(x•y) = E(x) • E(y) for some binary operation and you want cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU to perform cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 '•' on cypher-text.

Trivially a rogue CPU in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud can easily take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 E(x•y) and "add" a delta to it: E(x•y) • E(z) where E(z) is attacker's operand.

Now comes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question of whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r or not it is possible to verify (x•y) without calculating (x•y) well that's equivalent of P=NP problem.

Now if you could encode cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operation • in some way (which is by no means trivial) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only thing i can think of is some form of quantum solution, where any knowledge of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of machine that performs E(x•y) while it is calculating it will render it chaotic... (Hmm, possible new research direction :))

Any how ... some thoughts.

Anonymous said...

I also see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wrong formatting in Firefox 8 and Android app, but only some spaces are missing, not all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. The text is still readable.

Anonymous said...

@Ahmed Masud:
I don't really think that tampering cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ciphertext and thus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plaintext would be such a big problem, if we had FHE.
If I wanted a cloud provider to use my algorithm and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 provider computes something else - as you said - I cannot really check whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r he really computed what I wanted.
Due to FHE, he cannot see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result.
Now if a cloud provider had like 10.000 customers and 1 customer would actually check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result and find out that it's not correct, it could become public and ruin cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud provider. I just don't see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 motivation why a cloud provider would want to change something he doesn't know much about and where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 intervention could ruin him.

Anyway this is all way too hypocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tical. ;)

Anonymous said...

i think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud is your only ally here, ironically. in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, you are having to trust *some* big company and big government behind cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m ... and we all know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are quite permeable to always sway to some interest or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r ... in a global context cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is always a large population whose interests are denied by such entities ... so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem will always remain, on both realpolitik and truly ethical levels: many want access to computing resources but can't trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

no matter how many tpms, crypto dongles, etc, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is always cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chance that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guy who made cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 device sold you out, or built it using backdoored technology...

but if you can split your problem up and send to *many* CPUs, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n aggregating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result becomes difficult. *YOU* at last have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 advantage.

cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenge is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same as with TOR, to ensure that you are sending to enough real disparate CPUs, and not to a large number of captured/emulated nodes.

in practice, to trust computations coming to you from unknown (anonymous?) nodes, you need to use redundency, having cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same compute block processed by several nodes, and cross-check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir results.

so having divided your problem into small tasks which individually contain little of interest, and having sent each tasklet to several nodes from a very large pool, you may achieve reasonable security, i would guess similar to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way most people use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir email ... many interceptors could scrutinise it, most don't, a few probably do, but most people don't care much, not enough to use PGP which has been around for decades and still looks like it has been as good as can be done to solve that problem.

certainly, although cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 disperse nature of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud works in favour of security, you can't expect greater security from it than at your own node, since if that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 weakest point, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you expect it to be attacked, and such attacks by anyone who would have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to capture/emulate many cloud nodes or subvert CPU hardware, would easily also capture your specific node, no matter where or who you are, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y knew a good reason.

at some point, social engineering usually triumphs before such monumental engineering tasks, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 threat of a technical subversion always weighs heavily enough on one side to push us all subtly, and were it to be ignored, how hard do you think it is for a giant hardware manufacturer to say 'oh dear, anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r FPU bug!' cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y push out one generation of flawed CPUs, should be enough to remind everyone not to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pie-in-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-sky liberty dream software, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n can go back to 'rebuilding trust' with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir market.

so not much point aiming for perfect security at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 expense of alarmingly complex engineering, better to accept that politics (and resource limitation perhaps) will win out before we can achieve that, and racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, aim for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most reliable, and often simplest and most generic answers ... easy for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU manufacturer to make a 'flaw' in some hard-to-test, little used part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security apparatus, but hard for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to push out CPUs that cannot do a mv instruction in reasonable time (i'm not an assembly programmer, but i hope you understand what i'm trying to say!) and harder for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to conceal or explain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 defect. :)

or have i gone too far 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 way now? we probably want a middle path, i found your thought train interesting, and will try to read your work thouroughly.

Brill said...

Hey, Joanna
just want to say thank you for Qubes. Its good and secure OS.
Keep walking!

Alex said...

You may not have to go so far to build a DRAM emulator or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r advanced (and expensive) stuff. Have you ever considered JTAG as a possible way to tap DRAM? At least some modern Intel CPUs support it and JTAG seems to be pretty powerful:

http://www.arium.com/products/3/Intel-JTAG-Debuggers.html

http://www.windriver.com/products/JTAG-debugging/Probe-emulator/

CrisisMaven said...

All this begs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question: is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, and if not, why not, a task force of delegates from people like Qubes-development, Intel, AMD and a host of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs (e.g. security/antivirus companies, renowned "hackers" or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir associations) that get togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r - like in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IEEE groups of former renown - and draft specs for all this racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than Intel meandering from one concept to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r?

Joanna Rutkowska said...

@Crisis: TCG perhaps? (Although We, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Qubes people, have not been invited cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re).