# Whonix

Whonix (/huːnɪks/, HOO-niks) is a Linux distribution, based on Kicksecure OS, claimed to be security hardened by its developers.
The operating system consists of two virtual machines, a workstation and a Tor gateway running Debian.

## History
### TorBOX (February – July 2012)

The initial concept was announced by Patrick Schleizer under the pseudonym Proper, and later changed to Adrelanos in 2012 before revealing his identity in 2014. His idea was to leverage a virtual machine acting as a transparent proxy to route all Internet traffic through the Tor network. This would have allowed one to mask one's IP address, prevent DNS leaks and avoid having to configure proxy settings for individual applications (or ones who do not support them).
TorBOX was at its beginning only a guide released on the Tor Project website, which also provided some shell scripts. Other contributors provided more information as TorBOX became more popular.
As the project's complexity grew, leak tests became increasingly necessary. Some contributors developed utilities to automate many steps and improve user-friendliness. Nonetheless, maintaining the build instructions for TorBOX while simultaneously updating the shell scripts became too much of a burden for the developers, who decided to drop the manual creation instructions, migrating them and focusing exclusively on the shell scripts.
Even then, complexity was still growing due to additional features or changes in line with security research. On March 25, 2012, with the release of TorBOX's 0.1.3, the programmers agreed to completely automate the build process and improve codability with a change in the developing process, brought by a new website with better capabilities than the old project's wiki.
The TorBOX/aos wiki listed seven released versions. With the advent of the third release, Patrick Schleizer, acting under his pseudonym Proper, released his GPG public-key containing his contact information,
The sixth version saw the first rename of the developer Proper to Adrelanos. However, the former username was maintained on the Tor Website until the seventh and final version.
Development of TorBOX continued until version 0.2.1, release July 16, 2012. The project was renamed the following day.

### Rename into aos (July – September 2012)

Andrew Lewman, the Tor Project Executive Director at the time, privately advised Adrelanos to rename the project, stating that even if TorBOX mentioned on its website about being unaffiliated with the Tor Project, it was still being mistaken by some people. Adrelanos renamed the project aos, acronym of "anonymous operating system".
The choice of the name aos was quickly regretted and described as "suboptimal" by adrelanos. He noted that search engines did not return relevant results due to the name being shared with many other acronyms. A secondary reason was the project's name being non-capitalized, which would have made it incompatible with the grammatical convention of capitalizing a word at the beginning of a sentence.
No new releases were made under the name aos.

### Whonix (September 2012 – present)

Adrelanos posted a request for suggestions on the tor-talk mailing list. His original idea was a name which would have made the purpose of the anonymous operating system clear and at the same time avoided confusion or trademark issues. Nick Mathewson, Tor Project's co-founder, debated the idea of having a self-explanatory name, stating that Tor was "doing okay" even without having a particularly descriptive name.
While many suggestions were sent, Adrelanos concluded the post announcing the new name, Whonix, and publishing a signed message with his final decision on the project's website. He reasoned that the name was unused and would have provided more results in search engines. Whonix is a compound of two words: who ("what person/s") and nix (a German word that means "nothing").
Whonix 0.3.0, never released, was based on Ubuntu. While Ubuntu was praised from a technical perspective, potential trademark issues would have complicated the distribution along the potential revocation of the license from Canonical. Complying with the terms requested by a rebranding would have required work which was beyond the capability of the Whonix developers. Moreover, the release of Ubuntu 12.10 was heavily criticized for the closer integration with the Amazon ecosystem and other privacy issues.
The Whonix project recognized the privacy issues which would have caused a problem with the use of Ubuntu, and recommended against using it even on the host machine.
The first release under the new name of Whonix happened with version 0.4.4, the first one since TorBOX 0.2.1. It was rebased on Debian, which is described by the project as being "a good compromise of security and usability".
The second release, Whonix 0.4.5 was the first to be announced by adrelanos on the tor-talk mailing list.

### Porting to Qubes OS

In August 2014, a user called WhonixQubes announced on the qubes-users mailing list the first successful integration of Qubes OS version R2-rc2 and Whonix 8.2. Joanna Rutkowska, founder of Qubes OS, publicly stated her praise about the efforts.
In June 2015, Rutkowska announced the reception of funding from the Open Technology Fund to further sponsor the porting work of Whonix to Qubes OS. The proposal to OTF was made initially in September 2014, after Rutkowska was approached by Michael Carbone, an employee of Access Now and member of the Qubes OS team who helped with the process.
At the same time, Patrick Schleizer wrote about wanting to personally focus on the development of Qubes-Whonix.
With the release of Qubes OS R3.0 in October 2015, Whonix templates officially became available.

