Whonix ™ and Tor Limitations
Whonix ™ comes with many security features . Whonix ™ is Kicksecure ™ security hardened by default and also provides extensive Documentation including a System Hardening Checklist. The more you know, the safer you can be.
Whonix ™ developers have done their utmost to provide solid tools which protect online privacy, but no perfect solution exists to the complex anonymity problem. Before deciding whether Whonix ™ is the right platform to use, it is crucial that each individual understands the limitations of the tools offered and how to make best use of them.
Separation of Different Contextual Identities
It is usually inadvisable to use the same Whonix-Workstation ™ to perform more than one task, or when using two (or more) contextual identities that must be kept separate from each other. For example, it is poor operational security to use the same Whonix-Workstation ™ to check email via Tor, while simultaneously publishing an anonymous document.
The first reason is Tor tends to reuse the same circuits, for example during the same browsing session. The Tor exit relay of a circuit knows both the destination server (and possibly the content of the communication if not encrypted) and the address of the previous relay it received the communication from. This makes it easier to infer that several browsing requests which took place on the same circuit are possibly correlated and originate from the same person. Global adversaries described later are in the perfect position to undertake this form of correlation analysis.
Secondly, if Whonix ™ or one of its applications has a security hole or is misused, then information might leak from the Whonix-Workstation ™. That could reveal that the same person was behind the various activities conducted inside the Whonix-Workstation ™.
To address both threats, better isolation of new identities is required on every occasion they are used. It is recommended to conduct one activity at a time, and implement one or more of the following solutions: 
Nyx's "New Identity" button sends the protocol command "signal newnym" to Tor's ControlPort. A new Tor exit relay and a new IP address is likely, but this is not guaranteed.
Using this feature, Tor may only have replaced the middle relay while using the same Tor exit relay. Additionally, "signal newnym" will not interfere with long-lived connections like an IRC connection. Apart from the Tor circuits, other types of information can reveal past activities, for example the cookies stored by the browser. Therefore, this arm feature is not a solution for properly separating contextual identities.
Protection Against Social Engineering
Whonix ™ does not protect against social engineering attacks. These attacks rely on human cognitive biases and trick people into revealing passwords or other sensitive information that allows the compromise of a target system's security. 
Other examples of social engineering include convincing someone to send a copy of logs or other information from the Whonix-Gateway ™ or host operating system machine. In all cases, after trust has been established between the attacker and the victim, and sufficient information has been gathered, an exploit will be executed to perform harmful actions such as stealing personal or financial information, sabotaging the target's system, deanonymizing the individual and so on. 
The best tools in maintaining anonymity are the knowledge that comes from research and experience, and healthy skepticism towards scenarios that pose potential security threats.
Dedicated wiki page: Social Engineering.
Protection Against External Threats or User Mistakes
Obviously, Whonix ™ cannot protect against external threats like people looking over the user's shoulder or gaining physical access to the machine in order to subvert the anonymity features of Tor and Whonix ™.
Neither can Whonix ™ prevent people from shooting themselves in the foot, leading to inadvertent deanonymization. It is strongly encouraged to read the Tips on Remaining Anonymous page to learn about non-technical steps to stay anonymous when using Tor, Tor Browser and Whonix ™. This list considers:
- Safe use of social networks.
- (Mobile) phone verification.
- Personal websites and links.
- Accounts previously used without Tor.
- Banking / financial provider accounts.
- Modes of anonymity.
- The risks posed by identifying data and online identities.
- When to use bridges.
- How to protect sensitive data and communications.
- Safe Tor networking considerations.
- The danger of random files and links.
- The difference between anonymity and pseudonymity.
- The danger of mixing clearnet and Tor simultaneously.
- The consequences of changing settings.
- Server connections.
Only Whonix-Workstation ™ is Designed for Anonymous Activity
The host operating system -- the operating system running the virtualizer, and the system which was used before downloading Whonix ™ -- is not "torified". Anonymous tasks should never be performed on the host system.
The Whonix-Gateway ™ is solely designed to run Tor and act as a firewall. Any "anonymous" activities should not be conducted on the Gateway. Further, in most cases there is no need to modify settings on the Whonix-Gateway ™, except for minor modifications like setting up bridges which is already documented.
A man-in-the-middle attack (MitM) is a where an attacker makes independent connections with two parties and secretly relays (and potentially alters) messages between them. This is a form of active eavesdropping, since the two parties think they are communicating directly with each other and are unaware the conversation is being controlled by the attacker. 
Figure: Illustration of a MitM Attack
While using Tor, MitM attacks can still happen between the exit relay and the destination server. The exit relay itself can also act as a man-in-the-middle. For an example of such an attack see MW-Blog: TOR exit-node doing MITM attacks. It is worth reiterating that protecting against these attacks requires end-to-end encryption and taking extra steps to verify the server's authenticity.
Normally a server's authenticity is automatically verified by the browser using SSL/TLS certificates which are checked against a set of recognized certificate authorities (CAs). If a security exception message appears like the figure below, then this might constitute a MitM attack. The warning should not be bypassed unless there is another trusted way of checking the certificate's fingerprint with the people running the service.
Figure: An Untrusted Connection
Mozilla has an educational resource to help determine if a connection to a website is secure. The Electronic Frontier Foundation (EFF) also has an excellent interactive illustration that provides an overview of HTTP / HTTPS  connections with and without Tor, and what information is visible to various third parties.
The Fallible Certificate Authority Model
Unfortunately, the vast majority of Internet encryption relies on the CA model of trust which is susceptible to various methods of compromise. Ultimately, encryption in and of itself does not solve the authentication problem in electronic communications, as seen in the actions of advanced adversaries who have targeted and undermined this central pillar upon which the Internet relies.
For example, Verisign was hacked successfully and repeatedly in 2010, with the likely conclusion being the attackers were able to forge certificates for an unknown number of websites.
A more glaring example was the confirmation by Comodo on March 15, 2011, that a user account with an affiliate registration authority had been compromised. This is a privacy and security disaster since Comodo is a major SSL/TLS company and the breach led to the creation of a new user account that issued nine certificate signing requests for seven domains: mail.google.com, login.live.com, www.google.com, login.yahoo.com (three certificates), login.skype.com, addons.mozilla.org, and global trustee. 
Later in 2011, DigiNotar, a Dutch SSL certificate company, incorrectly issued certificates to a malicious party or parties. It later emerged that DigiNotar was apparently compromised months before, or perhaps even in May of 2009, if not earlier. Rogue certificates were issued for multiple domains, including: google.com, mozilla.org, torproject.org, login.yahoo.com and many more. 
Considering the frequency of attacks and the passage of time, there is a distinct possibility that a MitM attack might occur even when the browser is trusting a HTTPS connection. 
Depending on your personal circumstances, there are alternatives to SSL/TLS which can be considered. Unfortunately, none of them can be used as a drop-in replacement for SSL/TLS. Tools providing connection security include: Monkeysphere, Convergence, Perspectives Project and Tor onion services. 
Using Tor does not magically solve the authentication problem. Tor's distinct advantage is that by providing anonymity, it is more difficult for attackers to perform a MitM attack with a rogue SSL/TLS certificate that is targeted at just one specific individual. However, the disadvantage of Tor is that it is easier for people or organizations running malicious Tor exit relays to perform a large scale MitM attempt. Further, malicious exit nodes could perform attacks targeted at a specific server, and especially those Tor clients who happen to utilize the service.
In all cases, it is advised to use additional message encryption for email, chats and so on. It is unwise to rely on SSL/TLS alone. Relevant tools that may be useful include:
Tor Network Attacks
Tor is not invulnerable to attacks. Several techniques are already used for deanonymization and Whonix ™ users can be similarly affected -- some of these attacks are described in further detail below. Interested readers can also refer to the Speculative Tor Attacks entry for a more comprehensive list of potential attacks against the Tor client, servers and/or network.
A confirmation attack targets the broader Tor network itself, usually via multiple malicious Tor nodes. In this instance, the adversary controls or observes relays at both ends of the Tor circuit (the guard and exit relays). Comparisons are made of traffic timing, volume and other characteristics to confirm the relays share the same circuit. Since the first entry guard knows the user's IP, and the last exit relay knows the destination/resource accessed (like a webpage), this leads to deanonymization. 
In a 2009 blog post, The Tor Project described this threat of deanonymization under specific conditions:
The Tor design doesn't try to protect against an attacker who can see or measure both traffic going into the Tor network and also traffic coming out of the Tor network. That's because if you can see both flows, some simple statistics let you decide whether they match up.
That could also be the case if your ISP (or your local network administrator) and the ISP of the destination server (or the destination server itself) cooperate to attack you.
Tor tries to protect against traffic analysis, where an attacker tries to learn whom to investigate, but Tor can't protect against traffic confirmation (also known as end-to-end correlation), where an attacker tries to confirm a hypothesis by monitoring the right locations in the network and then doing the math.
Adversaries conducting traffic analysis are able to discover a varying amount of user information, depending on the position(s) they are occupying in the network. The following observations reveal various information, in increasing order: 
- Observing the client-to-guard-node network path.
- Controlling the guard relay, as individual circuits can be examined.
- Observing the paths to the guard relay and from the Tor exit relay.
- Controlling the guard and exit relays (or client guard and onion service guard).
- Controlling both ends of the communication, and able to inject and manipulate traffic patterns.
Notably, The Tor Project has recently highlighted research that has identified a number of new, low cost, website traffic (fingerprinting) analysis attacks and potential mitigations; see Website Oracles for further information.
Advanced adversaries are capable of identifying the guard node(s) in use by an onion service or Tor client. Many connections are made to the onion service, forcing it to create multiple circuits until one of the adversary's nodes is chosen as the middle relay (next to the guard). A traffic analysis side channel then confirms the relay is next to the onion service, confirming the identity of the service's guard node. The guard node is then compromised, forced or surveilled to discover the actual IP address of the onion service or client. 
Tor has implemented some defenses against limited adversaries that can gather traffic statistics from Internet routers along the path to the guard node, and is planning defenses against website traffic fingerprinting by guard node adversaries. However, a number of other attacks remain viable at present such as end-to-end correlation attacks, alternate guard node exploits, circuit fingerprinting attacks and so on.
If documents are saved inside Whonix ™, they will not be encrypted by default. This is why it is recommended to apply full disk encryption on the host to protect sensitive data.
Documents created in Whonix ™ may also have specific file signatures that reveal use of the platform. This issue is currently being further investigated.
Numerous file formats store hidden data or metadata inside of the files. For example, text processors or PDF files could store the author's name, the date and time of file creation, and sometimes even parts of the file's editing history. The extent of hidden data depends on the file format and the software that is used.
Image file formats like TIFF and JPEG are some of the worst offenders. For instance, when these files are created by digital cameras or mobile phones, they contain a metadata format called Exif whose defined tags can include:
- Date and time information.
- Occasionally GPS coordinates of the picture.
- Camera settings: camera model and make (including the serial number), orientation (rotation), aperture, shutter speed, focal length, metering mode and ISO speed information.
- A thumbnail for previewing the picture in file managers, on camera, or in photo editing software. Image processing software tend to keep Exif data intact.
- Copyright information.
Notably, the Internet is full of cropped or blurred images where the Exif thumbnail still contains the full original picture. Specialist software is often required to remove Exif tags before safely publishing images. 
Be aware that Whonix ™ does not clear file metadata automatically. However, Whonix ™ comes bundled with MAT2 -- the Metadata Anonymisation Toolkit v2 -- as part of the design goal to help protect users.
Subject: and other Header Fields of Encrypted Emails
This weakness is not related to Whonix ™ or the OpenPGP protocol; it is for backwards compatibility with the original SMTP protocol. Unfortunately, no RFC standard exists yet for Subject line encryption.
TODO: investigate if this situation has improved since Thunderbird native OpenPGP support.
Those who require OpenPGP encryption with a suitable email client are recommended to use Thunderbird (Mozilla's email client), which includes a graphical front-end for using the GnuPG ("GPG") encryption program.
Recent research has revealed that coders have a unique fingerprint similar to linguistic expressions. Machine learning techniques are capable of de-anonymizing code samples, using "abstract syntax trees" that analyze the underlying structure. For instance, a 2017 study found that GitHub coders could be identified with 99 per cent accuracy based on small and incomplete source code fragments. To date, attempts to obfuscate coding style have failed.
The implication is that "anonymous" developers of open-source projects might be identified by prior non-anonymous code contributions. It is likely that advanced adversaries will use this capability to target and de-anonymize developers of popular anonymity and censorship circumvention tools.
Tip: The warning below equally applies to regular Whonix ™ wiki contributors and forum participants. 
Whonix ™ does not obfuscate an individual's writing style, which is easily fingerprinted based on syntax and other grammatical idiosyncrasies. Unless precautions are taken, stylometric analysis based on linguistic characteristics is a credible threat. Research suggests only a few thousand words (or less) may be enough to positively identify an author, and there are a host of software tools available to conduct this analysis.
Whonix ™ Signature
Developers have designed Whonix ™ to be indistinguishable from standard use of the Tor network. However, there may be unknown fingerprinting methods available to ISPs and other network adversaries which identify Whonix ™ users. If this is a legitimate concern, then investigate optional configurations which can hide Tor / Whonix ™ use from the ISP.
Tor promotes online anonymity, while Whonix ™ automatically forces desktop-wide activities through Tor (along with many extra security features). However, neither Tor or Whonix ™ are one-click solutions for impregnable security or absolute anonymity.
If weak passwords (passphrases) are used they can be easily determined by brute-force attacks, whether or not Whonix ™ is installed. In essence, attackers systematically try all passwords until the correct one is found, or attempt to guess the key which is created from the password using a key derivation function (an exhaustive key search). This method is very fast for short and/or non-random passwords.
Compromised Hardware or Advanced Malware
Virtualizers like Qubes, VirtualBox and KVM cannot absolutely prevent the compromise of hardware, nor detect advanced malware. Running all activities inside VMs is a very reasonable approach. However, this only raises the bar and makes it more difficult and/or expensive to compromise the whole system. It is by no means a perfect solution. As one Google Project Zero researcher noted recently when demonstrating a VM escape in KVM: 
The bug and its exploit still serve as a demonstration that highly exploitable security vulnerabilities can still exist in the very core of a virtualization engine, which is almost certainly a small and well audited codebase. While the attack surface of a hypervisor such as KVM is relatively small from a pure LoC perspective, its low level nature, close interaction with hardware and pure complexity makes it very hard to avoid security-critical bugs. While we have not seen any in-the-wild exploits targeting hypervisors outside of competitions like Pwn2Own, these capabilities are clearly achievable for a well-financed adversary. I’ve spent around two months on this research, working as an individual with only remote access to an AMD system. Looking at the potential ROI on an exploit like this, it seems safe to assume that more people are working on similar issues right now and that vulnerabilities in KVM, Hyper-V, Xen or VMware will be exploited in-the-wild sooner or later.
Whonix ™ cannot provide protection if the system's trusted computing base has been compromised by:
- Physical access and the installation of untrusted pieces of hardware (like a keylogger);
- Firmware Trojans (including BIOS/UEFI attacks); or
If the host system is affected by malware, firmware trojans or malicious hardware components, then every Whonix ™ virtual machine, Tor process and communication thought to be anonymous is similarly compromised.
In the event a system compromise is strongly suspected or confirmed, the ultimate goal is to re-establish a trusted, private environment for future activities -- see Compromise Recovery for techniques to recover from host and/or Whonix ™ VM infections.
The security of the Whonix ™ platform is itself reliant upon the security of the host. Naturally, a majority are likely to run Whonix ™ on top of the every day operating system without making any additional changes. However, safety is materially improved by using a dedicated host operating system solely for Whonix ™ VMs. For better security, this system should be configured on a computer bought solely for Whonix ™ activities, and which has never been used before.
There are a number of recommendations relevant to host OS security in the following Documentation sections:
- Basic Security Guide.
- Advanced Security Guide.
- Computer Security Education.
The System Hardening Checklist also provides a quick and handy reference guide for specific areas of interest.
Avoid Non-Freedom Software
For system privacy, freedom and security it is strongly advised to not install proprietary, non-freedom software. Instead, use of Free Software is recommended. As Free Software pioneer Richard Stallman puts it:
- "... If you run a nonfree program on your computer, it denies your freedom; the main one harmed is you. ..."
- "Every nonfree program has a lord, a master -- and if you use the program, he is your master.“
- "To have the choice between proprietary software packages, is being able to choose your master. Freedom means not having a master. And in the area of computing, freedom means not using proprietary software."
Nonfree (proprietary) software is very often malware (designed to mistreat the user). Nonfree software is controlled by its developers, which puts them in a position of power over the users; that is the basic injustice. The developers and manufacturers often exercise that power to the detriment of the users they ought to serve.
This typically takes the form of malicious functionalities.
Some malicious functionalities are mediated by backdoors.
Backdoor: any feature of a program that enables someone who is not supposed to be in control of the computer where it is installed to send it commands. (Note by editor: "Most times without user awareness or consent.")
Open Source software like Qubes, Linux and Whonix ™ is more secure than closed source software. The public scrutiny of security by design has proven to be superior to security through obscurity. This aligns the software development process with Kerckhoffs' principle - the basis of modern cipher-systems design. This principle asserts that systems must be secure, even if the adversary knows everything about how they work. Generally speaking, Freedom Software projects are much more open and respectful of the privacy rights of users. Freedom Software projects also encourage security bug reports, open discussion, public fixes and review.
Possible risks associated with using non-freedom software:
- Vendor lock-in and abandonware: Your data is saved in obfuscated formats that depend on a closed software package. If the company goes out of business or they decide to change the format down the line, you are held hostage to these companies and need to pay up to access it. In contrast, FLOSS (Free/Libre and Open Source Software) uses open, documented file formats and popular abandoned software projects have a much higher chance of finding a new developer.
- DRM: Publishing companies treat their customers like thieves and severely limit what they can do with media they purchased.
- Malware: Potential advanced malware in the software itself that is not easily reversed or discovered.
- Freedom Restrictions and Privacy Invasion: No ability to change or disable undesirable privacy violating features like telemetry because of licensing restrictions and absence of source code. It is extremely rare that anti-features are added by FLOSS developers because it is antithetical to the community culture and easily remedied if discovered by others who can fork the software and fix it.
- Privacy Breaches: Proprietary software is notorious for harvesting user data and monetizing it with advertisement networks which themselves have been used as malware delivery networks by malicious customers.
- Third Party Dependencies: Software that depends on third party servers could access identifying information for payments or logins linked to real identity.
- More defects per line: While FLOSS software isn't automatically security bug free, it objectively has less defects per lines of code compared to proprietary software.
Even as a non-developer, a user's attention, suggestions and testing is a valuable public service and further strengthens the libre alternatives which will stay available to everyone indefinitely. It is in the user's interest to support FLOSS and decentralization to keep free computing alive and to curtail abusive monopolist practices and influence. Even if the FLOSS package's functionality is lacking in the short-term (this is very rare nowadays with FLOSS leaving proprietary in the dust), these can always be improved, but the drawbacks of proprietary software listed above are intrinsic to their mode of development and is not something that can change for the better.
Related: Why Whonix ™ is Freedom Software
Table: Finding Backdoors in Freedom Software vs Non-Freedom Software
|Non-Freedom Software (precompiled binaries)||Freedom Software (source-available)|
|Original source code is reviewable||No||Yes|
|Compiled binary file can be decompiled into disassembly||Yes||Yes|
|Regular pre-compiled binaries||Depends ||Yes|
|Obfuscation (anti-disassembly, anti-debugging, anti-VM)  is usually not used||Depends ||Yes |
|Price for security audit searching for backdoors||Very high ||Lower|
|Difference between precompiled version and self-compiled version||Unavailable ||Small or none |
|Reverse-engineering is not required||No||Yes|
|Assembler language skills required||Much more||Less|
|Always legal to decompile / reverse-engineer||No  ||Yes |
|Possibility of catching backdoors via observing incoming/outgoing Internet connections||Very difficult ||Very difficult |
|Convenience of spotting backdoors||Lowest convenience ||Very high convenience |
|Difficulty of spotting "direct" backdoors   ||Much higher difficulty ||Much lower difficulty |
|Difficulty of spotting a "bugdoor" ||Much higher difficulty ||Lower difficulty|
|Third parties can legally release a software fork, a patched version without the backdoor||No ||Yes |
|Third parties can potentially make (possibly illegal) modifications like disabling serial key checks ||Yes||Yes|
|Software is always modifiable||No ||Yes|
|Third parties can use static code analysis tools||No||Yes|
|Third parties can judge source code quality||No||Yes|
|Third parties can find logic bugs in the source code||No||Yes|
|Third parties can find logic bugs in the disassembly||Yes||Yes|
|Benefits from population-scale scrutiny||No||Yes|
|Third parties can benefit from debug symbols during analysis||Depends ||Yes|
|Display source code intermixed with disassembly||No||Yes |
|Effort to audit subsequent releases||Almost same ||Usually lower |
|Forum discussion: Finding Backdoors in Freedom Software vs Non-Freedom Software|
Spotting backdoors is already very difficult in Freedom Software where the full source code is available to the general public. Spotting backdoors in non-freedom software composed of obfuscated binaries is exponentially more difficult.        
To further improve the situation in the future, the Freedom Software community is working on the Reproducible Builds project. Quote:
Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code.
Whilst anyone may inspect the source code of free and open source software for malicious flaws, most software is distributed pre-compiled with no method to confirm whether they correspond.
This incentivises attacks on developers who release software, not only via traditional exploitation, but also in the forms of political influence, blackmail or even threats of violence.
This is particularly a concern for developers collaborating on privacy or security software: attacking these typically result in compromising particularly politically-sensitive targets such as dissidents, journalists and whistleblowers, as well as anyone wishing to communicate securely under a repressive regime.
Whilst individual developers are a natural target, it additionally encourages attacks on build infrastructure as an successful attack would provide access to a large number of downstream computer systems. By modifying the generated binaries here instead of modifying the upstream source code, illicit changes are essentially invisible to its original authors and users alike.
The motivation behind the Reproducible Builds project is therefore to allow verification that no vulnerabilities or backdoors have been introduced during this compilation process. By promising identical results are always generated from a given source, this allows multiple third parties to come to a consensus on a “correct” result, highlighting any deviations as suspect and worthy of scrutiny.
This ability to notice if a developer has been compromised then deters such threats or attacks occurring in the first place as any compromise would be quickly detected. This offers comfort to front-liners that they not only can be threatened, but they would not be coerced into exploiting or exposing their colleagues or end-users.
Several free software projects already, or will soon, provide reproducible builds.
Always Verify Signatures
For greater system security, it is strongly recommended to avoid installing unsigned software. Always make sure that signing keys and signatures are correct and/or use mechanisms that heavily simplify and automate this process, like APT upgrades.
As a reminder, digital signatures are not a magic bullet. While they increase the certainty that no backdoor was introduced by a third party during transit, this does not mean the software is absolutely "backdoor-free". Learn more about this process and what digital signatures prove.
Exit Relays can Eavesdrop on Communications
Instead of taking a direct route from source to destination, communications using the Tor network take a random pathway through several Tor relays to help cover the user's tracks. This means observers at any single point cannot tell both where the data came from and where it is going.
Figure: How Tor Works 
The last relay on the three-hop circuit is called the Tor exit relay. It is the critical relay that establishes the actual connection to the destination server. By design, Tor does not encrypt the traffic between a Tor exit relay and the final destination. This means any exit relay is in a position to capture any traffic passing through it. To protect against snooping by the Tor exit relay, end-to-end encryption should always be used. 
Malicious exit nodes have previously been used to spy on sensitive communications. For example, in 2007, a security researcher monitored the connections coming out of an exit relay under their control and intercepted thousands of private e-mail messages sent by foreign embassies and human rights groups around the world..
While browsing, sending email or chatting online, it is recommended to utilize the necessary tools bundled with Whonix ™ to enforce strong encryption. Refer to the Documentation for necessary steps to remain safe. 
Use of Tor is Obvious
Tor tries to prevent attackers from learning what destination websites are being connected to.
Both the ISP and a local network administrator can easily check if connections are made to a Tor relay and not a normal web server. To learn more about whether it is possible to hide Tor network activity, see: Hide Tor use from the Internet Service Provider.
The destination server contacted through Tor can learn whether the communication originates from a Tor exit relay by consulting the publicly available list of known exit relays. For example, The Tor Project Tor Bulk Exit List tool could be used for this purpose.
Based on this information, Whonix ™ users will not appear to be a random Internet user is used to prevent the telltale signs of Tor use. The strong anonymity provided by Tor and Whonix ™ is based on trying to make everyone look exactly the same, so it is not possible to identify a specific individual in the larger user pool.
Ultimately, stronger protection requires a social approach; the larger the pool of Tor users (in close proximity) and the more diverse their interests, the less likely it will be that a specific individual can be identified. Convincing others to use Tor will help the larger anonymity-minded community. 
Persistent Guard Relays can Enable Physical Location Tracking
What are Tor Entry Guards? If this is an unfamiliar term, please press on Expand on the right.
Current practical, low-latency, anonymity designs like Tor fail when the attacker can see both ends of the communication channel. For example, suppose the attacker controls or watches the Tor relay a user chooses to enter the network, and also controls or watches the website visited. In this case, the research community is unaware of any practical, low-latency design that can reliably prevent the attacker from correlating volume and timing information on both ends.
Mitigating this threat requires consideration of the Tor network topology. Suppose the attacker controls, or can observe, C relays from a pool of N total relays. If a user selects a new entry and exit relay each time the Tor network is used, the attacker can correlate all traffic sent with a probability of (c/n)2. For most users, profiling is as hazardous as being traced all the time. Simply put, users want to repeat activities without the attacker noticing, but being noticed once by the attacker is as detrimental as being noticed more frequently. [...]
The solution to this problem is "entry guards". Each Tor client selects a few relays at random to use as entry points, and only uses those relays for the first hop. If those relays are not controlled or observed, the attacker can't use end-to-end techniques and the user is secure. If those relays are observed or controlled by the attacker, then they see a larger fraction of the user's traffic — but still the user is no more profiled than before. Thus, entry guards increase the user's chance of avoiding profiling (on the order of (n-c)/n), compared to the former case.
You can read more at An Analysis of the Degradation of Anonymous Protocols, Defending Anonymous Communication Against Passive Logging Attacks, and especially Locating Hidden Servers.
Restricting entry nodes may also help to defend against attackers who want to run a few Tor nodes and easily enumerate all of the Tor user IP addresses.  However, this feature won't become really useful until Tor moves to a "directory guard" design as well.
Source and License, see footnote: 
Many well known enhanced anonymity designs such as Tor, Whonix ™ and the Tor Browser Bundle (TBB) use persistent Tor guards. This decision is attributable to community-based research which demonstrates that persistent Tor entry guards benefit security and lower the probability of an adversary profiling a user.
In general, users should not interfere with Tor guard persistence or the natural rotation of entry guards every few months. At the time of writing, the Tor client selects one guard node, but previously used a three-guard design. Guards have a primary lifetime of 120 days.  
While natural guard rotation is recommended, there are some corner cases in which an adversary could fingerprint the entry guards  and de-anonymize a user. For instance:
- The same entry guards are used across various physical locations and access points.
- The same entry guards are used after permanently moving to a different physical location.
For details on how this is possible, press Expand on the right.
Consider the following scenario. A user connects to Tor via a laptop at their home address. An advanced adversary has observed the client-to-guard-node network path to discover the user's entry point to the Tor network.
Soon afterwards, the same user attends a prominent event or protest in a nearby city. At that location, the user decides to anonymously blog about what transpired using the same laptop. This is problematic for anonymity, as the Tor client is using the same entry guard normally correlated with the user’s home address.
To understand the potential threat, consider the following:
- There are only around 4,000 Tor guards in 2021. 
- By design, Tor is picking one primary guard and using it for a few months. Since the Tor user base is relatively small, it is possible that a guard might only be used by one person in an entire region.
- As the IP address of Tor entry guards is static and Tor network traffic is easily distinguishable, this information becomes public knowledge.
- It is feasible that if a user-guard relationship is unique in a city location, and that user moves, it is likely (but not certain) that there was a location change.
- At the event, the user might be the only one using Tor (or among a handful).
- If the user posts about the event and an adversary who is passively monitoring network traffic conducts the same successful observation of the client-to-guard network path, then it’s likely the "anonymous" posts will be linked with the same person who normally connects to that guard at home.
The relative uncommonness of Tor usage simply exacerbates the potential for de-anonymization.
There are several ways to mitigate the risk of guard fingerprinting across different physical locations. In most cases, the original entry guards can also be re-established after returning home:
- Clone Whonix-Gateway ™ (sys-whonix) with New Entry Guards.
- Regenerate the Tor State File after Saving the Current Tor State.
- Configure Tor to use Alternating Bridges.
- If moving to a new location permanently, create Fresh Tor Entry Guards by Regenerating the Tor State File.
For more information, see the advanced topic Configure Non-Persistent Entry Guards.
Tor cannot Protect Against a Global Adversary
A global, passive adversary is defined as a person or entity who is able to monitor the traffic between all the computers in a network at the same time. By studying the timing and volume patterns of the different communications across the network, it is statistically feasible to identify Tor circuits and thus match Tor clients with destination servers.
In order to create a low-latency communication service which is usable for web browsing, Internet chat or SSH connections, The Tor Project has made a security trade-off and has not attempted to address this threat.
For more expert information on this topic, see Tor Project: The Second-Generation Onion Router, part 3. Design goals and assumptions.
Whonix ™ Persistence vs Live vs Amnesic
Traces of software installations, files or other user activities depend on whether or not the user is using a live operating system or Host Live Mode.
|VM Live Mode||Host Live Mode||Whonix ™ on USB|
A Live Operating System or Host Live Mode is not Configured
If any software is downloaded or used on a computer, local traces of the download, installation and use will be left on the device's mass storage device (hard drive, HDD, SSD). This normal mode of operation is referred to as "persistent mode" since any files downloaded, documents created and so on will persist after reboot.
Any created files still exist after the computer is powered-off or rebooted, unless steps are taken to securely wipe the files or otherwise remove all signs of their existence. Unless VM Live Mode or Host Live Mode are used, there are no preventative measures to limit what is written to disk. This can lead to evidence of activity in created files, backup files, temporary files, swap, chat history, browser history and so on.
Be aware that although VM Live Mode inside Non-Qubes-Whonix ™ virtual machines (VMs) make writes go to RAM instead of the HDD/SSD, traces of activity may be left in swap files, core dumps or via other configurations on the host. If this is a risk in your circumstances, refer to Anti-Forensics Precautions or preferably utilize Host Live Mode.  
It is likely most Whonix ™ users are utilizing persistent mode. For this reason it is recommended to use multiple VM Snapshots and to apply Full Disk Encryption on the host. A higher level of security is afforded by encrypting everything, including data, system and swap partitions.
A Live Operating System or Host Live Mode is Configured
Refer to the Host Live Mode chapter for further details.
Live DVD / USB
To install Whonix ™ on a USB, see: Whonix ™ on USB.
At the time of writing Whonix ™ does not offer a Live DVD / USB. This situation may change in the future, see: Whonix-Host.
Whonix ™ Development
Missing Whonix ™ Features
Whonix ™ is currently alpha quality software and missing some features, including those relating to security. While many issues listed below are planned for future implementation, a number will probably never get "fixed" because they are impossible to address in a software-only project.
Table: Missing Whonix ™ Features
|Category||Missing Feature or Capability|
|Adversaries||Protect against global network adversaries.|
|AppArmor||Apply AppArmor profiles for every process or application. |
|Backdoors||Protect against hardware or software backdoors.|
|Encryption||Encrypt a user's data, documents, files and so on.|
|Hardening||Use all the possible hardening options like full PIE and grsecurity.|
|Local Adversaries||Protect against local adversaries who could mount cold boot and evil maid attacks, or otherwise compromise a user's physical machine.|
|MAC Address||Automatically protect against MAC address fingerprinting on public networks.|
|Passwords||Make weak passwords stronger.|
|Security Updates||Automatically apply security updates. This was a conscious developer decision because automated updates also come with their own set of security problems. However, whonixcheck provides notifications about updates on Whonix-Workstation ™.|
|Software Attacks||Protect against highly skilled software attacks, unless physical isolation or Qubes-Whonix ™ is utilized.|
|Stylometry||Obfuscate an individual's linguistic style to defeat stylometric analysis.|
|User Behavior||Protect those who: fail to read the Documentation, engage in unsafe behaviors, or change default settings without knowing the implications.|
|Whonix ™ Builds||Have deterministic builds, see Dev/Archived Discussions. |
This list is likely incomplete. It is strongly encouraged to read the rest of the Documentation and perhaps the Design chapter to have a full overview of Whonix ™ security, including the list of supported and unsupported features.
Contributors who want to help improve Whonix ™ security should join the discussions on Dev/Archived Discussions, or on the developer mailing list.
Whonix ™ is a Work in Progress
Whonix ™, as well as all the software it includes, are under continuous development and might contain programming errors or security holes -- Stay Tuned to Whonix ™ development, and do not rely on the platform for strong anonymity.
That said, Whonix ™ has a strong foundational design since it uses both the Isolating Proxy and Transparent Proxy concepts. Since Whonix ™ was founded in 2012, no anonymity leaks or proxy bypass problems have yet been discovered. Whonix ™ has been developed with great care, but it is impossible to ever prove that it is absolutely "leak-proof" or free of mistakes that degrade the goals of the extended project description.
Basic functionality is built-in and Whonix ™ can be used to browse the web and host onion services, use email, IRC, SSH, and a host of other activities. Development is ongoing and more features are continually being added. Contributors who want to join the development process are most welcome; see Patches are Welcome. A complete list of open issues is available on the Whonix ™ issues tracker.
Users must be careful not to draw incorrect conclusions based on the existence of specific Whonix ™ communication channels, community software utilized, applications installed on the platform, or the availability of certain wiki entries. Whonix ™ tries to use concise language so that users are not misled into believing anything has been implied. Despite this effort, users will sometimes draw false conclusions in an unintended way. Consider the following hypothetical discussion.
Developer: Donations to Whonix ™ are possible via Bitcoin.
Whonix ™ user: Since you are knowledgeable about Bitcoin, can you also accept Monero donations?
In this case the hypothetical developer did not state "I am knowledgeable about Bitcoin", but rather concisely stated "Donations to Whonix ™ are possible via Bitcoin." The conclusion drawn by the user "Since you are knowledgeable about Bitcoin" might be totally unsubstantiated.
In a similar fashion, just because Whonix ™ does something -- like providing a telegram channel -- it does not follow that Whonix ™ endorses it; see also Terms of Service: Non-endorsement. A list of further examples is outlined below.
Table: Facts vs. False Conclusions
|Fact ||False Conclusion ||More Information|
|Whonix ™ provides a Bitcoin (BTC) donation address.||Bitcoin is anonymous.||Anonymous Money|
|Whonix ™ provides a Monero (XMR) donation address.||Monero is perfect.||Anonymous Money|
|The Whonix ™ website is using popular web applications (web apps) like MediaWiki, Phabricator and Discourse (forum software).||These are perfectly "secure" (for whatever purpose, threat model) web apps.||In an ideal world, better web apps would be used but this is not possible due to finite Whonix ™ resources. To learn more, see: Privacy on the Whonix ™ Website.|
|Whonix ™ provides downloadable VirtualBox builds.||VirtualBox is secure.||VirtualBox isn't an ideal choice but there are reasons for maintaining VirtualBox support.|
|Whonix ™ is available for Windows hosts.||Windows is a suitable host.||Windows Hosts pose numerous security and privacy threats.|
|Whonix ™ is installable on macOS hosts.||macOS is a suitable host.||macOS Hosts pose numerous security and privacy threats.|
|Whonix ™ is Freedom Software.||Whonix ™ is a Freedom Software 'maximalist' project.||See also:|
|Whonix ™ provides a telegram channel support channel.||Telegram is a perfect, privacy-respecting, secure messenger.||See footnote. |
|There is an official Whonix ™ twitter profile.||Twitter is a safe platform to utilize.||Official Whonix ™ Online Profiles|
|whonix.org has a public forum.||The whonix.org forum and associated comments are intended to promote free speech.||Unfortunately, running a free speech platform is a full-time job and would constitute a separate project in itself. This is simply not possible as a side project. For further details, see: Limitations on Free Speech on Whonix Website and Whonix Chat.|
|Whonix ™ is Open Source.||Whonix ™ must/should implement all ideas from the community.||See: Community Feedback / Patches are Welcome|
|See also: Do Not Draw Wrong Conclusions.|
It is also recommended to consult the following resources:
- list of forum posts regarding the Whonix ™ project philosophy;
- Linux User Experience versus Commercial Operating Systems; and
- the underpinning Rationale for this chapter.
On top of unsubstantiated conclusions it also happens that adherence to "perfectly moral" behavior or an approved ™ set of political/ideological beliefs is expected from the Whonix ™ project. However, what counts as "perfectly moral" and the path of attaining therein will always be subjective and disputed among proponents. Such demands include "don't allow running Whonix ™ on Windows hosts", "don't have a twitter project account", "don't accept Bitcoin donation", "don't use centralized services such as telegram", "don't document X, because of Y". Those disagreeing with our methods and philosophy are welcome to exercise their right to fork the project under the respective licenses.
- Depending on personal circumstances and the Whonix ™ platform in use.
- HTTPS here refers to encrypted connections, whether it is (inferior) SSL or TLS.
- Source: Comodo: The Recent RA Compromise
- Source: The Tor Project: The DigiNotar Debacle, and what you should do about it
- This is one reason why self-authenticating onion services (.onion) connections are superior to HTTPS, because they do not rely on the flawed CA system for confirmation of the destination server.
- Onion Services are automatically encrypted end-to-end. More specifically, connections remain within the Tor network at all times.
- Quoted from wikipedia Man-in-the-middle_attack and Tor Project: Detecting Certificate Authority compromises and web browser collusion.
- For example, the XKeyscore program is actively targeting Exif information for collection.
- Who should also prefer v3 onion connections to Whonix ™ infrastructure whenever possible.
- Changed "back door" to "backdoor".
- Some use binary obfuscators.
- Some use obfuscation.
- An Open Source application binary could be obfuscated in theory. However, depending on the application and the context -- like not being an Open Source obfuscator -- that would be highly suspicious. An Open Source application using obfuscators would probably be criticized in public, get scrutinized, and lose user trust.
This is because non-freedom software is usually only available as a pre-compiled, possibly obfuscated binary. Using an anti-decompiler:
- Auditors can only look at the disassembly and cannot compare a pre-compiled version from the software vendor with a self-compiled version from source code.
- There is no source code that is well-written, well-commented, and easily readable by design.
- Since there is no source code, one cannot self-build one's own binary.
- small: for non-reproducible builds (or reproducible builds with bugs)
- none: for reproducible builds
- Decompilation is often expressly forbidden by license agreements of proprietary software.
- Skype used DMCA (Digital Millenium Copyright Act) to shut down reverse engineering of Skype
- Decompilation is always legal and permitted in the license agreements of Freedom Software.
- This is very difficult because most outgoing connections are encrypted by default. At some point the content must be available to the computer in an unencrypted (plain text) format, but accessing that is not trivial. When running a suspected malicious application, local traffic analyzers like Wireshark cannot be trusted. The reason is the malicious application might have compromised the host operating system and be hiding that information from the traffic analyzer or through a backdoor. One possible option might be running the application inside a virtual machine, but many malicious applications actively attempt to detect this configuration. If a virtual machine is identified, they avoid performing malicious activities to avoid being detected. Ultimately this might be possible, but it is still very difficult.
- It is necessary to decompile the binary and read "gibberish", or try to catch malicious traffic originating from the software under review. As an example, consider how few people would have decompiled Microsoft Office and kept doing that for every upgrade.
It is possible to:
- Audit the source code and confirm it is free of backdoors.
- Compare the precompiled binary with a self-built binary and audit the difference. Ideally, and in future, there will be no difference (thanks to the Reproducible Builds project) or only a small difference (due to non-determinism introduced during compilation, such as timestamps).
- An example of a "direct" backdoor is a hardcoded username and password or login key only known by the software vendor. In this circumstance there is no plausible deniability for the software vendor.
- List of “direct” backdoors in wikipedia.
One interesting “direct” backdoor was this bitcoin copay wallet backdoor:
If more than 100 BTC, steal it. Otherwise, don’t bother.
- Requires strong disassembly auditing skills.
- If for example hardcoded login credentials were in the published source code, that would be easy to spot. If the published source code is different from the actual source code used by the developer to compile the binary, that difference would stand out when comparing pre-compiled binaries from the software vendor with self-compiled binaries by an auditor.
- A "bugdoor" is a vulnerability that can be abused to gain unauthorized access. It also provides plausible deniability for the software vendor. See also: Obfuscated C Code Contest.
- Such issues are hard to spot in the source code, but even harder to spot in the disassembly.
- This is forbidden in the license agreement. Due to lack of source code, no serious development is possible.
- Since source code is already available under a license that permits software forks and redistribution.
- This entry is to differentiate from the concept immediately above. Pre-compiled proprietary software is often modified by third parties for the purposes of privacy, game modifications, and exploitation.
- For example, Intel ME could not be disabled in Intel CPUs yet. At the time of writing, a Freedom Software re-implementation of Intel microcode is unavailable.
- Some may publish debug symbols.
- How does objdump manage to display source code with the -S option?
- It is possible to review the disassembly, but that effort is duplicated for subsequent releases. The disassembly is not optimized to change as little as possible or to be easily understood by humans. If the compiled version added new optimizations or compilation flags changed, that creates a much bigger diff of the disassembly.
- After the initial audit of a source-available binary, it is possible to follow changes in the source code. To audit any newer releases, an auditor can compare the source code of the initially audited version with the new version. Unless there was a huge code refactoring or complete rewrite, the audit effort for subsequent versions is lower.
The consensus is the assembler low level programming language is more difficult than other higher level abstraction programming languages. Example web search terms:
Source code written in higher level abstraction programming languages such as C and C++ are compiled to object code using a compiler. See this article for an introduction and this image.
Source code written in lower level abstraction programming language assembler is converted to object code using an assembler. See the same article above and this image.
Reverse engineering is very difficult for a reasonably complex program that is written in C or C++, where the source code is unavailable; that can be deduced from the high price for it. It is possible to decompile (meaning re-convert) the object code back to C with a decompiler like Boomerang. To put a price tag on it, consider this quote -- Boomerang: Help! I've lost my source code:
How much will it cost? You should expect to pay a significant amount of money for source recovery. The process is a long and intensive one. Depending on individual circumstances, the quality, quantity and size of artifacts, you can expect to pay upwards of US$15,000 per man-month.
The following resources try to solve the question of how to disassemble a binary (byte code) into assembly source code and re-assemble (convert) to binary.
- Tricks to Reassemble Disassembly
- IDA pro asm instructions change
- Why there are not any disassemblers that can generate re-assemblable asm code?
- Recompile the asm file IDA pro created
- Superset Disassembly: Statically Rewriting x86 Binaries Without Heuristics
- GitHub: Guide to disassemble - disassemble.md
- How to disassemble a binary executable in Linux to get the assembly code?
- Use GCC and objdump to disassemble any hex to assembly code
1. Take a hello world assembler source code.
2. Assemble.nasm -felf64 hello.asm
3. Link.ld hello.o -o hello
4. objdump (optional).objdump -d hello
5. Exercise for the reader: disassemble
The GNU Hello program source file
hello.cat the time of writing contains
objdump -d /usr/bin/helloon Debian buster has
hello.sudo apt update && sudo apt full-upgrade
B. Install the
aptcommand line parameter
--no-install-recommendsis in most cases optional.sudo apt install --no-install-recommends hello
The procedure of installing package(s)
hellois complete.objdump -d /usr/bin/hello
- Consider all the Debian package maintainer scripts. Clearly these are easier to review as is, since most of them are written in
bash. Review would be difficult if these were converted to a program written in C, and were closed source and precompiled.
- Similarly, it is far preferable for OnionShare to stay Open Source and written in python, rather than the project being turned into a precompiled binary.
torproject.org What are Entry Guards?
Content on this site is Copyright The Tor Project, Inc.. Reproduction of content is permitted under a Creative Commons Attribution 3.0 United States License. All use under such license must be accompanied by a clear and prominent attribution that identifies The Tor Project, Inc. as the owner and originator of such content. The Tor Project Inc. reserves the right to change licenses and permissions at any time in its sole discretion.
- New releases are squished into a single commit, see: one commit.
- It is impossible to sign up without a phone number.
- There are other concerns, but they are irrelevant for illustrating the point being made here.
Whonix ™ Warning wiki page Copyright (C) Amnesia <amnesia at boum dot org>
Whonix ™ Warning wiki page Copyright (C) 2012 - 2021 ENCRYPTED SUPPORT LP <email@example.com>
This program comes with ABSOLUTELY NO WARRANTY; for details see the wiki source code.
This is free software, and you are welcome to redistribute it under certain conditions; see the wiki source code for details.