blob: d4dbc2707c8b5f7e6eb3caaebddaf8920b08d8d4 [file] [log] [blame] [view]
# Lightweight Threat Model
This threat model aims to identify in-scope design assets, attacker profiles,
attack methods and attack surfaces. This is used to produce security
requirements and implementation guidelines that cover hardware, software and the
design process.
The threat model is considered for discrete and integrated instances of
OpenTitan which may include external non-volatile memory.
**Assets**
* Secrets and configuration parameters stored in the device or on external
memory:
* Private asymmetric keys (integrity and confidentiality)
* Symmetric keys (integrity and confidentiality)
* Anti-rollback and other counters (integrity)
* Unique identifiers and data (integrity, authenticity and partly
confidentiality)
* Data requiring integrity and/or confidentiality
* Secrets stored outside the device (e.g. in a backend system), but that are
used to support critical functionality or lifecycle operations
* Integrity and authorization of cryptographic operations
* Integrity and authenticity of the code running on the device
* Integrity and authenticity of stored data
* Confidentiality of selected code and data
* Quality of the entropy source used in cryptographic operations and that used
in countermeasures
* Correct operation and confidentiality, integrity, authenticity of
cryptographic services.
**Attacker Profile**
* A bad actor with physical access either during manufacturing or active
deployment
* Malicious device owners: *e.g.* attacking one device to develop template
attacks
* Malicious actors with remote device access: *e.g.* performing remote
measurements of side channels that expose assets
**Attack Surface**
* Chip surface
* Electrical stimulation and/or measurements
* Energy and particle exposure
* Inspection and reverse engineering
* Physical manipulation
* Operational environment
* Temperature
* Power
* Peripheral interfaces
* Protocols and APIs at the boundary of the device
* Test and debug interfaces
* Clock, power, reset lines
* Documentation and design data
**Attack Methods**
*Logical Attacks*
* Software vulnerabilities (e.g. bugs) exercised through interfaces or code
that can be run by the attacker on the device
* Compromise of secure boot
* Insider compromise of the personalization process
* Cryptanalysis
* Silicon Creator or Silicon Owner impersonation
* Compromise through misuse of test or debug functionality
*Non-Volatile Memory Attacks*
* Firmware downgrade
* Data rollback
* Data/Command playback
*Physical Access Attacks*
* Side Channel Analysis (SCA): Passive measurement attacks where the device is
operated normally. The attacker extracts the assets (*e.g.* secrets) via
observation of side channels, such as: 1) execution time, 2) power
consumption, 3) electromagnetic radiation.
* Fault Injection (FI): Fault Injection is a class of active attacks where the
devices input and/or operation conditions are manipulated to make the
device operate outside its specification. An attacker modifies device
behavior (data and/or operations) by manipulating the internal electrical
state of the device (voltage, current, charge) through disturbances such as
voltage/current, EM, lasers, or body-bias injection.
* Any combination of passive and active physical attacks.
## Read More
* [Use Cases](../../use_cases/README.md)
* [OpenTitan Security](../README.md)