From 490e872f4652269eece6229657c1767d5869f127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 19 Aug 2024 17:10:19 +0200 Subject: [PATCH 1/5] blog/content/post/2024-08-19-secureboot-freebsd.md: add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../post/2024-08-19-secureboot-freebsd.md | 378 ++++++++++++++++++ blog/static/img/advanced_sboot.png | Bin 0 -> 15286 bytes blog/static/img/beastie.png | Bin 0 -> 16722 bytes blog/static/img/commit_changes.png | Bin 0 -> 14066 bytes blog/static/img/custom_mode.png | Bin 0 -> 15319 bytes blog/static/img/efi_entry.png | Bin 0 -> 13164 bytes blog/static/img/efi_shell.png | Bin 0 -> 17355 bytes blog/static/img/reset_to_def.png | Bin 0 -> 16521 bytes blog/static/img/save_conf.png | Bin 0 -> 15789 bytes blog/static/img/sboot_enabled.png | Bin 0 -> 12931 bytes blog/static/img/sboot_init.png | Bin 0 -> 14692 bytes blog/static/img/setup_root.png | Bin 0 -> 16163 bytes blog/static/img/testcert.png | Bin 0 -> 14219 bytes blog/static/img/ush_commands.png | Bin 0 -> 17945 bytes 14 files changed, 378 insertions(+) create mode 100644 blog/content/post/2024-08-19-secureboot-freebsd.md create mode 100644 blog/static/img/advanced_sboot.png create mode 100644 blog/static/img/beastie.png create mode 100644 blog/static/img/commit_changes.png create mode 100644 blog/static/img/custom_mode.png create mode 100644 blog/static/img/efi_entry.png create mode 100644 blog/static/img/efi_shell.png create mode 100644 blog/static/img/reset_to_def.png create mode 100644 blog/static/img/save_conf.png create mode 100644 blog/static/img/sboot_enabled.png create mode 100644 blog/static/img/sboot_init.png create mode 100644 blog/static/img/setup_root.png create mode 100644 blog/static/img/testcert.png create mode 100644 blog/static/img/ush_commands.png diff --git a/blog/content/post/2024-08-19-secureboot-freebsd.md b/blog/content/post/2024-08-19-secureboot-freebsd.md new file mode 100644 index 000000000..cc3698a5c --- /dev/null +++ b/blog/content/post/2024-08-19-secureboot-freebsd.md @@ -0,0 +1,378 @@ +--- +title: Secure Booting FreeBSD with Dasharo firmware +abstract: 'Abstract first sentence. + Abstract second sentence. + Abstract third sentence.' +cover: /covers/image-file.png +author: filip.lewinski +layout: post +published: true +date: 2024-08-19 +archives: "2024" + +tags: + - bsd + - dasharo + - edk2 + - secure-boot + - protectli + - uefi +categories: + - Firmware + - IoT + - Miscellaneous + - OS Dev + - App Dev + - Security + - Manufacturing + +--- + +## Introduction + +## UEFI Secure Boot + +UEFI Secure Boot is a security feature designed to ensure that only trusted, +signed software can execute during the boot process, protecting against malware +and unauthorized code execution. It verifies the signatures of bootloaders and +kernel binaries against trusted certificates embedded in the firmware. + +### Linux + +On Linux, Secure Boot is supported using a small, signed bootloader called " +shim," which is pre-signed by Microsoft. Shim loads the GRUB bootloader, which +is verified against a certificate embedded in shim, and GRUB then loads the +Linux kernel, also ensuring it is signed and trusted. + +### UEFI Secure Boot status on FreeBSD - brief summary + +In short, the [FreeBSD wiki](https://wiki.freebsd.org/SecureBoot) proposes two +stages of Secure Boot implementation. + +First would be to enable booting the system with Microsoft-signed shim and a +FreeBSD-signed EFI loader, while also offering users to generate their own +keys and certificates. + +The second stage would involve having all of the drivers and kernel modules to +be signed and authorized, resulting in a locked-down system akin to Fedora's +implementation. + +As of the time of writing this post, the first stage is mostly complete. It is +possible to create and sign a complete EFI executable containing the bootloader +and the FreeBSD kernel, which can be booted using Dasharo firmware Secure Boot. + +Now, let's analyze what the said executable consists of. + +#### FreeBSD UEFI boot process + +The regular UEFI boot process on FreeBSD is as follows: + +* UEFI firmware loads `boot1.efi` +* `boot1.efi` in turn loads `loader.efi` +* Finally, `loader.efi` loads the kernel. + +The goal scenario, according to the FreeBSD Foundation, would be that a +cryptographic handshake would verify each transition within the process. That +is still under development, and the currently available option is a little less +modular. + +It is possible to skip `boot1.efi` and combine the loader and the kernel into +one large package, which then can be signed with self-issued keys. The keys +are enrolled into Dasharo firmware, which boots the loader-kernel object +directly. + +## Creating a Secure Boot - ready FreeBSD EFI executable + +This guide is about migrating your current installation, not from scratch + +### Determine the loader of choice + +There are currently several flavors of the `loader.efi` available. The original +one was written in +[FORTH](https://hackaday.com/2017/01/27/forth-the-hackers-language/). +The 14.1 release defaults to a more modern Lua one, the final option being +`loader_simp` - a simplified C implementation. This guide will only provide +instructions on using the legacy FORTH loader and the current default. + +### Copy the boot filesystem + +``` +$ mkdir ~/bootfs +$ mkdir ~/bootfs/boot +$ cd ~/bootfs/boot +$ cp -r /boot/kernel . +$ cp -r /boot/defaults . +$ cp /boot/loader.conf . +$ cp /boot/*.rc . +$ cp /boot/device.hints . +$ cp /boot/loader.help* . +``` + +#### Lua loader + +``` +$ mkdir lua +$ cp -r /boot/lua ./lua +``` + +#### FORTH loader + +``` +$ cp /boot/*.4th . +``` + +### Copy the fstab + +``` +$ mkdir ~/bootfs/etc +$ cp /etc/fstab ~/bootfs/etc/fstab +``` + +### Create an image of the filesystem + +``` +$ cd ~/ +$ makefs bootfs.img bootfs +``` + +determine the size of the boot filesystem. This will determine how much memory +to reserve in the loader: + +``` +$ ls -l bootfs.img | awk '{print $5}' +``` +add a safety factor of a couple hundred bytes (~512) to this number, and record +it. + +### Build the Loader With Extra Space + +This step requires you to have the source code for your system. You might have +checked the `src` component during OS installation, then the `/usr/src/` +directory should be already populated. If not, clone the source code from +Github, substituting `14.1` with the release you are currently using: + +``` +git clone -b releng/14.1 https://git.freebsd.org/src.git /usr/src +``` + +Now, recall your bootfs size and substitute ${BOOTFS_SIZE_PLUS_SAFETY} below: + +``` +$ cd /usr/src/stand +$ make MD_IMAGE_SIZE=${BOOTFS_SIZE_PLUS_SAFETY} +``` + +### Embed bootfs image in the loader.efi + +The build results will be available under `/usr/obj`. + +* If you have chosen to use the legacy FORTH loader, the path to the file that + interests you should be similar to + `/usr/obj/usr/src/amd64.amd64/stand/efi/loader_4th/loader_4th.efi`. + +* If you have chosen the Lua loader, the path should be similar to + `/usr/obj/usr/src/amd64.amd64/stand/efi/loader_lua/loader_lua.efi` + +Copy the appropriate file and use the available embedding utility: + +``` +$ cp /usr/obj/${PATH_TO_LOADER}/loader.efi ~/ +$ /usr/src/sys/tools/embed_mfs.sh ~/loader.efi ~/bootfs.img +``` + +You might need to make `embed_mfs.sh` executable: + +``` +$ chmod +x /usr/src/sys/tools/embed_mfs.sh +``` + +At this point, `loader.efi` is an UEFI-bootable binary, consisting of the +FreeBSD bootloader and kernel. The last remaining step to Secure Boot +compatibility is generating keys and signing the binary. + +## Signing the binary + +FreeBSD includes a tool for signing EFI executables - `uefisign`. There is also +a utility provided to generate example keys and certificates needed to sign an +executable. + +You can generate a self-signed certificate and use it to sign a binary as +follows: + +``` +$ /usr/share/examples/uefisign/uefikeys testcert +$ uefisign -c testcert.pem -k testcert.key -o signed-loader.efi loader.efi +``` + +As earlier, make sure the script is marked as executable. + +You should now have a `signed-loader.efi` and a `testkey.cer` file. The loader +file is what we're going to be booting from Dasharo, and the `.cer` file is our +custom certificate we need to enroll, so that Secure Boot can verify the +loader's signature against it. + +## Testing in QEMU + +To spare yourself the trouble of recovering a broken OS installation, it is +recommended to test the binary in an emulated environment. + +Make sure you have an up-to-date installation of QEMU on your system, and get +the latest QEMU release of Dasharo +[here](https://github.com/Dasharo/edk2/releases). + +### Launching QEMU with an emulated filesystem + +Create a directory for the QEMU firmware files, and a directory for the test +EFI files: + +``` +$ mkdir -p ~/qemu_test/efi +``` + +Download `OVMF_CODE_RELEASE.fd` and `OVMF_VARS_RELEASE.fd` and place them in +the `~/qemu_test` directory. Place the `signed-loader.efi` and `.cer` files in +the `~/qemu_test/efi` directory: + +``` +$ cp ~/signed-loader.efi ~/qemu_test/efi/ +$ cp ~/testcert.cer ~/qemu_test/efi/ +$ cd ~/qemu_test +``` + +Run Dasharo firmware in QEMU, mounting the EFI directory as a virtual fat +drive: + +``` +$ qemu-system-x86_64 -machine q35,smm=on \ + -m 1G \ + -global driver=cfi.pflash01,property=secure,value=on \ + -drive if=pflash,format=raw,unit=0,file=OVMF_CODE_RELEASE.fd,readonly=on \ + -drive if=pflash,format=raw,unit=1,file=OVMF_VARS_RELEASE.fd \ + -global ICH9-LPC.disable_s3=1 \ + -drive file=fat:rw:efi +``` + +### Enrolling the certificate + +#### Preparing clean Secure Boot + +1. Press `F2` to enter setup + ![setup menu](/img/setup_root.png) + +1. Navigate to `Device Manager/Secure Boot Configuration` + ![secure boot menu](/img/sboot_init.png) + +1. Enable `Custom Mode` + ![secure boot custom mode](/img/custom_mode.png) + +1. Enter the new `Advanced Secure Boot Keys Management` menu + ![advanced secure boot keys management](/img/advanced_sboot.png) + +1. Select `Reset to default Secure Boot Keys` + ![reset to default sboot keys](/img/reset_to_def.png) + +1. Select `YES` + +1. Press `F10` to save and `Y` to confirm + ![f10 save dialog](/img/save_conf.png) + +1. Reset the platform by pressing `ESC` twice and selecting `Reset` + +#### Enrolling the ceritficate + +1. Press `F2` to enter setup again + ![setup menu](/img/setup_root.png) + +1. Navigate to `Device Manager/Secure Boot Configuration` + ![secure boot enabled](/img/sboot_enabled.png) + +1. Enable `Custom Mode` and enter the `Advanced Secure Boot Keys Management` + menu again. + ![advanced secure boot keys management](/img/advanced_sboot.png) + +1. Navigate to `DB Options/Enroll Signature/Enroll Signature Using File/`. + If the EFI directory is properly mounted, you should see a single entry in + this menu, similar to this + ![efi directory entry](/img/efi_entry.png) + +1. Select the entry, and then select `testcert.cer` + ![testcert.cer](/img/testcert.png) + +1. Select `Commit Changes and Exit` + ![commit changes and exit](/img/commit_changes.png) + +1. Press `F10` to save and `Y` to confirm + ![f10 save dialog](/img/save_conf.png) + +1. Make sure that `Current Secure Boot State` is enabled + ![secure boot enabled](/img/sboot_enabled.png) + +1. Reset the platform again + +### Booting FreeBSD + +1. Wait for Dasharo to boot into UEFI Shell + ![EFI shell](/img/efi_shell.png) + +1. Enter the filesystem and boot the signed-loader.efi + ``` + fs0: + signed-loader.efi + ``` + ![EFI shell commands](/img/ush_commands.png) + +1. Say hello to Beastie + ![beastie](/img/beastie.png) + + +## Testing on hardware + +Upon making sure that the loader-kernel object boots properly within an +emulation environment, we can proceed to Secure Booting FreeBSD on hardware. + +To do that, follow the exact same steps as with emulation, the only differewnce +being that you will now need to upload the certificate to a USB drive and +enroll the certificate from there. + +You will also need to place the `signed-loader.efi` file in your EFI partition, +and add it as a custom boot option. + +### Adding a custom boot option + +* Enter setup menu +* Navigate to `Boot Maintenance Manager/Boot Options/Add Boot Option` +* Choose the appropriate disk label. They might look intimidating, but you + should be able to find the correct one by looking for a familiar keyword. + If you have an NVME drive for example, there should be an entry with + `Pci(0x0,0x0)/NVMe`. +* Find the loader-kernel object. It should be located under + `//loader.efi` +* Name the entry appropriately, confirm and save the changes. + + +## Troubleshooting + +### Mountroot + +If after booting the `signed-loader.efi` you land in `mountroot`, you need to +type in `zfs:zroot/ROOT/default` and add the line + +```bash +vfs.root.mountfrom="zfs:zroot/ROOT/default" +``` + +to your `/boot/loader.conf`. + +## Summary + + + +Unlock the full potential of your hardware and secure your firmware with the +experts at 3mdeb! If you're looking to boost your product's performance and +protect it from potential security threats, our team is here to help. +[Schedule a call with us](https://calendly.com/3mdeb/consulting-remote-meeting) +or drop us an email at `contact3mdebcom` to start unlocking the hidden +benefits of your hardware. And if you want to stay up-to-date on all things +firmware security and optimization, be sure to +[sign up for our newsletter](https://newsletter.3mdeb.com/subscription/PW6XnCeK6). +Don't let your hardware hold you back, work with 3mdeb to achieve more! diff --git a/blog/static/img/advanced_sboot.png b/blog/static/img/advanced_sboot.png new file mode 100644 index 0000000000000000000000000000000000000000..8e06fbee5876317cf7788a20e9821bfec9f5ffcd GIT binary patch literal 15286 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

