throbber
(19) 9d
`
`(12)
`
`Europaisches Patentamt
`
`European Patent Office
`
`Office européen des brevets
`
`(11)
`
`EP 0 824 233 A2
`
`EUROPEAN PATENT APPLICATION
`
`(43) Date of publication:
`18.02.1998 Bulletin 1998/08
`
`(21) Application number: 97305891.0
`
`(22) Dateoffiling: 04.08.1997
`
`(84) Designated Contracting States:
`AT BE CH DE DK ES FI FR GB GRIEIT LI LU MC
`NL PT SE
`
`Designated Extension States:
`AL LT LV RO SI
`
`(30) Priority: 07.08.1996 US 693458
`
`(71) Applicant: Compaq Computer Corporation
`Houston Texas 77070 (US)
`
`(61) Intcl&: GO6F 1/00, GO6F 1/30,
`GO6F 11/00
`
`
`
`(72) Inventors:
`* Angelo, Michael F.
`Houston, Texas 77068 (US)
`* Miller, Craig A.
`Cedar Park, Texas 78613 (US)
`
`(74) Representative: Brunner, Michael John
`GILL JENNINGS & EVERY
`
`Broadgate House
`7 Eldon Street
`
`London EC2M 7LH (GB)
`
`(54) Method and apparatus for secure execution of software prior to a computer system being
`powered downor entering a low energy consumption mode
`
`(57)|Acomputer system that automatically and se-
`handler routine then generates a current modification
`detection value for each registered program. The cur-
`curely executes registered programs immediately prior
`rent modification detection values are compared with
`to a transition to a reduced energy consumptionstate.
`the secure modification detection values. Execution of
`A registrar table specifying registered programs and a
`secure modification detection value for each registered
`program are maintained in system management mode
`memory or other secure memory space in the computer
`system. A system management interrupt is generated
`following a request to remove power from the computer
`system or the occurrence of an event that triggers an
`energy saving mode. The system managementinterrupt
`
`a registered program is permitted if the values match.
`After all registered programs have been executed, the
`computer system automatically powers down or enters
`an energy saving mode. The computer system thereby
`allows secure and convenient execution of programs or
`commands that would typically interfere with normal
`computer use.
`
`z
`
`|
`
` HOST
`
`VIDEO MEMBRY
`
`170
`
`185
`
`
`
`[||||||
`
`i|cea CONTROLLER
`
`‘MORY
`i
`CPU/MEMOR
`MONITOR
`84-BIT MEMORY DATA
`104
`|
`6
`VID DATA
`16
`2
`
`CACHE CTRL praw's|LH!HB 6)
`
`
`168-~
`YPIKEL DATA
`
`
`; CACHEuggHOST ADDR / a
`VGA DATA
`RGB
`MONITOR
`RAMDAC
`1
`PAtI6..3)
`DATA
`sve, vse L_COMN
`MONITOR [D's:
`'
`64-BIT HOST DATA
`BUFFERS
`|
`!
`a
`‘
`169
`!
`|
`RASZ, CASY
`|
`I
`NETWORK Ficrensi|176
`
`MEN ADDR, MEMWE!
`INTERFACE
`XFRMRS
`CACHE &
`DEASSERT
`MICRO
`MEMORY
`ASSERT
`1OBT
`CONN) p<24
`
`processor|PAGT3} (708|conTRaLLER
`LOGIC
`124
`[oT HOSTCTRUISTATUS
`PARALLEL PORT(~~132
`CONN
`
`Yoo|HARD IDE PCI
`
`Xx
`————
`*
`LRET
`isn pus
`'SA
`oo
`xX.ws¥
`~— a Q
`— a: i
`
`POWERL-180
`ISA BUS (ISA ADDR/DATAICTRL;
`SUPPLY
`
`Ww
`Pl
`
`PCI BUS(PCI A/D & CTRL)
`{P
`134] isa conn|[Percown}~142
`
`FLOPPY CONTROLLER
`
`RTCICMOS
`
`134—[1sa conn||pci conn[~-142 [pny
`UARTS
`/|
`KEYBOARD CONTROLLER
`138
`136
`S44 KYBD||MOUSE
`
`
`159
`
`40
`
`EP0824233A2
`
`
`
`Printed by Jouve, 75001 PARIS (FR)
`
`US Patent No. 6,411,941
`
`HTC EX. 1018
`HTC v. Ancora
`
`Page 1
`
`Page 1
`
`HTC EX. 1018
`HTC v. Ancora
`US Patent No. 6,411,941
`
`

`

`1
`
`EP 0 824 233 A2
`
`2
`
`Description
`
`The present invention relates to computer system
`security.
`The present invention relates to a method for se-
`curely executing registered software applications in a
`computer system that is either being powered down or
`entering an energy saving mode.
`Computers are becoming increasingly important in
`many aspects of modernlife, both in homesand in busi-
`nesses. Huge amounts of moneyare invested by com-
`panies and individuals to purchase executable software.
`Even more money andtime is spent developing the in-
`formation containedin data files such as text documents
`
`and spreadsheets. Protecting these resourcesis there-
`fore an important concern. Security-conscious users are
`requesting that security and integrity features be incor-
`poratedinto their personal computers to protect access
`to critical files and to guarantee the trustworthiness of
`installed programs.
`Ideally,
`these security features
`should interfere with normal computer operationaslittle
`as possible.
`Two main causesof software untrustworthiness are
`
`SHUT DOWNitem causes a dialog box to appear on
`the screen, giving the user the options of shutting down
`completely, restarting the PC, or exiting to the disk op-
`erating system (DOS).
`the shut
`In these advanced operating systems,
`downprocedure is needed because the numerous piec-
`es of status information and configuration data con-
`tained in the Windows Registry file are not updated until
`the system has been properly shut down. Further, data
`stored in the disk cache may not be flushed to the disk
`unless the user properly exits Windows 95™ or Win-
`dows NT™. Network connections that are not properly
`severed can cause additional problems. Thus, the re-
`moval of power without following the proper shutdown
`procedure can corrupt the Windows Registry file and
`compromise the overall reliability ofthe computer during
`subsequent operations.
`It should be noted, however,
`that properly exiting these operating systems requires
`the user to take affirmative action via menu commands
`
`prior to toggling the on/offpower switch.
`Another threat to software integrity is the problem
`of "malicious code", also referred to as computer virus-
`
`One common commercial method of assessing the
`integrity of user software is to check for viruses by run-
`ning a virus checking software program. Such programs
`rely on the characteristics of the known viruses to detect
`their presence. A new virus may not be detectable by
`the virus checking software. If a virus is present, the vi-
`file corruption and viruses. File corruption usually fol-
`lows a system failure occurring during a file transfer (i.
`rus checking softwareitself is susceptible because it is
`loadedfrom the infected hard disk and must run in mem-
`e. the system is turned off whileafile is being copied
`onto the hard disk, etc.) or similar occurrence.
`ory that could be infected.
`In addition, virus checking
`Controlling the power-down of the computer system
`software can be inconvenient to execute. A thorough
`is therefore important, particularly in computers with ad-
`check of system resources can take several minutes,
`vanced operating systems such as Windows 95™ and
`and the user is not able to run other applications during
`Windows NT™, available from Microsoft Corp. These
`this time. Although virus checking software can be con-
`operating systems require the user to shut downvia spe-
`figured to execute automatically during system boot up,
`cific software steps rather than by simply turning off the
`the user must again take affirmative action to execute
`or schedule a virus scan at other times.
`power switch. For example, in Windows 95™, the user
`35
`should click a START button and select the SHUT
`Another method of assessingafile's integrity prior
`DOWNitem from the START menu. The selection of the
`to executing involves computing an integrity assess-
`ment codefor the file and verifying that the code match-
`es a predetermined value. Checksums(a type of integ-
`rity assessment code) are adequate for detecting acci-
`dental modifications of data. However, they are an inse-
`cure defense against viruses. A well-designed virus
`aimed at bypassing normal security features can easily
`attach itself to a host program without resulting in a dif-
`ferent checksum.
`
`es. While many computer viruses are relatively benign,
`computer viruses can be hostile, clandestine and creat-
`ed to target specific types of software or hardware. They
`can be introduced into a computer in as many ways as
`the computer can communicate externally, such as
`through the floppy drive, a network connection or a mo-
`dem connection. Viruses are typically designed to rep-
`licate by secretly attaching copies of themselvestofiles
`or boot records so that the user is unawareof the intru-
`
`sion. Itis importantto note that once a virus has attached
`itself to a host program, the program must bedifferent
`and its integrity has been violated.
`Once infected, any subsequent copies of the host
`file also contain the virus, thereby increasing the poten-
`tial for destruction. The virus is then activated when the
`
`file is executed. Consequently, a virus attached to a data
`file may remain dormant because the datafile is not ex-
`ecutable.
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`55
`
`To addressthis problem, advanced modification de-
`tection codes (or MDC's) have been developed to spe-
`cifically detect deliberate corruption of data, and are su-
`perior to simple checksums. The intent of MDC's is to
`makeit computationally infeasible to modify data so as
`to preserve a specific modification detection code value.
`Modification detection codes are sometimesreferred to
`
`by other names, including: "cryptographic checksums",
`“cryptographic hashes", "secure hash algorithms", and
`"message digests".
`In some earlier systems, a secure hash value is cal-
`culated and stored for newly installed software. There-
`after, when the computer is turned on again, the stored
`hash value is compared to a newly calculated value. If
`
`Page 2
`
`Page 2
`
`

`

`3
`
`EP 0 824 233 A2
`
`4
`
`
`
`a discrepancyis found, the user is alerted. A main dis-
`advantage with this methodis that the integrity assess-
`ment codes must bestored on the hard disk, thus mak-
`ing the codes themselves susceptible to attack by ma-
`icious code. Reverse-engineering a modification detec-
`ion code, while difficult,
`is not a mathematically intrac-
`able problem. Thus, software-only protective products
`can offer only limited insurance againstthe attack of ma-
`icious code, due mainly to architectural weakness
`present in most computer systems. A potential solution
`is to embed the modification detection code in a perma-
`nent read-only memory device, but this can make sys-
`em reconfiguration quite difficult.
`Some degree of protection from data lossis afford-
`ed by performing regular backups to a tape drive or sim-
`ilar storage medium. If a file becomescorrupted, an ear-
`ier, trusted version can be restored from a backup tape.
`Any changes madeto the file after the backup wasper-
`ormed are lost. Like virus scanning and various other
`administrative procedures, performing backup opera-
`ions usually preempts other uses of the computer. To
`circumvent this potential inconvenience, it is desirable
`o schedule backups during non-working hours or at
`imes when the user is away from the machine. Sched-
`uling and running the backups also require some sort of
`affirmative action to be taken by the user or systern ad-
`ministrator.
`
`Aproblem canarise if backups and other operations
`are scheduled to execute at times when it is unlikely that
`the computer system will be in use. Most modern com-
`puter systems incorporate "energy saving" or "hiberna-
`tion" features. Techniques that are utilized to conserve
`energy include powering down disk drives, disabling
`monitors and reducing processor and system clock fre-
`quencies. These features are typically activated when
`the computer is not used for a predetermined period of
`time. Depending on its programming and hardware, a
`computer system may not acknowledge and execute a
`scheduled operation while the system is in an energy
`saving mode. Even if a scheduled operation is recog-
`nized, current computer architectures cannot ensure se-
`cure execution.
`
`Briefly, the present invention provides a computer
`system having the capability to automatically and se-
`curely execute registered commandsor applications im-
`mediately prior to the computer powering down or en-
`tering a low energy consumption mode.
`Following a request to remove power from the com-
`puter system or enter a low power consumption mode,
`a system managementinterrupt (SMI) is generated. Ac-
`cording to the invention, a variety of methods can be
`used to generate the SMI. In one embodiment, closure
`or toggling of the power supply on/off switch causes spe-
`cial interrupt circuitry to generate an interrupt service re-
`quest that instructs the processor to jumpto an interrupt
`service routine which results ina power down SMI being
`asserted. Alternatively, circuitry coupled to the power
`supply on/off switch Is configured to bypassthe interrupt
`
`request and generate the power down SMI directly with-
`out the need for a standard interrupt. In yet another em-
`bodiment, toggling the power supply on/off switch initi-
`ates a software process that results in a power down
`SMI.
`
`Acomputer system according to the present inven-
`tion also allows automatic and secure execution of reg-
`istered applications immediately prior to the computer
`system entering a low power consumption mode. Exam-
`ples of such a low power consumption mode include "hi-
`bernation mode" and "energy saving mode". In this em-
`bodiment, an SMI is again generated in one of a number
`of ways. Special interrupt circuitry, a keyboardinterrupt,
`activity timers or a software process canall be used to
`generate the SMI.
`Regardless of the manner in which it is generated,
`the power down or hibernation mode SMI places the
`computer system in system management mode, caus-
`ing an SMI handler routine to be executed. In turn, the
`SMI handler responds by executing all applications reg-
`istered with the application registrar.
`Importantly, the
`registered applications are verified and executed in a
`secure manner. Before executing a registered applica-
`tion, the SMI handler first generates a current hash val-
`ue for the program. The term "secure hash value" or
`"hash value" is used throughout the remainder of this
`specification to refer generally to a value generated by
`a modification detection code, the value being specific
`to a given software application. A "secure hash value"
`in the preferred embodiment is 160 bits of data (20
`bytes) that is essentially a mathematical representation
`of a file.
`If any bits in the file are changed, a different
`hash value will result.
`
`In general, a secure hash table (or other type ofin-
`tegrity assessment code)is provided that contains a se-
`cure hash value for each program that the user wants
`to execute prior to the power down or entry into hiber-
`nation mode. The hash table is stored in protected mem-
`ory that can only be accessed when the computer sys-
`tem is in system management mode. After it has gener-
`ated a current hash value for the registered application,
`the SMI handler checksthis stored hash table for a se-
`
`If a hash value entry is
`cure entry for the application.
`found, it is compared with the newly-calculated hash val-
`ue for the secured application. In the event the two val-
`ues match, the integrity of the application is guaranteed
`and it is loaded into memory and executed. The process
`is repeated until all applications registered with the ap-
`plication registrar have been executed.
`If the two values do not match, the user is alerted
`to the discrepancy and may be given the option to up-
`date or override the stored hash table entry by entering
`an administrative password. For security sensitive ap-
`plications, the entire application or a portion ofit is load-
`ed into system management mode memory (hereinafter
`"SMM memory") prior to application.
`In an alternate embodiment of the invention, a se-
`cured hash value for the table is maintained in SMM
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`Page 3
`
`Page 3
`
`

`

`5
`
`EP 0 824 233 A2
`
`6
`
`memory, with the hash table itself is stored in normal
`memory. A current table hash value is generated for the
`hash table before a hash table entry is accessed. The
`current table hash value is then comparedwith the table
`hash value stored in SMM memory.
`If the values are
`equal, the integrity of the hash table is verified and the
`new hash value of the program to be executed can be
`safely compared with its original value. This embodi-
`mentofthe invention is useful for overcoming problems
`associated with the limited size of SMM memory. Both
`of the aforementioned embodiments of the invention
`
`have the additional advantage of being operating sys-
`tem independent.
`After all of the registered applications have been ex-
`ecuted, the SMI handler transmits a shutdown com-
`mand to a decoder over a system bus if the SMI was
`generated as a result of a power down request. Upon
`detecting that the computer system has issued a shut-
`down command, the decoder logic causes a SHUT-
`DOWNinput to the power supply to be asserted, thereby
`disabling power to the system. If the SMI was generated
`as a result of low power consumption mode being acti-
`vated,
`the SMI handler transmits appropriate com-
`mandsto hibernation logic that controls various system
`components.
`The presentinvention has a wide variety of potential
`applications, including secure execution of virus detec-
`tion and removal programs and backing up files prior to
`shutting down. These and other registered applications
`are executed securely and without needfor intervention
`by the user.
`A better understanding of the present invention can
`be obtained when the following detailed description of
`the preferred embodimentis considered in conjunction
`with the following drawings, in which:
`
`Figure 1 is aschematic block diagram of acomputer
`system incorporating system management mode
`capabilities in accordance with the present inven-
`tion;
`Figure 2 is a graphical representation of System
`Management Mode memory according to the
`presentinvention;
`Figure 3 is a schematic block diagram of a power
`downcircuitry associated with the power supply of
`the computer system of Figure 1;
`Figure 4 is a block diagram of the power supply of
`the computer system of Figure 1;
`Figure 5 isa schematic block diagram of hibernation
`circuitry according to the present invention;
`Figure 6 is a flowchartillustration of a method ac-
`cording to the present invention for securely exe-
`cuting and verifying the integrity of software appli-
`cations prior to the computer system being turned
`off or entering hibernation mode; and
`Figure 7 is a flowchartillustration of a secure meth-
`od according to the present invention for updating
`a stored hash table or stored hash value.
`
`Referring first to Figure 1, acomputer system S ac-
`cording to the present invention is shown. In the pre-
`ferred embodiment, the system S incorporates twopri-
`mary buses: a Peripheral Component
`Interconnect
`(PCI) bus P which includes an address/data portion and
`a control signal portion; and an Industry Standard Archi-
`tecture (ISA) bus | which includes an addressportion, a
`data portion, and a control signal portion. The PC! and
`ISA buses P and | form the architectural backbone of
`
`the computer system S.
`A CPU/memory subsystem 100 is connected to the
`PCI bus P. The processor 102 is preferably the Pen-
`tium® processor from Intel Corporation, but could be an
`80486 or any number of similar or next-generation proc-
`essors. The processor 102 drives data, address, and
`control portions 116, 106, and 108 of a host bus HB. A
`level 2 (L2) or external cache memory 104 is connected
`to the host bus HB to provide additional caching capa-
`bilities that improve the overall performanceof the com-
`puter systern S. The L2 cache 104 may be permanently
`installed or may be removable if desired. A cache and
`memory controller 110 and a PCI-ISA bridge chip 130
`are connected to the control and address portions 108
`and 106 of the host bus HB. The cache and memory
`controller chip 110 is configured to control a series of
`data buffers 112. The data buffers 112 are preferably the
`82433LX from Intel, and are coupled to and drive the
`host data bus 116 and a MD or memory data bus 118
`that is connected to a memory array 114. Amemory ad-
`dress and memory control signal bus is provided from
`the cache and memory controller 110.
`The data buffers 112, cache and memory controller
`110, and PCI-ISA bridge 130 are all connected to the
`PCI bus P. The PCI-ISA bridge 130 is used to convert
`signals between the PC! bus P and the ISA bus |. The
`PCI-ISA bridge 130 includes: the necessary address
`and data buffers, arbitration and bus master control logic
`for the PCI bus P, ISA arbitration circuitry, an ISA bus
`controller as conventionally used in |ISAsystems, anIDE
`(intelligent drive electronics) interface, and a DMA con-
`troller. A hard disk drive 140 is connected to the IDE
`
`interface of the PCI-ISA bridge 130. Tape drives, CD-
`ROM devices or other peripheral storage devices (not
`shown) can be similarly connected.
`In the disclosed embodiment, the PCI-ISA bridge
`130 also includes miscellaneous system logic. This mis-
`cellaneous system logic contains counters and activity
`timers as conventionally present in personal computer
`systems, an interrupt controller for both the PCI and ISA
`buses P and |, and power managementlogic. Addition-
`ally, the miscellaneous system logic mayincludecircuit-
`ry for a security management system used for password
`verification and to allow access to protected resources.
`The PCI-ISA bridge 130 also includes circuitry to
`generate a "soft" SMI (System ManagementInterrupt),
`as well as SMI and keyboard controller interface circuit-
`ry. The miscellaneous system logic is connected to the
`flash ROM 154 through write protection logic 164. Pref-
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`Page 4
`
`Page 4
`
`

`

`7
`
`EP 0 824 233 A2
`
`8
`
`erably, the PCI-ISA bridge 130 is a single integrated cir-
`cuit, but other combinations are possible.
`A series of ISA slots 134 are connected to the ISA
`
`bus | to receive ISA adapter cards. A series of PCI slots
`142 are similarly provided on the PCI bus P to receive
`PCI adapter cards.
`A video controller 165 is also connected to the PCI
`
`180 receives an AC voltage supply via an AC plug 190
`(Fig. 3).
`An additional feature of the computer system S is a
`Systern Management Mode (SMM), as discussed at
`length immediately below.It is also noted that Figure 1
`presents an exemplary embodiment of the computer
`system S$ and it is understood that numerous other ef-
`fective embodiments could readily be developed as
`knownto those skilled in the art.
`
`bus P. Video memory 166is used to store graphics data
`and is connected to the video graphics controller 165
`Certain microprocessors, such as the Pentium®
`and a digital/analog converter (RAMDAC) 168. The vid-
`processorfrom Intel Corporation, have included a mode
`e0 graphics controller 165 controls the operation of the
`referred to as system management mode (SMM), which
`video memory 166, allowing data to be written and re-
`is entered upon receipt of a system managementinter-
`trieved as required. A monitor connector 169 is connect-
`rupt (SMI). Originally, SMls were power management
`ed to the RAMDAC 168for connecting a monitor 170.
`interrupts devised by Intel Corporation for portable sys-
`Anetwork interface controller (NIC) 122 is also con-
`tems. Portable computers often draw power from bat-
`nected to the PCI bus P. Preferably, the controller 122
`teries which provide a limited amountof energy. To max-
`isasingle integrated circuit that includes the capabilities
`imize battery life, an SMI is typically asserted to turn off
`necessary to act as a PCI bus master and slave, as well
`or reduce the power to any system componentthatis
`as circuitry required to act as an Ethernetinterface. At-
`not currently in use. Although originally meantfor laptop
`tachmentUnit Interface (AU!) and 10 base-T connectors
`computers, SMIs have become popular for desktop and
`124 are provided in the system S, and are connected to
`other stationary models as well.
`the NIC 122 via filter and transformer circuitry 126. This
`circuitry forms a network or Ethernet connection for con-
`SMls are asserted by either an SMI timer, by a sys-
`
`necting the computer systemSto a local area network tem request, or by other means. An SMI is anon-mask-
`25
`(LAN).
`able interrupt having almost the highestpriority in the
`A combination I/O chip 136 is connected to the ISA
`system. Only the reset signal R/S* and cache flush sig-
`bus |. The combination I/O chip 136 preferably includes
`nal FLUSH’, which can be conceptualized as interrupts,
`areal time clock two UARTS, a floppy disk controller for
`have a higher priority than the SMI. When an SMI is as-
`controlling a floppy disk drive 138, and various address
`serted, a microprocessor maps a portion of memory re-
`decode logic and security logic to control accessto the
`ferred to as the system management mode memory
`CMOS memory (not shown) and power-on password
`("SMM memory") into the main memory space. The en-
`values. A control line is provided to the read and write
`tire CPU state is then saved in the SMM memory(in the
`protection logic 164 to further control accessto the flash
`CPU register dump 210 of Fig. 2) in stack-like, last in/
`ROM 154. Serial port connectors 146 and parallel port
`first out fashion. After the initial processor state is saved,
`connector 132 are also connected to the combination I/
`the processor 102 begins executing an SMI handler rou-
`tine, whichis an interrupt service routine to perform spe-
`cific system management tasks such as reducing power
`to specific devices or, as in the case of the presentin-
`vention, providing security services. While the routine is
`executed, other interrupt requests are not serviced, and
`are ignored until the interrupt routine is completed or the
`microprocessor is reset. When the SMI handler com-
`pletes its task, the processor state is retrieved from the
`SMM memory, and the main program continues. An SMI
`active signal referred to as the SMIACT™ signalis pro-
`vided by the processor to indicate operation in SMM.
`As mentioned, following assertion of its SMI input
`(this is generally an active low signal), the processor 102
`calls the SMI handler, which addresses an address
`space that
`is separate from ordinary main memory.
`Thereafter, all memory accesses refer only to SMM
`memory 200. Input/output ("I/O") accesses via instruc-
`tions such as IN or OUT arestill directed to the normal
`
`20
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`/O address space, however. One advantageous side-
`effect of the hardwired separate address SMM areais
`that the routines stored in this space cannot be snooped
`by the cache, providing an additional layer of protection.
`In a typical system management mode implemen-
`
`Page 5
`
`O chip 136.
`An 8042 or keyboard controller is also included in
`the combination |/O chip 136. The keyboard controller
`is of conventional design and is connected in turn toa
`keyboard connector 158 and a mouseor pointing device
`connector 160. Akeyboard 159 is connected to the com-
`puter system S through the keyboard connector 158.
`A buffer 144 is connected to the ISA bus | to provide
`an additional X-bus X for various additional components
`of the computer system S. A flash ROM 154 receivesits
`control, address and data signals from the X-bus X.
`Preferably, the flash ROM 154 contains the BIOSinfor-
`mation for the computer system and can be repro-
`grammedto allow for revisions of the BIOS.
`In the computer system S of Fig. 1, all electronic
`devices discussed above, including the processor 102,
`are powered by a regulated power supply 180. In the
`preferred embodiment,
`the regulated power supply
`(Figs. 3 and 4) has a power supply supervisory circuit
`192 that provides shutdown capability via a SHUT-
`DOWNinput. The power supply 180 is shut-downvia an
`SMI software/hardware processthatis initiated by tog-
`gling the on/off switch 182 (Fig. 3). The power supply
`
`Page 5
`
`

`

`g
`
`EP 0 824 233 A2
`
`10
`
`rithm 208 in SMM memory 200 prevents malicious code
`from modifying or reading these sensitive components
`of the preferred embodimentof the invention.
`In an alternate embodiment of the invention, a se-
`cured table hash value for the hash table 206itself is
`
`maintained in SMM memory 200, while the hash table
`206 is stored in normal, readable memory.In this em-
`bodiment, the integrity of the hash table 206is verified
`before the hash value of the program to be executedis
`compared withits original value. This embodimentof the
`invention, discussed morefully below,is useful for over-
`coming problems associated with the limited size of
`SMM memory (64-Kbyte total in the disclosed embodi-
`ment). It is also contemplated that the secure hash al-
`gorithm 208 could be stored in flash ROM 154. The op-
`tional 32-Kbyte SMM RAMextension 212 can be utilized
`for secure execution of software or to store additional
`hash values.
`
`As used in this disclosure, the term "secure hash
`value" or "hash value" refers generally to a value -- gen-
`erated by an integrity assessment code -- thatis specific
`to a given software application. Although the disclosed
`embodiment of the invention utilizes a hash table 206
`
`containing hash values generated by a secure hash al-
`gorithm 208, it is contemplated that many types of mod-
`ification detection codes could be utilized. Of impor-
`tance to the invention is that each piece of registered
`software has a corresponding and distinct value that
`represents the unaltered state of the software, and that
`this value be stored in a secure memory location. Note
`also that registered software is referred to generally as
`"programs"or "applications", and use of these terms is
`intended to cover software "files".
`
`Turning nowto Fig. 3, circuitry is shown for power-
`ing down the computer system S and generating an SMI
`that initiates execution of registered applications. The
`interrupt controller/SMI generation logic 186 receives an
`input from a power supply on/off switch 182. One end
`of the on/off switch 182 is connected to ground, while
`the other end of the on/off switch 182 is connected toa
`
`20
`
`25
`
`30
`
`35
`
`40
`
`it is intended that battery-buffered SRAM chips
`tation,
`be mappedinto the address space between 30000h and
`Sfiffh by default. External hardware can use the SMI-
`ACT* signal as a chip select signal and thereby address
`either the SRAMchips (the SMIACT* signalis at a logic
`low level), or the normal main memory (the SMIACT*
`signal is at a logic high level). By using the SMIACT*
`signal, then, SMM memory 200 and normal memory can
`be strictly separated.
`The Pentium®, or P5, microprocessor is moreflex-
`ible than earlier processors in that it permits the SMI
`handler starting address and the location of the SMM
`memory space to be changed by the user. Under the
`Pentium® design, the SMI starting address stored in the
`microprocessor register is initially set to the convention-
`al 30000h value. Consequently, whenthe first SMI is as-
`serted, the SMI handler starts at address 38000h (the
`entry point is offset from the SMM memory base). While
`the SMI handler routine is executing, however,
`it may
`provide a different area of memory to be used as the
`SMM memory. This new SMM memory maystart at any
`location in the main memory space chosen by the pro-
`grammer. The SMM memory is a 64-Kbyte block begin-
`ning at the new SMM memory start address. When the
`SMI handler finishes, the new starting address replaces
`the old starting address in the microprocessors SMI
`starting address register.
`When the next SMI is asserted, the microprocessor
`maps the new 64-Kbyte block of memory into the main
`memory space as the SMM memory,and starts the SMI
`handler at the new starting address at the midpoint of
`the new SMM memory. For example, during the first SMI
`service routine, the programmer may change the SMM
`memorystarting point from 030000h to 100000h. When
`the SMI is next asserted, the microprocessor maps the
`SMM memory into main memory space between
`100000h and 10FFFFh. The microprocessor then refer-
`ences address 108000h for the SMI handler. This fea-
`
`ture thus allows the programmer to choose a more con-
`venient location in the main memory.
`Referring more specifically to Fig. 2, a graphical
`representation of SMM memory 200 as configured ac-
`cording to the presentinvention is shown. As mentioned
`above, this address space is addressed by the proces-
`sor 102 following an SMI. Following an SMI, the state of
`the processor 102 is stored in the CPU register dump
`210. The SMI handler 201 is then called and executed
`
`pull-up resistor 184. The output of the on/off switch is
`connected to the interrupt controller/SMI generation log-
`ic 186. When the power supply on/off switch 182 is
`closed -- indicating that the user desires to power the
`system down -- the input to the interrupt controller/SMI
`generation logic 186 is pulled low. While the on/off
`switch 182 is open, pull up resistor 184 pulls the input
`to a high logic level. The outputs of the interrupt control-
`by the processor 102. Importantly, the SMI handler 201
`ler/SMI generation logic are placed onto the primary PCI
`can be written such that it performs tasks other than
`50
`
`power-downoperations. An SMI handler 201 written ac- busPfor transmission to the processor 102. In addition,
`cording to the present invention is able to utilize an ap-
`an SMI is communicated between the interrupt control-
`plication registrar 202, stored hash entries 204,

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket