13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 13 - Onward! 201<br />

This brief history lesson demonstrates that trusted computing does not<br />

require <strong>the</strong> cryptographic approach that is being proposed today by<br />

Palladium and <strong>the</strong> Trusted Computing Platform Alliance (TCPA). In fact,<br />

cryptography on its own does not provide any security. Secure key<br />

management is really what provides all <strong>the</strong> security in Palladium/TCPA.<br />

Cryptographic algorithms simply transfer <strong>the</strong> security of <strong>the</strong> key into <strong>the</strong><br />

user’s domain.<br />

This being said, one can draw an analogy between a capability and a<br />

cryptographic key. Both require a trusted OS to manage <strong>the</strong>ir creation,<br />

dissemination and destruction. Both are equally weak if <strong>the</strong> system<br />

cannot protect against forged keys or capabilities. The big difference is<br />

that if a secret key leaks, all security is lost, eternally. On <strong>the</strong> o<strong>the</strong>r hand,<br />

capabilities are created and destroyed dynamically, so <strong>the</strong> leakage of a<br />

capability might lead to a security breach, but <strong>the</strong> scope and duration of<br />

<strong>the</strong> breach is limited. To this extent, capabilities provide a more robust<br />

solution for computer security.<br />

Note that relying solely on cryptographic techniques for hardware<br />

security still leaves machines open to classic buffer-overrun style attacks<br />

and security holes due to programming errors. “Measurements” of <strong>the</strong><br />

software’s state help mitigate this weakness by detecting code alterations<br />

before executing security-critical operations, but measurements are not a<br />

perfect solution. On <strong>the</strong> o<strong>the</strong>r hand, buffer-overrun attacks are impossible<br />

in systems using hardware enforced capabilities with bounds<br />

checking.<br />

Memory tags can also be used to implement security features that are not<br />

feasible using a purely cryptographic approach to trusted computing. One<br />

example is <strong>the</strong> trustable concurrent processing of compartmentalized<br />

secrets. 4 In this example, multiple threads with varying levels of security<br />

clearance are operating on a single processor. The hardware enforces a policy<br />

where all threads impress <strong>the</strong>ir security level upon <strong>the</strong> data that <strong>the</strong>y access.<br />

In o<strong>the</strong>r words, every computation simultaneously operates in two<br />

domains: <strong>the</strong> conventional arithmetic domain, and <strong>the</strong> security domain.<br />

Suppose an unclassified thread adds two unclassified numbers and creates<br />

a piece of data named foo. foo’s security tag is also computed in parallel<br />

with <strong>the</strong> add arithmetic operation. In this case, <strong>the</strong> security tag’s result is<br />

“unclassified.” Now, suppose a top-secret thread touches foo: foo’s security<br />

tag now changes to “top secret.” Unclassified threads can no longer read<br />

foo, even if <strong>the</strong> unclassified thread has a valid pointer to foo; foo must be<br />

explicitly reclassified before it can be read again by unclassified threads.<br />

Such a strictly compartmentalized security system can be used, for<br />

example, to ensure that no internal kernel structures are ever accessible to<br />

4 More about security systems like this can be found in a tech<br />

note titled “A Minimal Trusted Computing Base for Dynamically<br />

Ensuring Secure Information Flow” by Jeremy Brown and Tom<br />

Knight. http://www.ai.mit.edu/projects/aries/Documents/<br />

Memos/ARIES-15.pdf

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!