zlacker

[parent] [thread] 16 comments
1. gchamo+(OP)[view] [source] 2022-03-05 11:35:23
I always use opportunities like this to experiment with whatever workflow I have on Linux to see what state it's at. I just game on Windows and do work on Linux so for me the transition is always quite simple: just install what you want on Steam/lutris and compare performance.

Last time I was starting vanishing of Ethan Carter, but even though it was playable, the experience wasn't free of stutters, whereas windows ran flawlessly.

In any case, it is always nice to jump back and check out how far Linux has come.

replies(1): >>Genbox+m4
2. Genbox+m4[view] [source] 2022-03-05 12:16:32
>>gchamo+(OP)
A stolen code signing certificate affect Linux in the same capacity as Windows.

I'm of course ignoring the fact that a lot of Linux distros still do not have Secure Boot enabled by default, and therefore do not enforce any kernel driver signing policy.

replies(3): >>chousu+M5 >>jart+rg >>gchamo+gn
◧◩
3. chousu+M5[view] [source] [discussion] 2022-03-05 12:28:54
>>Genbox+m4
Huh? I don't know what you consider "Linux distros", but Fedora has had SB working and on by default for quite a while now.
replies(2): >>Genbox+kn >>scns+9y
◧◩
4. jart+rg[view] [source] [discussion] 2022-03-05 13:53:14
>>Genbox+m4
Probably because those distros haven't developed a relationship with Microsoft. I'm reasonably certain that in order to distribute Linux on SB, you have to build the kernel as a Windows executable and get MS to sign it.
replies(1): >>Genbox+Mo
◧◩
5. gchamo+gn[view] [source] [discussion] 2022-03-05 14:48:46
>>Genbox+m4
Aren't Linux packages signatures verified upon delivery with gpg keys? Whereas windows verifies them upon installation.

Can the same certificate be used to cause supply chain attacks?

replies(1): >>Genbox+ir
◧◩◪
6. Genbox+kn[view] [source] [discussion] 2022-03-05 14:49:46
>>chousu+M5
Sure, Fedora has Secure Boot. So does Ubuntu, Debian and FreeBSD. According to DistroWatch[1], 26 Linux distros out of 927 have built-in support for Secure Boot, so I stand by what I said.

[1] https://distrowatch.com/search.php?pkg=shim&relation=lessequ...

◧◩◪
7. Genbox+Mo[view] [source] [discussion] 2022-03-05 15:00:30
>>jart+rg
Most manufactures decided to include Microsoft's signing key into firmware. That is not something Microsoft is in control of. Pre-loaded (factory) keys are much harder for Linux as it seems every distro wants their own signing key, and from an administration perspective, that is not easy to keep track of.

Everyone can load their own signing keys into firmware. However, if you want something that "just works", Microsoft signs a package called Shim[1] that can be loaded on most computers due to the pre-loaded keys.

A relationship with Microsoft is not needed in any way or form to have Secure Boot.

[1] https://launchpad.net/ubuntu/+source/shim

replies(2): >>jart+aW >>hulitu+2L3
◧◩◪
8. Genbox+ir[view] [source] [discussion] 2022-03-05 15:19:39
>>gchamo+gn
Verification of packages is something that is controlled by the distro, not the Linux kernel. However, if we are talking about drivers (modules), then they are verified at load time in both operating systems.

As for Windows packages, there are several "package" systems:

- AppInstaller (winget): A SHA256 hash is included in the application manifest. I might be wrong, but I do not believe the manifests are signed afterwards. Packages are verified upon installation.

- MSIX packages: They are signed and timestamped with a publisher certificate. They are verified upon installation.

- Executables: Not really packages as such, but PS1 scripts and .EXE executables support Authenticode signatures. They are verified upon execution.

As for Linux, there are several package systems:

- DPKG/DEB: Built-in support for verification with hashes generated at install time. Packages can be GPG signed for stronger security, but it is disabled by default. Repository metadata is often GPG signed.

- RPM: Like DEB above it supports verification with MD5. It also has GPG integration. I believe it is disabled by default as well.

Linux does unfortunately not have support for signatures of ELF executables.

