blob: ca15cd314576c0b43c540e587da61a546ab33ba0 [file] [log] [blame] [view]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -08001---
Miguel Osoriob8a85912020-11-02 22:02:51 -08002title: "OpenTitan Security"
Miguel Osorio8f14dfc2020-01-07 16:33:51 -08003---
4
5## Overview
6
Miguel Osoriob8a85912020-11-02 22:02:51 -08007OpenTitan's mission is to create a trustworthy, vendor-agnostic open source
8silicon Root of Trust (RoT) widely adopted across the industry. We do this by
9implementing strong logical security integrity guarantees in the hardware and
10firmware components, and restricting licensing of the OpenTitan trademark to
11those implementations conforming to OpenTitan standards.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080012
Miguel Osorioa0983e52020-12-07 10:09:53 -080013## [OpenTitan Security Model Specification][security_model]
14
15The [OpenTitan Security Model Specification][security_model] defines the logical
16security properties of the discrete IC. It covers device and software
17attestation, provisioning, secure boot, chip lifecycle, firmware update, chip
18identity, and chip ownership transfer.
19
20## [Logical Security Model][logical_security_model]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080021
Miguel Osoriob8a85912020-11-02 22:02:51 -080022The [OpenTitan Security Model][logical_security_model] provides a high level
23framework for device provisioning and run-time operations. It starts by
24enumerating the range of logical entities supported by the architecture, and
25their mapping into software stages. Runtime isolation properties and baseline
26identity concepts are introduced in this document.
27
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080028## Functional Guarantees
29
30At the functional level OpenTitan aims to provide the following guarantees:
31
Miguel Osoriob8a85912020-11-02 22:02:51 -080032* Silicon Owners shall be able to deploy their own Root of Trust (RoT) Public
33 Key Infrastructure (PKI) after taking ownership of the device.
34* Silicon Creators shall endorse the authenticity of the hardware. Endorsement
35 is contingent on the silicon adhering to the physical implementation
36 guidelines and standard requirements stipulated by the project. The
37 endorsement shall be measurable via a Transport Certificate.
38* OpenTitan shall provide full boot attestation measurements to allow Silicon
39 Owners to verify the boot chain configuration. The attestation chain shall
40 be anchored in the Silicon Owner's RoT PKI.
41* OpenTitan shall provide a key manager implementation strongly bound to the
42 boot chain. Only a boot chain signed with the expected set of keys shall be
43 able to unlock stored keys/secrets.
44* OpenTitan shall provide a key versioning scheme with support for key
45 migration bound to the firmware versioning and update implementation.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080046
47## Use Cases
48
49The security goals of the project are derived from a list of target use cases.
Miguel Osoriob8a85912020-11-02 22:02:51 -080050See [OpenTitan's Use Cases][use_cases] for more details. The security goals are
51used to define OpenTitan's threat model, as well as functional and assurance
52security requirements. Such requirements influence the system architecture, as
53well as the certification strategy for silicon implementations.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080054
55## Security Primitives
56
Miguel Osoriob8a85912020-11-02 22:02:51 -080057All hardware security primitives adhere to the OpenTitan
58[comportable][comportable_ip] peripheral interface specification.
59Implementations for some of these components are available for reference and
60may not meet production or certification criteria yet.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080061
Miguel Osoriob8a85912020-11-02 22:02:51 -080062### [Entropy source][entropy_source]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080063
Miguel Osoriob8a85912020-11-02 22:02:51 -080064Digital wrapper for a NIST SP 800-90B compliant entropy source. An additional
65emulated entropy source implementation will be available for FPGA functional
66testing.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080067
Miguel Osoriob8a85912020-11-02 22:02:51 -080068### [CSRNG][csrng]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080069
Miguel Osoriob8a85912020-11-02 22:02:51 -080070Cryptographically Secure Random Number Generator (CSRNG) providing support for
71both deterministic (DRBG) and true random number generation (TRNG).
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080072
Miguel Osoriob8a85912020-11-02 22:02:51 -080073The DRBG is implemented using the `CTR_DRBG` construction specified in
74NIST SP 800-90A.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080075
Miguel Osoriob8a85912020-11-02 22:02:51 -080076### [AES][aes]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080077
Miguel Osoriob8a85912020-11-02 22:02:51 -080078Advanced Encryption Standard (AES) supporting Encryption/Decryption using
79128/192/256 bit key sizes in the following cipher block modes:
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080080
Miguel Osoriob8a85912020-11-02 22:02:51 -080081* Electronic Codebook (ECB) mode,
82* Cipher Block Chaining (CBC) mode,
83* Cipher Feedback (CFB) mode with fixed data segment size of 128 bits,
84* Output Feedback (OFB) mode, and
85* Counter (CTR) mode.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080086
Miguel Osoriob8a85912020-11-02 22:02:51 -080087### [HMAC][hmac]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080088
Miguel Osoriob8a85912020-11-02 22:02:51 -080089HMAC with SHA-2 FIPS 180-4 compliant hash function, supporting both
90HMAC-SHA256 and SHA256 modes of operation.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080091
Miguel Osoriob8a85912020-11-02 22:02:51 -080092### [Key Manager][keymgr]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080093
Miguel Osoriob8a85912020-11-02 22:02:51 -080094Hardware backed symmetric key generation and storage providing key isolation
95from software.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080096
Miguel Osoriob8a85912020-11-02 22:02:51 -080097### [OTBN][otbn]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -080098
Miguel Osoriob8a85912020-11-02 22:02:51 -080099Public key algorithm accelerator with support for bignum operations in hardware.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -0800100
Miguel Osoriob8a85912020-11-02 22:02:51 -0800101### [Alert Handler][alert_handler]
Miguel Osorio8f14dfc2020-01-07 16:33:51 -0800102
Miguel Osoriob8a85912020-11-02 22:02:51 -0800103Aggregates alert signals from other system components designated as potential
104security threats, converting them to processor interrupts. It also supports
105alert policy assignments to handle alerts completely in hardware depending on
106the assigned severity.
Miguel Osorio8f14dfc2020-01-07 16:33:51 -0800107
Miguel Osoriob8a85912020-11-02 22:02:51 -0800108[aes]: {{< relref "hw/ip/aes/doc" >}}
109[alert_handler]: {{< relref "hw/ip/alert_handler/doc" >}}
110[comportable_ip]: {{< relref "doc/rm/comportability_specification" >}}
111[csrng]: {{< relref "hw/ip/csrng/doc" >}}
112[entropy_source]: {{< relref "hw/ip/entropy_src/doc" >}}
113[hmac]: {{< relref "hw/ip/hmac/doc" >}}
114[keymgr]: {{< relref "hw/ip/keymgr/doc" >}}
115[logical_security_model]: {{< relref "doc/security/logical_security_model" >}}
116[otbn]: {{< relref "hw/ip/otbn/doc" >}}
117[security_model]: {{< relref "doc/security/specs" >}}
118[use_cases]: {{< relref "doc/security/use_cases" >}}