throbber
United States Patent [i9j
`Albrecht et al.
`
`US005835594A
`[ii] Patent Number:
`[45] Date of Patent:
`
`5,835,594
`Nov. 10, 1998
`
`[54] METHODS AND APPARATUS FOR
`PREVENTING UNAUTHORIZED WRITE
`ACCESS TO A PROTECTED NON-VOLATILE
`STORAGE
`
`[75] Inventors: Mark Albrecht, Banks; Frank
`Wildgrube, Hillsboro, both of Oreg.
`
`[73] Assignee: Intel Corporation, Santa Clara, Calif.
`
`[21] Appl. No.: 598,803
`Feb. 9, 1996
`Filed:
`[22]
`Int. Cl.6 ..................................................... H04L 9/00
`[51]
`[52] U.S. Cl..................................................... 380/23; 25/4
`[58] Field of Search ............................ 380/3, 4, 23, 24,
`380/25, 30
`
`[56]
`
`4,278,837
`5,022,077
`5,144,659
`5,289,540
`
`References Cited
`U.S. PATENT DOCUMENTS
`7/1981 Best ........................................ 178/22.09
`6/1991 Bealkowski et al............................ 380/4
`9/1992 Jones .............................................. 380/4
`2/1994 Jones .............................................. 380/4
`
`5,377,264
`5,421,006
`5,465,299
`5,479,509
`
`12/1994 Lee et al......................................... 380/4
`5/1995 Jablon et al.................................... 380/4
`11/1995 Matsumoto et al......................... 380/23
`12/1995 Ugon ........................................... 380/23
`OTHER PUBLICATIONS
`PCT International Search Report for International Applica­
`tion No. PCT/US97/01965, dated Jun. 9, 1997.
`Primary Examiner—Thomas H. Tarcza
`Assistant Examiner—Carmen D. White
`Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`Zafman
`ABSTRACT
`[57]
`An electronic signature is generated in a predetermined
`manner and attached to a transferable unit of write data, to
`facilitate authenticating the write data before allowing the
`write data to be written into a protected non-volatile storage.
`The write data is authenticated using a collection of secured
`authentication functions. Additionally, the actual writing of
`the authenticated write data into the protected non-volatile
`storage is performed by a secured copy utility.
`
`23 Claims, 7 Drawing Sheets
`
`Roku EX1019
`U.S. Patent No. 6,411,941
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov. 10, 1998
`Nov. 10, 1998
`
`Sheet 1 of 7
`Sheet 1 of 7
`
`5,835,594
`5,835,594
`
`90T
`
`OITOOL
`
`a}EALLJuoyeoueyNyeosina8v10}S
`
`kayjsaBIC]BdUaIIJIYywornpor)HIM
`
`
`
`
`a8essay]THPISAMON
`'da[WeOA-uo
`
`uolAouq
`
`uonouny
`
`amyeusis
`
`Leansiy
`
`(Ado
`
`eyeq
`
`
`
`
`
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov. 10, 1998
`Nov. 10, 1998
`
`Sheet 2 of 7
`Sheet 2 of 7
`
`5,835,594
`5,835,594
`
`ccl
`
`&do>y
`
`uomouny
`
`sseg|uostieduio>
`
`ysasiqauarazay
`ZANSI
`uoTyeOTUBYyINY
`
`payesueynyuoljpun
`
`pope
`
`vot
`
`310489]
`
`uoydAraq
`
`uolpun,J
`
`
`
`OZIcll
`
`uolouny
`
`VIL
`
`aq0}4sa8Iq
`
`adessay]
`
`4sa31q
`
`OOT
`
`a[}e]OA-UON
`
`a8eI0IS
`
`OPIN
`
`eed
`
`SIT
`
`
`
`Aayyorqngd
`
`ZOL
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Nov. 10, 1998
`
`Sheet 3 of 7
`
`5,835,594
`
`r*--SMI#
`
`Processor
`
`

`

`U.S. Patent
`
`Nov. 10, 1998
`
`Sheet 4 of 7
`
`5,835,594
`
`BIOS
`
`Figure 4
`
`

`

`U.S. Patent
`
`Nov. 10, 1998
`
`Sheet 5 of 7
`
`5,835,594
`
`From
`Memory
`Controller
`
`Figure 5
`
`

`

