System management mode trust establishment for os-level drivers

By generating and verifying signed SMM information elements, and utilizing private key signing and public key authentication, the problem of malicious software using high privileges to perform dangerous operations in SMM is solved, thus realizing trust establishment and security assurance in SMM sessions.

CN114003891BActive Publication Date: 2026-01-06INTEL CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111269149.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-03-23
Filing Date
2016-03-23
Publication Date
2026-01-06
Estimated Expiration
2036-03-23

AI Technical Summary

Technical Problem

Computer systems in System Management Mode (SMM) pose security risks, as malware can exploit high privileges to perform dangerous operations. Trust mechanisms need to be established to ensure the legitimacy and security of these operations.

Method used

By generating and verifying signed SMM information elements, and using private key signing and public key authentication, the legitimacy and authority of components invoked in an SMM session are ensured. This includes generating signed SMM information elements, storing them in a computer-readable storage device, and verifying the validity of the signature using a public key to ensure the legitimacy of the operation.

Benefits of technology

It enables trust establishment for called components in the SMM session, ensuring the legitimacy and security of operations, preventing dangerous operations by malicious software, and improving system security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114003891B_ABST
    Figure CN114003891B_ABST
Patent Text Reader

Abstract

Various embodiments generally relate to establishing trust in system management mode. An operating system management mode driver can invoke system management mode and provide a signature to the system management mode to utilize the signature to authenticate the driver. Additionally, a hash value of the driver can be used to determine whether the driver is authorized to invoke system management mode or a particular operation or feature of system management mode.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of application number 201680011606.2, filed on March 23, 2016, entitled "System Management Mode Trust Establishment for OS-level Drivers". Technical Field

[0002] The embodiments described herein generally relate to System Management Mode (SMM) operation of computing devices. Background Technology

[0003] Computing systems include modes in which instructions can be executed with high privileges. For example, some computer systems include System Management Mode (SMM). In SMM, the normal execution of instructions, including those of the operating system, is suspended, and special individual instructions (e.g., firmware) can be executed with high privileges.

[0004] The operating system may enable the computer system to enter SMM (Security Management Mode) to manipulate various operable parameters that may not be modifiable during normal operation. For example, the operating system can initiate SMM to overwrite secure memory locations, change low-level passwords (such as BIOS passwords), modify power management functions, enable or disable security features, manipulate hardware resources, and so on.

[0005] Because the instructions executed during SMM have high privileges, SMM can be used to put a computer system at risk, for example, as an entry point for rootkits or other malware.

[0006] The embodiments described herein are necessary to address these and other considerations. Attached Figure Description

[0007] Figure 1 A block diagram of a device according to an embodiment is shown.

[0008] Figures 2-3 An example is shown. Figure 1 A block diagram illustrating aspects of the operation of the device.

[0009] Figure 4 The technique according to an embodiment is illustrated.

[0010] Figures 5-6 Each illustrates a logic flow according to various embodiments.

[0011] Figure 7 An embodiment of a computer-readable storage medium is shown.

[0012] Figure 8 An example of the processing architecture is shown. Detailed Implementation

[0013] Various embodiments generally relate to establishing trust for System Management Mode (SMM) operations of a computing system. In other words, this disclosure generally relates to determining that operations and / or functions implemented in an SMM session are initiated by an authorized entity. For example, this disclosure can be implemented to generate signed SMM information elements (e.g., including an SMM invoker, etc.) that can be authenticated in an SMM session. The signed SMM information element can be signed based on a private key and authenticated based on a corresponding public key. Furthermore, the SMM information element may include a hash of the component invoking the SMM (e.g., an OS driver, a calling application, etc.). During the SMM session, the hash can be used to determine whether the component invoking the SMM has the authority to invoke the SMM and / or invoke certain SMM operations and / or functions.

[0014] It should be noted that this disclosure relates to System Management Models (SMM). It should also be noted that this is not intended to limit it to SMM implementations. For example, this disclosure can be implemented using any of a variety of secure machine models, such as, for example, TrustZone® for AMR-LT architectures, SMM for x86 architectures, etc.

[0015] Referring generally to the notation and nomenclature used herein, the parts described in detail below can be presented according to the procedures of a program executed on a computer or a network of computers. These descriptions and representations of the programs are used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. A program herein is, and is generally considered, a self-consistent sequence of operations that produce the desired result. These operations are operations requiring the physical manipulation of physical quantities. Typically, though not always, these quantities are expressed as electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. Primarily for reasons of general use, it is sometimes convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc. However, it should be noted that all of these and similar terms are associated with appropriate physical quantities and are merely convenient notations applied to those quantities.

[0016] Furthermore, these manipulations are often referred to in terms such as addition or comparison, which are generally associated with intellectual operations performed by human operators. However, in most cases, such human operator capability is not necessary or desired in any of the operations described herein that form part of one or more embodiments. Instead, these operations are machine operations. Useful machines for performing the operations of the various embodiments include general-purpose digital computers that are selectively activated or configured by computer programs written to and stored therein in accordance with the teachings of this document, and / or include means specifically constructed for the desired purpose. The various embodiments also relate to means or systems for performing these operations. These means may be specifically constructed for the desired purpose or may comprise general computing devices. The necessary structures for the various such machines will emerge from the given description.

[0017] Referring now to the accompanying drawings, in which similar reference numerals are consistently used to denote similar elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a full understanding thereof. However, it will be apparent, however, that novel embodiments may be practiced without these specific details. In other instances, known structures and devices are shown in block diagram form to facilitate the description of their implementation. A comprehensive description is intended to fully describe all modifications, equivalents, and substitutions within the scope of the claims.

[0018] Additionally, variables such as "a", "b", and "c" can be used to indicate components that can implement more than one component. It's important to note that multiple components are not necessarily required, and furthermore, where multiple components are implemented, they don't necessarily have to be the same. Instead, using variables to refer to components in the diagram is for convenience and clarity.

[0019] Figure 1 A block diagram depicts an SMM trust-establishing device 100 and an SMM caller signature server 200. Typically, device 100 and / or server 200 can be any of various types of computing devices, including but not limited to laptops, netbooks, ultrabooks, tablets, handheld personal data assistants, smartphones, wearable computing devices (e.g., integrated into clothing), media streaming devices, audio computing devices, video computing devices, smart TVs, etc.

