4 ms·
Why would I want a machine, which I own, trust someone else than the owner? And no, I do not trust the TPM in its current iteration. We mere owners are prevent
by kefka 14y ago
Why would I want a machine, which I own, trust someone else than the owner?
And no, I do not trust the TPM in its current iteration. We mere owners are prevented from knowing its private key. Nor can we generate and store away a private key (or buy a known private keyed chip).
- derefr 14y agoSo you can, for example, participate in a distributed computing project where the results sent in by your machine can be trusted. (An online game that calculates physics client-side is a special case of a distributed computing project ;) It doesn't require you to give up ownership over your entire computer, mind you. If your own OS ran in a hypervisor that was in one TPM "domain" (you have the key to this domain), but then applications could request to be run directly on the hypervisor with a separate TPM domain (and thus keep keys your own OS wouldn't ever be able to touch), that'd be good enough to allow for any secure distributed computation you might want to do. At any time, you'd still be able to wipe out those domains (and thus kill the apps running in them)--but you wouldn't be able to otherwise introspect them. Basically, it's like the duality of "OS firmware" and "baseband firmware" on phones--except it would all be being handled on the same real CPU.
- VLM 14y ago"you wouldn't be able to otherwise introspect them" Can't implement it until you define its behavior. If you define its behavior you can emulate it (which, outside this discussion, is really useful). If you can emulate it, you can single step it, breakpoint it, dump any state of the system including memory, reboot it into "alternative" firmware... Your only hope is playing games with timing. So here's a key, and its only valid for one TCP RTT. Well if they want to operate over satellite they must allow nearly a second, so move your cracking machine next door and emulate a long TCP path and you've got nearly a second now. On the other hand if instead of runnin over the internet you merely wanted to prove bluetooth distances or google wallet NFC distances, suddenly you've gone from something I can literally do at home easily to a major lab project. Another thing that works is "prove you're the fastest supercomputer in the world by solving this CFD simulation in less than X seconds". Emulating that would take a computer much faster than the supposedly fastest computer. So this is pretty useful for authenticating the TOP500 supercomputer list, but worthless for consumer goods.
- derefr 14y ago> Your only hope is playing games with timing. This is inane. My question was about mathematically provable secure computation, not kludges that any old advanced alien civilization could bypass by sticking your agent-computer in a universe simulator. :) Let's ignore the computers. You are a spy dispatched from Goodlandia to Evildonia. You want to meet with your contact and exchange signing keys. You can send a signal at any time to Goodlandia that will tell them to cut off all contact with you, because you believe you have been compromised. (A certificate revocation, basically.) Your contact, thus, expects one of three types of messages from you: 1. a request for a signing key with an attached authentication proof; 2. a message, signed with a key, stating you have been compromised and to ignore all further messages sent using that key; 3. or a message, signed with a non-revoked key, containing useful communication. Now, is there any possible kind of "authentication proof" that you could design, such that, from the proof, it can be derived that: 1. you have not yet been compromised; 2. you will know when you have been compromised; 3. and that, in the case of compromise, you will be allowed to send a revocation message before any non-trusted messages are sent? You can assume anything you like about the laws of Evildonia to facilitate this--like that it is, say, single-threaded and cooperatively multitasking--but only if those restrictions can also carry over to the land of Neoevildonia, a version of Evildonia running inside an emulator. :)
- Retric 14y agoThere is no way to prove you have not been compromised as it's possible to be compromised without knowing it. EX: Listing to the EM leakage as information is sent from one chip to another.
- VLM 14y agoIt might be possible to exclude enough realistic current day threats to eventually end up with something that "works" but I don't think that's useful in any way. None the less, if you want to exclude computers, the human equivalent of "stick it in an emulator" is the old philosopher's "brains in a vat" problem. That's well traveled ground no there is no proof you're not in a vat. There is no way to prove you have not been compromised because there is no way to prove no theoretical advancement will ever occur in the field in the future. (or not just advancement but NSA declassification, etc) So you're limited to one snapshot in time, at the very least. You're asking for something that's been trivially broken innumerable times outside the math layer. Its hard to say if you're asking for steganography (which isn't really "math") or an actual math proof or you just want a wikipedia pointer to the kerberos protocol which is easily breakable but if you add enough constraints it might eventually fit your requirements.
- kefka 14y agoWithout regressing into plato's cave and brain in a jar emulation type philosophical discussions.... The standard way of handling distributed clients is with trust calculations. A simeon trust calculation is to duplicate a packet of work multiple times and/or process questionable ones yourself. If they match, you can bump up the trust calculation on that client. Public key crypto is all fine and good. It's great for executables so you know who they came from (hmm, trust again..). So why can't I have the private key to a tpm I buy or have integrated in my motherboard?
- deleted 14y ago[deleted]