### Relationship with the Tor Project

In August 2020, the Tor Project announced on their edited blog post stating that they can no longer endorse Whonix due to their concerns with patterns of "tolerance for sexism, racism, and other bigotry within the Whonix community" and discouraged the users from getting involved with them.

## Variants
### Standalone

The standard version of Whonix can be used on many different platforms as host-machines, such as Windows, macOS, GNU/Linux and Qubes OS. It is downloadable in formats compatible with the most common hypervisors like VirtualBox, QEMU, KVM and Xen. Whonix is reported to have experimental compatibility with VMware and Hyper-V, though not officially supported.
The VirtualBox packages for both the Workstation and Gateway are distributed with the xfce desktop environment or in a headless "CLI" version. They can be seamlessly combined.

### Qubes OS

Whonix can be configured directly from the Qubes OS' installation menu since version R3.0. Since at least Qubes OS R4.0 it can also be installed at a later time using the management software Salt from dom0.

## Design

An "advanced" configuration uses two physically separate computers, with the Gateway running on the hardware of one of the computers, and the Workstation running in a VM hosted on the second. This protects against attacks on hypervisors at the cost of flexibility. Supported hardware platforms include the Raspberry Pi 3 and unofficial community efforts on the PowerPC workstation hardware, Talos, from Raptor Computing.
On first startup, each VM checks to ensure that the software is up-to-date. On every boot, the date and time are set using the sdwdate secure time daemon that works over Tor's TCP protocol.
The Gateway VM is responsible for running Tor, and has two virtual network interfaces. One of these is connected to the outside Internet via NAT on the VM host, and is used to communicate with Tor relays. The other is connected to a virtual LAN that runs entirely inside the host.
The Workstation VM runs user applications. It is connected only to the internal virtual LAN, and can directly communicate only with the Gateway, which forces all traffic coming from the Workstation to pass through the Tor network. The Workstation VM can "see" only IP addresses on the Internal LAN, which are the same in every Whonix installation.
User applications therefore have no knowledge of the user's "real" IP address, nor do they have access to any information about the physical hardware. In order to obtain such information, an application would have to find a way to "break out" of the VM, or to subvert the Gateway (perhaps through a bug in Tor or the Gateway's Linux kernel).

### Documentation

The Whonix wiki includes a collection of operational security guides for tips on preserving anonymity while online. Additionally, a number of original content guides on which security tools to use, and how to use such tools, have been added over time. This includes how to access the I2P and Freenet networks over Tor.

## Scope

Anonymity is a complex problem with many issues beyond IP address masking that are necessary to protect user privacy. Whonix focuses on these areas to provide a comprehensive solution. Some features include:
* Kloak – A keystroke anonymization tool that randomizes the timing between key presses. Keystroke biometric algorithms have advanced to the point where it is viable to fingerprint users based on soft biometric traits with extremely high accuracy. This is a privacy risk because masking spatial information—such as the IP address via Tor—is insufficient to anonymize users.
* Tirdad – A Linux kernel module for overwriting TCP ISNs. TCP Initial Sequence Numbers use fine-grained kernel timer data, leaking correlatable patterns of CPU activity in non-anonymous system traffic. They may otherwise act as a side-channel for long-running crypto operations.
* Disabled TCP Timestamps – TCP timestamps leak system clock info down to the millisecond, which aids network adversaries in tracking systems behind NAT.
* sdwdate – A secure time daemon alternative to NTP that uses trustworthy sources and benefits from Tor's end-to-end encryption. NTP suffers from being easy to manipulate and surveil. RCE flaws were also discovered in NTP clients.
* MAT 2 – Software and file systems add a lot of extraneous information about who, what, how, when and where documents and media files were created. MAT 2 strips out this information to make file sharing safer without divulging identifying information about the source.
* LKRG – Linux Kernel Runtime Guard (LKRG) is a Linux security module that thwarts classes of kernel exploitation techniques. Hardening the guest OS makes it more difficult for adversaries to break out of the hypervisor and deanonymize the user.