[0020] Through various examples, device 100 includes one or more of processor element 110, computer-readable storage device 120, SMM storage device 130, control 140, output device 150, and interface 160. Computer-readable storage device 120 stores one or more of control routine 122, signed SMM information element 124, and instruction pointer (IP) 126. SMM storage device 130 stores one or more of SMM control routine 132 and public key 134. Additionally, SMM storage device 130 may include caller hash database 136.

[0021] Through various examples, server 200 includes one or more of processor element 210, computer-readable storage device 220, and interface 260. Computer-readable storage device 220 stores one or more of control routine 222, Unified Extensible Firmware Interface (UEFI) verifiable signature 224, SMM caller 226, and private key 228.

[0022] Device 100 and server 200 can be operatively connected to one or more networks and / or connected to each other via one or more networks (such as, for example, network 300). Typically, network 300 can be any network configured to facilitate communication between device 100 and / or server 200, and may include the Internet.

[0023] Typically, control routine 222 contains a sequence of instructions that operate on components of server 200 (e.g., processor element 210, etc.) to implement logic for signing the SMM caller based on private key 128 to facilitate trust establishment in an SMM session as described herein. For example, when executing control routine 222, processor element 210 may generate a UEFI verifiable signature 224 based on SMM caller 226 and private key 228. Additionally, when executing control routine 222, the processor element may transmit the UEFI signature 224 and / or SMM caller 226 to device 100.

[0024] Generally, control routine 122 contains a sequence of instructions that operate on components of device 100 (e.g., processor element 110, etc.) to implement the logic of invoking and establishing trust with the SMM session implemented by device 100. In other words, control routine 122 can be configured to invoke the SMM session and provide credentials and / or information for establishing trust with the SMM session. Control routine 132 contains a sequence of instructions that operate on components of device 100 (e.g., processor element 110, etc.) to implement the logic of implementing the SMM session and determining whether the SMM session is properly invoked.

[0025] When executing control routine 122, processor element 110 may generate a signed SMM information element 124 and store the signed SMM information element 124 in a location within the physical memory of device 100 (e.g., computer-readable storage device 120, etc.). In some examples, the signed SMM information element may be stored in a single page (e.g., 4 kilobytes, etc.) of computer-readable storage device 120.

[0026] Typically, the signed SMM information element 124 may include an indication of the SMM caller (e.g., SMM caller 226) and a signature (e.g., UEFI signature 224) for authenticating the SMM caller. By way of some examples, when executing control routine 122, processor element 110 may receive UEFI signature 224 from SMM caller signature server 200 and generate SMM information element 124 including the indication of UEFI signature 224.

[0027] Furthermore, during the execution of control routine 122, processor element 110 may generate IP information element 126 to include an indication of the address (e.g., location, etc.) of the signed SMM information element 124 in computer-readable storage device 120. Typically, the IP information element may be an instruction pointer, such as "IP" used in some 16-bit environments, "EIP" used in some 32-bit computing environments, or "RIP" used in some 64-bit environments. The use of the terms "instruction pointer" or "IP," typically used to refer to IP 126, is not intended to be limited to a specific computing environment, but can be implemented, for example, in 16-bit, 32-bit, 64-bit, and other computing environments.

[0028] In some examples, when executing control routine 122, processor element 110 can initiate SMM by sending control signals (e.g., logic signals to pins of processor element 110, logic signals to pins of motherboard (not shown), etc.) and transmitting IP information elements to the SMM session.

[0029] By way of some examples, when executing control routine 122, processor element 110 can generate hash values ​​(e.g., reference) based on the component that calls SMM (e.g., operating system SMM driver, calling application, etc.). Figure 2 (and may include an indication of the hash value in the signed SMM information element 124. By way of examples, control routine 122 may incorporate the hash into SMM caller 226 so that SMM caller can ensure that control routine 122 has the authority to invoke SMM.)

[0030] When executing control routine 132, device 100 may enter an SMM and / or initiate an SMM session. More specifically, for the purpose of performing various SMM operations, processor element 110 may suspend the execution of various processes (e.g., operating system processing, etc.). It is important to note that various different SMMs and technologies exist for invoking SMMs. This disclosure can be implemented to establish trust (or authenticate components of device 100 invoking the SMM) with any component of device 100 invoking the SMM against various SMMs.

[0031] When executing control routine 132, processor component 110 may receive IP information element 126. As described above, IP information element 126 may include an indication of the address of the signed SMM information element 124. In other words, IP information element may include a virtual address that can be translated into a physical address for the location of the signed SMM information element 124 in memory (e.g., computer-readable storage device 120, etc.).

[0032] Furthermore, during the execution of control routine 132, processor element 110 can retrieve the signed SMM information element 124 from a computer-readable storage location based on the address indicated in IP information element 126. Additionally, as described above, the signed SMM information element 124 may include an SMM caller (e.g., reference...). Figure 2 The processor element 110 provides instructions and a signature used to authenticate the SMM caller. The signature can be based on the private key 128. When executing control routine 132, the processor element 110 can determine whether the signature is valid based on the public key 134. More specifically, the public key 134 can be used to determine whether the signature is based on the private key 128, and therefore whether it is authentic.

[0033] Therefore, control routine 132 can establish trust with the component of the device that invokes the SMM. More specifically, when executing control routine 132, processor component 110 can indicate that the component is authorized to invoke the SMM (or invoke the requested function and / or operation, etc.) to perform one or more operations in the SMM based on determining that the signed SMM information element 124 is valid and / or determining the hash value corresponding to the component that invoked the SMM.

[0034] In various embodiments, processor element 110 and / or 210 may include any of a wide variety of commercially available processors, including but not limited to AMD. ® Athlon ® Duron ® Or Opteron ® Processor; ARM ® Processors for applications, embedded systems, or security; IBM ® and / or Motorola® DragonBall ® or PowerPC ® Processors; IBM and / or Sony ® Cell processor; or Intel ® Celeron ® Core (2) Duo ® Core (2) Quad ® Core i3 ® Core i5 ® Core i7 ® Atom ® Itanium ® Pentium ® Xeon ® or XScale ® Processors. Furthermore, one or more of these processor elements may include multi-core processors (regardless of whether the multiple cores coexist on the same or separate dies) and / or some other type of multiprocessor architecture, through which multiple physically separate processors are linked in some way. Additionally, in various embodiments, any number of processor elements 110 may include a trusted execution environment (e.g., Intel CSE). ® Intel ME ® Intel VT ® Intel SGX ® ARMTrustedZone ® (etc.), which are used to provide processing and / or storage of sensitive information. A trusted execution environment can be accessed using the geolocation techniques described herein.

