Secure IPL Code Loading Attributes for Malicious Injection Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems are vulnerable to attacks during the initial program load (IPL) process, allowing attackers to inject malicious code and alter the boot process, which current security measures struggle to prevent without compromising performance or feasibility.

Innovation Solution

A secure code loading attributes block (SCLAB) is appended to signed binary components, providing additional security by verifying the integrity and authenticity of the code during the IPL process, ensuring only authorized code is executed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional code loading methods are used during IPL, then the boot process is faster and simpler, but the system is vulnerable to malicious code injection and attacks

Engineering Contradiction:
ImprovesecurityVSAvoidcode loading mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by computing cryptographic hashes of code components and storing them in a hash table before the IPL process. During boot, these pre-computed hashes are used to verify code integrity, preventing malicious injection attacks. This advance preparation ensures security without adding complexity to the actual boot process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism - a hash table containing cryptographic hashes of legitimate code components - that mediates between the trusted boot environment and untrusted external code sources. This intermediary allows verification of code authenticity without requiring direct trust in external sources, resolving the security-complexity contradiction.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cryptographic verification is performed on all code components during IPL, then code integrity is ensured, but the boot process time increases

Engineering Contradiction:
Improvecode integrityVSAvoidIPL process time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by performing cryptographic verification selectively rather than on all code components uniformly. The hash table contains hashes for critical components that require verification, while less critical components can be loaded without full cryptographic checks. This selective approach ensures code integrity for essential elements while minimizing the time penalty during IPL.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If a fixed-size code component structure is used, then loading and verification is simpler, but the system cannot accommodate variable-sized code components efficiently

Engineering Contradiction:
Improvecode loading simplicityVSAvoidcode component size flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent applies parameter changes by using a hash table data structure that dynamically adapts to variable-sized code components. Instead of fixed-size structures, the hash table stores cryptographic hashes with flexible sizing, allowing the system to accommodate code components of any size while maintaining efficient loading and verification operations. This resolves the contradiction between operational simplicity and adaptability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12608479B2Secure initial program load (IPL) code loading attributes facility
Publication Date: 2026.04.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12608479B2 patent drawing
  • US12608479B2 patent drawing
  • US12608479B2 patent drawing

AI summary

A method, system, and computer program product are provided for preventing malicious code injection during Initial Program Load (IPL). A secure code loading attributes block (SCLAB) is appended to a variable sized signed binary code component to generate a combined component. The variable sized signed binary code component is Operating System (OS) code for an initial program load (IPL) process. The SCLAB comprises contents that include a length field, an identifier, flag fields, a load program status word (PSW) and a load address. The combined component is digitally signed. During IPL, the unsigned component table entries associated with the signed component are verified against the SCLAB contents.