`U.S. Patent
`
`Nov. 10, 1998
`
`Sheet 6 of 7
`
`5,835,594
`
`System Management Mode (Prior Art)
`
`Figure 6
`
`

`

`U.S. Patent
`
`Nov. 10, 1998
`
`Sheet 7 of 7
`
`5,835,594
`
`Figure 7
`
`

`

`5,835,594
`
`1
`METHODS AND APPARATUS FOR
`PREVENTING UNAUTHORIZED WRITE
`ACCESS TO A PROTECTED NON-VOLATILE
`STORAGE
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates to the field of computer
`systems. More specifically, the present invention relates to
`data security on computer systems.
`2. Background Information
`Existing methods of preventing unauthorized write access
`to nonvolatile storage such as FLASH memory typically rely
`on “secret” access methods to a write enable circuit. These
`“secret” access methods to the write enable circuit can be
`reverse-engineered through the use of standard debugging
`hardware. Once reverse engineered, a person will be able to
`produce code that can write to the “protected” non-volatile
`storage at will. If the code is used in a malicious manner, it
`can be used to introduce viruses into the “protected” non­
`volatile storage or even destroy the content of the non­
`volatile storage.
`Thus, it is desirable to have a more robust approach to
`preventing unauthorized access to non-volatile storage, in
`particular, an approach that does not rely on the access
`method not being known. As will be described in more detail
`below, the present invention achieves these and other desir­
`able results.
`
`SUMMARY OF THE INVENTION
`In accordance to the present invention, an electronic
`signature is generated in a predetermined manner and
`attached to a transferable unit of write data, to facilitate
`authenticating the write data before allowing the write data
`to be written into a protected non-volatile storage. The write
`data is authenticated using a collection of secured authen­
`tication functions. Additionally, the actual writing of the
`authenticated write data into the protected non-volatile stor­
`age is performed by a secured copy utility.
`The electronic signature is functionally dependent on the
`content of the write data, and the predetermined manner of
`generating the electronic signature is reproducible during
`write time. In one embodiment, the electronic signature is
`generated by the creator of the write data, by generating a
`digest based on the content of the write data using a message
`digest function, and then encrypting the generated digest
`with a secret private key using an encryption function.
`The collection of secured authentication functions include
`a secured corresponding copy of the message digest
`function, and a secured complementary decryption function.
`During operation, the secured decryption function reconsti­
`tutes the original digest by decrypting the electronic signa­
`ture with a secured complementary public key, while the
`secured copy of the message digest function generates
`another digest based on the content of the write data to be
`authenticated. The two digests are compared using a secured
`comparison function. If the two digests pass the comparison,
`the secured copy utility is invoked to copy the authenticated
`write data into the protected non-volatile storage, otherwise,
`the write data are rejected.
`In one embodiment, the authentication functions are
`secured by copying them into a normally unavailable system
`management memory during system initialization. The
`authentication functions are invoked using a system man­
`agement interrupt (SMI), which when asserted, automati­
`
`2
`cally maps the system management memory into the normal
`system memory space. Anon-volatile memory write security
`circuitry is provided to qualify a memory write signal
`provided to the protected non-volatile storage, and to gen­
`erate the SMI whenever a write to the protected non-volatile
`storage is requested.
`
`BRIEF DESCRIPTION OF DRAWINGS
`The present invention will be described by way of exem­
`plary embodiments, but not limitations, illustrated in the
`accompanying drawings in which like references denote
`similar elements, and in which:
`FIGS. 1-2 illustrate the essential elements of the present
`invention, and their interrelationships with each other;
`FIG. 3 illustrates an exemplary computer system incor­
`porated with the teachings of the present invention on
`securing the authentication functions;
`FIG. 4 illustrates the system BIOS, and for one
`embodiment, the operating system of the exemplary com­
`puter system in further detail;
`FIG. 5 illustrates the FLASH security circuitry of FIG. 3
`in further detail;
`FIG. 6 illustrates execution flow of the exemplary com­
`puter system under a system management mode; and
`FIG. 7 illustrates one embodiment of the execution flow
`for writing into FLASH memory.
`DETAILED DESCRIPTION OF THE
`INVENTION
`In the following description, for purposes of explanation,
`specific numbers, materials and configurations are set forth
`in order to provide a thorough understanding of the present
`invention. However, it will be apparent to one skilled in the
`art that the present invention may be practiced without the
`specific details. In other instances, well known features are
`omitted or simplified in order not to obscure the present
`invention. Furthermore, for ease of understanding, certain
`method steps are delineated as separate steps, however, these
`separately delineated steps should not be construed as nec­
`essarily order dependent in their performance.
`Referring now to FIGS. 1 and 2, two block diagrams
`illustrating the essential elements of the present invention,
`and their interrelationships to each other are shown. As
`illustrated, a transferable unit of non-volatile storage write
`data 100 is provided with an electronic signature 102 to
`facilitate authenticating write data 100 prior to allowing
`write data 100 to be written into a non-volatile storage.
`Preferably, electronic signature 102 is “attached” to write
`data 100. Examples of a transferable unit include a file, or a
`block, whereas examples of non-volatile storage include
`FLASH memory or erasable programmable read-only-
`memory (EPROM). Examples of write data is system basic
`input/output service (BIOS) updates, such as additions,
`deletions and modifications. For many applications, it is
`expected that electronic signature 102 is generated and
`“attached” to write data 100 at the time write data 100 is
`created.
`For the illustrated embodiment, electronic signature 102
`is generated by encrypting a reference digest 104 with a
`secret private key 106 using an encryption function 108. The
`reference digest 104 is generated using a message digest
`function 110. In other words, the content of reference digest
`104 is functionally dependent on the content of write data
`100. Accordingly, the content of electronic signature 102 is
`also functionally dependent on the content of write data 100.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`

`