[0035] In various embodiments, storage device 120 and / or SMM storage device 130 and / or storage device 220 can be based on any of a wide range of information storage technologies, possibly including volatile technologies that require uninterrupted power supply, and possibly technologies that require the use of machine-readable storage media that may or may not be removable. Therefore, each of these storage devices can include any of a wide range of types (or combinations of types) of storage devices, including but not limited to read-only memory (ROM), random access memory (RAM), dynamic RAM (DRAM), dual data rate DRAM (DDR-DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory (e.g., ferroelectric polymer memory), austenite memory, phase-change or ferroelectric memory, silicon oxide-oxide-oxide-silicon (SONOS) memory, magnetic cards or optical cards, one or more individual ferromagnetic disk drives, or multiple storage devices organized into one or more arrays (e.g., multiple ferromagnetic disk drive arrays organized into independent disk redundant arrays or RAID arrays). It should be noted that although each of these storage devices is depicted as a single frame, one or more of these storage devices may include multiple storage devices that may be based on different storage technologies. Thus, for example, one or more of each of these depicted storage devices may represent a combination of an optical drive or a flash card reader through which programs and / or data can be stored and transferred to some form of machine-readable storage medium, a magnetic disk drive for local storage of programs and / or data for a considerably long period of time, and one or more volatile solid-state storage devices (e.g., SRAM or DRAM) enabling relatively fast access to programs and / or data. It should also be noted that each of these storage devices may consist of multiple storage components based on the same storage technology, but may be maintained separately for specific purposes (e.g., some DRAM devices are used as the main storage device, while other DRAM devices are used as different frame buffers for a graphics controller).

[0036] In various embodiments, control 140 can be any of a variety of manually operable controls, including but not limited to one or more of a keyboard, mouse, keypad, touchpad, stylus, etc. The output device can be local or remote and can be wirelessly or wired connected. In various embodiments, output device 150 can be any of a variety of output devices, such as, for example, a display, speaker, haptic feedback device, etc.

[0037] In various embodiments, interfaces 160 and / or 260 may employ any of a wide range of signaling technologies that enable components to be coupled over a network.

[0038] Figures 2-3 yes Figure 1 A block diagram of a portion of an embodiment of the SMM trust establishment device 100. Typically, Figure 2 The operation of device 100 when SMM is invoked is shown, while Figure 3 This illustrates aspects of the operation of device 100 during an SMM session where authentication is invoked. More specifically, Figure 2 This illustrates aspects of controlling the operation of routine 122 when SMM is invoked, while Figure 3 This illustrates aspects of the operation of control routine 132 when authenticating an invoked SMM session.

[0039] In various embodiments, control routine 122 and / or control routine 132 may include one or more of an operating system, device drivers, and / or application-level routines (e.g., so-called "software suites" provided on disk media, "applets" obtained from a remote server, etc.). Where an operating system is included, the operating system may be any of a variety of available operating systems suitable for any of the corresponding processor elements in processor element 110. Where one or more device drivers are included, these device drivers may provide support for any of the various other components of device 100, whether hardware or software.

[0040] Typically, control routine 122 is configured to invoke the SMM session, while control routine 132 is configured to operate during the SMM session to verify the "caller" or "invoker" of the SMM session. By way of examples, control routine 122 can be implemented by or within the framework of the operating system, while control routine 132 can be implemented by or within the framework of the SMM. Therefore, in Figure 2 The text describes operating system 180, while... Figure 3 SMM 190 is described in the document. It should be noted that operating system 180 can be any of the various operating systems configured to invoke SMM 190.

[0041] To be more specific Figure 2The control routine 122 includes an SMM driver component 1221, a signature receiving component 1222, and an IP generation component 1223. The SMM driver component 1221 generates a signed SMM information element 124. More specifically, the SMM driver component 1221 loads an SMM caller (e.g., SMM caller 226, etc.) into a memory storage location (e.g., into a single page of computer-readable storage device 120). Typically, during an SMM session (e.g., SMM 190), the SMM caller 226 may include logic and / or features for implementation, execution, etc.

[0042] The signature receiving component 1222 receives a signature (e.g., a UEFI-verifiable signature 224) used to authenticate the SMM caller 226 and adds the signature 224 to the signed SMM information element 124. Typically, the signature 224 is based on the private key 128. In some examples, the signature 224 can be verified by the Unified Extensible Firmware Interface (UEFI).

[0043] IP generation component 1223 generates IP information element 126 to include an indication of the address (e.g., virtual address, physical address, etc.) of the signed SMM information element 124. In some examples, IP information element 126 is transmitted along with control signals (e.g., to processor element 110, etc.) to "initiate" or invoke an SMM session. For example, IP generation component 1223 may transmit control signals to a specific pin of processor element 110 to initiate an SMM session.

[0044] Additionally, control routine 122 can "call" or invoke SMM caller 226 to initiate an SMM session. By way of example, the SMM caller adds a hash value 1243, such as SHA256, to the signed SMM message element 124 based on SMM driver component 1221 (or control routine 122). By way of example, hash value 1243 can be coupled or incorporated into SMM caller 226 to ensure that the SMM caller is invoked by an authorized application (e.g., SMM driver component 1221, control routine 122, etc.).

[0045] When executing SMM caller 226, SMM caller 226 can determine whether the function or operation indicated in the SMM caller is authorized by SMM driver component 1221 based on hash value 1243. For example, SMM caller 226 can compare hash value 1243 with a hash value indicated in caller hash database 136 to determine whether SMM driver component 1221 is authorized to invoke the function or operation indicated in SMM caller 226.

[0046] Typically, during an SMM session (e.g., see [link]). Figure 3The signature 224 can be used to establish trust with the SMM driver component 1221. More specifically, the SMM session can determine whether the SMM driver component 1221 is trusted based on the signature 224.

[0047] To be more specific Figure 3 Control routine 132 includes IP processor component 1321. IP processor component 1321 receives IP 126 from OS 180, SMM driver 1221, etc. Furthermore, IP processor component 1321 determines the address indicated in IP information element 126. For example, IP processor component 1321 may translate a virtual memory address into a physical memory address. Additionally, IP processor component 1321 retrieves the signed SMM information element 124 based on IP information element 126, or more specifically, the address indicated in IP information element 126.

[0048] In some examples, IP processor component 1321 searches physical memory (e.g., computer-readable storage device 120, etc.) for pages (e.g., 4 kilobytes) before and after the address indicated in IP information element 126. Specifically, IP processor component 1321 searches SMM caller 226. In some examples, IP processor component 1321 may search the header of the signed SMM information element 124. IP processor component 1321 may retrieve (e.g., access, read, etc.) the signed SMM information element 124 based on identifying the header. In some examples, the header may be a specific bit combination or indicator used to identify the beginning of the signed SMM information element 124.

[0049] The caller signature verification component 1322 authenticates the called SMM session 190 based on the signed SMM information element 124. Specifically, the caller signature verification component 1322 determines whether the signature 224 is authentic based on the public key 134.

[0050] SMM operator component 1323 implements SMM operations or functions based on SMM caller 226. In other words, SMM operator component 1323 performs one or more operations in SMM session 190 based on SMM caller 226 and confirming the validity of signature 224. For example, SMM caller 226 may include indication or control signals for operations such as changing the BIOS password, modifying operating parameters of one of the hardware components of device 100 (e.g., processor element 110, graphics processing unit, etc.), reading data from a secure storage location and / or writing data to a secure storage location (e.g., a secure EEPROM location, etc.).

[0051] Figure 4A technique 400 for establishing trust in an SMM, which can be implemented according to various embodiments of the present disclosure, is illustrated. As shown, technique 400 includes an operation or block 4.A, where A is a positive integer. Furthermore, the description of technique 400 is for reference only. Figures 1-3 The device 100 is described. However, this is not limiting.

[0052] Beginning at box 4.1, the SMM OS-level driver (e.g., SMM driver component 1221) generates a signed SMM information element, including the SMM caller, on a single page within a location on a computer-readable storage device. For example, SMM driver component 1221 may generate an SMM information element 124 including a signature of SMM caller 226, for example, by adding or loading SMM caller 226 into the signed SMM information element 124. Continuing to box 4.2, signature receiving component 1222 adds a signature to the signed SMM information element 124 to authenticate SMM driver component 1221. For example, signature receiving component 1222 may add signature 224 to the signed SMM information element 124. In some examples, the signature may be based on a private key 128 corresponding to public key 134 (e.g., generated by server 200).

[0053] Continuing to box 4.3, IP generation component 1223 generates IP information element 126, which includes an indication of the location of a signed SMM information element in a computer-readable storage device (e.g., storage device 120, etc.). Furthermore, IP generation component 1223 may generate a hash value based on SMM driver component 1221 and add the hash value to the signed SMM information element 124 or IP information element 126.

[0054] Continuing to box 4.4, SMM driver component 1221 sends a control signal to invoke the SMM (e.g., by sending a control signal to a pin of processing element 110, etc.) and transmits IP information element 126 to the SMM. In some examples, SMM driver component 1221 calls SMM caller 226. When executing SMM caller 226, SMM caller 226 may determine whether SMM driver component 1221 is authorized to call the SMM caller based on hash value 1243 and hash value database 136.

[0055] Continuing to box 4.5, upon invoking SMM, IP information element 126 is received (e.g., captured, etc.), and the address of the signed SMM information element 124 is determined based on IP information element 126. For example, IP processor component 1321 may receive IP information element 126 and translate the virtual address indication into a physical address to locate and retrieve the signed SMM information element 124.

[0056] Continuing to box 4.6, the signature indicated in the SMM information element 124 is verified. For example, the caller signature verification component can authenticate signature 224 based on public key 134. Continuing to box 4.7, operations and / or functions can be implemented in the SMM based on SMM caller 226. For example, SMM operation component 1323 can enable device 100 to implement the operations and / or features specified in SMM caller 226.

[0057] Figures 5-6 An embodiment of a logical flow for establishing trust in an SMM is illustrated. For example, the logical flow can be implemented to generate a signed SMM information element 124 and initiate an SMM, and to authenticate the SMM based on the signed SMM information element 124. It should be understood that the logical flow is a reference to... Figures 1-3 And as described in device 100. However, the examples are not limited to this context, and specifically include those related to... Figures 1-3 Systems and / or devices with similar or different components as described can implement this logical flow.

[0058] To be more specific Figure 5 Logic flow 500 may begin at box 510. At box 510, "generating a signed System Management Mode (SMM) information element, the signed SMM information element including an indication of the SMM caller and a signature for authenticating the SMM caller," control routine 122 may generate a signed SMM information element 124. For example, SMM driver component 1221 may generate SMM information element 124 including a signature added to SMM caller 226. Additionally, at box 510, signature receiving component 1222 may receive signature 224 (e.g., from server 200, etc.), signature 224 being based on private key 128. Furthermore, component 1222 may add the signature to the signed SMM information element.

[0059] Continuing to box 520, “Storing SMM Information Element to a Location in a Computer-Readable Storage Device,” control routine 122 can store the signed SMM information element 124 to storage device 120. For example, SMM driver component 1221 can store the signed SMM information element 124 into a single page within physical memory (e.g., storage device 120, etc.).

[0060] Continuing to box 530, “Generate Instruction Pointer (IP) Information Element, the IP Information Element including an indication of the address of a location in a computer-readable storage device,” control routine 122 can generate IP Information Element 126. For example, IP generation component 1223 can generate IP Information Element 126 including an indication of the address of a signed SMM Information Element 124.

[0061] To be more specific Figure 6 The diagram depicts a logic flow 600. Logic flow 600 may begin at block 610. At block 610, control routine 132 may receive an IP information element, which includes an indication of the address of a computer-readable storage location, for example, “receive instruction pointer (IP) information element, the IP information element including an indication of the address of a computer-readable storage location.” For example, IP processor component 1321 may receive IP information element 126 including an indication of the address of SMM information element 124 for signing.

[0062] Continuing to box 620, “Retrieving a signed System Management Mode (SMM) information element from a computer-readable storage location based on an address, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller,” control routine 132 can retrieve the signed SMM information element 124. For example, IP processor component 1321 can retrieve the signed SMM information element from physical memory (e.g., storage device 120, etc.) based on the address indicated in the IP information element (e.g., searching within pages before and after the address in memory to identify and retrieve the information element).

[0063] Continuing to box 630, “Determining whether a signature is valid,” control routine 132 determines whether the signature indicated in the SMM information element 124 of the signature is valid. For example, caller signature verification component 1322 can determine whether the signature is valid based on public key 134.

[0064] Continuing to box 640, “Execute one or more operations in the SMM based on the SMM caller and determining that the signature is valid,” control routine 132 can implement operations and / or features in the SMM based on determining that the signature is valid. For example, SMM operator component 1323 can implement operations and / or features based on SMM caller 226 and determining that signature 224 is valid.

[0065] Figure 7 An embodiment of storage medium 700 is illustrated. Storage medium 700 may include article of manufacture. In some examples, storage medium 700 may include any non-transitory computer-readable or machine-readable medium, such as optical, magnetic, or semiconductor storage devices. Storage medium 700 may store various types of computer-executable instructions (e.g., 702). For example, storage medium 700 may store various types of computer-executable instructions for technology 400. In some examples, storage medium 700 may store various types of computer-executable instructions to implement logic flow 500. In some examples, storage medium 700 may store various types of computer-executable instructions to implement logic flow 600.

[0066] Examples of computer-readable or machine-readable storage media can include any tangible medium capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, and so on. Examples of computer-executable instructions can include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and so on. These examples are not limited to this context.

[0067] Figure 8 An embodiment of an exemplary processing architecture 3000 suitable for implementing the various embodiments described above is shown. More specifically, the processing architecture 3000 (or variations thereof) can be implemented as Figures 1-3 It is part of the equipment 100.

[0068] Processing architecture 3000 includes a variety of elements commonly used in digital processing, including but not limited to one or more processors, multi-core processors, coprocessors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input / output (I / O) components, power supplies, etc. As used in this application, the terms "system" and "component" are intended to refer to an entity of a computing device in which digital processing is performed, which is hardware, a combination of hardware and software, software or software being executed, examples of which are provided by the exemplary processing architecture depicted. For example, a component can be, but is not limited to, a process running on a processor element, the processor element itself, a storage device that may employ optical and / or magnetic storage media (e.g., a hard disk drive, multiple storage drives in an array, etc.), a software object, an executable sequence of instructions, an executing thread, a program, and / or an entire computing device (e.g., an entire computer). By way of example, a server and an application running on a server can both be components. One or more components may reside within a process and / or an executing thread, and components may be localized on a single computing device and / or distributed across two or more computing devices. Furthermore, components can be communicatively coupled to each other to coordinate operation via various types of communication media. This coordination can involve the one-way or two-way exchange of information. For example, components can transmit information in the form of signals transmitted via a communication medium. This information can be implemented as signals assigned to one or more signal lines. Each message can be a signal or multiple signals transmitted serially or substantially in parallel.

[0069] As shown in the figure, when implementing the processing architecture 3000, the computing device includes at least a processor element 3010, a storage device 3030, an interface 3090 to other devices, and a coupler 3015. Depending on various aspects of the computing device implementing the processing architecture 3000, including its intended use and / or the conditions of use, such a computing device may further include additional components, such as, but not limited to, a counter element 3015.

[0070] Coupler 3015 includes one or more buses, point-to-point interconnects, transceivers, buffers, cross-point switches, and / or at least other conductors and / or logic that communicatively couple processor element 3010 to storage device 3030. Coupler 3015 may further couple processor element 3010 to one or more of interface 3090 and display interface 3055 (depending on which of these and / or other components are also present). As processor element 3010 is coupled via coupler 3015, processor element 3010 is able to perform the various tasks described above for any of computing devices 100, 300, and 600 to implement the tasks detailed in processing architecture 3000. Coupler 3015 may be implemented using any one or a combination of various technologies by which signals can be transmitted optically and / or electrically. In addition, at least a portion of the coupler 3015 may employ timing and / or protocols that conform to any of a wide range of industry standards, including but not limited to Accelerated Graphics Port (AGP), CardBus, Extended Industry Standard Architecture (E-ISA), Microchannel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended) (PCI-X), Fast PCI (PCI-E), PCMCIA Bus, HyperTransport™, Interconnect Fast Path, etc.

