[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.


--