Skip to content

Commit ea27351

Browse files
committed
Merge guide-db-append-only (#621): the guide adds Kryptik's certificate to db beside the keys already there, never replaces PK or KEK where another system lives, and keeps Secure Boot off for a development build
2 parents 98fe49a + 1671bc3 commit ea27351

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

‎docs/design/rollback-floor.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,10 @@ the ESP, a medium, or anywhere else.
9292

9393
**What it costs, from the tree.**
9494

95-
- **Enrolment.** Today the user puts `kryptik-sb` in `db`, "and, on most
96-
machines, PK/KEK" (`docs/user-guide.md:84-92`). Beside Windows it sits in
97-
`db` alone, under the OEM's and Microsoft's `KEK`. A `dbx` write needs a
95+
- **Enrolment.** Today the user adds `kryptik-sb` to `db` beside the keys
96+
already there, and replaces no `PK` or `KEK` where another system lives
97+
(the user guide's Secure Boot paragraph). Beside Windows it sits in `db`
98+
alone, under the OEM's and Microsoft's `KEK`. A `dbx` write needs a
9899
`KEK` the machine trusts, so every machine would need a Kryptik
99100
certificate in `KEK` as well. Most firmware setup screens can append a
100101
certificate to `KEK` from a file; on others it means clearing the keys and

‎docs/user-guide.md‎

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,24 @@ newer machine's RST (Intel VMD) needs no change.
9797
**Secure Boot.** The kernel is signed with the build's Secure Boot key: a
9898
release's, from 1.0.0 on, is the project's ([release keys](release-keys.md)),
9999
enrolled once for every release after it; a development build's is made by
100-
that build and is its own. A firmware that carries only Microsoft's keys
101-
refuses either (the acceptance run proves the refusal:
102-
`media-refused-foreign-keys`). To boot with Secure Boot on, enrol
103-
`kryptik-sb.der` in the firmware's `db` (and, on most machines, PK/KEK) from
104-
the firmware setup menu; or turn Secure Boot off. The medium says which it
105-
got above its shell (`Secure Boot is on` or `off`), and as
106-
`KRYPTIK_SMOKE: secureboot=1` or `=0` on a serial console.
100+
that build, is its own, and is never enrolled in a real machine's firmware.
101+
A firmware that carries only Microsoft's keys refuses either (the
102+
acceptance run proves the refusal: `media-refused-foreign-keys`). To boot a
103+
release with Secure Boot on, add `kryptik-sb.der` to the firmware's `db`
104+
from its setup menu, beside the certificates already there.
105+
106+
On a machine that keeps another operating system, never replace the
107+
platform key (PK) or the key-exchange keys (KEK), and never clear the
108+
firmware's keys to enrol new ones. That system boots by those keys, and some
109+
setup menus take a certificate only by clearing them.
110+
111+
Turn Secure Boot off instead where the menu cannot add a single certificate
112+
to `db`, and for a development build. Either change can make Windows with
113+
BitLocker ask for its recovery key at its next start, unless BitLocker is
114+
suspended first.
115+
116+
The medium says which it got above its shell (`Secure Boot is on` or
117+
`off`), and as `KRYPTIK_SMOKE: secureboot=1` or `=0` on a serial console.
107118

108119
**AMD processors.** Update the machine's firmware (BIOS) first. With a
109120
firmware older than AMD's 2025 fix for microcode signatures, the kernel loads

0 commit comments

Comments
 (0)