Adam Back writes:
- Palladium is a proposed OS feature-set based on the TCPA hardware (Microsoft)
Actually there seem to be some hardware differences between TCPA and Palladium. TCPA relies on a TPM, while Palladium uses some kind of new CPU mode. Palladium also includes some secure memory, a concept which does not exist in TCPA.
The main 4 features proposed in the TCPA/palladium scheme are:
1. secure bootstrap -- checksums of BIOS, firmware, privileged OS code are used to ensure the machine knows whether it is running certified software or not. This is rooted in hardware, so you can't by pass it by using virtualization, only by hardware hacking (*).
2. software attestation -- the hardware supports attesting to a third party whether a call comes from a certified software component as assured by the hardware described in feature 1.
More generally, the hardware can attest to many aspects of the current machine state, including the cumulative hash of the software which has booted so far.
3. hardware assisted compartmentalization -- CPU can run privileged software, and RAM can contain information that you can not examine, and can not modify. (Optionally the software source can be published, but that is not necessary, and if it's not you won't be able to reverse-engineer it as it can be encrypted for the CPU).
TCPA does not get into this part, only the Palladium white paper mentions this. However it does seem to be a logical component for effective trusted computing.
4. sealing -- applications can store data that can only be read by that application. This works based on more hardware -- the software state checksums developed in feature 1 are used by hardware to generate encryption keys. The hardware will refuse to generate the key unless the same software state is running.
Right. This plus the attestation are what allow an application to create a "closed world". See my earlier message for examples of how this could be used to enhance privacy and anonymity. What better example of a closed world than your own secrets?
It's interesting to see that one of the author's of [6] has said that TCPA as curently formed is a bad thing and is trying to influence TCPA to make it more open, to exhibit stronger privacy properties read his comments at [7].
I don't think his comments make that much sense. I'd be curious to read your take on them. What is he talking about with the non-malleable root of trusted storage? Trusted storage seems like one of the least objectionable aspects. Is he confusing this with the endorsement key, used to make the remote attestations? Or is this related to the idea that you won't be able to boot your OS of choice?
There are a lot of potential negative implications of this technology, it represents a major shift in the balance of power comparable in magnitude to the clipper chip:
1. Potentially cedes control of the platform -- while the palladium docs talk about being able to boot the hardware with TCPA turned off, there exists possibility that with minor configuration change the hardware / firmware ensemble that forms palladium/TCPA could be configured to allow only certified OSes to boot, period. It's intereseting to note, if I read correctly, that the X-box (based on celeron processor and TCPA / TCPA-like features) does employ this feature. See for example: [8].
This is of course one of the biggest criticisms of TCPA - that it could be changed so that you will only be able to boot certified OS's. Don't you think that would have to be done by law, rather than as a preemptive act by the technologists (for antitrust reasons if nothing else)? Why would such a law be passed? IMO the social changes necessary to even begin to imagine such a drastic step are so huge that the technological implementation seems minor in comparison. I don't think it is fair to criticize this proposal for such a far-fetched possibility.
The documents talk about there being no barrier to certifying TCPA aware extensions to open-source OSes. However I'm having trouble figuring out how this would work. Perhaps IBM with it's linux support would build a TCPA extension for linux. Think about it -- the extension runs in privileged mode, and presumably won't be certified unless it passes some audit enforcing TCPA policies. (Such as keeping the owner of the machine from reading sealed documents, or reading the contents of DRM policy controlled documents without meeting the requirements for the DRM policy.)
TCPA doesn't currently cover certifying operating systems. They talk about certifying TPMs, about certifying PC hardware designs and implementations. Possibly in the next version they will get into issues like this. In the mean time, supposedly HP is going forward with an OS that can use TCPA features.
2. DSS over-again -- a big aspect of the DSS reverse-engineering was to allow DVDs to be played in software on linux. The TCPA platform seems to have the primary goal of making a framework within which it is possible to build extensions to implement hardware tamper resistant DRM. (The DRM implementation would run in a hardware assisted code compartment as described in feature 3 above). So now where does that put open source platforms? Will they be able to read such DRM protected content? It seems likely that in the longer term the DRM platform will include video cards without access to video memory, perhaps encryption of the video signal out to the monitor, and of audio out to the speakers. (There are other existing schemes to do these things which dovetail into the likely TCPA DRM framework.)
With the secure boot strap described in feature 1, the video card and so on are also part of the boot strap process, so the DRM system would have ready support from the platform for robustly refusing to play except on certain types of hardware. Similarly the application software which plays these DRM policy protected files and talks to the DRM policy module in the hardware assisted code compartment will itself be an application which uses the security boot-strapping features. So it won't be possible to write an application on for example linux to play these files without an audit and license etc from various content, DRM and OS cartels. This will lead to exactly the kind of thing Richard Stallman talked about in his prescient paper on the coming platform and right to develop competing software control wars [9].
I think this analysis is largely correct, except that it won't be as monolithic as you make it sound. There won't be just one content supplier who judges all software, that's obviously impossible. Rather, each different supplier will make its own determination of which software you can trust. And likewise for non-DRM applications. Banks will decide which banking software to trust. Game networks will decide which game clients to trust, etc.
3. Privacy support is broken -- the "privacy" features while clearly attempts to defuse a re-run at the pentium serial number debacle, have not really fixed it's problems. You have to trust the "Trusted Third Party" privacy CA not to track you and not to collude with other CAs and software vendors. There are known solutions to this particular sub-problem, for example Stefan Brands digital credentials [10], which can be used to build a cryptographically assured privacy preserving PKI avoiding the linking problems arising from identity based and attribute certificates.
I agree that it would be nice to see more flexibility there. The Chaum blinding patent expires in 2005, so maybe around then we can start seeing privacy CA's that use blind signatures, which solves that problem. The spec is obviously trying hard to protect privacy, it's just that the mechanisms to do it right are extremely complex compared to the straightforward way.
4. Strong enforcement for DMCA DRM excesses -- the types of DRM system which the platform enables stand a fair chance of providing high levels of enforcement for things which though strictly legally mandated (copyright licensing restrictions, limited number of plays of CDs / DVDs other disadvantageous schemes; inflexible and usurious software licensing), if enforced strictly would have deleterious effects on society and freedom. Copyright violation is widely practiced to a greater or less extent by just about all individuals. It is widely viewed as acceptable behavior. These social realities and personal freedoms are not taken into account or represented in the lobbying schemes which lead to the media cartels obtaining legal support for the erosion of users rights and expansionist power grabs in DMCA, WIPO etc.
Some of these issues might be not so bad except for the track records, and obvious monopolistic tendencies and economic pressures on the entities who will have the root keys to the worlds computers. There will be no effect choice or competition due to existing near monopolies, or cartelisation in the hardware, operating system, and content distribution conglomerates.
Nobody's putting a gun to your head and making you download content. If you can't agree to the conditions, go do something else. There are much worse things that can happen in the world than that copyright becomes enforceable. Why not give the market a chance? Company A provides the data with Draconian DRM restrictions; company B gives you more flexibility in what you do. All else being equal, people will prefer company B. So they can charge more. In this way a balance will be reached depending on how much people really value this kind of flexibility and how much they are willing to pay for it. You and I don't get to decide, the people who are making the decisions about what content to buy will decide. And nobody's got the root key to my computer. You make this claim in many places in the document. What exactly is this "root key" in TCPA terms? The endorsement key? It's private part is generated on-chip and never leaves the chip!
5. Strong enforcement for the software renting model -- the types of software licensing policy enforcement that can be built with the platform will also start to strongly enable the software and object rental ideas. Again potentially these models have some merit except that they will be sabotaged by API lock out, where the root key owners will be able to charge monopoly rents for access to APIs.
I don't follow this. What root key owners? What APIs? Could you say more about how TCPA will help with software rental?
6. Audits and certification become vastly more prevalent. Having had some involvement with software certification (FIPS 140-1 / CC) I can attest that this can be expensive exercises. It is unlikely that the open source community will be able to get software certified due to cost (the software is free, there is no business entity to claim ownership of the certification rights, and so no way to recuperate the costs). While certification where competition is able to function is a good thing, providing users with a transparency and needed assurance, the danger with tying audits to TCPA is that it will be another barrier to entry for small businesses, and for open source particularly.
This is a good point, but again it depends on the specific content realm. There are not just one or two - there are thousands of kinds of content, or even more. Not everyone is going to require FIPS 140 levels of certification! But possibly Disney and Sony will. My guess is that if there ever is a Linux program that will play their movies, it will be because those companies contracted to get it written. You may see this in many contexts - software applications don't get certified, rather they are supplied by the vendors, or the vendors arrange to get them done.
7. Untrusted, unauditable software will be able to run without scrutiny inside the hardware assisted code compartments. Some of the documentation talks about open sourcing some aspects. While this may come to pass, but that sounded like the TOR (Trusted Operating Root); other extension modules also running in unauditable compartments will not be so published.
This part I don't understand too much; it's not a TCPA concept, and there is little known about Palladium. Supposedly the idea is that this is a place that code can run without being touched by debuggers or viruses. I don't know what happens if a virus gets itself loaded into this area, if that is even possible. Maybe all the different compartments are isolated from each other. Does this seem like a bad feature to you?
8. Gives away root control of your machine -- providing potentially universal remote control of users machines to any government agencies with access to the TCPA certification master keys, or policies allowing them to demand certifications on hostile code on demand. Central authorities are likely to be the only, or the default controllers of the firmware/software upgrade mechanism which comes as part of the secure bootstrap feature.
Now you're starting to go paranoid. All the TCPA certification master keys do is to certify that a system is TCPA compliant. They don't have a remote control over your machine! They are more analogous to Verisign in the X.509 world. Last I checked they hadn't taken over my box. As far as the field upgrade, it has to be authorized by the owner. I'm disappointed to see this kind of fantasizing in what has been a well grounded document until now. If you're going to make this kind of charge, that TCPA gives a universal remote control to government, you need to back it up in detail.
9. Provides a dangerously tempting target for government power-grabs -- governments will be very interested to be able to abuse the power provided by the platform, to gain access to it's keys to be able to insert remote backdoors, and/or to try to mandate government policy enforcement modules once such a platform is built. Think this is unrealistic? Recall clipper? The TCPA is a generic extensible policy enforcement architecture which can be configured to robustly enforce policies against the interests of the machine owner. Clipper, key-escrow the whole multi-year fight, at some point in the near future if some of the more egregious TCPA/Palladium framework features and configuration possibilities becomes widely deployed could be implemented after the fact, as a TCPA/Palladium policy extentsion which runs in the hardware assisted code compartment and is authenticated up to the hardware boot by the secure bootstrapping process.
I don't agree with your characterization that TCPA enforces policies against the owner's interests. He has to voluntarily agree to everything, from turning on TCPA, to booting a TCPA compliant program, to running an application which some third party will trust, to accepting data from that third party under agreed-upon conditions. If at any step he didn't feel that what he was doing was in his interests, he can stop and do something else. When you walk into a store and pay money for food, is that store enforcing policies against your interests? Only from the most shallow perspective, for if such policies were not widely enforced, you and I and everyone else would starve. We all participate voluntarily in these institutions. Each payment we make is in our interests. And the same thing is true if you receive some data with conditions on how it is manipulated. As far as the concern about changes, I think the smart thing to do is to fight the bad and promote the good. Definitely we should oppose any proposal to make TCPA non-voluntary, to force people to boot a certain OS, to limit what they can do on their computers. But presently none of those features are in TCPA. Rather than saying TCPA is bad because someone could make all these hypothetical changes, it makes more sense to judge TCPA on its own, as a system that emphasizes user choice. Involuntary TCPA is bad, voluntary is good. So we should not fight TCPA, we should fight proposals to make it involuntary.
So what I've read so far, I think people's gut reactions are right -- that it's an aggressive and abmitious power grab by the evil empire -- the 3 cartels / monopolies surrounding PC hardware, Operating systems and Content Distribution. The operating system near monoply will doubtless find creative ways to use and expand the increased control to control application interoperability (with the sealing function), to control with hardware assistance the access to undocumented APIs (no more reverse engineering, or using the APIs even if you do / could reverse engineer).
I think you are looking at it far too narrowly. Yes, this will provide many opportunities for Microsoft to write new kinds of software. But the same is true for every other software company! Financial software, web services, security software, accounting - anything that involves trust and security can benefit from TCPA. Look at the example I gave earlier for a TCPA based anonymous comm network. Multiply that a thousand fold. It's stupid to just look at what one company can do with this, without considering what a whole world of creative people can accomplish. Yes, it can make reverse engineering much more difficult. But I'd rather see people put their creative efforts into creating new products rather than copying and piggybacking off someone else's success.
So some of the already applications are immediately objectionable. The scope for them to become more so with limited recourse or technical counter-measures possible on the part of the user community is huge. Probably the worst aspect is the central control -- it really effectively does give remote root control to your machine to people you don't want to trust. Also the control _will_ be abused for monopolistic rent seeking and exclusionary policies to lock-out competition. Don't forget the fact that microsoft views linux as a major enemy as revealed by documents uncovered some the anti-trust discovery process.
Again, you need to justify this remote root control notion. I don't see it at all. Go back to your four functions of TCPA/Palladium - they were pretty accurate. Where was the remote root control in there?
In fact I'd say this is the biggest coming risk to personal freedom since the days during the onset of the clipper chip / key escrow looked like they stood some chance of becoming reality.
I'd say that it is a powerful technology with an almost infinite number of potential applications. Being able to trust software running on a remote system is something that has never been possible before on the Internet. We can only begin to see what will be possible with this capability.