[0071] As previously described, processor element 3010 may include any of a wide variety of commercially available processors that employ any of a wide variety of technologies and utilize one or more cores that are physically combined in any of a variety of ways.

[0072] As previously described, storage device 3030 may include one or more different storage devices based on any one or a combination of a wide range of technologies. More specifically, as shown in the figures, storage device 3030 may include one or more of the following: volatile storage device 3031 (e.g., one or more forms of solid-state memory based on RAM technology), non-volatile storage device 3032 (e.g., solid-state memory, ferromagnetic memory, or other storage devices that do not require a continuous power supply to retain their contents), and removable media storage device 3033 (e.g., removable disk or solid-state memory card storage device through which information can be transferred between computing devices). The description of storage device 3030, which may include multiple different types of storage devices, is a common use for identifying more than one type of storage device in computing devices, where one type provides relatively fast read and write capabilities that enable processor element 3010 to manipulate data faster (but may use “volatile” technologies that require continuous power), while another type provides relatively high-density non-volatile storage (but may provide relatively slow read and write capabilities).

[0073] Given the different characteristics of different storage devices employing different technologies, it is common practice for such different storage devices to be coupled to other parts of a computing device through different storage device controllers, wherein different storage device controllers are coupled to their dissimilar storage devices through different interfaces. As an example, a volatile storage device 3031 based on RAM technology is presented. The volatile storage device 3031 can be communicatively coupled to a coupler 3015 via a storage controller 3035a. The storage controller 3035a provides a suitable interface to the volatile storage device 3031, which may employ row and column addressing, and wherein the storage controller 3035a can perform row flushing and / or other maintenance tasks to help preserve information stored within the volatile storage device 3031. As another example, a non-volatile storage device 3032 is presented and includes one or more ferromagnetic and / or solid-state disk drives. The non-volatile storage device 3032 can be communicatively coupled to a coupler 3015 via a storage controller 3035b, which provides a suitable interface to the non-volatile storage device 3032 that may employ block addressing and / or cylinder and sector addressing of information. As yet another example, a removable media storage device 3033 is presented and includes one or more optical and / or solid-state disk drives employing one or more removable machine-readable storage media 3039. The removable media storage device 3033 can be communicatively coupled to a coupler 3015 via a storage controller 3035c, which provides a suitable interface to the removable media storage device 3033 that may employ block addressing of information. The storage controller 3035c can coordinate read, erase, and write operations in a manner specified for extending the lifetime of the machine-readable storage media 3039.

