|  | --- | 
|  | title: "Security Model Specifications" | 
|  | --- | 
|  |  | 
|  | The current version of the security model targets discrete silicon | 
|  | implementations of OpenTitan. The architecture for an integrated IP solution | 
|  | will be covered in a future release of this specification. | 
|  |  | 
|  | The following diagram shows the interaction between the different specification | 
|  | components. | 
|  |  | 
|  | <img src="documents.svg" style="width: 900px;"> | 
|  |  | 
|  |  | 
|  | ## [Device Life Cycle][device_life_cycle] | 
|  |  | 
|  | OpenTitan supports a set of operational states configured via One Time | 
|  | Programmable (OTP) memory, allowing the [Silicon Creator][silicon_creator] to | 
|  | manage the state of the device as it is being manufactured and provisioned for | 
|  | shipment. | 
|  |  | 
|  | An additional set of life cycle states are also available to encapsulate the | 
|  | device ownership state. A device that has been personalized with a unique | 
|  | [Creator Identity][creator_identity] can be provisioned with | 
|  | [Silicon Owner][silicon_owner] credentials. This enables the | 
|  | [Silicon Owner][silicon_owner] to run signed code on the device. | 
|  |  | 
|  | ## [Secure Boot][secure_boot] | 
|  |  | 
|  | OpenTitan supports a secure boot implementation anchored in the silicon mask | 
|  | ROM. The mask ROM contains a set of public keys used to verify the first boot | 
|  | stage stored in flash. | 
|  |  | 
|  | Each boot stage is in charge of verifying the signature of the next stage and | 
|  | locking out portions of the chip that are not required by later stages. Once the | 
|  | boot flow reaches kernel execution, the implementation may opt to implement | 
|  | dynamic isolation between applications using the available | 
|  | [Physical Memory Protection][pmp] (PMP) unit. | 
|  |  | 
|  | ## [Firmware Update][firmware_update] | 
|  |  | 
|  | OpenTitan supports a firmware layout with two flash partitions, supporting | 
|  | active and non-active instances of each software component. This enables a | 
|  | firmware update implementation in which the active partition flashes the new | 
|  | software into the non-active region with minimal downtime. Secure boot ensures | 
|  | the integrity and stability of the new software before marking it as active. | 
|  |  | 
|  | ## [Identities and Root Keys][identities_and_root_keys] | 
|  |  | 
|  | This document describes the composition of the Silicon Creator and Silicon Owner | 
|  | cryptographic identities, as well as the device’s key derivation scheme. This | 
|  | scheme is based on a symmetric key manager with support for software binding and | 
|  | key versioning. | 
|  |  | 
|  | ## [Attestation][attestation] | 
|  |  | 
|  | Covers the mechanism in which software verifies the authenticity and integrity | 
|  | of OpenTitan's hardware and software configuration. | 
|  |  | 
|  | ## [Ownership Transfer][ownership_transfer] | 
|  |  | 
|  | The owner of the silicon is allowed to change in a process known as Ownership | 
|  | Transfer. During this process, a new party can take ownership of the device and | 
|  | provision its own identity. This allows the new owner to run its own signed code | 
|  | and configure its attestation chain. | 
|  |  | 
|  | ## [Provisioning][provisioning] | 
|  |  | 
|  | Describes manufacturing and post-ownership transfer provisioning flows. Secrets | 
|  | required to personalize the identity of the device and initialize security | 
|  | countermeasures are provisioned at manufacturing time. Silicon owners have the | 
|  | option of provisioning additional secrets after taking ownership of the device. | 
|  |  | 
|  |  | 
|  | [attestation]: {{< relref "doc/security/specs/attestation" >}} | 
|  | [creator_identity]: {{< relref "doc/security/specs/identities_and_root_keys#creator-identity" >}} | 
|  | [device_life_cycle]: {{< relref "doc/security/specs/device_life_cycle" >}} | 
|  | [firmware_update]: {{< relref "doc/security/specs/firmware_update" >}} | 
|  | [identities_and_root_keys]: {{< relref "doc/security/specs/identities_and_root_keys" >}} | 
|  | [ownership_transfer]: {{< relref "doc/security/specs/ownership_transfer" >}} | 
|  | [pmp]: https://ibex-core.readthedocs.io/en/latest/pmp.html | 
|  | [provisioning]: {{< relref "doc/security/specs/device_provisioning" >}} | 
|  | [secure_boot]: {{< relref "doc/security/specs/secure_boot" >}} | 
|  | [silicon_creator]: {{< relref "doc/security/logical_security_model#silicon-creator" >}} | 
|  | [silicon_owner]: {{< relref "doc/security/logical_security_model#silicon-owner" >}} |