Microcontroller Integrity Checking with Security Attribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for integrity checking in mixed security microcontrollers cannot perform integrity checks across secure and non-secure memory regions without compromising intellectual property, as they rely on fixed addresses and are susceptible to data leakage attacks due to configurable security settings.

Innovation Solution

A microcontroller with a security attribution unit and an integrity checking unit that stores integrity check tables in memory regions, allowing secure integrity checks by determining if the check table and code are in the same region and adhering to security attributes, thus preventing unauthorized access and data leakage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If integrity checks are performed on code in secure memory regions, then integrity verification capability is improved, but intellectual property confidentiality is compromised

Engineering Contradiction:
Improveintegrity verification capabilityVSAvoidintellectual property confidentiality
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The memory system is segmented into secure and non-secure regions, with integrity check tables stored in non-secure regions and code in secure regions. This segmentation allows integrity verification without exposing confidential code, as the check tables contain only metadata (addresses, sizes, expected hash values) rather than the actual code content.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Integrity check tables serve as intermediaries between the integrity checking unit and the secure code. These tables store reference information (starting addresses, sizes, expected hash values) that enable verification without direct access to the confidential code, acting as a mediator that preserves confidentiality while enabling verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If security settings are made configurable by code providers, then adaptability is improved, but system security is worsened due to potential data leakage attacks

Engineering Contradiction:
Improvesecurity configuration flexibilityVSAvoiddata leakage vulnerability
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

Security attributes are applied locally to individual memory regions rather than uniformly across the entire memory space. Each memory region can have its own security attribution (secure or non-secure), allowing code providers to protect only specific regions containing confidential code while allowing other regions to be accessible for integrity verification purposes.

Inventive Principle:
Principle #3Local quality

3Device complexity

If integrity check tables are stored in the same memory regions as code, then device complexity is reduced, but security is worsened due to inability to perform checks across secure boundaries

Engineering Contradiction:
Improvememory structure simplicityVSAvoidintegrity check capability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system segments memory into distinct secure and non-secure regions with different purposes. Non-secure regions store integrity check tables and metadata, while secure regions store confidential code. This segmentation resolves the contradiction by allowing check tables to be stored separately from code, enabling cross-region integrity verification while maintaining security boundaries.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10872043B2Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
Publication Date: 2020.12.22 MICROCHIP TECHNOLOGY INC
  • US10872043B2 patent drawing
  • US10872043B2 patent drawing
  • US10872043B2 patent drawing

AI summary

A microcontroller configured to provide secure integrity checking of code or data stored in the microcontroller is provided. The microcontroller may include a processor, memory devices defining a microcontroller memory space, a security attribution unit defining secure memory region(s) and non-secure memory region(s) in the memory space, integrity check tables indicating storage locations of various code within the microcontroller memory space, and an integrity checking unit. The integrity checking unit may be configured to receive an integrity check request for checking the integrity of a first piece of code stored in the microcontroller memory space, access a first integrity check table that indicates a storage location of the first piece of code, determine whether the first integrity check table and first piece of code are stored in the same memory region; and determine whether to perform the requested integrity check based at least on this determination.