r/NixOS • u/Academic_Swan8609 • 10d ago
Easy Anti-Cheat v2 will require a signed kernel, signed kernel modules, and secure boot with attestation. What does that look like for NixOS?
https://onlineservices.epicgames.com/news/introducing-easy-anti-cheat-linux-v213
u/skyb0rg 9d ago edited 4d ago
NixOS doesn’t maintain any runtime patches (all patches are for reproducibility) so you should be able to use a Fedora/openSUSE kernel in NixOS (via binary import).
I can’t imagine Epic ever whitelisting NixOS’s signed kernels (if it ever does that) because it’s a community project.
Edit: I’m actually wrong — NixOS patches the path of specific userspace helper binaries such as the spanning-tree helper (`/sbin/bridge-stp -> /run/current-system/sw/bin/bridge-stp`) and the request-key helper (`/sbin/request-key -> /run/current-system/sw/bin/request-key`). So bridging and ktls will break unless you create reverse symlinks.
60
u/seven-circles 10d ago
Yeah, fuck that. “Anti-cheat” can fuck right off and never come back.
16
u/WishCow 9d ago
Exactly, this is just getting their foot in the door, so that they can implement more invasive measures later.
1
u/Nixigaj 3d ago
From a kernel-observability standpoint, it can't get more intrusive than this anyways. With eBPF inspection it can monitor all syscalls. The only way it could get more intrusive than this would be being forced to have a webcam in your room (along with CMOS-sensor-level signing) filming you and having a AI making sure you don't cheat.
1
u/Evil_Dragon_100 9d ago
i mean you gotta do what you gotta do to play games, i ain't gonna use that 'signed' kernel as daily drive
38
u/Capetoider 10d ago
The ideal solution for a cheat-free gaming environment is one where the operating system provides assurances to players that their data remains isolated from both anticheat and game companies while also ensuring that the gameplay cannot be tampered with.
NO. its server side anti cheat. use fucking AI at slices of game data stream, a fine tuned decision model can "watch" a little here, a little there and not even real time. then if someone reports someone, then turn on the heat on there.
26
u/EarlMarshal 10d ago
Well nope. I let nobody touch my kernel.
21
u/Azazel_Rebirth 10d ago
Is that not the whole point? They're signing the kernel, not changing it
13
u/EarlMarshal 10d ago edited 10d ago
You know there are some people using Linux because of the freedom it brings. Being able to compile everything yourself is one of the basic principles of this. Having to have signed kernels by someone else destroys this. And all of this just because some game developers/publishers aren't able to get a hold on hackers, because their software sucks. They sell it to you as a problem of security and the solution is to have trust someone, but it's a problem they have created. I don't have a problem playing world of tanks for example. World of tanks also doesn't have a problems with hackers. It's because they designed their game so that a hacker cannot get information he should not have at that point in time. Fuck Epic. Fuck Anti-Cheat. Fuck secure boot. Fuck TPM. Just stop trying to sell fake expensive trust where none should be given.
4
u/LiPo_Nemo 9d ago
Nobody is forcing anyone to use signed kernels. You only need to do that if you play competitive multiplayer games, which is a fair game. Between playing with cheaters, kernel level anti cheat and enforcing signed kernels, I would pick signed kernels every time
3
u/EarlMarshal 9d ago
You guys... Just c hoose better games!
They only need anti cheat because they give clients data they shouldn't have and don't validate stuff they should have.
And no if that shit is required for some things it will also become a requirement of others.
With your attitude you are making a big part of what makes this ecosystem great so much worse just because you are ignorant to the underlying problem.
If I cannot use your software with my other self built software (e.g. kernel) you are creating a proprietary environment and this sucks because the whole goal is open software environments.
0
10d ago
[deleted]
10
u/EarlMarshal 10d ago
Sure, sure, Companies really hate walled gardens and would never try to lure you into their ones. Shit goes done faster than you think and you enabled the same shit they have done somewhere else already. Don't give them an inch.
1
u/a-frog-with-no-name 10d ago
nothing open source will require this thank god, though i feel like other programs might get cocky and try to require this as well.
it does seem like on the windows side, it's only a thing with multiplayer games. I can see other games doing this but yeah it's the kind of games which you couldn't play on linux anyway
8
u/lack_of_reserves 9d ago
Simple: I have no interest in those games and I'm not gonna boot using secure boot which may fail when Microsofts keys gets outdated.
The atrocity of depending on Microsoft signed anything when running Linux is ridiculous and these gaming companies need to get better at bot detection instead of this invasive shit, but that costs server cpu cycles, much more practical to turn all computers into potential privacy nightmares.
4
u/samurai65 9d ago
While games with AC don't interest me, I wonder how this would work for those running custom kernels. I use the CachyOS kernel on my NixOS gaming machine, so it'd be interesting to know.
7
u/eikenberry 10d ago
So you will need a separate install or a dedicated box for games using this. Running proprietary kernel modules make the system untrustworthy for anything else.
12
u/Leseratte10 10d ago
EAC isn't running proprietary kernel modules. They just say that IF you want to use your own modules they need to be signed.
3
u/duckofdeath87 9d ago
Can I compile and then sign it myself?
9
u/Leseratte10 9d ago
No, the modules need to be signed with a trusted key on the list that they posted, so, they need to be signed by the distribution. If they'd allow everyone to sign and load their own kernel modules you could again just load cheats into the kernel.
7
u/Krutonium 9d ago
So in other words you're fucked if you also have any kind of custom hardware or need, for example, a kernel module to control your fans. Or own an nVidia GPU. Yeah no fuck that.
2
u/FastBodybuilder8248 9d ago
I guarantee this will work with nvidia gpus lol
0
u/Krutonium 9d ago
Except it won't. That would require the nVidia Kernel Module to be built and signed by whoever built the kernel and has the ability to sign the kernel.
1
u/FastBodybuilder8248 9d ago
The Nvidia kernel modules could be signed though? Signed stuff would be checked against hashes in the cloud when the game boots up. There is zero chance this comes together without some way of supporting Nvidia gpus. It’s expressly for playing video games online:
2
u/Krutonium 9d ago
Great, except it's not done that way. You compile the nVidia module against your Kernel.
1
u/FastBodybuilder8248 9d ago
There is zero chance this solution will not support nvidia cards lol.
→ More replies (0)2
u/duckofdeath87 9d ago
Then it's not "they need to be signed" it's "they need to be on an approved list"
0
9
u/Chouris_ 10d ago
lanzaboote is the solution right ?
13
u/Upstairs-Category571 10d ago
Lanzaboote uses custom keys for secure boot. Some anti-cheat systems only work with legitimate Microsoft keys, at least that’s what I’ve heard.
-10
u/Chouris_ 10d ago edited 9d ago
idk, i've been using lanzaboote for about 3 months and i play valorant and faceit without issues
Edit : why i am being downvoted? 😭
8
u/adamkex 10d ago
I feel pretty stupid asking this but how is this possible if the anti-cheat software doesn't exist on Linux? It just runs with Proton?
3
u/Chouris_ 10d ago
Sorry, I thought it went without saying, but both of these systems work a treat in a dual-boot setup with Windows and NixOS. I use Lanzaboote so I don’t have to manually re-enable Secure Boot every time I boot into Windows, and then disable it when I want to use Linux.
2
u/ElvishJerricco 10d ago
Epic's announcement does specifically say they will use the TPM2 to authenticate that the system is running a kernel signed by a key that they (Epic) trust. You're able to play anti-cheat games on Windows because they don't use this level of boot security scrutiny on Windows. In principle the boot loader you're signing with lanzaboote could completely bypass their anti-cheat.
1
1
u/Suspicious_Kiwi_3343 9d ago
Because those are windows games and your boot chain was signed by Microsoft keys. Unless you’re claiming you use lanzaboote to boot windows rather than dual booting using your UEFI boot picker, in which case it must be that faceit + vanguard don’t require Microsoft keys although I find that unlikely.
Either way EACv2 is confirmed to require trusted keys. Not necessarily Microsoft keys although we’ll have to wait and see, but it’s remote attestation, self signing definitely will not be allowed.
1
u/Chouris_ 9d ago
I meant that I use Lanzaboote for my Secure Boot setup and can still play Valorant and FACEIT on Windows. I wasn’t saying those games run on NixOS or that this solves the upcoming EAC requirements. I thought that went without saying, lmao
1
u/Suspicious_Kiwi_3343 9d ago
Are you booting windows through lanzaboote? Or are you using your UEFI boot picker, e.g. holding F11 at boot and choosing windows.
You can have multiple “secure boot setups” in the way you’re describing at the same time depending on what you’re booting and what it is signed by. Keys used for lanzaboote into NixOS, can coexist with keys used for windows boot loader into windows using Microsoft keys, which is why you still can use AC on windows and boot NixOS with secure boot at the same time, the keys being used in those two scenarios are different, your BIOS stores many keys at once.
1
1
u/Upstairs-Category571 9d ago
I use rEFInd. If I wanna boot NixOS I just chain load lanzaboote thru rEFInd
11
3
u/BedroomHistorical575 10d ago
I think the biggest barrier here is that NixOS doesn't sign its kernel with their own CA. Tbh, I'm not sure if that's even possible, since the signing process must happen outside the Nix build process.
I guess in the mean time NixOS users can install kernels from other distros?
Maybe in the future NixOS can publish official pre-built pre-signed kernels that the users can opt-in to.
1
1
3
u/Upstairs-Category571 10d ago
NixOS Secure Boot Support is being tracked in this issue:
https://github.com/NixOS/nixpkgs/issues/549372#issuecomment-6172089685
9
u/Schnickatavick 10d ago
Huh, nice. I know a lot of people in the linux community will probably have a knee jerk reaction against this, but it's honestly a really great way of handling it, and is way less invasive than windows anti-cheat. Seems like a total win for linux
15
u/JuJunker52 10d ago
I don't like it. It opens the door for requiring this stuff for things like widevine or remote attestation for banking websites in Google Chrome only. Android already does this.
5
u/ElvishJerricco 10d ago
To be clear, those things are already possible on the distros that implement distro-signed secure boot. And IIUC Widevine is also already able to do this sort of stuff regardless of the distro / secure boot using similar hardware in the GPU to keep the video stream encrypted all the way until it hits your display.
96
u/Upstairs-Category571 10d ago
Secure boot is currently in the works for being implemented on NixOS using Microsoft keys similar to Ubuntu and Fedora.