[0074] One or the other of the volatile storage device 3031 or the non-volatile storage device 3032 may include an article of manufacture in the form of a machine-readable storage medium, wherein, depending on the technology on which each is based, routines comprising a sequence of instructions executable by the processor element 3010 may be stored on the machine-readable storage medium. As an example, the non-volatile storage device 3032 may include a ferromagnetic disk drive (e.g., a so-called "hard disk drive"), each such disk drive typically employing one or more rotating disk platters on which a coating of magnetically responsive microparticles is deposited in various patterns and magnetically oriented for storing information (e.g., a sequence of instructions) in a manner similar to that of a removable storage medium (e.g., a floppy disk). As another example, the non-volatile storage device 3032 may consist of a storage body of a solid-state storage device for storing information (e.g., a sequence of instructions) in a manner similar to that of a compact flash memory card. Similarly, different types of storage devices are commonly used in computing devices at different times for storing executable routines and / or data. Therefore, a routine comprising a sequence of instructions to be executed by processor element 3010 can be initially stored on machine-readable storage medium 3039, and removable storage medium 3033 can subsequently be used to copy the routine to non-volatile storage medium 3032 for longer-term storage without the continued presence of machine-readable storage medium 3039 and / or volatile storage medium 3031, so that processor element 3010 can access the routine more quickly when it is executed.