`3
`At write time, a secured corresponding copy of message
`digest function 112 generates a “new” digest 114 in real
`time. At the same time, a secured complementary decryption
`function 116 reconstitutes original reference digest 104 by
`decrypting electronic signature 102 using secured comple­
`mentary public key 118. The two digests 104 and 114 are
`provided to a secured comparison function 120 to determine
`if they are identical. The two digests 104 and 114 are
`identical if write data 100 is authentic, since both digests 104
`and 114 are functionally dependent on the contents of write
`data 100, generated by copies of the same message digest
`function 110 and 112, and the encryption were decrypted in
`a complementary manner. If the two digests 104 and 114
`compared successfully, a secured copy function 122 is
`notified to perform the actual writing into the protected
`non-volatile storage, otherwise the write data is rejected.
`Encryption and decryption functions 108 and 116 may
`implement any one of a number of private/public key
`encryption/decryption techniques known in the art.
`Similarly, message digest function 110/112 may also imple­
`ment any one of a number of message digest techniques
`known in the art. For further information on private/public
`key encryption/decryption techniques, see e.g. Hellman et
`al., Public Key Cryptographic Apparatus and Method, U.S.
`Pat. No. 4,218,582, and Rivest et al., Cryptographic Com­
`munications System and Method, U.S. Pat. No. 4,405,829;
`and for further information on message digest, see e.g.
`Method for Identifying Subscribers and for Generating and
`Verifying Electronic Signatures in a Data Exchange System,
`U.S. Pat. No. 4,995,082, and Rivest, The MD5 Message
`Digest Algorithm, Request For Comment (RFC) 1321, April
`1992.
`Creation of electronic signature 102 and associating it
`with write data 100 as described above, may be practiced in
`any number of computer systems known in the art, provided
`they are equipped to store and execute message digest
`function 110 and encryption function 108. It is anticipated
`that for most applications, creation of electronic signature
`102 will be practiced on the same computer system where
`write data 100 is created. For example, for the above
`mentioned system BIOS update application, it is anticipated
`that the system BIOS updates and electronic signature 102
`will be generated and associated at the same time and on the
`same computer system.
`FIG. 3 illustrates an exemplary computer system 200
`incorporated with the teachings of the present invention on
`authenticating write data before allowing the write data to be
`written into a protected non-volatile storage. Exemplary
`computer system 200 includes processor 212, processor bus
`214, cache memory 216, memory controller 218, and a
`plurality of other memory units 220-224 coupled to each
`other as shown. Other memory units 220-224 include main
`memory 220, system management memory 222, and
`FLASH memory 224. In accordance to the present
`invention, exemplary computer system 200 includes in
`particular FLASH security circuitry 226. Additionally, com­
`puter system 200 includes bridge circuits 228a-228b, high
`performance and standard (input/output) I/O buses
`230a-230b, general purpose I/O (GPIO) ports 232, hard and
`diskette storages 234—236, keyboard and cursor control
`device 238, and display 240, coupled to each other and the
`above enumerated elements as shown.
`For the illustrated embodiment, buses 214,230α and 230b
`are disposed on motherboard 242. Elements 212, 216-226,
`228a-228b and 232 are either removably interconnected to
`motherboard 242 via sockets (not shown) or “soldered” onto
`motherboard 242, whereas elements 234-238 are coupled to
`motherboard 42 through cables and connectors (not shown).
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,835,594
`
`4
`Processor 212 performs the conventional function of
`executing code. Processor 212 is equipped to execute code
`in multiple modes including a system management mode
`(SMM). Processor 212 is also equipped to respond to a wide
`variety of interrupts including a system management inter­
`rupt (SMI), which places processor 212 in SMM. Memory
`controller 218 and volatile memory units 216, 220 and 222
`perform the conventional functions of controlling memory
`access, and providing execution time storage respectively. In
`particular, for each write access to memory, memory con­
`troller 218 generates a MEMW# signal for the addressed
`memory unit. Memory controller 218 normally does not
`map system management memory 222 as part of the normal
`system memory space. System management memory 222 is
`mapped into the system memory space, when processor 212
`enters SMM. Furthermore, except for system initialization,
`processor mode transition, and execution in SMM, system
`management memory 222 is write disabled.
`FLASH memory 224 performs its conventional function
`of providing non-volatile storage respectively. In particular,
`FLASH memory 224 stores system BIOS. During system
`initialization, the bulk of the system BIOS that are not
`security sensitive are loaded into main memory 220,
`whereas the remaining system BIOS (including in particular
`the write data authentication functions) that are security
`sensitive are loaded into system management memory 224.
`Flash security circuit 226 protects FLASH memory 224
`from unauthorized write accesses, by keeping FLASH
`memory 224 write disabled, and generating an SMI to
`invoke the secured system BIOS write data authentication
`functions in system management memory 222 to authenti­
`cate the write data, whenever it enables FLASH memory
`224 for a write access. General purpose I/O ports 232 also
`perform their conventional functions for providing I/O ports
`to a variety of peripherals. In particular, one of the I/O ports
`is used to notify FLASH security circuit 226 of a write
`request to FLASH memory 224. The write request is
`denoted by writing to a corresponding register of the I/O port
`using a standard I/O instruction of exemplary computer
`system 200.
`Hard disk storage 234 also performs the conventional
`function of providing non-volatile storage. In particular,
`hard disk storage 234 stores operating system of exemplary
`computer system 200. During system initialization, operat­
`ing system is loaded into main memory 220. All other
`elements perform their conventional function known in the
`art. Except for the particularized functions and/or
`requirements, all enumerated elements are intended to rep­
`resent a broad category of these elements found in computer
`systems.
`FIG. 4 illustrates system BIOS and operating system of
`exemplary computer system 200 in further detail. As shown,
`system BIOS 260 includes init function 262, FLASH copy
`utility 264, message digest function 266, decryption func­
`tion 268, public key 270, digest comparison function 272,
`SMI handler 274 and read/write service 276, whereas, for
`some embodiments, operating system 250 includes FLASH
`utility 252.
`Init function 262 initializes system BIOS 260 during
`system initialization, including loading FLASH copy utility
`264, message digest function 266, decryption function 268,
`public key 270, digest comparison function 272, and SMI
`handler 274 into system management memory 222. As
`described earlier, system management memory 222 is nor­
`mally not mapped into system management space, unless a
`SMI is triggered placing processor 212 in SMM, and system
`management memory 222 is write disabled except for
`
`

