| # 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 |
| device’s 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) |