%?_h%Jj{dAP^>sV6|2(;2JR;~jY3mK z@aSYjA!aW_k!kY6910RL5togj(i;V7dd&Pm2|YV1>L>?_8M5na)k zAF(<1;SDSC7my7>-i}%*Z5yck0Wcd#5MN{rL4g zyPWRcyj9O|U0?Ag&j2aVZ~hB@@iC1jb88TuL#U%7$M1Qh^yX`~8uLD+E#oQD!zHxU zH%_5pH;OT7Y_W$)2oZ?RR^n0@Eds{)uz6RF|o9! zmG;tn{;?Pold!v1p}mT^Cs}!8r5)egcHpzd>`{D`i1r|E*)1Bnu9XtZ_1{M4-lCEOu`E0$TPCHFa~sgD^lC6uuiv=ES@Aa+Vx1w23^m zPF|#g9c9%5_`8I{Oy;cokx~&W6@#0N8+0MLw}2x_;{&h|GGarb;ZmP)eqbwZ!N#OQ zBW4DII7(BSLI`1LXr&+bu_IyVdDwE%UXB?)EGD*gYNsO@Ox8A47W}&DFWW)5q7n%=FRe3(L z8yUZsIwCShrh58gs|<{BO*69Yl!?X!9~ZYAYyPSn2!E_hfxNiS+>+f?66rKr#Lb?x zS!ut$&D9jX*8azYc? zd1z>TdtaA`kg8q4i!!MHP}e?CGN%-`tJsxpIJdC>&iW=$#MhrLBud%UU=`~;e+W8h z^(0k_2v5dLYFZ@3zr(V|ZR@GaAL$zEu6!yCec~N2G_vY66SutbD&VEVI-?7jrQl|? z3I=^57ls5HTY?49T}oZIrLHB-?!9t!Hr-Yh9kUONP>QNPcmBRb6`l9th6JeTNc?A9 zP_GH^*4~_e;^b_>mj?MLhy2S)%>-0hgw-IYH6)C`-8u)4-&=Z;BisraR*U~^fmf7D zPK-~+E;uH>j`V%w>CdsgARl^*!iI-=mD%Y)97O0%7uAZU4}g*R;caGosRZSt+(Sm7 z{HxD5gNdoKf^AD4Fy8h|3SE(ax|OuLFD;^&;WO&UW{vYDK{H=D9M1lD$7-x`MuK51 zuWBcem3+Rh# ze=Gx^4wnOLec)u9=Uu>ryz*<)?Q35)f$r@8uVV1!0y9wdXTMydm3=#vU1>;Ox>|DC z(lfgmx_-2$9{5TbflwI788|y(G1Q}_$AeJ9W!6m#Bu3| zMbG<0(X}W7o`hHWvU=({TN#w8YdvSFp>hxaiy)hzmx|v3Dz0R(KO_bVKV-+vvCQ*- zh;IEOQodEj^QCLS=mZO|&Lp6TGZXYyCId~xy2xie%R*5?xQ##ycaE+A>|$(kKWunX z5?_b)B())a?60Y7DE*(AvhU->zO@h0c*!9V=+C4Vbw$J^iSr7ST!^hn=4>qae*hhD4gClwKG zk(s8XPyoaRvTuLZU>cp6IXy)Xi9w#ilmJ~+yZ*D(6^y&T#Qzf4>xEWdM;cfj?QBiI z5|U=pJwsXHhxD5#tZ+j-o%&aXI$CpP#vXdgfj;2?E;BqX*66S0_lJn{2?+n_f47DI zk+42%avhpn9SRuuGE?nkQqeVEjY21tQB>xbZ2a=P`{r?ub9+@={<8n)1xe8NqrKyH zq9e|tYfl|RZrv@`4tLmw){2R@^4%Hmyj;4`&9PPcyVOO3>7AEuZf=a;iPybSce+>G zYs{q<>)nW}jG9D6n?tPfPN%QD3myCJgea@dR-MPKdN^&lU?@~~6UmoUj??E6yFqw$ zaW+#7A?}MDIgp+2vAKQ9;%IpA1~=Te{TCB<;>_`yH{eoaRIrdfpR?VozG8sdWq?^>(>uDDNf z9?R$Hd6r7JeT@GUP>2H-HG*-?2Rhl{h zSn{XYA(A`+(R7J_^X?P+I_OXQl~94HiYoDp_JAl$K36oMvaqPVvA=ClnJKqB&Kr;= zHtlDoruZIbD|do6d&voYJQVJ=s5T~KYD)rz51YwEsK=;MrPSL*0{w56C;Mk-1!k7esdY>!wd2H&vFf3bpnGu zew`!Bdb?P1`L_?d%^&PAaHlI$R|0uipL|9DNb(8s5k8&=s~D}| zoP^_}z}xR-AUIDigm76s?GZ}w=S3pQFBz|g1Y7`XZUrMuaU# zG@Q?G38zi){nbIzSF2w-NzN%4TbZ#of#QD?gooeQW^}CLH_(lQ>%Yd&{s!1RE2mrj z?>jaBxPtzRQs2L0`uzWexlOI~8w&e>p_t5D~B>p6JKDc4298GR-J?b4| zGC-|CH6(eCSh!Qin^dn`BQbX)sjGQSzI^*l?yr4iIe-Mwi%{IN3AwX(AN4t1?TL~D z1fxGx_S7&!ZqKgIQqQ)(->|LA&q68u-hpw6rp#UsLS4)8tM6dxljl3zEJo&%ERZj4 z`Z=|)gn>2R?9J&aJ}0@t85YY1U}5;PB;=vT^O(LB#loFHTc2hm>Vs}C)ZXCYAxp^g zd!{P*{JzGm2f>_WtMz zY-vvU`kxxJtE#2KuKG*106Og0dG0PC^~Pd>jnj)R5d}b5;q^z;w0mtDk~JgtKfJi7 z`?5;GJHT}9uZ!b*;Op<2X#4DDl)U8Srt|KvoWLvFosy1@OK2Bn&v}UUZcJN~4c+e< zmW0&{i4RMQwsVPi;Aq%3t}ZwwS0QxO9h@awPPh!_$Ou5n3IwU?uIh!a^jZA@P9uZ8Jha&;qfLz25fsqFGQlf`NzXOG?iqjB z>MgzMMu_&|-+doOWbfrGI_%e78IZn25+_eA z=eXwCnKYNsEFjSJ%xo8Q$<6?Q7t}4m^>TC0@%2H-SJP1b(-UBp?k4vu3ggMr#530* z?1AFt+S4N~r@0|A*;L)$lZ+Y`UQ>jRi>S*Sf$HBIWC4;Ep|`c+DY$kbqF$A1mVl6K zMTNDH)&=U=fis={<$9tYNNUjAMIj7BW;>KlprU4f=K=-~Z2s3lXCI+^1^*i~9j0L& z%Z$?cGWI9flgqueu;Z?KC8mGTTx7IVJ7QM1;`Ev&cNbeTK!v*M89~DQ3C%o*x1JHE z0qY@Zehr8YU;ed`b#x3viLd!Cy%CKuf$fVtsVR)z*Q*o3~RC))iV3Q7HPQK!;g z-$F&W9yXuN{*AgI$N4!~Veo;Xp~|p;@V*AfMU0(yvz*vOP%j&sI^X%nmz-YZg-Bz2 z_tw^Cm#F-PUCqB#y@hM&l=k`FA_m*>P%DlTmKYp+eotOg1lHw~D$0Lt<9q4N1}E;Y zetz%oo3b&s(!hB7t`DSCRr(FWKVsZpTyYzc4j#VhJh4?a%N+sTAbM9L6b$eA?o}g$ zW61^a?R4v|8W?`41jj69o#ybr+i@$mmzVq)CR5l?8SIB~oJ~J|=a!BtZ?5(!bAGMo zDmDcnfYP2{i`n?A zRd4MmvOs2~cYehJI41gy2Won*Ku)lpy|u+bO);EwJo(Iqw=sVea-RNG6$HWlu_XTN zrr-RpP>*oN)S;^(y)}074V0oVSHQMQRk_EHs0;YgwbWQQJ5AiZ>oo4A4p!Jq-v$Cr zT;i;8Lyj1SDET9gd-WT?xDrxOhlMB1%B;8-y3@T%u#7)_g>@D8yH&c3T@-qn_V*9E zfj~u9)HyWHB^xK)W2|Us_++vjKjPUq$2-{Q+YEV87jW}E1#Z0_dq}yV^5R=h z-rz3p-UOPdNrOe>NFy}sXpDg0~Vxb#_3G~LMV=K6iD{FVJ)ne@# zGiK_zQ7i15`!FfaWM!}I2N4Kl-+WL|2XTg`4Mw=qIs$}(#o3vqz$4GGT!81ppR*=+ z=gDoF%hglEPIkzdB&P@SP2u^QYvnEro^&W_BR2b*^|RQ7uwG8=$(^mh?mSfW?K1m> zZ0C6uPsJ$Akw|)#4mq~ym)^>WxdSI~yjlaaa?Hw>61Ugw1d8#qL31f92_~Kr%pJK4 zRPeoo#eI!1#_8Bl|Jre?g|OiiyMH(G!G=uA2)9E+8gmL7Qm+@3zvpjq+NbWZ+sQ6* z?fT+`xSaWS2K%IO+_?(y5I~ufe}C`9?U@aoImujrnq;2W`WXN=sof2z6={~+D94O;CCD~rOF!iF&Gild%Zft1PI RY2ZA_7_p-{s(mH-K78k literal 0 HcmV?d00001 diff --git a/blog/static/img/beastie.png b/blog/static/img/beastie.png new file mode 100644 index 0000000000000000000000000000000000000000..8e31c093b6c37de9cb7f91cf564fa71407d2f185 GIT binary patch literal 16722 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 literal 0 HcmV?d00001 diff --git a/blog/static/img/commit_changes.png b/blog/static/img/commit_changes.png new file mode 100644 index 0000000000000000000000000000000000000000..8be36c3b4a12bcbbdd5c9174cfb0609523499704 GIT binary patch literal 14066 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 literal 0 HcmV?d00001 diff --git a/blog/static/img/efi_shell.png b/blog/static/img/efi_shell.png new file mode 100644 index 0000000000000000000000000000000000000000..703d9cce6b8cc5d74e2686316a5830883dbfea9e GIT binary patch literal 17355 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 literal 0 HcmV?d00001 diff --git a/blog/static/img/save_conf.png b/blog/static/img/save_conf.png new file mode 100644 index 0000000000000000000000000000000000000000..52c9df12f35fe53f0d8bf5cad575cc77a4b259de GIT binary patch literal 15789 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 O=+eb2=D1(4-}_%(+)4ES literal 0 HcmV?d00001 diff --git a/blog/static/img/sboot_init.png b/blog/static/img/sboot_init.png new file mode 100644 index 0000000000000000000000000000000000000000..6021ccbff36edf4efe0e0f0f2081b0e6f3880711 GIT binary patch literal 14692 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 z z7P@KZBP;9YD(;R}o^Z<;=5&4FDEcI%8aQIA!x9Ma#2A+G|}sJDxb|Aaoj|BPd4(yA#-_Qro7!SKJhom zsNXqo&26JHynU-{Wh#CN{!!g{PffVx@)SJ&J;8%sf$dm2bGDSJ99lC+uF-O+nT7LY zTlPIaeyU_8w;_`&z&{|{9viny&KJ&OFFd(mrq+We_)I_^XwsPB|8@{G#0oeDPH zC9=brRQ=b_?2!D(V@f-pZkC17FK%~NbjQLdqB}>hP!_OL@wUnSzi*@bZ}H{7cVr&U z)%r;7%s`zwrn5ag-5c%FJMUHU8N0bNW3cbCGh^$D56`!k9y8UExHIFWX{i*GHB zP`J0(`cD+_pPEH~=Z62u1*buz`agJPFpY0#dTMHh|FBu`^7Wmc_(Zkzc4iFfliS9M zJ?qfO?tlTeW0Z*@JHa0_2!m*E-}Y}czOP@u3jE(O`G3B94{KH`$hl0cldwm4*#MJ`TvIco2>Hh%nkzT+3hgO)x9|nent-R z#)!{DWjkuqKPxwX-`qX)zP$9EeD+V4m+9TQnbUaCSsnByftafk!`3LMN*8z%G2t}$ zseLK0{6qCqaIM>Myc#X79WcKWe-e<;1;K4E{U?pHGgU+fTUB?y1RPLXdqk9! z$^ExpvI?kY-p*?vG)5w63xulW?7S)4M*P%6+}PMc5v-{LAD<*gR4eP?DJw~G#>b1a ztvy#)&d8VxE~$ExGEd3j&7J3d8!4tOVU)!Ef>0Mo(zxerh((OU&Df(%U>ZM+q%}?ir1J7hutj^_KxD}r3YSf{~*I|G!PT&tckU(65NAXsu zv#f66rM!9Q^x=k3%m^Ou+E2!Dk`Y@eRa?e(AmRk(8fW^rg)kjX=RA~4`#7YK+RN&i z#M_g(X&|6YOj%OE6j?Ofsgx_9%dav@-F=}O*Fm1_Y)+&f=k?o4sn{}3-5w>RYjk%_ z*z7k!?)2fg2lwrcUJ+S7*xIUWi8$PS`_L{4fy@tlVwQPDy?%sqZH3&u`bN6azsti- zyhSj~(zsuB-a4L#i?CJ#%qASf;S4C5N}PZha*$#?U_~DiMNjCf8sFTc@(NA$=XkG) z7t>i`T$NkH&}XvX$Zx{ha0dY(aC8jy27BmMtJm#_UD97Tq?Y6Ep!XY(p3T7eH%&2r zx-g$uqXae*y%wpp7kdBPUU&@ci(w%n?`6?)NVAti8 zp_@;FMTGLIg6?4IGw@E;)&mrVx_w2g2a{A=rUn(YoT~OhUFaY!J1UlD&~g)LPeDF_ z-!vUYJ*!KhY8HiIoS86o=F@ib<%{^=)5`zS-1mii{VjboyN{xo$RjtmR@2ZFPYkW# zGC60I2aI1cj=p^M345h;lL32>-15Mv3bEKc#_Q%3)BUwAn@aB zxESIcr|Iie5+i(ydC+%C9k6Mr32xy8>R;3*o}Fdj65B8t@W>C#fv6o>f1;1k{Q?O5r=5#32c%&+(_>IWXagf#qUJ^MQp#^8OR{uLjp1 zTcF;Bpg7``l!->7$1H6F2-^_O95R76`nC;!)Y#s?{g}yhyXh+N{ywR)4;{&)xS(41h;He8$i+ zHoySi zLGuP!+x=hg7N^lKYn-o3=OQ=i!xPs*fR1?cjzHk&8P<}xxvxM|Qnvu7oa=B?BjtkX zh=Y#zxt2hi@`b-p>clsz^oxI?)%9zH zL9)(!H|VEK#3=XqyC&S|d zuQbkoPaW)HOeMEd7{S4DZ&H}c;3t}1B0|bmLONsWFZ00fZ7$MhIsBI&MR(r58wfXQ z!kqXVD96;IQ5T2nzXyH)E zpQ9SV*{?@eemi&Ddg8$`AIZmDh-f{e_c`d8lfdZO0kH5}Jzvp^2*`U-lCDk()G$91 ztqQk+VEW2PvN*MDOsGp5UBh*#1OBpP_G>G){4$}wDeD~3y)i6(DwQAxL=2y3;8Cfg zeV_FqyUaY-=TEgYq>!!&M0=Ibdi+0O{)ka?W8rEg-qOtNMzp_vM?$(3{MC8kUZS z9xmh@C?EVFFwYH0*q-6&Ap^%+Il3v*L=_BHE-xLTESOrI1aA6~#Af+jAL}BT-D?R; zCa_-z0|+Li4z;|GZzDLKr}U7gP6(7zCIXr2a^e9@){7PG5 z;1e}9iSsE~ue*Nsf6nD1>1TZ~VkSc@9?P?pakY?iksT1?>Aj3a#WS8!!%szhJJ?u1@yf5PUmvWOTPOv<4oxgbT z%T9;=Kj9$zbpIO$v1<6K6auhYiT`mM@K(%r=TYc?LF{+%jP9XroH6-dXDP8ya@z#C z1?;&C+UZuQD__}c=c^}I3^3mrn ze<@3?A6xKBJ@CZ47mu>dPoy0*JEzayy<$n1t&^ggr^s8Je_f)r VZJPSAKac=)uNhuNU%vg|{{zdP>MH;M literal 0 HcmV?d00001 diff --git a/blog/static/img/setup_root.png b/blog/static/img/setup_root.png new file mode 100644 index 0000000000000000000000000000000000000000..52352189d6a15d9c307d8d40c8a23f952e165d9f GIT binary patch literal 16163 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 literal 0 HcmV?d00001 diff --git a/blog/static/img/testcert.png b/blog/static/img/testcert.png new file mode 100644 index 0000000000000000000000000000000000000000..4b76ce5b82e9c23dabcb3d7e512a86b6bd9235f9 GIT binary patch literal 14219 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 z z*U>S!?a>mkJ7D!wl6$I9Lu!f+T^Jn`D(-6BOH%Na*9$(Ye1Vl`4|hKf!(>@W88B_4 z>c*eA!Hg2ZX%yKsOWPo2)W_qC>&FIG=yqp?56*<`*LLm{fy{&{Ik3gQ2k(svqo6_V z2`}Xmm$Ot01e6-RFm0U7iQT^^mh-DOuI^ArMM>04$@FQ;1bSzrG$wb>}x zg1IXYx*8Z-hlW(JlqS~Bl36I0R?d;V0CfVbNM9Sg_P?dvnFMhnDS{%V^?|vx;9br( z4HPf^4?`W|;`TWQa~8t+q1?pnED zyE0oDgNn!n7m$1H8Z!B3r9Hq=lx9~*nC~FJrnCQ8V5_fgg_k(ZjM3$v zwoU0$M`io*0%Z;VF2v8p>J#Y6gMop^vusZe6@ym>CwkXfA8-~xPw*@6i^L!m6{rI8 zt>WLE9;(DH55$piYn&rdqgeyxfa@YDe{-x3T94wEj+rrdL2CpJI(ghLdL*T{`jKh< z(=Skt2WK~iM4M@Y2R#h15>H1;(t?WG+oPY`&go7p?=B-IfIl{h@lN0tCh5!hFatDD z?UWw_L%bYWdK{X`(6kpC{q=KEF>7N1dv4f6_Bj%e5y-$H(fCYOdlF9y!kC_r*ZSm6fRlvY zOY}da%XfY1GICLwe}1pn1dTcFe=1zpxj52NlhVqseqt>c8x&d*HNUFA(bVQ2FP~6s z6oEDmiy>Tl8u4id61?cgYX4kb&{-B6rJ|PPN$-*eEN#~QYwgS3EU?KHQlO9{iRl^_ zX-)<=O81Y^C&IVOwNvXvA;ea2-|s6^%=1$l(Z;BQQL7tsmp2A;VWnTxh(FkZ73_I< zt&q04u4PMp1g2!;&r1EH{`Mu!VOR5L%99jQQy>9GDqaT;I(t)ZzhjsOZrPUJRrK== zy`8l_MqmHXw&Xw~7By=0g>E$d6s`7**vqaoE4PV-OgaZ9tTr!);A~nW{h~t>03oS! z2mbb3R#ur8S?JSAwlQc_Vi&$U`jMjyg~|c^F)Scb1yq#XDjRVfaS2sEAoR&5!SNm_ zD(+v~F#l4}CH}Qt^Dpq9TN~e7afD46rAvKBf1wU1c;Nq#fvV1cxl9Fv<)FSZTgq*a?b~smZb`amWo}D$H?mV;*pN&kGa1n?!v;po8T#U6t)A zAK%2e?tK2)(@+dxY;ABA=6P2=1!K z7B}l8xatH2hC1UzO1LJW7FP^qL1ACsRhB$@8=O{(Oj(NlU^jhjp$)pZwr6Y}VxieS zyEzZ_F9v^K!^69_!EI-kR@?knewY+tM(shjz6H&g99nGaH4BpIJt;w`m2)c;yiU8O zJTd{h`NY$-pt3HlCE7M)pxiR@amy%(bFI8SNvI&jBUu;aO}TDYBp7wPQ@ z|2;5INI4FW-Unar^N;FmZ`6=>_@ZTHxqtWG>lS_+UuMl8xXM8!hlM~Fy`Dv&DZ-|T zO?7Jr2$L{=BaB(J0Lyxw!Uc%J>^}H>B=u`>$%H?}b>YtoI2p}akHMZjQYzaxcUW@W zPVIL9BwP%IWA#xtGGV{DK>b|$cS^s;mAZVhLvJBSb$5kdya_sId;nQM@r$fPAt`j% zn+hw(Pg%5^y5Hf{{@_n=-v`Qoe=c2+GvoqkLG@^XvCJy{n8Z5GYk&`J`%lXD|Ji2Y|Hp>V*UjykG->}&i}T^Y>_IwO26xME IKMeoB07i1APyhe` literal 0 HcmV?d00001 diff --git a/blog/static/img/ush_commands.png b/blog/static/img/ush_commands.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f404e2454fc6eced9554fb375485c62c6af2c7 GIT binary patch literal 17945 zcmeIaXIN8Nzc(Bk=zt;?s(^sXpaM#l77L(`6r~CXQF=$DLy9xZNC%ZBLI{e0gp#2K zNJvHnf^?(_Awh}M5MqFY5|TU{=YF5(zTW#e=e!@zhx1<7?H48N?7j9{|NpP8b(wVA z>iWT-WPSpHKnHK$Ftq`J_DF+3yPxkD0zM(oByIzL?G3wn({4ZT2fE)g5%^g;-0W_+ zZHRYx)PqM}AfMonATPBrk4Ii!!C}53;mkcm6W}8Cor|tL@_G>N7ZQBZ&M(LdWd6wS z8U;b^uSpV_-lf5@iUOpKvJBd3j z8Tb(Eb-ep{)W_#ACN}{((^`QX&qLNRsB>RGkXj72<_c7CaRfsjZ+|QW%DVv!_LSyn zQ&Hg2uT(XG_kQ~6jhi0usT8F2cNQ=sm#b>!rH6 zp<5V7Se%OG%VYV$_|PTZ8im&8h&R%u`hNH{6VY{P4szHBg}5^r$z`zSlaJSo%(}FR zC&-`Bh#M4{t|2+JAGJ1;*YfU3yqW2o5eaJ#n3B@+=}8E%IS2(M-g{=bJ$oO*bHfJ zH%^FOJdS~R^b|H+fimj*IW4M}QDI;8{v1utK1bsz@S`WgSJi3;pM<%OAtO^ux^qe6 zlJ}%?&)=0|!q&+iDC6}Lbv?gw8M3xz>Acq0x_+NtWWE7!u&h0ZXB27I!Mx20L`K`^ zclj|WOM4USp~;Y`#Kfkrv-z~1u)Y*}F#eJWmu2fQFkLLC#Xw0Z7zYcTY>d8{YTD)p;l&n2eQjqoTSN6DKSz?^dtvKZ)tfe+zt9bGu5@lV ztBzl*{Y+H!)Xt#7` zw&Jc`_gEY*zqmEdYSbetdiTE^c~f8J{vkq-ddv|L7PQnlCm&Fz-n4>lVsps(eS+aB zr-{u;88Y>{0!*9F;+1tg_v)Vh)GgWeHQ~ghdEUbIw>e_!&g*lTxF|f0Nv)5}KO`nb zLXT8!tZ2NjpoS#hKKa?a6EHo9t%dwSox|cktggN$t%3OM2=q56wiy zz|TS(@4xwo7z=W7LlQSBOj>1Fe+DIT{E}4+cdETKKM)@|!4or*lI_c*)c0_(*Zq&O z;=+}xwNeop@R0!bbxLFsB6f`I&RNnyjfk0SKZLG?m9^_2@ap_^?v(nyoUb;QO-(D^ zS`FY^-BWF`^eV}aSVqN|P-wHM@VkR#F<+|>Mw6dq?l@Fx}wwZ#Y)7{I7iHVK`&NuzFFMB-dEOnE#`V3SW zKfAAPd={RPJf{$Mp1(@utEjg^9~jk64}SI-bEO?b#7$3p^^k-#UVv{9!D%J8n2GGs zd}){deAzNQP3>abXyv3|@sorES^}8w*Hdswi@G_R=@H-JmwCoAS$e39pZbHV&&>?1OArgBw15wbnov+-S+U+&l0^kuqRNoo4&9!>_Ai8$HU`sH;K zCu6MLErN@2b0a&CTrx5`A=sP(rW})k? z>m8%3v+WgboadhrQ?2xFUg~CTQg%_x^>M> zE2EccHin6?i`7kAFF!x*TZ$fBMad#ID~t1kkKX@tsp$iURYng^6oY;{%6hfls^Z_^ z4EI+Tw0xJSB)CLGqmoX$YBC~`grBck(?MwbJI3_vrBsMkBdqd%LEODiwod40$cbaN zXROo1H1PT+Tje-fn1Z3sa?4!d#2oGrry76uVw2!kVRz0}o%<#-%FC(( zl2Fo}L+T>Qr?eIlt_NNSh%co_&0i62f8BnI#%aGb-QZfoyJdE&%BZ zUf*)(R65nr`wZKS*LjzItoQtMqe{OMg-tYudf@ z+pYP`T-F9HBZDGlIofP5d);_#;9BS$GKyppw=ABk-lRm>W{0$Q$o4rI9ut?khuYjA zO*5D#rvZ$;3H_psN_;yq-DsBLQK5!S?T2nFiz{0nQ}50bJ*lL$jOPM9`9dqM@5Pux zT%f%L%0x|fJh~Xb^EoQF!-BZ6vd@EGs2$T~ph#=)2dnpO@Wxs3sO^yLZZOZ|2Xvuk|bm9i;Kkb8W6bSY<=twA}T3) zhYSRM9+yct5q|kz^v9A=?(}I^F3BVe8E{yJOqpNCG1IICTuEi6=|0@(5*-6wCD%}6 zwRT=VF^aHhDK1_UxVh34F~|sA6Hn-Pb2HPO2rS^u%rounxf+Rje8!Y%mBYEoMx_XK z*G3~HCEf9jaxJN;O{PLe2EBT0`~fa#rz#t6BiAS6AlsZMpLSiB{*->`H;Bi|w~s$K zT9U}=-T2s#$dlIWT3+uE8BFOBq-nt6jP0oN#B=;*ia<)Fy2anJv-6TeSH0Kx%1r3^ z`*ZGfmU>Cnhz*E4a35B;7F-g-8;x?V4m17M7&>e&8!Uw~V(+==_vwv39WOFHMc5wM zn2{zP)x3Y=#S!Z^Kh$P8p7F5=c*7Y9mo`ZgZutw{W(jK}x7U^8Wtxu@KR+zi`8r() zo{}s^i4ei-_>DmUU&#t4i1S#;yq2s>3D0~hnB3@d6u^4E7bYfl^k?_#Qck5CEj`tz zPp;CiK1jJ-NT^pq`1^CCg}bE7xsbM(hX?MO^QPDW`24GcX#oHRFJe%F0v}SrC0T9P z{!A-)_XNWFrM9YD)TaYAGdcMfwJ?C-YF4cbD|vArKY0P8{Q?k5y9(ah!b!|{`{7b; z_mF#j)m(cvqDhy!mTv1#j|rpAXuz+Wi21D8JhYf5)MU7f4@0u$aR&>xLTJ!5hCFWa zh7o7OBb1k>mk|SFWzrk{M;05pk%+;UiZ`&-$T;Xyoj^ide5lkijmw83?jeROcly4{ zHqwEdJly z&!mz*h+WbrY&3*)Oqbl!!iJ3VsL@6ed4d+%;M5&PX=0VSO#hl7pZe_Cv*`JEIzubz z*_uI4c+XyZ9J84;!B&ua&&vk5scE3#n`=f_>_?G81s_z@l^#I{)&p1ypnFanKj%<= zLaVccqhE1 zK*wO+0-I-MS(3u?hsizUvsg-9q3CTu>{#PDBbXCfL93Q}X*;8y1H=9A5x%3F!r%SY z^yPW?bQom&7XYapmT>)U%|qtB`8azEpi+We>h&em+>VfghN!xIS|Jrx(<)Pj#!5;A z_!go=10LsHu*F~RD8w;!y$K@f1Z^dyoy$`sG^Di{(*Vw@c-mEk<;SePcBp8tN(s)G ziJ~5N39gAb5&L~t==?k3w(s9<6^q|ypHoNy*!u~}phWQ5qhjak)P*6D+#!ErE)oIs zBd5IikFZVhe>aH&USgY?VH4p@g;3LO>~*DC8z z^pT4&Er{VXvq~@sEk0i@B;7|YCc4tC;Vfb0+wBxJ-6^9(6CuP15*NF5LOSWQ_p(Fi z0H51_8h|WXy73wBz8BKx94b%PnydNO@EXY-fL@g%nyjv~COyVPaV^}!I9hTACT+(w z^y*OpEnusSlV{;8l%f35@g5iI#zc*e+e)zWF>!KVzU+>2k_~QB_3odzPpQ-W0C0x5 zFoPI!qFz9_7_tmN#5&?IR=vfzux6|`(89g~GQ#kf&NW)6BsD@7mESCuH#} z*2*7_?Kd$-CZ(2084(QrEMOSixj|SzN~21{1haTGJviQB6@uVd?#PJG0%>krVcZg7 zHjvWUIZ?V_YK8{FV!YI?qDdQpENn?xEexAkaGK0Z#aS!Ox}ooIM8 zg1+0}A7PPipi_-s5xc0Vd4$}PPk&;2;Sh8q6Xha%f$%-g8lXJ#6fYx`{MsyZQN=_S z#hWKesCQe7{pE}?;m?FJP=J({yeEE*X>hu*k#;D6^yzx#!m#nizz2`zjn#GxEC4y@ ziRW2{M6c*#JzBrMISSyDSO!I_qy4(+cJDceJX6p~qE$?7W$4dsr?~eC)lI(y6kql^ z#|{^3IBY0jw}BrmO*ffnG@Hk&&_YNud0!G}^B=_0;+9)A-M-~E9B!ELvhLkd)9Nyg76;zGga5X#AHt<``V1LTq)H=q zB;<`c0E(_99138`Z|jo7Ghbjw9BS6m4W~!RlB7d`6So?#n#i&DF>MQQi-1l>5A}wA zu*9~xSjB`aHSstXV^-cYE#$b2F2$=PWa{`k%r&}%$Z?lj9RWqDFrBpyI~h3{%x&^~ z_x^=Jgg<`!v_{XQLz**V-J7fz!dF9yruh^^SecqmhIdz4yQa!Li>o~5*Zo$mk#Z)I z?Da#^PG3u$F1>L+w zdm1m6$mMU(_4uWgTIC%f$-_JWy=m-F4LvWR;VQ8X{(iZK;-8}LE8w}47}zwqsL$$v z7^F6_a$IPf)3-bTot>JdTaY=vY^h7t=SNf6p&!(+9d0biVV`>mXI;4+W7 zGGjHMdu|8f*mzHFtAk4v*JSQRvF6-V;E<(zwCAbd=Ab*1vE10-jhIc*YhQ)kHvrb2Q3*J_3_8 z7hSk-;PjJQyZ*4hlnDwa0hyI}CJOI%T50;zK1aYUHU?4acNNL0ZwoyR{nk_0m!{Qk zq6c^zQWK0-+r(+1yQ7Rz@;F9)W=h?!)p^rLg+Uz|au?BjzPi zM-qvs4V~IUvBNF21V9&ogzuxpvkM^5mmARk`81Ld@rARp6V_A4-6mz4?9TE~<)qK%g7H zbne86M>PLmAEW&`qXh|8X-6U4Eh%X~{{A%CVEje?^ji=2ui1{L{n`So;bGfLlEj_@ zK6(tVPFSTdPnTDqqY73sSijnWC&MSW{F!T^6S=e3O%V;iI9pU#EjoI!lQNQS;h{r* zQ_GL$Hs5{_OL2`FFR6&|zQlRq)3Hy|?L>tmMt*e*ZC^1xouZNCk#WgDX{(|a1RAi+ zQ}h6k+h67k;J{@ZfhFsCsZ&vWutIOGV~q4pSbm^kYvly2O`P=^ZBH*~Z(ds2cQLN7 z;4=(MQF=|B0N$CBC9PSwp4*>fmXh0+?Z|u3Ll>}GnIs5tt^FcwqP_uB1w=i3MhYZ3 z7qzjdzj&!XjRt|)Y%gMcDs5*Gyzkdp=uEzD;i{uXG7-T9ljOQ{G04V;U$a>)udr=e z8FBFKUOH9E(G}J^;g|NI+%0Y;p9TP&+w3;*V(CK!ZLk}3yJEUYvQ^uJQ{LZEoKbzg z+3zL!e!NrYz%DN7(i{pr%dYD;1gFDh2lImZ0)~XGc{lKaYh~5Qs1dY%=wynU3?%x| zyuE2#^6_)i-+hc#a@1XNJdHu1B3sRC9jSR*)7ct`@fUT{QBz^o1+e89)=Dnkvj=Zm zW|dYo*PCJu-5B1WE=(oPf!CY#*&e7wvlK}Tat=%oKv*ddo`J~*0g=uu0o5M1zgh8P2tIL!UH~w=;(#Y7oqk2?mn5ik0 zNkkk*u<>&pLb8>Hc8gvb@H;@%b7)7MMfWDDv`tnurh@qkEs2Q$v8YV12{wZ9a};Ls zPGSs@>`-)H4XF*#`(x^Y-{!!2ky8<4pM8rD(sWb^XO~-~&DVbB>CnEZc>_UgXCbR?T)-gm&aPO9D3|ql{bc;?3 z#_1A;itY0cUD_y${tg(#QL_{vV4J?Bo-$Ujfd*0rFlqX9K;t_vk?O>2Vw)+Rbf7hn znx{jiE1l}5F_7)o8+}nk$uj(^+|DYUAw+HI<@d!2cO*MIj7q2+p5M%P4B(}=?s&W*K6BY4Yv~?K73$N#h@4b?*QT-2&IhV zVQbH>dL6If1LFlc>hN4a)RmD*z{QwPS^8UV zl|6Cw&WykTq8V8htx4&N#ukpS+`0Zn+h)$(L z0GvDNu-fm8h)+!1nBCR@vYsG2bgE`yM9(0L!QA%2Z+_EjYo2pGjN;#2B~M5M4T&en z$%s_nmAZZ+@!ODwd^{sd zQqC|s0_IPl+IfJ=AYNLH3LQ$*!yrw3I7|AAiOSPMD8be9&UpPDN!v&K{@ybRiq`Y$ z%F<{3?${wo++y!o&z*3|klAvMAI@Xnq&p#i^fx75EWIDaDbeTTk?ewpa$JJN0Y!0h zdrXY4atN@%IuVsb_!4`~m?m3>Fgz4y43N&A*8|qHFz^0!USW;(>>8tS{0vny{1KGx zQbx)p^4a?Hk9oAB_zn~0X+i6p!gL)(UyZsp8r8N4E2b5!_I0;b*yZWU#e9Ci`heO# z#i7y{0w9K4i63Z3Q9S60M*~-Gk`DnLWD~dcETP+V8|bE|#RCrk9(?@zKV!gh)$Uvk zW`rzoUFaJL@xmX>>(O)!_r8KGctr;j$C}(Vgwox z6nwlgjEAL!$Sgl7ByH<)<-rolQ{E4u+Iu`{qUfkouYYdUFs_?b9Dl=eI zjbetn_kiNBbk6_g7O`KkA@W)PdS=(-clVp@a`($neDZgL)}A~ad|*~BJ3rg7&uJ{f z^PtN|oKT5d-GeJmWBat#r<#_{Fn*o>5E|5Jtlv`&GV}7+L3Z_2nNzm}#l&k7gYM+) z0{ON-EI;J0(}$NF6CI9{ud9~s#FZA$>j*o|%&EE5Z!3)z)RR@MLVGXsG^=s~&Lak@ zo!-h^{ap$qh59}9&{<7Wf2Hv1Gt>HfrCkpOM$4Z)-Uaf!cn|#{IlM@yCewZd3*quoNFf#k0?uAeYSzfX(p5xNw+ zGbgpl62RvcqCkW#8e3LpPih{Lqi3=8a6jWZDa6=jF`N^^kn9uAKP$vD-VI8%Pf2{{ zrsqD8)!gn+Gh$2<8pfes6QfPgL2_1OSjvb4eXMd)>Dt@mtV|uXkl2bxtBd_M;oNVO zyb61sS4MHI&!OZKN2?}YI0obXo_wIWo@?F%w*UVlar(Dr-P!sUeOcT8P72mKzEV|a zd#9A|(7*6q6hQHo_Po^Ri-z=T*RIjSsj_9)zk#)@kz1=11B)Rb(7d*y@~?O+XoZ%j zSD!lw^w-J5nn%QsfI#;TDi*)S2WTg&pDP0Nb>V*L<8}w6iuVH2u|rnz)=17wM+?}n5BWWH@5=7q3~%fL zT^O`jh}a`!2`loIP=9HO5tFj-zYEmN-Rl(#fWY-@NR(QLPzGR!^5B(YYGu?6{+ zPM%tvCR^RO!#^pUicguWdm`50Y%;Uv06Ypaf`#FUDo|R=2 zh+};g51OlX0)bS4UyowOj)oWSnMh-!ZAe8Kz1E>+l~z{F2;TeSptba;7k6#`fdhy8 zH{I)U*}n%=f30)=IecM08}|L42HCYVb28X4qD@6!Q5Ixi4d6#`5D;_cvo{Qrc$Ai$gsF0|N#_vW8%%?p($x zuZU{r28_jcOm``?E0WieMIofI=ZtyHzeoi%2(Gq|Qj(HZCH5&t=vnl+G|oc-^`YRSIiWpq zKz`w?Ef5{XIwEjviG!lQ?F0Sw_&^$X(z7O;`LRx)fS1ZAxc&w#{e-tLW2ehW8s9aO| z>he)D?C6x!Dd4XE&s$&dYK8uMA3Q7u`s?npy1h*v?sOW#!E^r|s@i?oGQIpVB+hXr z8)AyXc3L*TV*uzGFuZCmR^Kw?uNU%hk%Iw&-gq|+@AdE%2QP78;K`JgXiiA?|0L7k9Aq)jd9FB9@lBvyF{4l9w*7F_x9b99 zfJG;7f6{NwRzi{;X1px>f4Y+vR5?-8CvwhSJ6JH-Vosh4j2&HxF&Ke^ZnQsC{bk?p z9fzMsaf)5jOMsM2dhVfLWZ z1@zuD=c-XhpNr-PtXoIYP7d9Sr@}#Jgg%r=X-$@oAATFjUFdz{7IBNJBb$cg0tM1* zTfZEc6LP+c3{YN6aM4tWKcb>e7im&q+W;L41P$D}+Oao>eJvI?AjLBb*o0r&^XX^i z%d{=4I2v2L*MQ?y{pxKC^p5J29#7Yl!Nu4_Z}$4oni7Ng1T8t{=yV7aYuWkYujENf zbk`pg`>kP~cGg>eecz}}{7kH|Ik-X@6`@k`dZ;1?WrLH%=viSt5zf+27wtS)sQJN3 z<{=xTQOaQSnUf{>l|?2$YoyS~K9^bQ@Zqu0ND&rchl>*Iehfe9dEwQu<}mxZ0PQZ( zD0B-{LkGuOJSn}#+4EQQ*JYd3I|wy%aP~;XMC&cPL6Mexr1+~i^M0jz!`498Ub_Rg zRLR01uLIIqpQ7ciYcNla9I!X!@FYZ?jU|=Ya*6239^7~hQ<4@01D#ZQEg{YuQhrU7 z;Szh_U!nf-rFZtG^o82xzAW~HZP3r~{D}@Sxl!x)vzXqPZpT)&AnJ$l+Cm9rL{0eU zT8E$6lamcChg%(iawFEHI@G>*%GNrP#>Ir@Wif;wTOIuo1&QVYEc&mp&_Aa|rE4v_ zEY2edB!nJH@d8j{S7&C8$*(DmUTRZ)AK1>uKE)K>Mq30ezt|kZ93j3+c=F^Y*oK!MXKgNP28+h^Kw}`oUgR7s zbcD@V9F?1;e?66$|XGAg-OU368~Qsvz}E zTvTNTx*|WVa$w0?=k0eF6b;5)720zyB0;UeEds=yiLV>sFAQ^lQxfxKw6_or#6Di) zF?znNXwZ-M2jGThDvJ*%z}JsUp2w z7j99Woz=vj%8u*?W<=E{s*7Rk6&O-iD?|R&%hLl?a^wqVnq(;L5xd*dvfBma-R(Hi z%g9CZ9Z1$?Wx0cNTBg4ZlbA(vC|jI2m!;E_=P7gj(cdhDU?uY}R+K_E2KyX%+f`j5 zI;||n!n4Ge#}8=5C_HT4V4s=ct2#T@JxU2gDa|;JKT(|+OVaprOV_jEV!+h#O9U4N z_w~*cy#-?qA`7X%V6Y(-jrOiYtFE8s*)L(ltUT&3U9>vMDFxN^DJzBeG#fba&nHi> z^dI9Lu8!S`8!$OpYjv>9?#)s#166AigtBVD`EqT-FW2T+itmmsktHFLw|=ZIwHm$w z^%F(&-rAFs2_zeghat)5SzW)^u>(n}1njDbq2ckXvAj(!s+77}fB06fp?3Z9z%#f_ zgC*rNymh#0tK#>p$OyVf<#=4tQ6JC*FfHJbMvYI>jBjhh-6hWO*A-iU)?%QhKl`&| z29juhTJXHOP8<7Z7WI1`WG&il#+MF}%Ls*$UBM#+G#NZ1{nYI|q%nPqNLDR7%Eds| z=vxQ7=5ApU0@!rEtVZAzAHbGs_DcL~#|W{m+-=kC!x{z_RU<|*-JEVtK_WLwX+F0< z_liD2=vA6HZ^}d{_vw`>dRe-yme<7C;``bTVx3#a`ulpT@WVFCC^Wfj$Y6x7O+XNBAy9!vyQfit*KGMBS`w>S*)>M_R&d zhf8Lp1n+D}JzrCDN~f`6@ei+Y1hx*b($yVXwbY^=nM@a`PgLVuZ0||k zCGuW2lrP?0cuk5L&GmhzLBY?|b$vXCLq_yC6KuJd5!TScLfVi)C^T|qwIsWi`G+^j zk;)}njGIm5j@(ppwkpf$$8)@R(YHOh$E%2)YnAkKHhasgU~t=eYD(s@l>LBu-+p-J zKZ&&e$u+!o=ojn!w9Km}yH-2#yq0}XI@WcY$8POAl17JH>m*Wm!5>_v4Ii{C{4cFoX7$;M=qu;>);;G?us$Poqo)u!wj zeiM@*Tp}t{Rf_$|z0Vtn;X?pN^=8SU9|a~Z47|Y`phqs)Inj30l%YT`k{n<3`B0I6_~gL9(dJq8WD=NNVc$RCQl$aUnW> zYJq+c$bJi-4qmIOF6nepf4^@SkZvl9@u#}>%87m3^W);@6UN-zcC_)N$~p;ERPmh> z7^PAc^!VNFfA}{~*He^0=TQv13f|k_vT9p5vj_>WM~th4O8P+@;$Dt?Jud|MYeVHn z_93ml@4w1Hc7)K4fK#+5Z4J(=3&j{c7eZ*>R!n|x?nGzjjbY876v_iGj~Y=lCvub+ zKWk}#{wjKO#-pH|i5vCbyz{_JsbxD z#op{Z>F7`-#ls!FQd~o;zIF(7;qLFETfcbx_4bH1aI)`u!s!OXwVTnqK^=x;o=*Y& zQ4y>TG5Z(oL1N1S4-Y-#aY9zQoI2R=QjJ0+_S0Wv6n^!MG=D|#0IH)94G6?k;Xcn) z5BAut)YN)O?FrXv0zY!iwhX_R_j_b+ln^k_c2|Y+{2R6(fBIY>(!M8*}7JL5=s{Y;_`upGiu&RLF{^u-fILl4%agrB*d(#r4 zAR{A_xFSnGYqRW|zc^PF;$s-p?M!fT1)!yuF;>a%7()+J(39qjz`ELQuZ9Qpsc0_7 ze$$Jb=T3}T-C(Y*RHdV=tToUm6UgHv;GkU#n&0i`>-#g-W4H^@z++D8UYk{m>RJ%0 zWW;#mj2a{YX4r~&**kPMWQ384wHV!Mu#GfiR6rWXIaMtJ=WIx00lEdY9TmIzgP0@- z`%xNywJH4|;a_ukpQ`_vg!^Owp2o?MUNaV=T21)2M8snE{K#4?uL<@z=~n0c`z6bN zmW);$x=#!jbq0KG5Gpb~1#XbO!M0`_&*y~{-=)d{L z%^ZW(xKIPg7Ko}rDZW$Eou{*_w}YT}j@bEP^BAo(zsj~Qay9}K%ev*>#j~xi_MVX# zH!00#~hWz|7WbJ@fhGlZINBQc5)IrzQh3?5#93RsyG*JS*0Dh%$A`(K|t?P z4H-YCSmf9e3h*uQ2kbHy*_?f64t*$@&$B`_>&O~>vPL(S%aSphrve`Y1C!QobT=S%$TS88fmdXqalXqF>ZzDw{6(oz3HycgFi&Z>=PC@$JH zCo&LsRS1Sb8CdmZ`9Uf~G-L&Rv8@yll;Pl&8_fuGFv^N<$4zb|O3LBk6GZzA0US&~ z@4Uua#~*0+TT*eSYvRgs@+WjbhvCdHF=y<-TMgn3o>PR*&{B#)z&JjJ>`JhAd1)Eq z5IJhpJA2N?$}Jxqh^jpFb)J2|Y{K5#FxwB}=FOhv2KQST??~wBA1PS?51}8*SU@VFBsX&&dSnyr>aL@S}W{iS83gz*@Kk@ z#{h@@I_J*!8?MT=vkN(cjmP}1=f&&-31w?Z(=1?94G!Iheo7Pc#Z|e%F71{R;Ph;xtb*;FJxOx-t8jH0- z-7bX1t;kq`c79n66-`zN$*W`slr2S0I1&Tv7%mZlhO@-LOZFu{?)?kzZ`gf}0t2vX z*7;c7e|xtEx5PDK(_x0~oXkFlQ$rW%{QQ3$N-NLie}f}ubGJp{KiiNJj{$!{xIec( z?B3c?=&%MCgT5ki*&c}Q=IdFHpu3TCFGaVko?RS6o)~iV?19qoU7u zC*ms`!@~q=>2wUF3=hj38O0l{}m05cd_e$BWwc%{!-*KGfMc5oo^ z7#nKrEEZVC0@9fEWfyx>r(ehnfJy&zomv3TkgVkJfO;0bP&b>e!zeJ#&PFZ zU?PLK4l@8WEY8@diG8sUTFa|cbVHs+41~vWhsTC?4shj8%RGOZ-c*CLor50Rg*XZ$$s8Kq@ZDTU&&{cpsBDmqsWfP9|yw>?I2jBA1sduw%H zk=x&L`Am9;2K{xEj$eUB#eWAzBL5j9Io;>Vobu755Ka@uz!-ycnh9S89$ok!WM==e zllFHk8MFRHVXw0Cc+~mo5&yi^RIBc@WudWPDdu{(##TZ4*_o&~azrfBMn*bm{@a78 zg%!hBe2)hM6V#BGt%6t{e?Ef8j%96TeJa8#BtJY;{ANq+k5{i={Tinf2$KSi2v<;kQQ5aB8ha3>P5? zl70vc@YKoUit#o+ii>;94ZEY_#k@g}shana6W_`on{Xo75|a;3jGtcdIv7XKh1fq( zl4X9diEHP00_yKbh2XDV8RA6cYW|~GX=P<)dO^07w6yeUtV*9<{e*4|88c+iidZR? zbQR!1_A?v4_ZppqUoWy8y*DclS*T>7ysu@OPwh?{G8a@MQndSq0)fnJd+QH}ncPhr zlCGS59)*Ry%(gG(Cu%b@G-q-z!B?na32u{MYG9Kc&KdUCEbO*}Dsf4Z zLPgl8mmMQrr)riP955RNvanrmkTewy?fTd%%1T$(R9~$b+1YbblRcxBdAgljoLb9{ zplyWMdwa}jvgd9MM!XHVHW(qj)?a2v#@@)E*o4yUT#8)#Jne3;wRLK=3|Bp8RgR(hDq1`y~uh9cvQ%${#JJ! z^=X-d5WDZT*_+QMt)mzwC99<&-HF+s^k==2_$_X~mnQx_I)))c~ zp~Jx@$&DD3r{RXa!?FxJ$%Pwp2jyfm05#zjprajvpYPzFX7a{0P&(Q^f&sPQ2e(X( zBC6Vf_lnFF7P?labp#|nxR$Dwb=q_7*DbxU3cW}b>W0_utJDvh9r2NkAsQSfJ^C+B z-s80`yp%9QIi^+AC|6Z<&DP~iGMY)Wg7c5XAR@O`tvBOc!L)qbt!%rg zSY9)V`Sm1of#PH>)c=zDOP*ntT`Tuyok5p6>XG0WlDc?E(aFp1lF6bM<#Un$W=ywU zg%&gYXQVG=#HD_g;#%I*Aj-&sl=7+;gCg=Ly=UeqIapuWWO)TPCihuXRO!|NgCOV{ zMqvY~ajycoHbF!*+sD#+Bu9yztBOUgq`(m~6#de!b&o-sVFmQY%}!89b`tznM=dfI zoi|T%v2RpJg#hR4F3W~Lt*GJMhlZWmBc->+9&M#)c4Bkn_C9%O=fQmksQewT@~__W z$5yc&$Ao21|2Zs!pM}0>njat?@G~fAlvmRLi}! zul9f~x4zn;pSf;FJ-hh9ys+c3qAv(!VFY|OTwVn1^_w*TxZ%twSG-w_+{C}S#qQRL zYaL%Z_Od}M+fK}GrQQ+Pt^1glsymEQ^^IsOVpU$P2rw`h>C;@iX6jMoi+4~C(a%z} z0fCNY0#@E%RHnC2B7CtL5N~1T9zgy-?DQnE-&8*y*c~)EAbq^S@O-(;*sV7N`iL(` z^--LQ;%?A=_amCIZ)ANg*$AiJN&EUhJAD6f5Xcl5S-oBVtND7XeW_V5k>a~RJInz) z8S!wz^Dp1yqB0tLql8sKkCVzI#P@v1K@lHu`-1Aoqq>n>DUd+Bcr8|qvxZK#ppwDHeh2T>xwc&lykOKsGh+vZ_*EgI1)#*ouJPx%<%Vt zga9>kVA#LikdwB{BYgbXGj|^q=UzyoQQ|!F@?MaryrS|m_~Jm+Ip6sg=^-2q(11Fy zp}W-wtvdwA$?+=b8p*#Wp1o2$emJk=kPnqDls2@OFssdt@{snTTUXih%&NUQ10Zgj zW{uY8%o-tin!g_e6;(Q$hWqUmY}}c7zr6M3f()qky(!g4>c>WWs z*C1sejXiHlGK#=eJkbI@b^x}8Cm7$NXa?!EKAPr+MXiKZzwEEKk--7Uubh#DfK1%g zT{~J{^iKyL)d^UsdEJ9Mt8@KK|AF~2$Y+;>#%Iw(^f3%s4D>?ENJY6OtH1oMO-=$Q z4N>T^3$%7lvAA0XLwhSDlx(zwNrf*paXj*EfW6-m3pBBzgfF% zVqanz6NNrojCASDY2Ft!h*Qm0B|6EjzVQ{z)6EiYA9o@i8+#u22h; VZC_G(1LzUZO*1Rg>Z|vE`(Jn^5k&w1 literal 0 HcmV?d00001 From 7f6aa9427361a56c63ec6b2b94dcc93b855c69f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 14 Oct 2024 17:54:43 +0200 Subject: [PATCH 2/5] blog/content/post/2024-08-19-secureboot-freebsd.md: review corrections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../post/2024-08-19-secureboot-freebsd.md | 189 ++++++++++-------- 1 file changed, 104 insertions(+), 85 deletions(-) diff --git a/blog/content/post/2024-08-19-secureboot-freebsd.md b/blog/content/post/2024-08-19-secureboot-freebsd.md index cc3698a5c..091eff496 100644 --- a/blog/content/post/2024-08-19-secureboot-freebsd.md +++ b/blog/content/post/2024-08-19-secureboot-freebsd.md @@ -7,7 +7,7 @@ cover: /covers/image-file.png author: filip.lewinski layout: post published: true -date: 2024-08-19 +date: 2024-10-14 archives: "2024" tags: @@ -34,28 +34,33 @@ categories: UEFI Secure Boot is a security feature designed to ensure that only trusted, signed software can execute during the boot process, protecting against malware -and unauthorized code execution. It verifies the signatures of bootloaders and +and unauthorized code execution. It verifies the signatures of bootloaders and kernel binaries against trusted certificates embedded in the firmware. ### Linux -On Linux, Secure Boot is supported using a small, signed bootloader called " -shim," which is pre-signed by Microsoft. Shim loads the GRUB bootloader, which -is verified against a certificate embedded in shim, and GRUB then loads the -Linux kernel, also ensuring it is signed and trusted. +Most distributions took the approach of using a small, signed bootloader called +`shim`, which is pre-signed by Microsoft. Shim loads the bootloader, which +is verified against a certificate embedded in shim, and the bootloader then +loads the Linux kernel, also ensuring it is signed and trusted. This way, they +can sign their kernel themselves, instead of having to ask Microsoft to sign +each kernel update. + +Please see [this blogpost](https://mjg59.dreamwidth.org/20303.html) for more +information on this specific subject. ### UEFI Secure Boot status on FreeBSD - brief summary In short, the [FreeBSD wiki](https://wiki.freebsd.org/SecureBoot) proposes two -stages of Secure Boot implementation. +stages of Secure Boot implementation. -First would be to enable booting the system with Microsoft-signed shim and a -FreeBSD-signed EFI loader, while also offering users to generate their own +First would be to enable booting the system with Microsoft-signed shim and a +FreeBSD-signed EFI loader, while also offering users to generate their own keys and certificates. The second stage would involve having all of the drivers and kernel modules to -be signed and authorized, resulting in a locked-down system akin to Fedora's -implementation. +be signed and authorized, resulting in a locked-down system akin to Fedora's +implementation. As of the time of writing this post, the first stage is mostly complete. It is possible to create and sign a complete EFI executable containing the bootloader @@ -71,24 +76,26 @@ The regular UEFI boot process on FreeBSD is as follows: * `boot1.efi` in turn loads `loader.efi` * Finally, `loader.efi` loads the kernel. -The goal scenario, according to the FreeBSD Foundation, would be that a +The target scenario, according to the FreeBSD Foundation, would be that a cryptographic handshake would verify each transition within the process. That is still under development, and the currently available option is a little less modular. -It is possible to skip `boot1.efi` and combine the loader and the kernel into +It is possible to skip `boot1.efi` and combine the loader and the kernel into one large package, which then can be signed with self-issued keys. The keys are enrolled into Dasharo firmware, which boots the loader-kernel object directly. ## Creating a Secure Boot - ready FreeBSD EFI executable -This guide is about migrating your current installation, not from scratch +Please note that this guide assumes that you have a working FreeBSD +installation that you wish to modify for Secure Boot support. Installation of +the system will not be covered here. ### Determine the loader of choice There are currently several flavors of the `loader.efi` available. The original -one was written in +one was written in [FORTH](https://hackaday.com/2017/01/27/forth-the-hackers-language/). The 14.1 release defaults to a more modern Lua one, the final option being `loader_simp` - a simplified C implementation. This guide will only provide @@ -96,77 +103,78 @@ instructions on using the legacy FORTH loader and the current default. ### Copy the boot filesystem -``` -$ mkdir ~/bootfs -$ mkdir ~/bootfs/boot -$ cd ~/bootfs/boot -$ cp -r /boot/kernel . -$ cp -r /boot/defaults . -$ cp /boot/loader.conf . -$ cp /boot/*.rc . -$ cp /boot/device.hints . -$ cp /boot/loader.help* . +```bash +mkdir ~/bootfs +mkdir ~/bootfs/boot +cd ~/bootfs/boot +cp -r /boot/kernel . +cp -r /boot/defaults . +cp /boot/loader.conf . +cp /boot/*.rc . +cp /boot/device.hints . +cp /boot/loader.help* . ``` #### Lua loader -``` -$ mkdir lua -$ cp -r /boot/lua ./lua +```bash +mkdir lua +cp -r /boot/lua ./lua ``` #### FORTH loader -``` -$ cp /boot/*.4th . +```bash +cp /boot/*.4th . ``` ### Copy the fstab -``` -$ mkdir ~/bootfs/etc -$ cp /etc/fstab ~/bootfs/etc/fstab +```bash +mkdir ~/bootfs/etc +cp /etc/fstab ~/bootfs/etc/fstab ``` ### Create an image of the filesystem -``` -$ cd ~/ -$ makefs bootfs.img bootfs +```bash +cd ~/ +makefs bootfs.img bootfs ``` -determine the size of the boot filesystem. This will determine how much memory +Determine the size of the boot filesystem. This will determine how much memory to reserve in the loader: +```bash +ls -l bootfs.img | awk '{print $5}' ``` -$ ls -l bootfs.img | awk '{print $5}' -``` -add a safety factor of a couple hundred bytes (~512) to this number, and record + +Add a safety factor of a couple hundred bytes (~512) to this number, and record it. ### Build the Loader With Extra Space -This step requires you to have the source code for your system. You might have -checked the `src` component during OS installation, then the `/usr/src/` +This step requires you to have the source code for your system. You might have +checked the `src` component during OS installation, then the `/usr/src/` directory should be already populated. If not, clone the source code from -Github, substituting `14.1` with the release you are currently using: +GitHub, substituting `14.1` with the release you are currently using: -``` +```bash git clone -b releng/14.1 https://git.freebsd.org/src.git /usr/src ``` -Now, recall your bootfs size and substitute ${BOOTFS_SIZE_PLUS_SAFETY} below: +Now, recall your bootfs size and substitute `${BOOTFS_SIZE_PLUS_SAFETY}` below: -``` -$ cd /usr/src/stand -$ make MD_IMAGE_SIZE=${BOOTFS_SIZE_PLUS_SAFETY} +```bash +cd /usr/src/stand +make MD_IMAGE_SIZE=${BOOTFS_SIZE_PLUS_SAFETY} ``` ### Embed bootfs image in the loader.efi -The build results will be available under `/usr/obj`. +The build results will be available under `/usr/obj`. -* If you have chosen to use the legacy FORTH loader, the path to the file that +* If you have chosen to use the legacy FORTH loader, the path to the file that interests you should be similar to `/usr/obj/usr/src/amd64.amd64/stand/efi/loader_4th/loader_4th.efi`. @@ -175,49 +183,49 @@ The build results will be available under `/usr/obj`. Copy the appropriate file and use the available embedding utility: -``` -$ cp /usr/obj/${PATH_TO_LOADER}/loader.efi ~/ -$ /usr/src/sys/tools/embed_mfs.sh ~/loader.efi ~/bootfs.img +```bash +cp /usr/obj/${PATH_TO_LOADER}/loader.efi ~/ +/usr/src/sys/tools/embed_mfs.sh ~/loader.efi ~/bootfs.img ``` You might need to make `embed_mfs.sh` executable: -``` -$ chmod +x /usr/src/sys/tools/embed_mfs.sh +```bash +chmod +x /usr/src/sys/tools/embed_mfs.sh ``` -At this point, `loader.efi` is an UEFI-bootable binary, consisting of the -FreeBSD bootloader and kernel. The last remaining step to Secure Boot +At this point, `loader.efi` is an UEFI-bootable binary, consisting of the +FreeBSD bootloader and kernel. The last remaining step to Secure Boot compatibility is generating keys and signing the binary. ## Signing the binary FreeBSD includes a tool for signing EFI executables - `uefisign`. There is also a utility provided to generate example keys and certificates needed to sign an -executable. +executable. -You can generate a self-signed certificate and use it to sign a binary as +You can generate a self-signed certificate and use it to sign a binary as follows: -``` -$ /usr/share/examples/uefisign/uefikeys testcert -$ uefisign -c testcert.pem -k testcert.key -o signed-loader.efi loader.efi +```bash +/usr/share/examples/uefisign/uefikeys testcert +uefisign -c testcert.pem -k testcert.key -o signed-loader.efi loader.efi ``` As earlier, make sure the script is marked as executable. You should now have a `signed-loader.efi` and a `testkey.cer` file. The loader file is what we're going to be booting from Dasharo, and the `.cer` file is our -custom certificate we need to enroll, so that Secure Boot can verify the +custom certificate we need to enroll, so that Secure Boot can verify the loader's signature against it. ## Testing in QEMU -To spare yourself the trouble of recovering a broken OS installation, it is +To spare yourself the trouble of recovering a broken OS installation, it is recommended to test the binary in an emulated environment. -Make sure you have an up-to-date installation of QEMU on your system, and get -the latest QEMU release of Dasharo +Make sure you have an up-to-date installation of QEMU on your system, and get +the latest QEMU release of Dasharo [here](https://github.com/Dasharo/edk2/releases). ### Launching QEMU with an emulated filesystem @@ -225,25 +233,25 @@ the latest QEMU release of Dasharo Create a directory for the QEMU firmware files, and a directory for the test EFI files: -``` -$ mkdir -p ~/qemu_test/efi +```bash +mkdir -p ~/qemu_test/efi ``` Download `OVMF_CODE_RELEASE.fd` and `OVMF_VARS_RELEASE.fd` and place them in -the `~/qemu_test` directory. Place the `signed-loader.efi` and `.cer` files in +the `~/qemu_test` directory. Place the `signed-loader.efi` and `.cer` files in the `~/qemu_test/efi` directory: -``` -$ cp ~/signed-loader.efi ~/qemu_test/efi/ -$ cp ~/testcert.cer ~/qemu_test/efi/ -$ cd ~/qemu_test +```bash +cp ~/signed-loader.efi ~/qemu_test/efi/ +cp ~/testcert.cer ~/qemu_test/efi/ +cd ~/qemu_test ``` -Run Dasharo firmware in QEMU, mounting the EFI directory as a virtual fat +Run Dasharo firmware in QEMU, mounting the EFI directory as a virtual fat drive: -``` -$ qemu-system-x86_64 -machine q35,smm=on \ +```bash +qemu-system-x86_64 -machine q35,smm=on \ -m 1G \ -global driver=cfi.pflash01,property=secure,value=on \ -drive if=pflash,format=raw,unit=0,file=OVMF_CODE_RELEASE.fd,readonly=on \ @@ -286,7 +294,7 @@ $ qemu-system-x86_64 -machine q35,smm=on \ 1. Navigate to `Device Manager/Secure Boot Configuration` ![secure boot enabled](/img/sboot_enabled.png) -1. Enable `Custom Mode` and enter the `Advanced Secure Boot Keys Management` +1. Enable `Custom Mode` and enter the `Advanced Secure Boot Keys Management` menu again. ![advanced secure boot keys management](/img/advanced_sboot.png) @@ -315,24 +323,25 @@ $ qemu-system-x86_64 -machine q35,smm=on \ ![EFI shell](/img/efi_shell.png) 1. Enter the filesystem and boot the signed-loader.efi - ``` + + ```sh fs0: signed-loader.efi ``` + ![EFI shell commands](/img/ush_commands.png) 1. Say hello to Beastie ![beastie](/img/beastie.png) - ## Testing on hardware -Upon making sure that the loader-kernel object boots properly within an +Upon making sure that the loader-kernel object boots properly within an emulation environment, we can proceed to Secure Booting FreeBSD on hardware. To do that, follow the exact same steps as with emulation, the only differewnce -being that you will now need to upload the certificate to a USB drive and -enroll the certificate from there. +being that you will now need to upload the certificate to a USB drive and +enroll the certificate from there. You will also need to place the `signed-loader.efi` file in your EFI partition, and add it as a custom boot option. @@ -343,13 +352,12 @@ and add it as a custom boot option. * Navigate to `Boot Maintenance Manager/Boot Options/Add Boot Option` * Choose the appropriate disk label. They might look intimidating, but you should be able to find the correct one by looking for a familiar keyword. - If you have an NVME drive for example, there should be an entry with + If you have an NVME drive for example, there should be an entry with `Pci(0x0,0x0)/NVMe`. -* Find the loader-kernel object. It should be located under +* Find the loader-kernel object. It should be located under `//loader.efi` * Name the entry appropriately, confirm and save the changes. - ## Troubleshooting ### Mountroot @@ -365,7 +373,18 @@ to your `/boot/loader.conf`. ## Summary +We have learned how to set up UEFI Secure Boot on FreeBSD, a feature +that ensures only trusted, signed software can run during boot to protect +against malware. FreeBSD's implementation involves two stages: using +Microsoft's signed shim bootloader along with a FreeBSD EFI loader, and later +securing all kernel modules. +As our approach, we have chosen to bundle the bootloader and kernel into a +single EFI executable, then sign it using FreeBSD's uefisign tool. We have also +tested the setup in QEMU before deploying on hardware, ensuring that custom +keys are properly enrolled in Dasharo firmware to enable Secure Boot. + +--- Unlock the full potential of your hardware and secure your firmware with the experts at 3mdeb! If you're looking to boost your product's performance and From 2242ac264c006c9c8095435ccb4ea03f07a9a678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Mon, 28 Oct 2024 17:52:30 +0100 Subject: [PATCH 3/5] blog/content/post/2024-08-19-secureboot-freebsd.md: address review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../post/2024-08-19-secureboot-freebsd.md | 93 +++++++++--------- blog/static/img/efi_shell.png | Bin 17355 -> 0 bytes blog/static/img/qemu_vfat.png | Bin 0 -> 6177 bytes blog/static/img/ush_commands.png | Bin 17945 -> 0 bytes 4 files changed, 48 insertions(+), 45 deletions(-) delete mode 100644 blog/static/img/efi_shell.png create mode 100644 blog/static/img/qemu_vfat.png delete mode 100644 blog/static/img/ush_commands.png diff --git a/blog/content/post/2024-08-19-secureboot-freebsd.md b/blog/content/post/2024-08-19-secureboot-freebsd.md index 091eff496..6d7c5b6d3 100644 --- a/blog/content/post/2024-08-19-secureboot-freebsd.md +++ b/blog/content/post/2024-08-19-secureboot-freebsd.md @@ -1,5 +1,5 @@ --- -title: Secure Booting FreeBSD with Dasharo firmware +title: UEFI Secure Booting FreeBSD with Dasharo firmware abstract: 'Abstract first sentence. Abstract second sentence. Abstract third sentence.' @@ -32,19 +32,19 @@ categories: ## UEFI Secure Boot -UEFI Secure Boot is a security feature designed to ensure that only trusted, -signed software can execute during the boot process, protecting against malware -and unauthorized code execution. It verifies the signatures of bootloaders and -kernel binaries against trusted certificates embedded in the firmware. +UEFI Secure Boot is a security feature designed to provide an infrastructure +for UEFI Image load-time authentication. It authenticates OS Loaders, UEFI +drivers, and applications. The Platform Owner manages the platform's security +policy and can check the integrity and security of a given UEFI Image. ### Linux -Most distributions took the approach of using a small, signed bootloader called -`shim`, which is pre-signed by Microsoft. Shim loads the bootloader, which -is verified against a certificate embedded in shim, and the bootloader then -loads the Linux kernel, also ensuring it is signed and trusted. This way, they -can sign their kernel themselves, instead of having to ask Microsoft to sign -each kernel update. +Mainstream distributions like Ubuntu or Fedora took the approach of using a +small, signed bootloader called `shim`, which is pre-signed by Microsoft. Shim +loads the bootloader, which is verified against a certificate embedded in shim, +and the bootloader then loads the Linux kernel, also ensuring it is signed and +trusted. To put it simply, they can sign their kernel themselves, instead of +having to ask Microsoft to sign each kernel update. Please see [this blogpost](https://mjg59.dreamwidth.org/20303.html) for more information on this specific subject. @@ -52,19 +52,20 @@ information on this specific subject. ### UEFI Secure Boot status on FreeBSD - brief summary In short, the [FreeBSD wiki](https://wiki.freebsd.org/SecureBoot) proposes two -stages of Secure Boot implementation. +stages of UEFI Secure Boot implementation. First would be to enable booting the system with Microsoft-signed shim and a FreeBSD-signed EFI loader, while also offering users to generate their own keys and certificates. The second stage would involve having all of the drivers and kernel modules to -be signed and authorized, resulting in a locked-down system akin to Fedora's -implementation. +be signed and authorized, resulting in a locked-down system, as is now possible +in the upstream +[Linux kernel](https://www.kernel.org/doc/html/v4.17/admin-guide/module-signing.html) As of the time of writing this post, the first stage is mostly complete. It is possible to create and sign a complete EFI executable containing the bootloader -and the FreeBSD kernel, which can be booted using Dasharo firmware Secure Boot. +and the FreeBSD kernel, which can be booted using UEFI Secure Boot. Now, let's analyze what the said executable consists of. @@ -86,11 +87,11 @@ one large package, which then can be signed with self-issued keys. The keys are enrolled into Dasharo firmware, which boots the loader-kernel object directly. -## Creating a Secure Boot - ready FreeBSD EFI executable +## Creating a UEFI Secure Boot - ready FreeBSD EFI executable Please note that this guide assumes that you have a working FreeBSD -installation that you wish to modify for Secure Boot support. Installation of -the system will not be covered here. +installation that you wish to modify for UEFI Secure Boot support. Installation +of the system will not be covered here. ### Determine the loader of choice @@ -195,7 +196,7 @@ chmod +x /usr/src/sys/tools/embed_mfs.sh ``` At this point, `loader.efi` is an UEFI-bootable binary, consisting of the -FreeBSD bootloader and kernel. The last remaining step to Secure Boot +FreeBSD bootloader and kernel. The last remaining step to UEFI Secure Boot compatibility is generating keys and signing the binary. ## Signing the binary @@ -216,7 +217,7 @@ As earlier, make sure the script is marked as executable. You should now have a `signed-loader.efi` and a `testkey.cer` file. The loader file is what we're going to be booting from Dasharo, and the `.cer` file is our -custom certificate we need to enroll, so that Secure Boot can verify the +custom certificate we need to enroll, so that UEFI Secure Boot can verify the loader's signature against it. ## Testing in QEMU @@ -226,7 +227,9 @@ recommended to test the binary in an emulated environment. Make sure you have an up-to-date installation of QEMU on your system, and get the latest QEMU release of Dasharo -[here](https://github.com/Dasharo/edk2/releases). +[here](https://github.com/Dasharo/edk2/releases). This process has been tested +on the [v0.1.0](https://github.com/Dasharo/edk2/releases/tag/qemu_q35_v0.1.0) +release. ### Launching QEMU with an emulated filesystem @@ -237,7 +240,8 @@ EFI files: mkdir -p ~/qemu_test/efi ``` -Download `OVMF_CODE_RELEASE.fd` and `OVMF_VARS_RELEASE.fd` and place them in +Download `OVMF_CODE_RELEASE.fd` and `OVMF_VARS_RELEASE.fd` from +[GitHub](https://github.com/Dasharo/edk2/releases) and place them in the `~/qemu_test` directory. Place the `signed-loader.efi` and `.cer` files in the `~/qemu_test/efi` directory: @@ -262,7 +266,7 @@ qemu-system-x86_64 -machine q35,smm=on \ ### Enrolling the certificate -#### Preparing clean Secure Boot +#### Preparing clean UEFI Secure Boot 1. Press `F2` to enter setup ![setup menu](/img/setup_root.png) @@ -319,17 +323,13 @@ qemu-system-x86_64 -machine q35,smm=on \ ### Booting FreeBSD -1. Wait for Dasharo to boot into UEFI Shell - ![EFI shell](/img/efi_shell.png) - -1. Enter the filesystem and boot the signed-loader.efi - - ```sh - fs0: - signed-loader.efi - ``` - - ![EFI shell commands](/img/ush_commands.png) +1. Enter setup menu +1. Navigate to `Boot Maintenance Manager/Boot Options/Add Boot Option` +1. Choose the `QEMU_VFAT` disk label + ![qemu vfat](/img/qemu_vfat.png) +1. Find the loader-kernel object. It should be located under + `//loader.efi` +1. Name the entry appropriately, confirm and save the changes. 1. Say hello to Beastie ![beastie](/img/beastie.png) @@ -337,7 +337,8 @@ qemu-system-x86_64 -machine q35,smm=on \ ## Testing on hardware Upon making sure that the loader-kernel object boots properly within an -emulation environment, we can proceed to Secure Booting FreeBSD on hardware. +emulation environment, we can proceed to UEFI Secure Booting FreeBSD on +hardware. To do that, follow the exact same steps as with emulation, the only differewnce being that you will now need to upload the certificate to a USB drive and @@ -348,6 +349,9 @@ and add it as a custom boot option. ### Adding a custom boot option +> NOTE: You should always set a Setup Menu password if using UEFI Secure Boot. + Otherwise, nothing keeps a bad actor from simply disabling it ;) + * Enter setup menu * Navigate to `Boot Maintenance Manager/Boot Options/Add Boot Option` * Choose the appropriate disk label. They might look intimidating, but you @@ -382,16 +386,15 @@ securing all kernel modules. As our approach, we have chosen to bundle the bootloader and kernel into a single EFI executable, then sign it using FreeBSD's uefisign tool. We have also tested the setup in QEMU before deploying on hardware, ensuring that custom -keys are properly enrolled in Dasharo firmware to enable Secure Boot. +keys are properly enrolled in Dasharo firmware to enable UEFI Secure Boot. --- -Unlock the full potential of your hardware and secure your firmware with the -experts at 3mdeb! If you're looking to boost your product's performance and -protect it from potential security threats, our team is here to help. -[Schedule a call with us](https://calendly.com/3mdeb/consulting-remote-meeting) -or drop us an email at `contact3mdebcom` to start unlocking the hidden -benefits of your hardware. And if you want to stay up-to-date on all things -firmware security and optimization, be sure to -[sign up for our newsletter](https://newsletter.3mdeb.com/subscription/PW6XnCeK6). -Don't let your hardware hold you back, work with 3mdeb to achieve more! +If you want to deepen your understanding of UEFI Secure Boot and explore Intel +Root of Trust technologies hands-on, consider joining our **DS08MSA: Mastering +UEFI Secure Boot and Intel Root of Trust Technologies** training. This +intensive course provides the operational knowledge and practical skills to +work confidently with security technologies for x86 platforms. You'll learn to +handle hardware assessments, configure UEFI Secure Boot, and provision Root of +Trust for robust system security; for more details, visit our training page at +[3mdeb Training.](https://3mdeb.com/training/) diff --git a/blog/static/img/efi_shell.png b/blog/static/img/efi_shell.png deleted file mode 100644 index 703d9cce6b8cc5d74e2686316a5830883dbfea9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17355 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 bbb1&ff<0Pj;L6SRJrJ-jWN+=B?|%3%G<#}4 literal 0 HcmV?d00001 diff --git a/blog/static/img/ush_commands.png b/blog/static/img/ush_commands.png deleted file mode 100644 index f8f404e2454fc6eced9554fb375485c62c6af2c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17945 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 VZC_G(1LzUZO*1Rg>Z|vE`(Jn^5k&w1 From 98c48b73ebd8b459716a03f29754ee1b39548791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= Date: Thu, 31 Oct 2024 19:21:12 +0100 Subject: [PATCH 4/5] blog/content/post/2024-08-19-secureboot-freebsd.md: review corrections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filip Lewiński --- .../post/2024-08-19-secureboot-freebsd.md | 7 ++++++- blog/static/img/freebsd_boot_process.png | Bin 0 -> 7521 bytes blog/static/img/freebsd_secboot_process.png | Bin 0 -> 4696 bytes 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 blog/static/img/freebsd_boot_process.png create mode 100644 blog/static/img/freebsd_secboot_process.png diff --git a/blog/content/post/2024-08-19-secureboot-freebsd.md b/blog/content/post/2024-08-19-secureboot-freebsd.md index 6d7c5b6d3..2a0da1945 100644 --- a/blog/content/post/2024-08-19-secureboot-freebsd.md +++ b/blog/content/post/2024-08-19-secureboot-freebsd.md @@ -73,6 +73,8 @@ Now, let's analyze what the said executable consists of. The regular UEFI boot process on FreeBSD is as follows: +![bootflow](/img/freebsd_boot_process.png) + * UEFI firmware loads `boot1.efi` * `boot1.efi` in turn loads `loader.efi` * Finally, `loader.efi` loads the kernel. @@ -87,6 +89,8 @@ one large package, which then can be signed with self-issued keys. The keys are enrolled into Dasharo firmware, which boots the loader-kernel object directly. +![bootflow](/img/freebsd_secboot_process.png) + ## Creating a UEFI Secure Boot - ready FreeBSD EFI executable Please note that this guide assumes that you have a working FreeBSD @@ -100,7 +104,8 @@ one was written in [FORTH](https://hackaday.com/2017/01/27/forth-the-hackers-language/). The 14.1 release defaults to a more modern Lua one, the final option being `loader_simp` - a simplified C implementation. This guide will only provide -instructions on using the legacy FORTH loader and the current default. +instructions on using the legacy FORTH loader and the current default. The +process has been tested using FreeBSD 14.1. ### Copy the boot filesystem diff --git a/blog/static/img/freebsd_boot_process.png b/blog/static/img/freebsd_boot_process.png new file mode 100644 index 0000000000000000000000000000000000000000..1f04bde8074304081e112dae95b0214e965051b1 GIT binary patch literal 7521 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 a7}msSTEYrkKVZ!ik(GKR`A+<)-+uwsBpTuX literal 0 HcmV?d00001 diff --git a/blog/static/img/freebsd_secboot_process.png b/blog/static/img/freebsd_secboot_process.png new file mode 100644 index 0000000000000000000000000000000000000000..5098f5b4866bd2286f85f0cd2cd98d975c3f81e6 GIT binary patch literal 4696 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 kDTG3aM768?GN Date: Thu, 14 Nov 2024 11:49:53 +0100 Subject: [PATCH 5/5] blog/content/post/2024-08-19-secureboot-freebsd.md: publish Signed-off-by: Maciej Pijanowski --- .../post/2024-08-19-secureboot-freebsd.md | 10 +++++----- blog/static/covers/freebsd-logo-daemon.png | Bin 0 -> 15222 bytes 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 blog/static/covers/freebsd-logo-daemon.png diff --git a/blog/content/post/2024-08-19-secureboot-freebsd.md b/blog/content/post/2024-08-19-secureboot-freebsd.md index 2a0da1945..203750b1a 100644 --- a/blog/content/post/2024-08-19-secureboot-freebsd.md +++ b/blog/content/post/2024-08-19-secureboot-freebsd.md @@ -1,13 +1,13 @@ --- title: UEFI Secure Booting FreeBSD with Dasharo firmware -abstract: 'Abstract first sentence. - Abstract second sentence. - Abstract third sentence.' -cover: /covers/image-file.png +abstract: 'This blogpost is a very brief introduction to the UEFI Secure Boot. + It focuses on enabling Secure Boot on FreeBSD, on the example of a + device running Dasharo firmware.' +cover: /covers/freebsd-logo-daemon.png author: filip.lewinski layout: post published: true -date: 2024-10-14 +date: 2024-11-14 archives: "2024" tags: diff --git a/blog/static/covers/freebsd-logo-daemon.png b/blog/static/covers/freebsd-logo-daemon.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9fdc262fadad4c2dcc408a3ab74a643acb8e7e GIT binary patch literal 15222 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 literal 0 HcmV?d00001