`

`5
`initialization, processor mode transition, and execution in
`SMM. Accordingly, these system BIOS functions are
`secured from malicious modification.
`SMI handler 274 services SMIs, invoking other functions
`(including the write data authentication functions) as
`necessary, depending on the cause of a particular SMI. As
`will be described in more detail below, SMI handler 274 is
`given control upon entry into SMM. As described earlier,
`message digest 266 generates a digest in real time for the
`write data of a FLASH write request, in accordance to the
`content of the write data, and decryption function 268
`decrypts the electronic signature “attached” to the write data
`of the FLASH write request using public key 270, to
`reconstitute the FLASH write data’s original digest. Digest
`comparison function 272 compares the two digests, and
`finally FLASH copy utility 264 performs the actual writing
`of the authenticated data into FLASH memory 224. Message
`digest function 266, decryption function 268, digest com­
`parison function 272, and FLASH copy utility 264 are
`invoked in due course by SMI handler 274 upon determining
`that a SMI is triggered by FLASH security circuitry 226.
`Read/Write services 276 provides read and write services
`to I/O devices. Read/Write services 276 are among the bulk
`of the BIOS functions that are loaded into main memory 220
`during system start up.
`For some embodiments, FLASH utility 252 is included to
`perform various FLASH related functions including in par­
`ticular copying of FLASH write data from an external
`source medium to a buffer in main memory 220, and then
`copying the FLASH write data from the buffer into FLASH
`memory 224 by way of read/write services 276, which
`invokes message digest function 266, decryption function
`268, etc., to validate the FLASH write data, and if validated,
`FLASH copy utility 264 to perform the actual writing, to be
`described more fully below. Examples of such FLASH write
`data are system BIOS additions, deletions, and modifications
`described earlier, and an example of an external source
`medium is a diskette.
`FIG. 5 illustrates FLASH security circuit 226 in further
`detail. As shown, FLASH security circuit 226 includes first
`and second drivers 278 and 280. The input (ENFW#) of first
`driver 278 is provided by one of the I/O ports of GPIO ports
`232, whereas the output of first driver 278 is coupled to a
`signal line coupling a SMI trigger mechanism to processor
`212. Thus, whenever, GPIO ports 232 sets ENFW# active to
`enable write access, in response to a FLASH write request,
`first driver 278 causes a SMI to be triggered for processor
`212.
`The inputs (ENFW# and MEMW#) of second driver 280
`are provided by the same I/O port of general purpose I/O
`ports 232 and memory controller 218 respectively, whereas
`the output (FLASHWE#) of second driver 280 is provided
`to FLASH memory 224. FLASHWE# is tri-stated.
`FLASHWE# becomes active, when both MEMW# and
`ENFW# are active. In other words, the write signal
`(MEMW#) from memory controller 218 is qualified by
`ENFW#, which at the same time through first driver 278
`would cause a SMI to be triggered. Thus, the secured
`authentication functions stored in system management
`memory 222 would be invoked to authenticate the write data
`before allowing them to be written into FLASH memory
`224.
`FIG. 6 illustrates execution flow of the exemplary com­
`puter system in SMM. As shown, upon detection of an SMI,
`processor 212 directs memory controller 218 to switch in
`and map system management memory 222 as part of the
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,835,594
`
`6
`system memory space, and in response, memory controller
`218 performs the requested switching and mapping
`accordingly, step 282. Next, processor 212 saves the pro­
`cessor state into system management memory 222, step 284.
`Upon saving the processor state, processor 212 transfers
`execution control to pre-stored SMI handler 274, step 286.
`SMI handler 274 then determines the cause of the SMI
`and services the SMI accordingly, invoking other routines
`such as the authentication functions as necessary. Upon
`servicing the SMI, SMI handler 274 executes a Resume
`instruction to transfer execution control back to the inter­
`rupted programs. In response, processor 212 restores the
`saved processor state from system management memory
`222, step 288. Furthermore, processor 212 directs memory
`controller 218 to unmap system management memory 222
`from the system memory space and switch out system
`management memory 222. In response, memory controller
`218 performs the requested unmapping and switching
`accordingly, step 290.
`As a result, the SMI is serviced in a manner that is
`transparent to the executing operating system, subsystems as
`well as applications. In other words, an SMI is a transparent
`system service interrupt.
`FIG. 7 illustrates one embodiment of the execution flow
`for writing data into FLASH memory 224. As shown, in
`response to a write request from an application, such as
`FLASH utility 252 described earlier, read/write services 276
`set up the physical address pointers to the write data, step
`302. Next, for the illustrated embodiment, read/write ser­
`vices 276 generate a software SMI to enter SMM and to
`provide the SMI handler with the physical address pointers
`of the write data, step 304. A software SMI is used and
`preferred at this point in time as opposed to the designated
`GPIO port 232 because FLASH memory would remain
`disabled during the authentication process.
`Upon entry into SMM, as described earlier, SMI handler
`274 is given control. Upon ascertaining the reason for the
`SMI, SMI handler 274 invokes message digest 266 and
`decryption function 268 to authenticate the write data iden­
`tified by the physical address pointers, step 306. If the write
`data fails the authentication process, step 308, SMI handler
`274 sets the appropriate error flags, step 310, clears the
`designated GPIO port, step 316, and exits SMM. Upon given
`control again, read/write services 276 returns to the caller,
`after performing the necessary “clean ups”.
`On the other hand, if at step 308, the write data passes the
`authentication process, SMI handler 274 enables write to
`FLASH memory 224, by setting the designated GPIO port
`232, step 312. Once enabled, the authenticated write data are
`copied into FLASH memory 224, step 314. After all authen­
`ticated write data have been copied, as described earlier,
`SMI handler 274 clears the designated GPIO port 232, and
`exits SMM. Upon given control again, read/write services
`276 returns to the caller, after performing the necessary
`“clean ups”.
`As described earlier, when SMI handler 274 enables write
`to FLASH memory 224 by way of the designated GPIO port,
`in addition to enabling FLASH memory 224 for write, a SMI
`is triggered. However, since this “new” SMI is triggered
`while the system is in SMM, the “new” SMI is discarded.
`The reason why the “new” SMI is triggered is because for
`the illustrated embodiment, the designated GPIO port 232
`may be set outside SMM. The “automatic” SMI will ensure
`that the write data will be authenticated in the event that
`happens, preventing any possibility of bypassing the authen­
`tication process.
`
`

`

`5,835,594
`
`5
`
`10
`
`15
`
`20
`
`7
`Thus, methods and apparatus for preventing unauthorized
`access to a protected non-volatile memory have been
`described. While the method and apparatus of the present
`invention has been described in terms of the above illus­
`trated embodiments, those skilled in the art will recognize
`that the invention is not limited to the embodiments
`described. The present invention can be practiced with
`modification and alteration within the spirit and scope of the
`appended claims. The description is thus to be regarded as
`illustrative instead of restrictive on the present invention.
`What is claimed is:
`1. In a computer system comprising a non-volatile storage
`having stored therein data content, a computer implemented
`method for protecting the non-volatile storage from unau­
`thorized write access that would result in unauthorized
`modification of the stored data content, the method com­
`prising the steps of:
`a) pre-storing a plurality of associated authentication
`functions in the non-volatile storage, reading the plu­
`rality of associated authentication functions from the
`non-volatile storage during computer system
`initialization, and securing the plurality of associated
`authentication functions on the computer system, the
`associated authentication functions operative to authen­
`ticate write data of a write access to the non-volatile
`storage using an electronic signature the content of
`which being functionally dependent on the content of
`the write data; and
`b) selectively invoking the associated authentication func­
`tions to authenticate the write data of subsequent write
`accesses to the non-volatile storage during operation,
`allowing only authenticated write data to be written
`into the non-volatile storage.
`2. The computer implemented method as set forth in claim
`1, wherein step (a) comprises securing the authentication
`35
`functions in a secured portion of memory of the computer
`system.
`3. The computer implemented method as set forth in claim
`1, wherein the associated authentication functions of step (a)
`are implemented as a plurality of system basic input/output
`services (BIOS) of the computer system; and wherein step
`(a) comprises securing the associated authentication func­
`tions by copying the plurality of system BIOS implementing
`the associated authentication functions into system manage­
`ment memory of the computer system during system
`initialization, wherein the system management memory is
`not mapped into a normal system memory space of the
`computer system unless the computer system is executing in
`a system management mode, and wherein the system man­
`agement memory is write protected except for system ini­
`50
`tialization and system execution mode transition.
`4. The computer implemented method as set forth in claim
`1, wherein the associated electronic signature is generated
`by encrypting a first digest with a secret private key, the first
`digest being generated based on the content of the write data
`of the write access; and step (b) comprises
`(b.l) providing read accessibility to the secured associ­
`ated authentication functions;
`(b.2) invoking a secured decryption function of the
`secured associated authentication functions reconsti­
`tute the first digest by decrypting the associated elec­
`tronic signature using a secured public key comple­
`mentary to the secret private key,
`(b.3) invoking a secured message digest function of the
`secured associated authentication functions to generate
`a second digest based on the content of the write data
`of the write access, and
`
`8
`(b.4) invoking a secured digest comparison function of
`the secured associated authentication functions to
`determine if the write data of the write access is
`authentic by comparing the first and second digests.
`5. The computer implemented method as set forth in claim
`4, wherein step (b) further comprises step (b.5) conditionally
`invoking a secured copy utility of the secured associated
`authentication functions to copy the write data into the
`protected non-volatile storage if the first and second digests
`compared successfully in step (b.4).
`6. A computer system comprising:
`(a) a non-volatile storage having stored therein data
`content;
`(b) a plurality of authentication functions associated with
`the data content and stored in the non-volatile storage,
`operative to authenticate write data of a write access to
`the non-volatile storage during operation, the associ­
`ated authentication functions operative to authenticate
`the write data using an electronic signature which is
`functionally dependent on the content of the write data;
`(c) a secured memory unit operative to store and secure
`the plurality of associated authentication functions read
`from the non-volatile storage during system initializa­
`tion of the computer system; and
`(d) a processor coupled to the non-volatile storage and the
`secured memory unit operative to selectively invoke
`the associated authentication functions during opera­
`tion of the computer system to authenticate the write
`data of subsequent write accesses to the non-volatile
`storage, protecting the non-volatile storage from unau­
`thorized write access that would result in unauthorized
`modification of the stored data content.
`7. The computer system as set forth in claim 6, wherein
`the plurality of authentication functions include
`a decryption function for reconstituting a first digest by
`decrypting the electronic signature with a public key,
`the electronic signature being generated by encrypting
`the first digest with a secret private key in a comple­
`mentary manner,
`a message digest function for generating a second digest
`based on the content of the write data of the write
`access in the same manner the first digest was
`generated, and
`a digest comparison function for determining whether the
`write data of the write access is authentic by comparing
`the first and second digests.
`8. The computer system as set forth in claim 7, wherein
`the decryption function, the message digest function and the
`digest comparison function are implemented as a plurality of
`system basic input/output services (BIOS) of the computer
`system, which are copied into the secured memory unit
`during system initialization, wherein the secured memory
`unit is not mapped into a normal system memory space of
`the computer system unless the processor is executing in
`system management mode, and wherein the secured
`memory unit is write protected except for system initializa­
`tion and processor execution mode transition.
`9. The computer system as set forth in claim 8, wherein
`the non-volatile storage is a FLASH memory storage unit
`for storing system BIOS;
`the decryption function, the message digest function, the
`digest encryption function and the public key are
`pre-stored in the FLASH memory storage unit;
`the computer system further includes main memory
`coupled to the processor; and
`
`25
`
`30
`
`40
`
`45
`
`55
`
`60
`
`65
`
`

`

`25
`
`9
`the write data of the write access are system BIOS updates
`staged in a buffer in the main memory.
`10. The computer system as set forth in claim 9, wherein
`the computer system further includes a memory controller
`coupled to the processor, the main memory, the secured
`memory unit and the FLASH memory for controlling
`memory access;
`a FLASH security circuit coupled to the memory control­
`ler and the FLASH memory for qualifying a write
`signal provided by the memory controller to the
`FLASH memory for the write access, and for generat­
`ing an interrupt to place the processor in the system
`management mode.
`11. The computer system as set forth in claim 10, wherein
`15
`the computer system further includes an I/O port coupled
`to the processor and the FLASH security circuit for
`notifying the FLASH security circuit of the write
`access.
`12. The computer system as set forth in claim 7, wherein
`20
`the plurality of authentication functions further include a
`copy function for conditionally

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