replies(1): >>hulitu+eK
◧◩◪
9. scns+9y[view] [source] [discussion] 2022-03-05 16:12:31
>>chousu+M5
I bet he meant the small ones instead of major distros i.e. Red Hat/Fedora, Ubuntu, SUSE.
◧◩◪◨
10. hulitu+eK[view] [source] [discussion] 2022-03-05 17:16:10
>>Genbox+ir
> Linux does unfortunately not have support for signatures of ELF executables

Fortunately. This whole pseudo security brings nothing.

People scream about right to repair. When certificate is revoked or has expired your computer will stop working. It's that simple.

replies(1): >>Genbox+bG1
◧◩◪◨
11. jart+aW[view] [source] [discussion] 2022-03-05 18:16:56
>>Genbox+Mo
What's stopping the bad guys from using that shim to boot their own code? Is there a date when the shim expires and Microsoft has to renew it?
replies(1): >>Genbox+eE1
◧◩◪◨⬒
12. Genbox+eE1[view] [source] [discussion] 2022-03-05 23:09:20
>>jart+aW
Well, it is a chain of trusted components that are responsible for loading the next component in the chain.

UEFI with Secure Boot enabled will only load the stage 1 bootloader if it is signed with the firmware trusted certificate. We don't know if this component is malicious, we just know it is signed by the certificate.

The stage 1 bootloader (shim) will then be responsible for loading the next component (stage 2 bootloader). It will only boot the component if it is signed with a trusted (chosen by the user/distro) certificate.

The bad guys can't insert themselves into this process, as they either have to be trusted by the UEFI firmware (protected by an owner password), signed by Microsoft (to replace the shim) or be signed by the distro's certificate.

As long as the chain is unbroken it is secure.

replies(1): >>jart+CH1
◧◩◪◨⬒
13. Genbox+bG1[view] [source] [discussion] 2022-03-05 23:24:00
>>hulitu+eK
It is not pseudo security. A secure booted system that can only load signed software is the optimal solution for preventing unauthorized code from running. iOS on iPhone/iPad is a great example where you can be sure nobody can insert themselves into the OS unless it is signed by Apple.

There is nothing in Secure Boot that prevent people from running their own software. You can update the Secure Boot DB/DBX with whatever you want. Yes, the certificates expire - my computer was bought 4 years ago and Microsoft's UEFI CA will expire in 4 years. At that point I will probably have bought a new computer, but if I have not, I can update the certificate to the new one they released.

Secure Boot is very much an improvement over non-secure booting, and Authenticode signing is an extension of that security to enable signed-only software to run.

replies(2): >>hulitu+UB2 >>JetSpi+mZl
◧◩◪◨⬒⬓
14. jart+CH1[view] [source] [discussion] 2022-03-05 23:34:52
>>Genbox+eE1
That's only possible if Microsoft signs a public key the distro owner controls and then embeds it inside a special build of their shim. In that case the distro owner can distribute any Linux Kernel they want, but they need authorization from Microsoft beforehand. Therefore you can't publish a UEFI Linux desktop without being in league with the adversary.
◧◩◪◨⬒⬓
15. hulitu+UB2[view] [source] [discussion] 2022-03-06 10:54:45
>>Genbox+bG1
> It is not pseudo security. A secure booted system that can only load signed software is the optimal solution for preventing unauthorized code from running. iOS on iPhone/iPad is a great example where you can be sure nobody can insert themselves into the OS unless it is signed by Apple.

Pegasus.

◧◩◪◨
16. hulitu+2L3[view] [source] [discussion] 2022-03-06 20:37:43
>>Genbox+Mo
> Most manufactures decided to include Microsoft's signing key into firmware. That is not something Microsoft is in control of.

AFAIK if a manufacturer wants to sell Windows PC, it has to support secure boot.

◧◩◪◨⬒⬓
17. JetSpi+mZl[view] [source] [discussion] 2022-03-12 13:12:40
>>Genbox+bG1
It is pseudo-security. SElinux and "mount noexec" already provide sysadmins with control over all the code that can be executed on a machine.
[go to top]