[0075] As previously described, interface 3090 may employ any of a variety of signaling technologies corresponding to any of a variety of communication technologies that can be used to communicatively couple a computing device to one or more other devices. Similarly, one or two of a variety of wired or wireless signaling methods may be employed, possibly via a network (e.g., network 3099) or a set of interconnections of networks, to enable processor element 3010 to interact with input / output devices (e.g., the depicted exemplary keyboard 3040 or printer 3045) and / or other computing devices. To identify the generally distinct characteristics of the various types of signaling and / or protocols that must typically be supported by any one of the computing devices, interface 3090 is depicted as including a plurality of different interface controllers 3095a, 3095b, and 3095c. Interface controller 3095a may employ any of a variety of wired digital serial interfaces or radio frequency wireless interfaces to receive serially transmitted messages from a user input device (e.g., the depicted keyboard 3040). Interface controller 3095b can employ any of a variety of cable-based or wireless signaling, timing, and / or protocols to access other computing devices via the depicted network 3099 (which may be a network including one or more links, a smaller network, or possibly the Internet). Interface 3095c can employ any of a variety of conductive cable cabling to enable data transmission to the depicted printer 3045 using serial or parallel signal transmission. Other examples of devices that can be communicatively coupled to one or more interface controllers via interface 3090 include, but are not limited to, microphones, remote controls, styluses, card readers, fingerprint readers, virtual reality interactive gloves, graphics input tablets, joysticks, other keyboards, retinal scanners, touch input components of touchscreens, trackballs, various sensors, laser printers, inkjet printers, mechanical robots, milling machines, etc.

[0076] Where a computing device is communicatively coupled to (or may actually contain) a display (e.g., the illustrated example display 3050), such a computing device implementing the processing architecture 3000 may also include a display interface 3055. While more general interface types can be used for communicatively coupled to a display, certain specific additional processing required for visually displaying various forms of content on a display, and certain special properties used by cable-based interfaces, often make the provision of different display interfaces desirable. The wired and / or wireless signaling technologies employed by the display interface 3055 in the communicative coupling of the display 3050 can utilize signaling and / or protocols conforming to any of various industry standards, including but not limited to various analog video interfaces, digital video interfaces (DVI), display ports, etc.

[0077] More generally, the various elements of computing devices 100, 200, and 400 can include a variety of hardware elements, software elements, or combinations of both. Examples of hardware elements can include devices, logic devices, components, processors, microprocessors, circuits, processor elements, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), memory cells, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software elements can include software components, programs, applications, computer programs, application programs, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application programming interfaces (APIs), instruction sets, computational code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. However, determining whether an embodiment is implemented using hardware and / or software components can vary depending on any number of factors, such as desired computing speed, power level, thermal tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other design or performance constraints as desired in the given embodiment.

[0078] Embodiments may be described using the expressions “one embodiment” or “embodiment” and their derivatives. These terms indicate that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment. The phrase “in one embodiment” appearing in various places in the specification does not necessarily refer to the same embodiment. Furthermore, embodiments may be described using the expressions “coupled” and “connected” and their derivatives. These terms are not necessarily intended to be synonyms with each other. For example, the terms “connected” and / or “coupled” may be used to describe embodiments to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “coupled” may also indicate that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.

[0079] It is important to emphasize that an abstract of this disclosure is provided to allow the reader to quickly determine the nature of this technical disclosure. It should be understood that this submission is not intended to interpret or limit the scope or meaning of the claims. Furthermore, in the foregoing detailed description, it can be seen that various features are grouped together in a single embodiment for the purpose of simplifying this disclosure. This approach of the disclosure should not be construed as reflecting an intention that the claimed embodiments require more features than expressly recited in each claim. Rather, as reflected in the following claims, the subject matter of the invention lies in fewer than all features of a single disclosed embodiment. Therefore, the following claims are hereby incorporated into the detailed description, wherein each claim is considered an independent, separate embodiment. In the appended claims, the terms “comprising” and “wherein” are respectively used as concise English equivalents of the corresponding terms “including” and “in which”. Furthermore, the terms “first,” “second,” “third,” etc., are used only as notations and are not intended to impose numerical requirements on their objects.

