Skip to content

Commit 6d69615

Browse files
authored
[spec] Add main spec draft. (#40)
This document is still WIP but it is being open sourced to request feedback from the community. Signed-off-by: Miguel Osorio <[email protected]>
1 parent ceb80a7 commit 6d69615

File tree

2 files changed

+189
-0
lines changed

2 files changed

+189
-0
lines changed

docs/src/specification/README.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# OpenPRoT Specification
2+
3+
Version: v0.5 - Work in Progress
4+
5+
## Introduction
6+
7+
The concept of a Platform Root of Trust (PRoT) is central to establishing a
8+
secure computing environment. A PRoT is a trusted component within a system that
9+
serves as the foundation for all security operations. It is responsible for
10+
ensuring that the system boots securely, verifying the integrity of the firmware
11+
and software, and performing critical cryptographic functions. By acting as a
12+
trust anchor, the PRoT provides a secure starting point from which the rest of
13+
the system's security measures can be built. This is particularly important in
14+
an era where cyber threats are becoming increasingly sophisticated, targeting
15+
the lower layers of the computing stack, such as firmware, to gain persistent
16+
access to systems.
17+
18+
OpenPRoT is a project intended to enhance the security and transparency of PRoTs
19+
by defining and building an open source firmware stack that can be run on a
20+
variety of hardware implementations. Open source firmware offers several
21+
benefits that can enhance the effectiveness and trustworthiness of a PRoT.
22+
Firstly, open source firmware allows for greater transparency, as the source
23+
code is publicly available for review and audit. This transparency helps
24+
identify and mitigate vulnerabilities more quickly, as a global community of
25+
developers and security experts can scrutinize the code. It also reduces the
26+
risk of hidden backdoors or malicious code, which can be a concern with
27+
proprietary firmware.
28+
29+
Moreover, an open source firmware stack can foster innovation and collaboration
30+
within the industry. By providing a common platform that is accessible to all,
31+
developers can contribute improvements, share best practices, and develop new
32+
security features that benefit the entire ecosystem. This collaborative approach
33+
can lead to more robust and resilient firmware solutions, as it leverages the
34+
collective expertise of a diverse community. Additionally, open source firmware
35+
can enhance interoperability and reduce vendor lock-in, giving organizations
36+
more flexibility in choosing hardware and software components that best meet
37+
their security needs.
38+
39+
Incorporating an open source firmware stack into a PRoT not only strengthens the
40+
security posture of a system but also aligns with broader industry trends
41+
towards openness and collaboration. As organizations increasingly recognize the
42+
importance of securing the foundational layers of their computing environments,
43+
the combination of a PRoT with open source firmware represents a powerful
44+
strategy for building trust and resilience in the face of evolving cyber
45+
threats.
46+
47+
## Background
48+
49+
TBD
50+
51+
### Goals
52+
53+
TBD
54+
55+
### Use cases
56+
57+
TBD
58+
59+
## Industry standards and specifications
60+
61+
TBD
62+
63+
## Threat Model
64+
65+
TBD
66+
67+
## High Level Architecture
68+
69+
TBD
70+
71+
### Block Diagram
72+
73+
TBD
74+
75+
## Middleware
76+
77+
OpenPRoT middleware consists of support libraries necessary to implement Root of
78+
Trust functionality, telemetry, and firmware management. Support for DMTF
79+
protocols such as MCTP, SPDM, and PLDM are provided.
80+
81+
* [MCTP](middleware/mctp.md)
82+
* [SPDM](middleware/spdm.md)
83+
* [PLDM](middleware/pldm.md)
84+
85+
## Firmware Resiliency
86+
87+
FW Resiliency Firmware resiliency is a critical concept in modern cybersecurity,
88+
particularly as outlined in the NIST SP 800-193 specification. As computing
89+
devices become more integral to both personal and organizational operations, the
90+
security of their underlying firmware has become paramount. Firmware is often a
91+
target for sophisticated cyberattacks because it operates below the operating
92+
system, making it a potential vector for persistent threats that can evade
93+
traditional security measures. NIST SP 800-193 addresses these concerns by
94+
providing a comprehensive framework for enhancing the security and resiliency of
95+
platform firmware, ensuring that systems can withstand, detect, and recover from
96+
attacks.
97+
98+
The NIST SP 800-193 guidelines focus on three main pillars: protection,
99+
detection, and recovery. Protection involves implementing measures to prevent
100+
unauthorized modifications to firmware, such as using cryptographic techniques
101+
to authenticate updates. Detection is about ensuring that any unauthorized
102+
changes to the firmware are quickly identified, which can be achieved through
103+
integrity checks and monitoring mechanisms. Recovery is the ability to restore
104+
firmware to a known good state after an attack or corruption, ensuring that the
105+
system can continue to operate securely. By addressing these areas, the
106+
guidelines aim to create a robust defense against firmware-level threats, which
107+
are increasingly being exploited by attackers seeking to gain deep access to
108+
systems.
109+
110+
In the context of NIST SP 800-193, firmware resiliency is not just about
111+
preventing attacks but also about ensuring continuity and trust in the system.
112+
The specification recognizes that while it is impossible to eliminate all risks,
113+
having a resilient firmware infrastructure can significantly mitigate the impact
114+
of potential breaches. This approach is particularly important for critical
115+
infrastructure and enterprise environments, where the integrity and availability
116+
of systems are crucial. By adopting the principles of NIST SP 800-193, we can
117+
enhance our security posture, protect sensitive data, and maintain operational
118+
stability in the face of evolving cyber threats.
119+
120+
### PRoT Resiliency
121+
122+
TBD
123+
124+
### Connected Device Resiliency
125+
126+
TBD
127+
128+
## Services
129+
130+
* [Firmware Update](services/fwupdate.md)
131+
* Firmware Recovery (TBD)
132+
* Secure Boot (TBD)
133+
* Policy Management (TBD)
134+
135+
## Device Abstraction
136+
137+
* [Device Abstraction](device_abstraction/README.md)
138+
139+
## Terminology
140+
141+
* [Terminology](terminology.md)
142+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Terminology
2+
3+
The following acronyms and abbreviations are used throughout this document.
4+
5+
| Abbreviation | Description |
6+
|--------------|-------------|
7+
| AES | Advanced Encryption Standard |
8+
| BMC | Baseboard Management Controller |
9+
| CA | Certificate Authority |
10+
| CPU | Central Processing Unit |
11+
| CRL | Certificate Revocation List |
12+
| CSR | Certificate Signing Request |
13+
| CSP | Critical Security Parameter |
14+
| DICE | Device Identifier Composition Engine |
15+
| DRBG | Deterministic Random Bit Generator |
16+
| ECDSA | Elliptic Curve Digital Signature Algorithm |
17+
| FMC | FW First Measured Code |
18+
| GPU | Graphics Processing Unit |
19+
| HMAC | Hash-based message authentication code |
20+
| IDevId | Initial Device Identifier |
21+
| iRoT | Internal RoT |
22+
| KAT | Known Answer Test |
23+
| KDF | Key Derivation Function |
24+
| LDevId | Locally Significant Device Identifier |
25+
| MCTP | Management Component Transport Protocol |
26+
| NIC | Network Interface Card |
27+
| NIST | National Institute of Standards and technology |
28+
| OCP | Open Compute Project |
29+
| OTP | One-time programmable |
30+
| PCR | Platform Configuration Register |
31+
| PKI | Public Key infrastructure |
32+
| PLDM | Platform Level Data Model |
33+
| PUF | Physically unclonable function |
34+
| RoT | Root of Trust |
35+
| RTI | RoT for Identity |
36+
| RTM | RoT for Measurement |
37+
| RTRec | RoT for Recovery |
38+
| RTU | RoT for Update |
39+
| SHA | Secure Hash Algorithm |
40+
| SoC | System on Chip |
41+
| SPDM | Security Protocol and Data Model |
42+
| SSD | Solid State Drive |
43+
| TCB | Trusted Computing Base |
44+
| TCI | TCB Component Identifier |
45+
| TCG | Trusted Computing Group |
46+
| TEE | Trusted Execution Environment |
47+
| TRNG | True Random Number Generator |

0 commit comments

Comments
 (0)