I use KDE. Some use GNOME. Most other options are probably to be left out as X11 is unsafe.
Cosmic is not nearly finished, but will probably be a bit safer, as its in rust, even though not tested.
Then there are window managers like Sway, Hyprland, waymonad, wayfire, etc.
RaspberryPi also has their own Wayland Desktop.
Is every Wayland Desktop / WM equally safe, what are other variables here like language, features, control over permissions, etc?
Made in Rust is not synonym of safety. Every code is as safe as its programmer made it be.
I see you post a lot about security so I just wanted to chime in and say that maybe just use what works well for you because there’s nothing inherently safe, only stuff that is easier to break and stuff that takes more time. The only real way to be safe is to be prudent with what you download and what you do on the internet.
This is not a very good question. If you are concerned about security you need to think about what specifically you are trying to keep safe? Here are some examples of different security scenarios:
- Do you want your computer to be safe when it is stolen?
- Do you want to run lots of native apps from untrusted sources?
- Do you want it to be used by many people and you don’t want them to be able to steal each others secrets?
Each one of those questions has different means of securing the computer. With question 1, it is not so much a matter of desktop environment, rather it has more to do with using full-disk encryption, setting a boot password in UEFI, and always having your lock screen enabled.
With question 2, this is a much more difficult task and you would probably be better off running apps in a VM, or carefully crafting your “Security Enhanced” Linux profile – or not using Linux at all, but using FreeBSD which allows you to run apps in jails.
With question 3, be more careful with filesystem permissions and access control lists, setup your sudoers file properly, and use a desktop environment with better security auditing like Gnome or KDE Plasma.
Never heard of these jails, like bubblejail? Its available on Linux too.
I know the question is vague and highly dependend on Threat model etc. Pre-enabled services, distribution adding stuff to it, SELinux confined user (not working with Plasma at all), xwayland support for keylogging chosen keys (Plasma).
Also GTK is widely used for rust apps, this doesnt exist on Plasma at all, not a problem though as Plasma is not Gnome and simply supports GTK normally.
I don’t think the DE itself matters, but I can recommend using an immutable OS (makes it harder to install malware) and installing flatpak apps only. You can also use software like flatseal to further lock down permissions
I’m starting to think people misunderstand what an “immutable” distro really does…
Could you provide some criteria for what you’re looking for in the way of security? Wayland is far better for security than Xorg, but it’s hard to say how much it varies between wayland compositors. I can’t imagine it would matter too much, but depending on how much security you’re looking for, choosing more minimal software is probably better. Rust can be better for security but I’m not entirely sure how much can really get compromised through poor memory management in a window manager.
Wayland is Wayland. If you use a Wayland compositor, you’re getting a lot of security by virtue of design alone. Things like keyloggers and screenrecorders will not be able to intrude on your session barring vulnerability exploits. I’m not going to touch on the relative vulnerability risk of each environment since a) they’re all relatively new & b) I’ve never implemented Wayland myself
With that being said, here’s what’s not protected by Wayland regardless of the chosen compositor: microphones, webcams, keyrings, and files.
For microphones & webcams, any distro which rolls Pipewire in combination with Wayland will be sufficient to secure these. Pretty much all Wayland environments roll Pipewire so this is only important to consider if you’re running your own customized environment (be sure to disable any pre-existing PulseAudio daemon after setting up Pipewire to close this security hole)
For keyrings, these are handled by your environment’s polkit implementation. Much like Wayland, there are several implementations of polkit and they’re all just about equally secure barring any potential vulnerabilities… Just make sure that you’re using an encrypted database (usually on by default) and that you have it configured to always relock & properly prompt for the unlock key.
For file access, this is actually a core probelm with Linux as a whole – any unsandboxed application you run will be able to read any file that you can read. The solution is to use sandboxed applications whenever possible. The easiest way to achieve this is through using flathub/flatpak applications, since they will always list out and enforce their required permissions on a per-application basis. For non-flatkpak applications, you’ll need to use “jail” environments (e.g.: bubblejail, firejail) in order to artificially restrict application permissions by hand.
Things like keyloggers […] will not be able to intrude on your session
This isn’t really true. Run libinput debug-events
. In most distros users will have access to run this and keylog all input events.
I use Wayland and love it, but keyloggers are not prevented on most common setups.