[0080] The above description includes examples of the disclosed architecture. It is certainly impossible to describe every conceivable combination of components and / or methods, but those skilled in the art will recognize that many further combinations and permutations are possible. Therefore, the novel architecture is intended to encompass all such variations, modifications, and variations falling within the spirit and scope of the appended claims. This disclosure now begins to provide various exemplary implementations.

[0081] Example 1: At least one machine-readable storage medium comprising instructions that, when executed by a computing system, cause the computing system to: generate a signed System Management Schema (SMM) information element, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller; store the SMM information element in a location in a computer-readable storage device; and generate an Instruction Pointer (IP) information element, the IP information element including an indication of the address of the location in the computer-readable storage device.

[0082] Example 2. At least one machine-readable storage medium according to Example 1, comprising instructions that cause the computing system to store the SMM information element in a page at a computer-readable storage location.

[0083] Example 3. According to at least one machine-readable storage medium as described in Example 2, the page comprises 4 kilobytes.

[0084] Example 4. At least one machine-readable storage medium according to Example 1, comprising instructions that cause the computing system to generate the SMM information element via an operating system (OS) SMM driver.

[0085] Example 5. At least one machine-readable storage medium according to Example 4, comprising instructions that cause the computing system to generate a hash value of the OS SMM driver, wherein the signed SMM information element includes an indication of the hash value.

[0086] Example 6. At least one machine-readable storage medium according to Example 1, comprising instructions that cause the computing system to invoke the SMM and transmit the IP information element to the SMM.

[0087] Example 7. At least one machine-readable storage medium according to Example 1, comprising instructions that cause the computing system to receive the signature from a signature server, the signature being based on a private key corresponding to a public-private key pair.

[0088] Example 8. At least one machine-readable storage medium comprising instructions that, when executed by a computing system, cause the computing system to: receive an instruction pointer (IP) information element, the IP information element including an indication of an address in a computer-readable storage device; retrieve, based on the address, a signed System Management Mode (SMM) information element from the computer-readable storage device, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller; determine whether the signature is valid; and perform one or more operations in the SMM based on the determination that the SMM caller and the signature are valid.

[0089] Example 9. At least one machine-readable storage medium according to Example 8, comprising instructions that cause the computing system to search the computer-readable storage device for at least 4 kilobytes before and at least 4 kilobytes after the address to identify a header corresponding to the signed SMM information element.

[0090] Example 10. According to at least one machine-readable storage medium of Example 8, the indication of the address in the IP information element includes a virtual address, and the at least one machine-readable storage medium includes instructions that cause the computing system to translate the virtual address into a physical address.

[0091] Example 11. According to at least one machine-readable storage medium of Example 8, the signed SMM information element includes an indication of a hash value of an operating system (OS) SMM driver, and the at least one machine-readable storage medium includes instructions that cause the computing system to authenticate the OS SMM driver based on the hash value.

[0092] Example 12. According to at least one machine-readable storage medium of Example 11, the machine-readable storage medium includes instructions that cause the computing system to: determine, based on a hash value, whether the OS SMM driver is authorized to invoke the one or more operations in the SMM; and restrict the execution of the one or more operations in the SMM based on the determination that the OS SMM driver is not authorized to invoke the one or more operations in the SMM.

[0093] Example 13. At least one machine-readable storage medium according to Example 8, comprising instructions that cause the computing system to authenticate the signature based on a public key corresponding to a public-key-private key pair.

[0094] Example 14. An apparatus comprising: logic, a portion of which is implemented in hardware, the logic including: an operating system (OS) System Management Mode (SMM) driver component configured to: generate a signed System Management Mode (SMM) information element, the signed SMM information element including an indication of an SMM caller; and store the SMM information element at a location in a computer-readable storage device; a caller signing component configured to generate a signature for authenticating the SMM caller and add the signature to the signed SMM information element; and an instruction pointer (IP) generation component configured to generate an IP information element, the IP information element including an indication of an address of the location in the computer-readable storage device.

[0095] Example 15. According to the apparatus described in Example 14, the OS SMM driver component is used to store the SMM information elements in a page of the computer-readable storage device.

[0096] Example 16. According to the apparatus described in Example 15, the page comprises 4 kilobytes.

[0097] Example 17. According to the apparatus described in Example 14, the IP generation component is used to generate a hash value of the OS SMM driver and add an indication of the hash value to the signed SMM information element.

[0098] Example 18. In the apparatus described in Example 14, the IP generation component is used to invoke the SMM and transmit the IP information element to the SMM.

[0099] Example 19. In the apparatus described in Example 14, the signature is based on a private key that corresponds to a public-private key pair.

[0100] Example 20. An apparatus comprising: logic, a portion of which is implemented in hardware, the logic including: an instruction pointer (IP) handler component configured to: receive an instruction pointer (IP) information element, the IP information element including an indication of an address of a location in a computer-readable storage device; and retrieve, based on the address, a signed System Management Mode (SMM) information element from the computer-readable storage device, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller; a caller signature verification component configured to determine whether the signature is valid; and an SMM operator component configured to perform one or more operations in the SMM based on the SMM caller and the determination that the signature is valid.

[0101] Example 21. According to the apparatus described in Example 20, the IP processor component is configured to search the computer-readable storage device at least 4 kilobytes before the address and at least 4 kilobytes after the address to identify a header corresponding to the signed SMM information element.

[0102] Example 22. In the apparatus of Example 20, the indication of the address in the IP information element includes a virtual address, and the IP processor component translates the virtual address into a physical address.

[0103] Example 23. In the apparatus described in Example 20, the signed SMM information element includes an indication of a hash value of an operating system (OS) SMM driver, which the caller signature verification component uses to authenticate the OS SMM driver.

[0104] Example 24. According to the apparatus of Example 23, the caller signature verification component is configured to: determine, based on the hash value, whether the OS SMM driver is authorized to call the one or more operations in the SMM; and restrict the execution of the one or more operations in the SMM based on the determination that the OS SMM driver is not authorized to call the one or more operations in the SMM.

[0105] Example 25. In the apparatus described in Example 20, the caller signature verification component is used to authenticate the signature based on a public key, which corresponds to a public-private key pair.

