[Am-info] United States Patent: 6,330,670
Martin Sandberg
msandberg@Sigma4.com
Sun, 31 Mar 2002 19:27:21 -0700
I've edited this down some, but the whole thing is at:
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=3DPTO1&Sect2=3DHITOFF&d=3DPA=
LL&p=3D1&u=3D/netahtml/srchnum.htm&r=3D1&f=3DG&l=3D50&s1=3D'6330670'.WKU.&OS=
=3DPN/6330670&RS=3DPN/6330670
The key thing is that M$ is proposing a CPU with a private key inside it=
that won't boot an "Untrusted" OS, I.E. an open-source OS. This is the most=
blatent thing I've seen yet to kill Linux.
United States Patent 6,330,670 England , et al. December 11, 2001
Digital rights management operating system
Abstract
A digital rights management operating system protects rights-managed data,=
such as downloaded content, from access by untrusted programs while the=
data is loaded into memory or on a page file as a result of the execution=
of a trusted application that accesses the memory. To protect the=
rights-managed data resident in memory, the digital rights management=
operating system refuses to load an untrusted program into memory while the=
trusted application is executing or removes the data from memory before=
loading the untrusted program. If the untrusted program executes at the=
operating system level, such as a debugger, the digital rights management=
operating system renounces a trusted identity created for it by the=
computer processor when the computer was booted. To protect the=
rights-managed data on the page file, the digital rights management=
operating system prohibits raw access to the page file, or erases the data=
from the page file before allowing such access. Alternatively, the digital=
rights management operating system can encrypt the rights-managed data=
prior to writing it to the page file. The digital rights management=
operating system also limits the functions the user can perform on the=
rights-managed data and the trusted application, and can provide a trusted=
clock used in place of the standard computer clock.
Inventors: England; Paul (Bellevue, WA); DeTreville; John D. (Seattle, WA);=
Lampson; Butler W. (Cambridge, MA) Assignee: Microsoft Corporation=
(Redmond, WA) Appl. No.: 227561 Filed: January 8, 1999
Current U.S. Class: 713/2; 713/200 Intern'l Class: G06F 009/44 Field of=
Search: 713/1,2,155,164-167,200 717/11
References Cited <http://patft.uspto.gov/netacgi/nph-Parser?Sect1=3DPTO2&Sec=
t2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-adv.htm&r=3D0&f=3DS&l=3D50&d=3DCR=
01&Query=3Dref/6,330,670>[Referenced By]
U.S. Patent Documents
<http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1=
&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dye=
s&Query=3DPN%2F4827508>4827508May., 1989Shear. <http://patft.uspto.gov/netac=
gi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-boo=
l.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F4969189>496918=
9Nov., 1990Ohta et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPT=
O1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D5=
0&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F4977594>4977594Dec., 1990Shear. <http:=
//patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%=
2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Quer=
y=3DPN%2F5050213>5050213Sep., 1991Shear. <http://patft.uspto.gov/netacgi/nph=
-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html=
&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5140634>5140634Aug.,=
1992Guillou et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&=
Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=
=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5276311>5276311Jan., 1994Hennige. <http:/=
/patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2=
=46netahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Que=
ry=3DPN%2F5410598>5410598Apr., 1995Shear. <http://patft.uspto.gov/netacgi/np=
h-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.htm=
l&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5473690>5473690Dec.=
, 1995Grimonprez et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DP=
TO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D=
50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5473692>5473692Dec., 1995Davis. <http=
://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D=
%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Que=
ry=3DPN%2F5544246>5544246Aug., 1996Mandelbaum et al. <http://patft.uspto.gov=
/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsear=
ch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5654746>=
5654746Aug., 1997McMullan, Jr. et al. <http://patft.uspto.gov/netacgi/nph-Pa=
rser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=
=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5721781>5721781Feb.,=
1998Deo et al.380/25. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPT=
O1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D5=
0&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5796824>5796824Aug., 1998Hasebe et al.=
<http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D=
1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dy=
es&Query=3DPN%2F5812662>5812662Sep., 1998Hsu et al. <http://patft.uspto.gov/=
netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearc=
h-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5812980>5=
812980Sep., 1998Asai. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO=
1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50=
&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5892900>5892900Apr., 1999Ginter. <http:=
//patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%=
2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Quer=
y=3DPN%2F5910987>5910987Jun., 1999Ginter et al. <http://patft.uspto.gov/neta=
cgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bo=
ol.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5915019>59150=
19Jun., 1999Ginter et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=
=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&=
l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5917912>5917912Jun., 1999Ginter=
et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITO=
=46F&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&Re=
fSrch=3Dyes&Query=3DPN%2F5920861>5920861Jul., 1999Hall et al. <http://patft.=
uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetaht=
ml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2=
=465933498>5933498Aug., 1999Schneck et al. <http://patft.uspto.gov/netacgi/n=
ph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.ht=
ml&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5940504>5940504Aug=
=2E, 1999Griswold. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&S=
ect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=
=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5943422>5943422Aug., 1999Van Wie et al. <=
http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&=
u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes=
&Query=3DPN%2F5949876>5949876Sep., 1999Ginter et al. <http://patft.uspto.gov=
/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsear=
ch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5953502>=
5953502Sep., 1999Helbig, Sr. <http://patft.uspto.gov/netacgi/nph-Parser?Sect=
2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG=
&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F5982891>5982891Nov., 1999Ginter=
et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITO=
=46F&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&Re=
fSrch=3Dyes&Query=3DPN%2F5991876>5991876Nov., 1999Johnson et al. <http://pat=
ft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnet=
ahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DP=
N%2F6006332>6006332Dec., 1999Rabne et al. <http://patft.uspto.gov/netacgi/np=
h-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.htm=
l&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F6009274>6009274Dec.=
, 1999Fletcher et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO=
1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50=
&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F6009401>6009401Dec., 1999Horstmann. <ht=
tp://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=
=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&=
Query=3DPN%2F6073124>6073124Jun., 2000Krishnan et al. <http://patft.uspto.go=
v/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsea=
rch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F6112181=
>6112181Aug., 2000Shear et al. <http://patft.uspto.gov/netacgi/nph-Parser?Se=
ct2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=
=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F6138119>6138119Oct.,=
2000Hall et al. <http://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sec=
t2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3D=
PALL&RefSrch=3Dyes&Query=3DPN%2F6148402>6148402Nov., 2000Campbell713/200. <h=
ttp://patft.uspto.gov/netacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=
=3D%2Fnetahtml%2Fsearch-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&=
Query=3DPN%2F6157721>6157721Dec., 2000Shear et al. <http://patft.uspto.gov/n=
etacgi/nph-Parser?Sect2=3DPTO1&Sect2=3DHITOFF&p=3D1&u=3D%2Fnetahtml%2Fsearch=
-bool.html&r=3D1&f=3DG&l=3D50&d=3DPALL&RefSrch=3Dyes&Query=3DPN%2F6185683>61=
85683Feb., 2001Ginter et al.
Primary Examiner: Heckler; Thomas M.
Attorney, Agent or Firm: Lee & Hayes, PLLC
Parent Case Text
RELATED APPLICATIONS
This application is a continuation-in-part of U.S. provisional patent=
application Ser. No. 60/105,891 filed on Oct. 26, 1998, which is herein=
incorporated by reference, and is related to co-pending and co-filed=
applications titled "System and Method for Authenticating an Operating=
System to a Central Processing Unit, Providing the CPU/OS with Secure=
Storage, and Authenticating the CPU/OS to a Third Party" Ser. No.=
09/266,207, filed on Mar. 10, 1999, "Loading and Identifying a Digital=
Rights Management Operating System" Ser. No. 09/227,611, filed on Jan. 8,=
1999, "Key-based Secure Storage" Ser. No. 09/227,568, filed Jan. 8, 1999,=
and "Digital Rights Management Using One Or More Access Prediates, Rights=
Manager Certificates, And Licenses" Ser. No. 09/227,559. filed Jan. 8, 1999=
=2E
Claims
Stripped out too many claims!
Description
=46IELD OF THE INVENTION
This invention relates generally to computer operating systems, and more=
particularly to booting and identifying an operating system that enforces=
digital rights.
COPYRIGHT NOTICE/PERMISSION
A portion of the disclosure of this patent document contains material which=
is subject to copyright protection. The copyright owner has no objection to=
the facsimile reproduction by anyone of the patent document or the patent=
disclosure as it appears in the Patent and Trademark Office patent file or=
records, but otherwise reserves all copyright rights whatsoever. The=
following notice applies to the software and data as described below and in=
the drawings hereto: Copyright.COPYRGT. 1998, Microsoft Corporation, All=
Rights Reserved.
BACKGROUND OF THE INVENTION
More and more content is being delivered in digital form, and more and more=
digital content is being delivered online over private and public networks,=
such as Intranets, the Internet and cable TV networks. For a client,=
digital form allows more sophisticated content, while online delivery=
improves timeliness and convenience. For a publisher, digital content also=
reduces delivery costs. Unfortunately, these worthwhile attributes are=
often outweighed in the minds of publishers by the corresponding=
disadvantage that online information delivery makes it relatively easy to=
obtain pristine digital content and to pirate the content at the expense=
and harm of the publisher.
Piracy of digital content, especially online digital content, is not yet a=
great problem. Most premium content that is available on the Web is of low=
value, and therefore casual and organized pirates do not yet see an=
attractive business stealing and reselling content. Increasingly, though,=
higher-value content is becoming available. Books and audio recordings are=
available now, and as bandwidths increase, video content will start to=
appear. With the increase in value of online digital content, the=
attractiveness of organized and casual theft increases.
The unusual property of digital content is that the publisher (or reseller)=
gives or sells the content to a client, but continues to restrict rights to=
use the content even after the content is under the sole physical control=
of the client. For instance, a publisher will typically retain copyright to=
a work so that the client cannot reproduce or publish the work without=
permission. A publisher could also adjust pricing according to whether the=
client is allowed to make a persistent copy, or is just allowed to view the=
content online as it is delivered. These scenarios reveal a peculiar=
arrangement. The user that possesses the digital bits often does not have=
full rights to their use; instead, the provider retains at least some of=
the rights. In a very real sense, the legitimate user of a computer can be=
an adversary of the data or content provider. "Digital rights management"=
is therefore fast becoming a central requirement if online commerce is to=
continue its rapid growth. Content providers and the computer industry must=
quickly provide technologies and protocols for ensuring that digital=
content is properly handled in accordance with the rights granted by the=
publisher. If measures are not taken, traditional content providers may be=
put out of business by widespread theft, or, more likely, will refuse=
altogether to deliver content online.
Traditional security systems ill serve this problem. There are highly secure=
schemes for encrypting data on networks, authenticating users, revoking=
certificates, and storing data securely. Unfortunately, none of these=
systems address the assurance of content security after it has been=
delivered to a client's machine. Traditional uses of smart cards offer=
little help. Smart cards merely provide authentication, storage, and=
encryption capabilities. Ultimately, useful content must be assembled=
within the host machine for display, and again, at this point the bits are=
subject to theft. Cryptographic coprocessors provide higher-performance=
cryptographic operations, and are usually programmable but again,=
fundamentally, any operating system or sufficiently privileged application,=
trusted or not, can use the services of the cryptographic processor.
There appear to be three solutions to this problem. One solution is to do=
away with general-purpose computing devices and use special-purpose=
tamper-resistant boxes for delivery, storage, and display of secure=
content. This is the approach adopted by the cable industry and their=
set-top boxes, and looks set to be the model for DVD-video presentation.=
The second solution is to use secret, proprietary data formats and=
applications software, or to use tamper-resistant software containers, in=
the hope that the resulting complexity will substantially impede piracy.=
The third solution is to modify the general-purpose computer to support a=
general model of client-side content security and digital rights management=
=2E
This invention is directed to a system and methodology that falls generally=
into the third category of solutions.
A fundamental building block for client-side content security is a secure=
operating system. If a computer can be booted only into an operating system=
that itself honors content rights, and allows only compliant applications=
to access rights-restricted data, then data integrity within the machine=
can be assured. This stepping-stone to a secure operating system is=
sometimes called "Secure Boot." If secure boot cannot be assured, then=
whatever rights management system the secure OS provides, the computer can=
always be booted into an insecure operating system as a step to compromise =
it.
Secure boot of an operating system is usually a multi-stage process. A=
securely booted computer runs a trusted program at startup. The trusted=
program loads an initial layer of the operating system and checks its=
integrity (by using a code signature or by other means) before allowing it=
to run. This layer will in turn load and check the succeeding layers. This=
proceeds all the way to loading trusted (signed) device drivers, and=
finally the trusted application(s).
An article by B. Lampson, M. Abadi, and M. Burrows, entitled "Authentication=
in Distributed Systems: Theory and Practice," ACM Transactions on Computer=
Systems v10, 265, 1992, describes in general terms the requirements for=
securely booting an operating system. The only hardware assist is a=
register that holds a machine secret. When boot begins this register=
becomes readable, and there's a hardware operation to make this secret=
unreadable. Once it's unreadable, it stays unreadable until the next boot.=
The boot code mints a public-key pair and a certificate that the operating=
system can use to authenticate itself to other parties in order to=
establish trust. We note that in this scheme, a malicious user can easily=
subvert security by replacing the boot code.
Clark and Hoffman's BITS system is designed to support secure boot from a=
smart card. P. C. Clark and L. J. Hoffman, "BITS: A Smartcard Operating=
System," Comm. ACM. 37, 66, 1994. In their design, the smart card holds the=
boot sector, and PCs are designed to boot from the smart card. The smart=
card continues to be involved in the boot process (for example, the smart=
card holds the signatures or keys of other parts of the OS).
Bennet Yee describes a scheme in which a secure processor first gets control=
of the booting machine. B. Yee, "Using Secure Coprocessors", Ph.D. Thesis,=
Carnegie Mellon University, 1994. The secure processor can check code=
integrity before loading other systems. One of the nice features of this=
scheme is that there is a tamper-resistant device that can later be queried=
for the details of the running operating system.
Another secure boot model, known as AEGIS, is disclosed by W. Arbaugh, D. G.=
Farber, and J. M Smith in a paper entitled "A Secure and Reliable Bootstrap=
Architecture", Univ. of Penn. Dept. of CIS Technical Report, IEEE Symposium=
on Security and Privacy, page 65, 1997. This AEGIS model requires a=
tamper-resistant BIOS that has hard-wired into it the signature of the=
following stage. This scheme has the very considerable advantage that it=
works well with current microprocessors and the current PC architecture,=
but has three drawbacks. First, the set of trusted operating systems or=
trusted publishers must be wired into the BIOS. Second, if the content is=
valuable enough (for instance, e-cash or Hollywood videos), users will find=
a way of replacing the BIOS with one that permits an insecure boot. Third,=
when obtaining data from a network server, the client has no way of proving=
to the remote server that it is indeed running a trusted system.
On the more general subject of client-side rights management, several=
systems exist or have been proposed to encapsulate data and rights in a=
tamper-resistant software package. An early example is IBM's Cryptolope.=
Another existent commercial implementation of a rights management system=
has been developed by Intertrust. In the audio domain, AT&T Research have=
proposed their "A2b" audio rights management system based on the=
PolicyMaker rights management system.
Therefore, there is a need in the art for a digital rights management=
operating system that protects the rights of the content provider while=
operating on a general-purpose personal computer without requiring=
additional hardware directed at securing downloaded content.
SUMMARY OF THE INVENTION
The above-mentioned shortcomings, disadvantages and problems are addressed=
by the present invention, which will be understood by reading and studying=
the following specification.
A digital rights management operating system protects rights-managed data,=
such as downloaded content, from access by untrusted programs while the=
data is loaded into memory or on a page file as a result of the execution=
of a trusted application that accesses the memory. To protect the=
rights-managed data resident in memory, the digital rights management=
operating system refuses to load an untrusted program into memory while the=
trusted application is executing or removes the data from memory before=
loading the untrusted program. In the latter instance, the digital rights=
management system can terminate the trusted application as well. If the=
untrusted program executes at the operating system level, such as a=
debugger, the digital rights management operating system renounces a=
trusted identity created for it by the computer processor when the computer=
was booted. To protect the rights-managed data on the page file, the=
digital rights management operating system prohibits raw access to the page=
file, or erases the data from the page file before allowing such access.=
Alternatively, the digital rights management operating system can encrypt=
the rights-managed data prior to writing it to the page file.
In one aspect of the invention, the digital rights management operating=
system also provides a trusted clock mechanism so that a user cannot reset=
the computer's clock to circumvent time restrictions placed on trusted=
components. In other aspects of the invention, the digital rights=
management operating system limits the functions the user can perform on=
the rights-managed data and the trusted application.
Thus, the digital rights management system of the present invention protects=
content downloaded to a general-purpose personal computer and does so=
within the framework of a standard operating system, alleviating the need=
for additional and specialized hardware.
The present invention describes systems, clients, servers, methods, and=
computer-readable media of varying scope. In addition to the aspects and=
advantages of the present invention described in this summary, further=
aspects and advantages of the invention will become apparent by reference=
to the drawings and by reading the detailed description that follows.
BRIEF DESCRIPTION OF THE DRAWINGS
=46IG. 1A is a diagram of the hardware and operating environment in=
conjunction with which exemplary embodiments of the invention may be practi=
ced;
=46IG. 1B is a diagram of a client computer for use with exemplary=
embodiments of the invention;
=46IG. 2 is a diagram illustrating a system-level overview of an exemplary=
embodiment of the invention;
=46IG. 3 is a flowchart of a method to be performed by a client when booting=
or loading system components according to an exemplary embodiment of the in=
vention;
=46IG. 4 is a diagram of a certificate revocation list data structure for=
use in an exemplary implementation of the invention;
=46IG. 5 is a flowchart of a method to be performed by a client to create a=
boot log according to an exemplary embodiment of the invention;
=46IG. 6 is a block diagram of an exemplary boot log created using the=
method of FIG. 5;
=46IGS. 7A, 7B and 7C are block diagrams of boot blocks for use in an=
exemplary embodiment of the invention;
=46IG. 8 is a block diagram of key generation functions according to an=
exemplary embodiment of the invention;
=46IG. 9 is a diagram of a rights manager certificate data structure for use=
in an exemplary implementation of the invention;
=46IG. 10 is a diagram of a required properties access control list data=
structure for use in an exemplary implementation of the invention; and
=46IG. 11 is a diagram of a license data structure for use in an exemplary=
implementation of the invention.
DETAILED DESCRIPTION OF THE INVENTION
In the following detailed description of exemplary embodiments of the=
invention, reference is made to the accompanying drawings, which form a=
part hereof, and in which is shown by way of illustration specific=
exemplary embodiments in which the invention may be practiced. These=
embodiments are described in sufficient detail to enable those skilled in=
the art to practice the invention, and it is to be understood that other=
embodiments may be utilized and that logical, mechanical, electrical and=
other changes may be made without departing from the spirit or scope of the=
present invention. The following detailed description is, therefore, not to=
be taken in a limiting sense, and the scope of the present invention is=
defined only by the appended claims.
The detailed description is divided into four sections. In the first=
section, the hardware and the operating environment in conjunction with=
which embodiments of the invention may be practiced are described. In the=
second section, a system level overview of the invention is presented. The=
third section described methods and data structures employed by various=
exemplary embodiments of the invention. Finally, in the fourth section, a=
conclusion of the detailed description is provided.
Hardware and Operating Environment
=46IG. 1A is a diagram of the hardware and operating environment in=
conjunction with which embodiments of the invention may be practiced. The=
description of FIG. 1A is intended to provide a brief, general description=
of suitable computer hardware and a suitable computing environment in=
conjunction with which the invention may be implemented. Although not=
required, the invention is described in the general context of computer-exe=
cutable instructions, such as program modules, being executed by a computer,=
such as a personal computer. Generally, program modules include routines,=
programs, objects, components, data structures, etc. that perform=
particular tasks or implement particular abstract data types.
Moreover, those skilled in the art will appreciate that the invention may be=
practiced with other computer system configurations, including hand-held=
devices, multiprocessor systems, microprocessor-based or programmable=
consumer electronics, network PCs, minicomputers, mainframe computers, and=
the like. The invention may also be practiced in distributed computing=
environments where tasks are performed by remote processing devices that=
are linked through a communications network. In a distributed computing=
environment, program modules may be located in both local and remote memory=
storage devices.
The exemplary hardware and operating environment of FIG. 1A for implementing=
the invention includes a general purpose computing device in the form of a=
computer 20, including a processing unit 21, a system memory 22, and a=
system bus 23 that operatively couples various system components, including=
the system memory 22, to the processing unit 21. There may be only one or=
there may be more than one processing unit 21, such that the processor of=
computer 20 comprises a single central-processing unit (CPU), or a=
plurality of processing units, commonly referred to as a parallel=
processing environment. The computer 20 may be a conventional computer, a=
distributed computer, or any other type of computer; the invention is not=
so limited.
The system bus 23 may be any of several types of bus structures including a=
memory bus or memory controller, a peripheral bus, and a local bus using=
any of a variety of bus architectures. The system memory may also be=
referred to as simply the memory, and includes read only memory (ROM) 24=
and random access memory (RAM) 25. A basic input/output system (BIOS) 26,=
containing the basic routines that help to transfer information between=
elements within the computer 20, such as during start-up, is stored in ROM=
24. The computer 20 further includes a hard disk drive 27 for reading from=
and writing to a hard disk, not shown, a magnetic disk drive 28 for reading=
from or writing to a removable magnetic disk 29, and an optical disk drive=
30 for reading from or writing to a removable optical disk 31 such as a CD=
ROM or other optical media.
The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30=
are connected to the system bus 23 by a hard disk drive interface 32, a=
magnetic disk drive interface 33, and an optical disk drive interface 34,=
respectively. The drives and their associated computer-readable media=
provide nonvolatile storage of computer-readable instructions, data=
structures, program modules and other data for the computer 20. It should=
be appreciated by those skilled in the art that any type of=
computer-readable media that can store data that is accessible by a=
computer, such as magnetic cassettes, flash memory cards, digital video=
disks, Bernoulli cartridges, random access memories (RAMs), read only=
memories (ROMs), and the like, may be used in the exemplary operating envir=
onment.
A number of program modules may be stored on the hard disk, magnetic disk=
29, optical disk 31, ROM 24, or RAM 25, including an operating system 35,=
one or more application programs 36, other program modules 37, and program=
data 38. A user may enter commands and information into the personal=
computer 20 through input devices such as a keyboard 40 and pointing device=
42. Other input devices (not shown) may include a microphone, joystick,=
game pad, satellite dish, scanner, or the like. These and other input=
devices are often connected to the processing unit 21 through a serial port=
interface 46 that is coupled to the system bus, but may be connected by=
other interfaces, such as a parallel port, game port, or a universal serial=
bus (USB). A monitor 47 or other type of display device is also connected=
to the system bus 23 via an interface, such as a video adapter 48. In=
addition to the monitor, computers typically include other peripheral=
output devices (not shown), such as speakers and printers.
The computer 20 may operate in a networked environment using logical=
connections to one or more remote computers, such as remote computer 49.=
These logical connections are achieved by a communication device coupled to=
or a part of the computer 20; the invention is not limited to a particular=
type of communications device. The remote computer 49 may be another=
computer, a server, a router, a network PC, a client, a peer device or=
other common network node, and typically includes many or all of the=
elements described above relative to the computer 20, although only a=
memory storage device 50 has been illustrated in FIG. 1. The logical=
connections depicted in FIG. l include a local-area network (LAN) 51 and a=
wide-area network (WAN) 52. Such networking environments arc commonplace in=
offices, enterprise-wide computer networks, intranets and the Internet.
When used in a LAN-networking environment, the computer 20 is connected to=
the local network 51 through a network interface or adapter 53, which is=
one type of communications device. When used in a WAN-networking=
environment, the computer 20 typically includes a modem 54, a type of=
communications device, or any other type of communications device for=
establishing communications over the wide area network 52, such as the=
Internet. The modem 54, which may be internal or external, is connected to=
the system bus 23 via the serial port interface 46. In a networked=
environment, program modules depicted relative to the personal computer 20,=
or portions thereof, may be stored in the remote memory storage device. It=
is appreciated that the network connections shown are exemplary and other=
means of and communications devices for establishing a communications link=
between the computers may be used.
The hardware and operating environment in conjunction with which embodiments=
of the invention may be practiced has been described. The computer in=
conjunction with which embodiments of the invention may be practiced may be=
a conventional computer, a distributed computer, or any other type of=
computer; the invention is not so limited. Such a computer typically=
includes one or more processing units as its processor, and a=
computer-readable medium such as a memory. The computer may also include a=
communications device such as a network adapter or a modem, so that it is=
able to communicatively couple to other computers.
One exemplary embodiment of a suitable client computer is described in the=
related application titled "System and Method for Authenticating an=
Operating System to a Central Processing Unit, Providing the CPU/OS with=
Secure Storage, and Authenticating the CPU/OS to a Third Party," and=
illustrated in FIG. 1B as subscriber unit 124. The CPU 140 in the=
subscriber unit 124 is able to authenticate the identity of the boot block=
and OS components that have been loaded into the computer, and to provide=
quoting and secure storage operations based on this identity as briefly=
described next. Full descriptions of various embodiments for the subscriber=
unit 124 are provided in the related application.
The CPU 140 has a processor 160 and also can have a cryptographic=
accelerator 162. The CPU 140 is capable of performing cryptographic=
functions, such as signing, encrypting, decrypting, and authenticating,=
with or without the accelerator 162 assisting in intensive mathematical=
computations commonly involved in cryptographic functions.
The CPU manufacturer equips the CPU 140 with a pair of public and private=
keys 164 that is unique to the CPU. For discussion purpose, the CPU's=
public key is referred to as "K.sub.CPU " and the corresponding private key=
is referred to as "K.sub.CPU.sup.-1 ". Other physical implementations may=
include storing the key on an external device to which the main CPU has=
privileged access (where the stored secrets are inaccessible to arbitrary=
application or operating systems code). The private key is never revealed=
and is used only for the specific purpose of signing stylized statements,=
such as when responding to challenges from a content provider, as is=
discussed below.
The manufacturer also issues a signed certificate 166 testifying that it=
produced the CPU according to a known specification. Generally, the=
certificate testifies that the manufacturer created the key pair 164,=
placed the key pair onto the CPU 140, and then destroyed its own knowledge=
of the private key "K.sub.CPU.sup.-1 ". In this way, only the CPU knows the=
CPU private key K.sub.CPU.sup.-1 ; the same key is not issued to other CPUs=
and the manufacturer keeps no record of it. The certificate can in=
principle be stored on a separate physical device associated with the=
processor but still logically belongs to the processor with the=
corresponding key.
The manufacturer has a pair of public and private signing keys, K.sub.MFR=
and K.sub.MFR.sup.-1. The private key K.sub.MFR.sup.-1 is known only to the=
manufacturer, while the public key K.sub.MFR is made available to the=
public. The manufacturer certificate 166 contains the manufacturer's public=
key K.sub.MFR, the CPU's public key K.sub.CPU, and the above testimony. The=
manufacture signs the certificate using its private signing key,=
K.sub.MFR.sup.-1, as follows:
Mfr. Certificate=3D(K.sub.MFR, Certifies-for-Boot, K.sub.CPU), signed by K.s=
ub.MFR.sup.-1
The predicate "certifies-for-boot" is a pledge by the manufacturer that it=
created the CPU and the CPU key pair according to a known specification.=
The pledge further states that the CPU can correctly perform authenticated=
boot procedures, as are described below in more detail. The manufacturer=
certificate 166 is publicly accessible, yet it cannot be forged without=
knowledge of the manufacturer's private key K.sub.MFR.sup.-1.
The CPU 140 has an internal software identity register (SIR) 168, which=
contains the identity of an authenticated operating system 180 or a=
predetermined false value (e.g., zero) if the CPU determines that the=
operating system 180 cannot be authenticated. The operating system (OS) 180=
is stored in the memory 142 and executed on the CPU 140. The operating=
system 180 has a block of code 182 that is used to authenticate the=
operating system to the CPU during the boot operation. The boot block 182=
uniquely determines the operating system, or class of operating systems=
(e.g. those signed by the same manufacturer). The boot block 182 can also=
be signed by the OS manufacturer.
--