mirror of
https://github.com/Metabolix/HackBGRT.git
synced 2025-12-06 17:15:42 -08:00
Use shim 15.7 to support Secure Boot
Use shim-signed and shim-helpers-{arch}-signed from Debian:
https://packages.debian.org/bookworm/shim-signed
This commit is contained in:
286
shim.md
Normal file
286
shim.md
Normal file
@@ -0,0 +1,286 @@
|
||||
# Secure Boot and *shim*
|
||||
|
||||
Secure Boot accepts only trusted files during boot. The *shim* boot loader is a tool which allows you to select which files to trust. HackBGRT installs *shim* for you, but you need to configure it with these instructions.
|
||||
|
||||
On the first boot after installing HackBGRT, you will see an error message saying "Verification failed". You need to press a key to enter the setup tool (MOKManager) where you can choose to trust HackBGRT. After that, use arrow keys to navigate and *Enter* to continue as described below.
|
||||
|
||||
## 1. Verification failed
|
||||
|
||||
This is the start of *shim* configuration.
|
||||
|
||||
```
|
||||
ERROR
|
||||
Verification failed: (0x1A) Security Violation
|
||||
+----+
|
||||
| OK |
|
||||
+----+
|
||||
```
|
||||
|
||||
Select `OK`, *Enter*.
|
||||
|
||||
```
|
||||
Shim UEFI key management
|
||||
Press any key to perform MOK management
|
||||
Booting in 5 seconds
|
||||
```
|
||||
|
||||
Press a key quickly to enter *MOK management* or the *MOKManager* program.
|
||||
|
||||
## 2. MOK management
|
||||
|
||||
```
|
||||
Perform MOK management
|
||||
|
||||
Continue to boot
|
||||
Enroll key from disk
|
||||
Enroll hash from disk
|
||||
```
|
||||
|
||||
Select `Enroll hash from disk`, *Enter*. This is the safest option where you choose to trust only a specific version of HackBGRT.
|
||||
|
||||
You can also choose to `Enroll key from disk`, which means that you choose to trust anything signed with the same certificate. How do you know if it's safe? You don't – that's why you should rather use the other option or build your own version of HackBGRT with your own certificate.
|
||||
|
||||
## 3a. Enroll hash from disk
|
||||
|
||||
```
|
||||
Select Binary
|
||||
|
||||
The Selected Binary will have its hash Enrolled
|
||||
This means it will subsequently Boot with no prompting
|
||||
Remember to make sure it is a genuine binary before enrolling its hash
|
||||
|
||||
+----------------+
|
||||
| YOUR DISK NAME |
|
||||
+----------------+
|
||||
```
|
||||
|
||||
Select the disk, *Enter*.
|
||||
|
||||
```
|
||||
+---------------+
|
||||
| EFI/ |
|
||||
| loader/ |
|
||||
| vmlinuz-linux |
|
||||
+---------------+
|
||||
```
|
||||
|
||||
Select `EFI/`, *Enter*.
|
||||
|
||||
```
|
||||
+------------+
|
||||
| ../ |
|
||||
| Boot/ |
|
||||
| HackBGRT/ |
|
||||
| Microsoft/ |
|
||||
+------------+
|
||||
```
|
||||
|
||||
Select `HackBGRT/`, *Enter*.
|
||||
|
||||
```
|
||||
+-----------------+
|
||||
| ../ |
|
||||
| grubx64.efi |
|
||||
| loader.efi |
|
||||
| mmx64.efi |
|
||||
| certificate.cer |
|
||||
| splash.bmp |
|
||||
| config.txt |
|
||||
+-----------------+
|
||||
```
|
||||
|
||||
Select `grubx64.efi`, *Enter*.
|
||||
|
||||
```
|
||||
[Enroll MOK]
|
||||
|
||||
+------------+
|
||||
| View key 0 |
|
||||
| Continue |
|
||||
+------------+
|
||||
```
|
||||
|
||||
To verify the key contents, select `View key 0`, *Enter*.
|
||||
|
||||
```
|
||||
SHA256 hash
|
||||
(some hexadecimal values)
|
||||
```
|
||||
|
||||
Press *Enter* to continue.
|
||||
|
||||
```
|
||||
[Enroll MOK]
|
||||
|
||||
+------------+
|
||||
| View key 0 |
|
||||
| Continue |
|
||||
+------------+
|
||||
```
|
||||
|
||||
Select `Continue`, *Enter*.
|
||||
|
||||
```
|
||||
Enroll the key(s)?
|
||||
|
||||
+-----+
|
||||
| No |
|
||||
| Yes |
|
||||
+-----+
|
||||
```
|
||||
|
||||
Select `Yes`, *Enter*.
|
||||
|
||||
```
|
||||
Perform MOK management
|
||||
|
||||
+-----------------------+
|
||||
| Reboot |
|
||||
| Enroll key from disk |
|
||||
| Enroll hash from disk |
|
||||
+-----------------------+
|
||||
```
|
||||
|
||||
Select `Reboot`, *Enter*.
|
||||
|
||||
You are now ready to boot using HackBGRT.
|
||||
|
||||
## 3b. Enroll key from disk
|
||||
|
||||
```
|
||||
Select Key
|
||||
|
||||
The selected key will be enrolled into the MOK database
|
||||
This means any binaries signed with it will be run without prompting
|
||||
Remember to make sure it is a genuine key before Enrolling it
|
||||
|
||||
+----------------+
|
||||
| YOUR DISK NAME |
|
||||
+----------------+
|
||||
```
|
||||
|
||||
Select the disk, *Enter*.
|
||||
|
||||
```
|
||||
+---------------+
|
||||
| EFI/ |
|
||||
| loader/ |
|
||||
| vmlinuz-linux |
|
||||
+---------------+
|
||||
```
|
||||
|
||||
Select `EFI/`, *Enter*.
|
||||
|
||||
```
|
||||
+------------+
|
||||
| ../ |
|
||||
| Boot/ |
|
||||
| HackBGRT/ |
|
||||
| Microsoft/ |
|
||||
+------------+
|
||||
```
|
||||
|
||||
Select `HackBGRT/`, *Enter*.
|
||||
|
||||
```
|
||||
+-----------------+
|
||||
| ../ |
|
||||
| grubx64.efi |
|
||||
| loader.efi |
|
||||
| mmx64.efi |
|
||||
| certificate.cer |
|
||||
| splash.bmp |
|
||||
| config.txt |
|
||||
+-----------------+
|
||||
```
|
||||
|
||||
Select `certificate.cer`, *Enter*.
|
||||
|
||||
```
|
||||
[Enroll MOK]
|
||||
|
||||
+------------+
|
||||
| View key 0 |
|
||||
| Continue |
|
||||
+------------+
|
||||
```
|
||||
|
||||
To verify the key contents, select `View key 0`, *Enter*.
|
||||
|
||||
```
|
||||
[Extended Key Usage]
|
||||
OID: Code Signing
|
||||
|
||||
[Serial Number]
|
||||
6B:24:52:E9:3B:84:41:73:B0:22:92:E8:BE:8E:38:85:
|
||||
|
||||
[Issuer]
|
||||
CN=HackBGRT Secure Boot Signer, O=Metabolix
|
||||
|
||||
[Subject]
|
||||
CN=HackBGRT Secure Boot Signer, O=Metabolix
|
||||
|
||||
[Valid Not Before]
|
||||
Nov 9 13:43:56 2023 GMT
|
||||
|
||||
[Valid Not After]
|
||||
Jan 19 03:14:07 2037 GMT
|
||||
|
||||
[Fingerprint]
|
||||
79 8E 64 40 D1 D1 F4 53 30 8D
|
||||
A0 83 A4 77 FE 57 45 30 36 60
|
||||
```
|
||||
|
||||
Press *Enter* to continue.
|
||||
|
||||
```
|
||||
[Enroll MOK]
|
||||
|
||||
+------------+
|
||||
| View key 0 |
|
||||
| Continue |
|
||||
+------------+
|
||||
```
|
||||
|
||||
Select `Continue`, *Enter*.
|
||||
|
||||
```
|
||||
Enroll the key(s)?
|
||||
|
||||
+-----+
|
||||
| No |
|
||||
| Yes |
|
||||
+-----+
|
||||
```
|
||||
|
||||
Select `Yes`, *Enter*.
|
||||
|
||||
```
|
||||
Perform MOK management
|
||||
|
||||
+-----------------------+
|
||||
| Reboot |
|
||||
| Enroll key from disk |
|
||||
| Enroll hash from disk |
|
||||
+-----------------------+
|
||||
```
|
||||
|
||||
Select `Reboot`, *Enter*.
|
||||
|
||||
You are now ready to boot using HackBGRT.
|
||||
|
||||
## Tutorial: *shim* for dummies
|
||||
|
||||
To install *shim* manually, follow these steps (assuming x64 architecture):
|
||||
|
||||
1. Get *shim*, preferably *shim-signed*.
|
||||
2. Rename your boot loader to `grubx64.efi`.
|
||||
3. Copy `shimx64.efi` where your loader used to be.
|
||||
4. Copy `mmx64.efi` to the same folder.
|
||||
|
||||
The *shim* boot process is as follows:
|
||||
|
||||
1. Your computer starts `your-loader-name.efi`, which is now really *shim*.
|
||||
2. Next, *shim* tries to load `grubx64.efi`.
|
||||
3. If `grubx64.efi` is trusted, the boot process continues.
|
||||
4. Otherwise, *shim* offers to launch *MOKManager* `mmx64.efi`, and you can try again after that.
|
||||
Reference in New Issue
Block a user