privacyguides.org/docs/desktop.md
redoomed1 a15754a9ef
feat: Add remaining threat model labels (#2775)
Signed-off-by: kimg45 <138676274+kimg45@users.noreply.github.com>
Signed-off-by: Daniel Gray <dngray@privacyguides.org>
2024-10-24 15:50:07 +10:30

18 KiB
Raw Blame History

title icon description cover
Desktop/PC simple/linux Linux distributions are commonly recommended for privacy protection and software freedom. desktop.webp

Protects against the following threat(s):

Linux distributions are commonly recommended for privacy protection and software freedom. If you don't already use Linux, below are some distributions we suggest trying out, as well as some general privacy and security improvement tips that are applicable to many Linux distributions.

Traditional Distributions

Fedora Workstation

Fedora logo{ align=right }

Fedora Workstation is our recommended distribution for people new to Linux. Fedora generally adopts newer technologies (e.g., Wayland and PipeWire) before other distributions. These new technologies often come with improvements in security, privacy, and usability in general.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Fedora has a semi-rolling release cycle. While some packages like GNOME are frozen until the next Fedora release, most packages (including the kernel) are updated frequently throughout the lifespan of the release. Each Fedora release is supported for one year, with a new version released every 6 months.

openSUSE Tumbleweed

openSUSE Tumbleweed logo{ align=right }

openSUSE Tumbleweed is a stable rolling release distribution.

openSUSE Tumbleweed uses Btrfs and Snapper to ensure that snapshots can be rolled back should there be a problem.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Tumbleweed follows a rolling release model where each update is released as a snapshot of the distribution. When you upgrade your system, a new snapshot is downloaded. Each snapshot is run through a series of automated tests by openQA to ensure its quality.

Arch Linux

Arch logo{ align=right }

Arch Linux is a lightweight, do-it-yourself (DIY) distribution, meaning that you only get what you install. For more information see their FAQ.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Arch Linux has a rolling release cycle. There is no fixed release schedule and packages are updated very frequently.

Being a DIY distribution, you are expected to set up and maintain your system on your own. Arch has an official installer to make the installation process a little easier.

A large portion of Arch Linuxs packages are reproducible1.

Atomic Distributions

Atomic distributions (sometimes also referred to as immutable distributions) are operating systems which handle package installation and updates by layering changes atop your core system image, rather than by directly modifying the system. Advantages of atomic distros include increased stability and the ability to easily roll back updates. See Traditional vs. Atomic Updates for more info.

Fedora Atomic Desktops

Fedora logo{ align=right }

Fedora Atomic Desktops are variants of Fedora which use the rpm-ostree package manager and have a strong focus on containerized workflows and Flatpak for desktop applications. All of these variants follow the same release schedule as Fedora Workstation, benefiting from the same fast updates and staying very close to upstream.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Fedora Atomic Desktops come in a variety of flavors depending on the desktop environment you prefer. As with the recommendation to avoid X11 in our criteria for Linux distributions, we recommend avoiding flavors that support only the legacy X11 window system.

These operating systems differ from Fedora Workstation as they replace the DNF package manager with a much more advanced alternative called rpm-ostree. The rpm-ostree package manager works by downloading a base image for the system, then overlaying packages over it in a git-like commit tree. When the system is updated, a new base image is downloaded and the overlays will be applied to that new image.

After the update is complete, you will reboot the system into the new deployment. rpm-ostree keeps two deployments of the system so that you can easily roll back if something breaks in the new deployment. There is also the option to pin more deployments as needed.

Flatpak is the primary package installation method on these distributions, as rpm-ostree is only meant to overlay packages that cannot stay inside of a container on top of the base image.

As an alternative to Flatpaks, there is the option of Toolbx to create Podman containers which mimic a traditional Fedora environment, a useful feature for the discerning developer. These containers share a home directory with the host operating system.

NixOS

NixOS logo{ align=right }

NixOS is an independent distribution based on the Nix package manager with a focus on reproducibility and reliability.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

NixOSs package manager keeps every version of every package in a different folder in the Nix store. Due to this you can have different versions of the same package installed on your system. After the package contents have been written to the folder, the folder is made read-only.

NixOS also provides atomic updates. It first downloads (or builds) the packages and files for the new system generation and then switches to it. There are different ways to switch to a new generation: you can tell NixOS to activate it after reboot or you can switch to it at runtime. You can also test the new generation by switching to it at runtime, but not setting it as the current system generation. If something in the update process breaks, you can just reboot and automatically and return to a working version of your system.

The Nix package manager uses a purely functional language—which is also called Nix—to define packages.

Nixpkgs (the main source of packages) are contained in a single GitHub repository. You can also define your own packages in the same language and then easily include them in your config.

Nix is a source-based package manager; if theres no pre-built available in the binary cache, Nix will just build the package from source using its definition. It builds each package in a sandboxed pure environment, which is as independent of the host system as possible. Binaries built with this method are reproducible1.

Anonymity-Focused Distributions

Whonix

Whonix logo{ align=right }

Whonix is based on Kicksecure, a security-focused fork of Debian. It aims to provide privacy, security, and :material-incognito: Anonymity{ .pg-purple } on the internet. Whonix is best used in conjunction with Qubes OS.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :simple-torbrowser:{ .card-link title="Onion Service" } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Whonix is meant to run as two virtual machines: a “Workstation” and a Tor “Gateway.” All communications from the Workstation must go through the Tor gateway. This means that even if the Workstation is compromised by malware of some kind, the true IP address remains hidden.

Some of its features include Tor Stream Isolation, keystroke anonymization, encrypted swap, and a hardened memory allocator. Future versions of Whonix will likely include full system AppArmor policies and a sandboxed app launcher to fully confine all processes on the system.

Whonix is best used in conjunction with Qubes. We have a recommended guide on configuring Whonix in conjunction with a VPN ProxyVM in Qubes to hide your Tor activities from your ISP.

Tails

Tails logo{ align=right }

Tails is a live operating system based on Debian that routes all communications through Tor, which can boot on on almost any computer from a DVD, USB stick, or SD card installation. It uses Tor to preserve privacy and :material-incognito: Anonymity{ .pg-purple } while circumventing censorship, and it leaves no trace of itself on the computer it is used on after it is powered off.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-heart-16:{ .card-link title=Contribute }

Warning

Tails doesn't erase the video memory when shutting down. When you restart your computer after using Tails, it might briefly display the last screen that was displayed in Tails. If you shut down your computer instead of restarting it, the video memory will erase itself automatically after being unpowered for some time.

Tails is great for counter forensics due to amnesia (meaning nothing is written to the disk); however, it is not a hardened distribution like Whonix. It lacks many anonymity and security features that Whonix has and gets updated much less often (only once every six weeks). A Tails system that is compromised by malware may potentially bypass the transparent proxy, allowing for the user to be deanonymized.

Tails includes uBlock Origin in Tor Browser by default, which may potentially make it easier for adversaries to fingerprint Tails users. Whonix virtual machines may be more leak-proof, however they are not amnesic, meaning data may be recovered from your storage device.

By design, Tails is meant to completely reset itself after each reboot. Encrypted persistent storage can be configured to store some data between reboots.

Security-focused Distributions

Protects against the following threat(s):

Qubes OS

Qubes OS logo{ align=right }

Qubes OS is an open-source operating system designed to provide strong security for desktop computing through secure virtual machines (or "qubes"). Qubes is based on Xen, the X Window System, and Linux. It can run most Linux applications and use most of the Linux drivers.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :simple-torbrowser:{ .card-link title="Onion Service" } :octicons-eye-16:{ .card-link title="Privacy Policy" } :octicons-info-16:{ .card-link title=Documentation } :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Qubes OS secures the computer by isolating subsystems (e.g., networking, USB, etc.) and applications in separate qubes. Should one part of the system be compromised via an exploit in a :material-target-account: Targeted Attack{ .pg-red }, the extra isolation is likely to protect the rest of the qubes and the core system.

For further information about how Qubes works, read our full Qubes OS overview page.

Kicksecure

While we recommend against "perpetually outdated" distributions like Debian for desktop use in most cases, Kicksecure is a Debian-based operating system which has been hardened to be much more than a typical Linux install.

Kicksecure logo{ align=right }

Kicksecure—in oversimplified terms—is a set of scripts, configurations, and packages that substantially reduce the attack surface of Debian. It covers a lot of privacy and hardening recommendations by default. It also serves as the base OS for Whonix.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-eye-16:{ .card-link title="Privacy Policy" } :octicons-info-16:{ .card-link title=Documentation } :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Criteria

Choosing a Linux distro that is right for you will come down to a huge variety of personal preferences, and this page is not meant to be an exhaustive list of every viable distribution. Our Linux overview page has some advice on choosing a distro in more detail. The distros on this page do all generally follow the guidelines we covered there, and all meet these standards:

  • Free and open source.
  • Receives regular software and kernel updates.
  • Avoids X11, as its last major release was more than a decade ago.
    • The notable exception here is Qubes, but the isolation issues which X11 typically has are avoided by virtualization. This isolation only applies to apps running in different qubes (virtual machines); apps running in the same qube are not protected from each other.
  • Supports full-disk encryption during installation.
  • Doesn't freeze regular releases for more than 1 year.
    • We recommend against "Long Term Support" or "stable" distro releases for desktop usage.
  • Supports a wide variety of hardware.
  • Preference towards larger projects.
    • Maintaining an operating system is a major challenge, and smaller projects have a tendency to make more avoidable mistakes, or delay critical updates (or worse, disappear entirely). We lean towards projects which will likely be around 10 years from now (whether that's due to corporate backing or very significant community support), and away from projects which are hand-built or have a small number of maintainers.

In addition, our standard criteria for recommended projects still applies. Please note we are not affiliated with any of the projects we recommend.


  1. Reproducibility entails the ability to verify that packages and binaries made available to the end user match the source code, which can be useful against potential :material-package-variant-closed-remove: Supply Chain Attacks{ .pg-viridian }. ↩︎