SMI Identifier Authentication for BIOS Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Malicious software can easily exploit system management interrupts (SMIs) by obtaining IO port addresses, leading to system instability or BIOS damage, as these interrupts are not adequately protected from unauthorized access.

Innovation Solution

A method is implemented where a first identifier is generated and stored in a system management mode block during the power-on self-test (POST), and a second identifier is stored in an operating system block. When an SMI is requested, both identifiers are compared for matching, and only if they match, the SMI is executed, with optional encryption for enhanced security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the IO port address of the SW SMI is stored in a fixed ACPI description table (FACP) or obtained through a manufacture identifier of a south bridge chip, then the SW SMI can be easily accessed and executed, but malicious software can exploit this ease of access to spoil the system or damage the BIOS

Engineering Contradiction:
Improveease of accessing SW SMIVSAvoidsystem instability and BIOS damage
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by generating and storing an identifier in the system management mode block during the POST process before the operating system is loaded. This identifier is then used during OS operation to authenticate SMI requests, preventing malicious software from exploiting the system without proper authorization mechanisms in place beforehand.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an identifier as an intermediary element between the SMI request and the execution of the SMI handler routine. This identifier acts as a mediator that verifies the legitimacy of the request, blocking malicious software while allowing authorized operations to proceed through the authentication mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If an identifier verification mechanism is implemented to prevent malicious software from using SW SMI, then system security is improved, but the complexity of the SMI execution process increases due to additional verification steps

Engineering Contradiction:
Improvesystem securityVSAvoidSMI execution process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies self-service by having the operating system itself manage the identifier storage and retrieval process. The OS stores the identifier in its block during initialization and uses it to authenticate SMI requests, eliminating the need for external verification systems and reducing overall system complexity while maintaining security.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent merges the identifier verification process with the existing SMI execution flow. The comparison of identifiers is integrated into the SMI handling routine, and the verification steps are combined with the normal OS operation sequence, reducing the perceived complexity by embedding security checks within existing processes rather than adding separate verification systems.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8909837B2Method for executing system management interrupt by using identifiers
Publication Date: 2014.12.09 INVENTEC CORP
  • US8909837B2 patent drawing
  • US8909837B2 patent drawing
  • US8909837B2 patent drawing

AI summary

A method for executing a system management interrupt (SMI) is provided. When a power on self test (POST) is executed, a first identifier is generated and stored into a system management mode block of a memory. During a process for starting an operating system (OS), the first identifier is read from the system management mode block as a second identifier, and the second identifier is stored into an OS block of the memory. When the OS wants to use a system management interrupt, the first identifier and the second identifier are respectively read from the system management mode block and the OS block. Afterwards, it is determined whether the first identifier and the second identifier are the same. If the first identifier and the second identifier are the same, the SMI is executed.