[0106] Example 26. A computer-implemented method comprising: generating a signed System Management Schema (SMM) information element, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller; storing the SMM information element at a location in a computer-readable storage device; and generating an instruction pointer (IP) information element, the IP information element including an indication of an address of the location in the computer-readable storage device.

[0107] Example 27. The method according to Example 26 includes storing the SMM information element in a page of the computer-readable storage device.

[0108] Example 28. Following the method described in Example 27, the page comprises 4 kilobytes.

[0109] Example 29. The method according to Example 26 includes generating the SMM information element via an operating system (OS) SMM driver.

[0110] Example 30. The method according to Example 29 includes generating a hash value of the OS SMM driver and adding an indication of the hash value to the signed SMM information element.

[0111] Example 31. The method according to Example 26 includes sending a control signal to invoke the SMM and transmitting the IP information element to the SMM.

[0112] Example 32. The method according to Example 26 includes receiving the signature from a signature server, the signature being based on a private key that corresponds to a public-private key pair.

[0113] Example 33. A computer-implemented method comprising: receiving an instruction pointer (IP) information element, the IP information element including an indication of an address of a computer-readable storage location; retrieving a signed System Management Mode (SMM) information element from the computer-readable storage location based on the address, the signed SMM information element including an indication of an SMM caller and a signature for authenticating the SMM caller; determining whether the signature is valid; and performing one or more operations in the SMM based on the determination that the SMM caller and the signature are valid.

[0114] Example 34. The method according to Example 33 includes searching the computer-readable storage location at least 4 kilobytes before and 4 kilobytes after the address to identify a header corresponding to the signed SMM information element.

[0115] Example 35. According to the method of Example 33, the indication of the address in the IP information element includes a virtual address, and the method includes converting the virtual address to a physical address.

[0116] Example 36. According to the method of Example 33, the signed SMM information element includes an indication of a hash value of an operating system (OS) SMM driver, and the method includes authenticating the OS SMM driver based on the hash value.

[0117] Example 37. The method according to Example 36 includes: determining, based on the hash value, whether the OS SMM driver is authorized to invoke the one or more operations in the SMM; and restricting the execution of the one or more operations in the SMM based on the determination that the OS SMM driver is not authorized to invoke the one or more operations in the SMM.

[0118] Example 38. The method described in Example 33 includes authenticating the signature based on a public key, which corresponds to a public-key-private key pair.

[0119] Example 39. An apparatus for a device, the apparatus comprising units for performing the method described in any one of Examples 26 to 38.

Claims

1. An apparatus comprising: logic, at least a portion of which is implemented in hardware, the logic to: generate a signed system management mode (SMM) information element, the signed SMM information element related to an SMM invoker; and communicate a control signal to initiate an SMM session and an indication of a virtual or physical address of the signed SMM information element in a computer readable storage, the indication of the virtual or physical address of the signed SMM information element to authenticate the SMM invoker for the SMM session.

2. The apparatus of claim 1, the signed SMM information element to include the SMM invoker.

3. The apparatus of claim 1, the signed SMM information element to include a signature generated based on a private key, the signature to authenticate the SMM invoker for the SMM session based on a public key.

4. The apparatus of claim 1, the signed SMM information element to include an indication of a hash value of the SMM invoker.

5. The apparatus of claim 4, the indication of the hash value of the SMM invoker to verify privileges of the SMM invoker in the SMM session.

6. The apparatus of claim 4, the logic to generate the hash value of the SMM invoker.

7. The apparatus of claim 1, the SMM invoker to include a driver or an application.

8. The apparatus of claim 1, the logic to store the signed SMM information element at the virtual or physical address in the computer readable storage.

9. The apparatus of claim 8, the indication of the virtual or physical address of the signed SMM information element to include an instruction pointer (IP) information element.

10. The apparatus of claim 9, the logic to generate the IP information element.

11. A computer-implemented method comprising: generating a signed system management mode (SMM) information element, the signed SMM information element related to an SMM invoker; and communicating a control signal to initiate an SMM session and an indication of a virtual or physical address of the signed SMM information element in a computer readable storage, the indication of the virtual or physical address of the signed SMM information element to authenticate the SMM invoker for the SMM session.

12. The computer-implemented method of claim 11, the signed SMM information element to include the SMM invoker.

13. The computer-implemented method of claim 11, the signed SMM information element to include a signature generated based on a private key, the signature to authenticate the SMM invoker for the SMM session based on a public key.

14. The computer-implemented method of claim 11, the signed SMM information element to include an indication of a hash value of the SMM invoker.

15. The computer-implemented method of claim 14, the indication of the hash value of the SMM invoker to verify privileges of the SMM invoker in the SMM session.

16. The computer-implemented method of claim 14, comprising: generating a hash value of the SMM invoker.

17. The computer-implemented method of claim 11, the SMM invoker comprising a driver or an application.

18. The computer-implemented method of claim 11, comprising: storing the signed SMM information element at a virtual address or a physical address in the computer-readable storage.

19. The computer-implemented method of claim 18, the indication of the virtual address or the physical address of the signed SMM information element comprising an instruction pointer (IP) information element.

20. The computer-implemented method of claim 19, comprising: generating the IP information element.

21. An apparatus comprising: logic, at least a portion of which is implemented in hardware, the logic to: identify an indication of a virtual address or a physical address of a signed system management mode (SMM) information element in a computer-readable storage, the signed SMM information element related to an SMM invoker; and authenticate the SMM invoker for an SMM session based on the indication of the virtual address or the physical address of the signed SMM information element.

22. The apparatus of claim 21, the logic to verify a privilege of the SMM invoker in the SMM session based on the signed SMM information element.

23. The apparatus of claim 21, the logic to authenticate the SMM invoker for the SMM session based on a signature contained in the signed SMM information element.

24. The apparatus of claim 21, the indication of the virtual address or the physical address of the signed SMM information element comprising an instruction pointer (IP) information element.

25. The apparatus of claim 21, the logic to access the signed SMM information element based on the indication of the virtual address or the physical address of the signed SMM information element.

Citation Information

Patent Citations

  • External locking mechanism for personal computer memory locations

    US20030041248A1

  • System and method for updating a basic input / output system (BIOS)

    US20110113181A1