|
|
|
DirectX
|
ActiveMac
|
Downloads
|
Forums
|
Interviews
|
News
|
MS Games & Hardware
|
Reviews
|
Support Center
|
Windows 2000
|
Windows Me
|
Windows Server 2003
|
Windows Vista
|
Windows XP
|
|
|
|
News Centers
|
Windows/Microsoft
|
DVD
|
Apple/Mac
|
Xbox
|
News Search
|
|
|
|
ActiveXBox
|
Xbox News
|
Box Shots
|
Inside The Xbox
|
Released Titles
|
Announced Titles
|
Screenshots/Videos
|
History Of The Xbox
|
Links
|
Forum
|
FAQ
|
|
|
|
Windows
XP
|
Introduction
|
System Requirements
|
Home Features
|
Pro Features
|
Upgrade Checklists
|
History
|
FAQ
|
Links
|
TopTechTips
|
|
|
|
FAQ's
|
Windows Vista
|
Windows 98/98 SE
|
Windows 2000
|
Windows Me
|
Windows Server 2002
|
Windows "Whistler" XP
|
Windows CE
|
Internet Explorer 6
|
Internet Explorer 5
|
Xbox
|
Xbox 360
|
DirectX
|
DVD's
|
|
|
|
TopTechTips
|
Registry Tips
|
Windows 95/98
|
Windows 2000
|
Internet Explorer 5
|
Program Tips
|
Easter Eggs
|
Hardware
|
DVD
|
|
|
|
ActiveDVD
|
DVD News
|
DVD Forum
|
Glossary
|
Tips
|
Articles
|
Reviews
|
News Archive
|
Links
|
Drivers
|
|
|
|
Latest Reviews
|
Xbox/Games
|
Fallout 3
|
|
Applications
|
Windows Server 2008 R2
|
Windows 7
|
|
Hardware
|
iPod Touch 32GB
|
|
|
|
Latest Interviews
|
Steve Ballmer
|
Jim Allchin
|
|
|
|
Site News/Info
|
About This Site
|
Affiliates
|
Contact Us
|
Default Home Page
|
Link To Us
|
Links
|
News Archive
|
Site Search
|
Awards
|
|
|
|
Credits
©1997-2012, Active Network, Inc. All Rights Reserved.
Please click
here
for full terms of use and restrictions or read our Light Tower
Privacy
Statement.
|
|
|
|
|
Palladium
Details
- Peter Biddle at Microsoft began thinking around 1997 about how to
protect his bits when they were on someone else's computer. (He was
Microsoft's representative at CPTWG and in the DVD-CCA, and was somewhat
skeptical of the technical efficacy of software-based DRM.)
- His view, and the view of some of his colleagues, was that they
ultimately did not know how to enforce a policy for the use of
information when it was kept and used on .somebody else's PC. The PC
platform did not seem to support this.
Hurry up and be first to claim best
casino bonuses in the most trusted online casinos.
- In thinking about this, he decided that "a blob is a blob". ["Blob"
is a database term for "binary large object", and roughly means "file",
"data structure", or "sequence of bits whose internal structure is
unanalyzed".] So, it was not appropriate to think about protecting some
bits more than others, or enforcing some kinds of policies but not
others. So the protection of privacy was the same technical problem as
the protection of copyright, because in each case bits owned by one
party were being entrusted to another party and there was an attempt to
enforce a policy. Technologically, this could not be done securely with
software alone.
- It is hard to imagine how, in software alone, one part of the
functionality of a general-purpose operating system can be protected
from another part of the functionality of a general-purpose operating
system. The existing PC architecture does not support this kind of
compartmentalization. Consequently, a virus could potentially access or
capture any kind of data (including very sensitive personally
identifiable information, financial and medical records, etc.), and
redistribute it over a network.
- Similarly, an emulator or debugger could be used to extract
copyrighted material and redistribute it or use it contrary to policy.
- The view of some people working on Palladium is that it's
appropriate to create technology which would permit each creator of
any kind of digital information to set and enforce any policy
whatsoever for the use of that information. (If you don't want to abide
by the policy, you don't have to accept the information.) There are
various subtleties here and some debate about public policy, but the
basic assumption is that you have a right to control, if you wish, how
other people will use bits you create.
- [Omit some discussion of business models, DRM, file sharing,
legislation, etc.]
- Microsoft does not have the desire or means to control any
information which is input into a computer via a means beyond the scope
of DRM or Palladium (in unencrypted formats such as MP3), and intends to
continue supporting such formats.
- Microsoft employees have a broad variety of opinions on legal and
technical issues related to copyright enforcement. The company's
position is that the use of DRM should be purely voluntary (in the sense
in which the industry uses that term; they do not have a public position
that the DMCA's anticircumvention provisions need to be modified).
- Microsoft wants to compete with proprietary platforms which offer
DRM [to publishers], such as proprietary consumer electronics platforms.
Microsoft believes that, if it did not support DRM at all, it would be
at a competitive disadvantage relative to proprietary platforms which
did.
- The Palladium architecture has been under development since around
1997, and Microsoft holds or has filed for some patents which cover
portions of it. At least one of the inventors of the
Digital Rights Management
Operating System patent is working on Palladium, although we did not
discuss whether the DRM OS patent is related to Palladium, whether
Microsoft is writing an operating system using the techniques disclosed
in that patent, or whether the DRM OS patent covers any parts of
Palladium.
- Palladium is distinct from TCPA and has technical differences from
TCPA. It has some architectural points in common with TCPA, including,
most significantly, the use of "trusted hardware" within a PC in order
to establish a root of trust. Both TCPA and Palladium require
modifications to existing PC hardware architecture in order to work. In
addition, they both require modifications to software in order to use
trust features. Both are intended to run existing "untrusted" software
without any modifications.
- Palladium would, inter alia, add a new opcode and a new
operating mode to the CPU. A portion of the enforcement resides within
the CPU itself.
- Microsoft assumed as a design criterion for Palladium that existing
versions of Windows should be able to run on a Palladium PC, as should
existing Windows applications, as should existing non-Windows operating
systems like Linux. There is no attempt to stop people from booting
whatever code they currently use or may write in the future. In
addition, the hardware trust features can potentially be used by
specially-adapted software, regardless of what operating system is
running. It is possible to imagine that a Palladium-hardware-aware
version of Linux could be created and could make full use of Palladium's
hardware features in order to achieve trust comparable to the Windows
implementation. Microsoft is only writing an implementation for Windows,
but plans to publish all the technical details. (Microsoft has not yet
decided about patent policies or stated whether an operating system
which used Palladium hardware features would necessarily infringe any of
Microsoft's Palladium patents.)
- Microsoft, like chemists, calls Palladium "Pd" for short.
- I'm going to type ":abbr pd Palladium" in vi so that I can stop
typing "Palladium" all the time. Hooray for :abbr!
- The initial version of Palladium will require changes to five parts
of the PC's hardware. Changes will be required to the CPU, the chipset
(on the motherboard), the input devices (e.g. keyboard), and the video
output devices (graphics processor). In addition, a new component must
be added: a tamper-resistant secure cryptographic co-processor, which
Microsoft calls SCP or SPP.
- Although the SCP is tamper-resistant, it is likely that a skilled
attacker with physical access to the inside of a Palladium PC can still
compromise it or subvert its policies in some way. One possible attack
is one I discussed with Ross Anderson last week: you can replace the
system RAM with special RAM which allows its contents to be read or
modified by an external circuit.
- So it is possible that an attacker with physical access can still
compromise the system, even though the SCP is meant to be
tamper-resistant, partly because other components (like RAM) are less
robust against modification. Palladium primarily defends effectively
against two classes of attacks: (1) remote network-mounted attacks
(buffer overflows and other programming flaws, malicious mobile code,
etc.), because even if some malicious code is installed in one part of
the system, it still can't effectively subvert the policy of another
part of the system, and (2) local software-based attacks, including
things like using a debugger to try to read a program's internal state
while it's executing or to try to subvert its policy. Thus, Palladium
can probably guarantee that you can't write or download any software
(and nobody else can write or upload to you any software) which would
compromise the policy of software running locally which is making use of
Palladium trust features.
- Although hardware attacks can work, they are probably not portable
from one machine to another. This is especially interesting for users of
DRM -- even though one user can launch an expensive and successful
attack, that user can't publish an inexpensive software-based technique
or HOWTO which would enable others to reproduce this attack cheaply.
(Cue reference to Bunnie's X-BOX reverse engineering paper, where he
suggests that his inexpensive attack on the X-BOX can yield portable
techniques which can be used by others inexpensively, but that the X-BOX
could have been designed so that his attack was not readily
portable to other machines.)
- Palladium's changes to the CPU allow it to be placed into a new mode
where certain areas of memory are restricted via a technique called
"code curtaining" to an ultra-privileged piece of code called the "nub"
or "TOR". ("Nub" is the Palladium team's term for this code, and "TOR",
for "Trusted Operating Root", is the official public term.) The nub is a
kind of trusted memory manager, which runs with more privilege than an
operating system kernel. The nub also manages access to the SCP.
- The SCP is an 8-bit tamper-resistant cryptographic smart-card which
contains unique keys, including public keypairs (2048-bit RSA), and
symmetric keys for AES in CBC mode. These keys are unique per machine
and the SCP does not reveal them to anything outside the SCP's security
perimeter. It also contains a variety of other cryptographic
functionality, including SHA-1, RSA, AES, and other cipher
implementations, a small amount of memory, and a monotone counter. The
SCP can do a number of cryptographic protocols. It also contains a thing
called a PCR. (I think that stands for "platform configuration
register".)
- When you want to start a Palladium PC in trusted mode (note that it
doesn't have to start in trusted mode, and, from what Microsoft
said, it sounds like you could even imagine booting the same OS in
either trusted or untrusted mode, based on a user's choice at boot
time), the system hardware performs what's called an "authenticated
boot", in which the system is placed in a known state and a nub is
loaded. A hash (I think it's SHA-1) is taken of the nub which was just
loaded, and the 160-bit hash is stored unalterably in the PCR, and
remains there for as long as the system continues to operate in trusted
mode. Then the operating system kernel can boot, but the key to the
trust in the system is the authentication of the nub. As long as the
system is up, the SCP knows exactly which nub is currently running;
because of the way the CPU works, it is not possible for any other
software to modify the nub or its memory or subvert the nub's policies.
The nub is in some sense in charge of the system at a low level, but it
doesn't usually do things which other software would notice unless it's
asked to.
- Palladium's authenticated boot is simpler than TCPA's version,
because only a single hash (or "measurement", in TCPA language) is
taken. Palladium does not attempt to "measure" the hardware, BIOS, boot
loader, OS kernel, etc., or at least not within the SCP. In TCPA,
several separate hashes will be taken and stored in secure registers.
- The nub interfaces with other software on the system by means of
programs (outside the nub) called trusted agents (or TAs). The TAs can
implement sophisticated policies and authentication methods, where the
nub (and SCP) just implement fairly simple primitives. A TA can also
communicate with user-space programs (at least, that will be a feature
of Microsoft's nub; other people can write their own nubs which can
support different kinds of TAs or even do without TAs entirely). The TAs
are protected by hardware from one another and from the rest of the
system.
- Even PCI DMA can't read or write memory which has been reserved to a
nub's or TA's use (including the nub's or TA's code). This memory is
completely inaccessible and can only be accessed indirectly through API
calls. The chipset on the motherboard is modified to enforces this sort
of restriction.
- The SCP provides a feature called "sealed storage" by means of two
API calls (called SEAL and UNSEAL). The Microsoft nub provides more
complicated wrappers around these calls; using the Microsoft wrappers,
you can have features like "migration strategy" or "migration policy"
(allowing at least three different policies for how encrypted data can
be moved from one machine to another). If a TA running on a system in
trusted mode wants to use sealed storage, it can call into the APIs
implemented in the nub.
- Sealed storage is implemented by means of encryption (sealing) or
decryption (unsealing) with a symmetric cipher (probably AES in CBC
mode). When the SCP is given data to seal, it's given two arguments: the
data itself and a 160-bit "nub identifier" (which is the SHA-1 hash of
some nub and so uniquely identifies that nub).
- Sealing is performed by prepending the nub identifier to the data to
be sealed, and then encrypting the result with a private symmetric key
-- I want to call this the "platform-specific key", which varies from
machine to machine and is secret. (I don't remember whether
"platform-specific key" is Microsoft's term for this.) That key is kept
within the SCP and is a unique identifier for the machine which
performed the sealing operation.
- The SCP actually also prepends a random nonce to the data to be
sealed before encryption (and discards the nonce upon decryption). This
is a clever privacy feature which prevents someone from creating an
application which "cookies you" by recording the output of sealing an
empty string (and then using the result as a persistent unique
identifier for your machine). A program which tried to "cookie you" this
way would find that, because of the random nonce, the result of sealing
a given string is constantly completely different, and no useful
information about the identity of the machine is revealed by the sealing
operation.
- After encryption, the SCP returns the encrypted result as the return
value of the SEAL operation.
- When an SCP is given encrypted data to UNSEAL, it internally
attempts to decrypt the encrypted data using its platform-specific key.
This means that, if the encrypted data was originally sealed on a
different machine, the UNSEAL operation will fail outright immediately.
(You can't take a sealed file and transfer it to another machine and
unseal it there; because the platform-specific key is used for
encryption and decryption, and can't be extracted from the SCP, you can
only UNSEAL data on the same machine on which it was originally SEALed.)
- If the decryption is successful, the SCP performs a second check: it
examines the nub identifier which resides within the decrypted data. The
nub identifier was specified at the time the data was originally SEALed,
and indicates which nub is allowed to receive the decrypted data. If the
nub identifier for the decrypted data is identical to the nub identifer
which is currently stored in the PCR (which is the SHA-1 hash of the
currently-running nub on the machine at the moment UNSEAL was called),
the UNSEAL is successful and the decrypted data is returned to the
calling nub. However, if the nub identifier does not match the contents
of the PCR, the SCP concludes that the nub which is currently running is
not entitled to receive this data, and discards it.
- Thus, sealing is specific to a physical machine and also
specific to a nub. Data sealed on one machine for a particular
nub cannot be decrypted on a different machine or under a different nub.
An application which trusts a particular nub (and is running under that
nub) can seal important secret data and then store the resulting sealed
data safely on an untrusted hard drive, or even send it over a network.
- If you reboot the machine under a debugger, there is no technical
problem, and you can debug the software which created the encrypted
file. However, since you aren't running the proper
(non-debugger-friendly) nub, the debugger will work, but the UNSEAL call
won't. The SCP will receive the UNSEAL call, examine the PCR, and
conclude that the currently-running nub is not cleared (so to speak) to
receive the sealed data. Your applications can only decrypt sealed data
if they are running under the same machine and under the
same software environment within which they originally sealed that
data!
- This is remarkably clever. When you are running under a trusted nub,
your applications can use the SCP to decrypt and process data, but you
can't run software which subverts a TA's policy (because the nub will
not permit the policy to be subverted).
- When you are not running under a trusted nub, you can run software
which subverts a TA's policy (because the nub isn't able to prevent it),
but your applications will no longer be able to decrypt any sealed data,
because the SCP won't be willing to perform the decryption.
- There is a long discussion of how you can make a backup, or upgrade
your system, or migrate your software and data to a new system, etc. The
default with sealed storage is that any sealed data will be unusable
when migrated to a new system. (Thus Ross Anderson mentioned that you
can't easily leak a document to a reporter, because if the document is
sealed for use only on your PC, the reporter's PC will be unable to
decrypt the document.)
- The Microsoft nub provides wrappers around the SCP's sealing
features which allow the software which performs the sealing operation
to specify a migration policy at the time the sealing operation is
originally performed. The migration policy can be (approximately) one of
the following, at the software's sole option: (1) Migration is prevented
entirely, and the data must die with the current PC where it was
created. (2) Migration is permitted upon some kind of authentication by
a local user (e.g. a password) which will decrypt or command the
decryption of data temporarily in order to permit it to be migrated. (3)
Migration is permitted with the assistance and consent of a 3rd party --
e.g. in DRM applications, the DRM software might have to "phone home" to
get consent and decryption keys which will permit a file to be decrypted
temporarily in order to permit it to be migrated. This last option might
be called a key escrow application, although it's not technically
parallel to something like the Clipper Chip, because it doesn't
facilitate wiretapping or threaten communications privacy.
- Palladium's modifications to input and output hardware will prevent
software from doing certain kinds of monitoring and spoofing, as well as
"screen scraping". A program will be able to ask Palladium to display a
dialog box which can't be "obscured" or "observed" by other software,
and Palladium hardware can enforce these conditions. And there is a way
to be sure that input is coming from a physical input device and not
spoofed by another program. This is probably also comparable to the
"physical presence detection" in TCPA, which tries to ascertain whether
a user is physically present (which is a requirement in order for
certain security-sensitive things to happen).
- The secure output features also permit, e.g., a DVD player program
to prevent other software from making screen captures. The initial
version of Palladium does not control audio output in this way, so you
can still record all sound output via something like TotalRecorder.
(Microsoft also has an initiative called Secure Audio Path which could
potentially restrict that, but SAP isn't part of Palladium proper. The
Palladium secure output features are currently totally video-specific.)
- We didn't talk much about the details of how TAs communicate with
user-space programs, which is key to how a programmer would actually use
Palladium features. We also didn't talk about whether there is some kind
of authentication of a kernel or precisely which traditional kernel
features are taken over by the nub. Microsoft did say that most things
which are currently in the kernel will remain in the kernel.
- In principle, nub and kernel are independent, so a non-Microsoft
kernel could run on a Microsoft nub, or vice versa. Patent and copyright
issues might prevent this from being done in practice, but it is
apparently technically possible within the design of Palladium.
- Microsoft's nub, including its source code, will be published for
review by anyone who wants to examine it, in order to allow all of
Microsoft's claims about its security properties to be verified. There
is no part of Palladium's design or code which needs to be kept secret,
although each SCP will contain secret cryptographic keys loaded at the
time of its manufacture. Microsoft will encourage non-Microsoft people
to read and discuss its nub. You will also be able to create your own
nub, except that changing the nub will (as discussed above) prevent
previously-sealed data from being decrypted.
- If you choose to allow people on the network to tell which nub you
are running, they can probably find out in a way you can't fake (using a
cryptographic protocol). You can refuse to tell them, but if you do
choose to tell them, you will not be able to lie about it (except maybe
if you know a way to tamper with the hardware). This is like TCPA;
critics note that many entities which use Palladium might assume by
default that any non-Microsoft nub is untrustworthy, which would make it
very inconvenient to change your nub from the Microsoft-supplied
default.
- Your nub's identifier is not a unique identifier for your machine,
because it is the same as everyone else's nub. Palladium does not create
any remotely-visible unique identifier for your machine, and actually
contains some features to try to avoid inadvertently disclosing a unique
identifier. There is a concept of an "identity server" which is a
separate service which issues you some kind of identity credential which
uses Palladium and may or may not reveal particular personal
information. (I didn't get a lot of details on how identity servers
would work or who would run them.)
- Microsoft suggests that Palladium is flexible enough that many
entities could use it to create their own policies, judgments,
certification services, etc. That part of the discussion reminded me in
some ways of PICS and P3P, although Palladium has a more robust
technical enforcement mechanism than either of those standards.
Comment On This Story
|
|
|
|