Behaviors

Technical knowledge

How technical are VeraCrypt users? Tails+VeraCrypt users?

For example: Are they used to GNOME Disks?

Results of the online survey on file storage encryption

NB: By Tails+VeraCrypt we mean people who use both Tails and
VeraCrypt, but not necessarily VeraCrypt in Tails already as this is
currently for expert users only as it requires going through the command
line.

Summary

Justification of our work:

40% of Tails users are also VeraCrypt users, both inside and outside
Tails.

60% of Tails+VeraCrypt users only use VeraCrypt outside of Tails.

Most of Tails+VeraCrypt users are regular users of VeraCrypt.

VeraCrypt is of more interest to people who are not using Linux as
their primary operating system.

VeraCrypt is still a reference when people think about encrypting
files.

Integrating VeraCrypt in Tails will prevent dangerous behaviors:

« I need to be able to open TrueCrypt file containers in Tails in
order to move files securely between Tails and Windows. Right now, I
have to copy my files unencrypted between Tails and Windows and this
is quite dangerous. »

Definition of the scope of our work:

85% of Tails+VeraCrypt users mostly don't use the .TC or .HC file extension.

76% of Tails+VeraCrypt users use file containers.

65% of Tails+VeraCrypt users use partitions.

65% of Tails+VeraCrypt users use hidden volumes.

55% of Tails+VeraCrypt users have legacy TrueCrypt volumes.

42% of Tails+VeraCrypt users use keyfiles.

Technical knowledge of Tails users:

Tails is still quite complicated for Windows users but not that
hard either.

A majority of our user base is "basic".

Methodology

We advertised an online survey on the homepage of Tor Browser in Tails
between October 17 and December 1.

The survey was not advertised as being about VeraCrypt but as being
about file storage encryption in general.

The following banner was displayed on https://tails.boum.org/home once
every 20 views:

We got 1011 complete answers (and zero spam!) for a participation rate
of 1.97% (51431 views in total). We think this is a great success!

The structure of our survey is available as a LimeSurvey Survey
Structure file: survey.lss.

We limited the mandatory questions to the bare minimum. Except for one
open-ended question, we used only closed questions with multiple choices
to maximize the answer rate and make it easier to analyze the results.
Still, we allowed comments on many of the closed questions.

It was the first time that we asked our users to answer an online survey
and seeing the high participation it seems to be a very good way of
learning about our users and their needs. People seem eager to
contribute to Tails by sharing information about themselves if done with
their consent.

Here is a summary of our results.

How many people use VeraCrypt in Tails before our work?

Q: Do you use VeraCrypt?

Question

Answers

Fraction

No

418

41%

Yes, but only outside of Tails

238

24%

I don't know what VeraCrypt is

193

19%

Yes, both inside and outside of Tails

162

16%

Total answers

1011

60% of Tails+VeraCrypt users only use VeraCrypt outside of Tails.

These people are a first target of our work.

Unfortunately, our survey didn't allow us to know if they don't use
VeraCrypt in Tails because it's too complicated at the moment (it
requires using the command line) or because they don't have a use for
it. We should have added a another question about this in particular.

40% of Tails users are also VeraCrypt users, both inside and outside Tails.

This is a big overlap which proves that a lot of people who use Tails
also have a need for VeraCrypt.

After our work:

If this number increases, it could mean that integrating VeraCrypt
in Tails made Tails useful for more people.

These people are a second target of our work.

If this number decreases, it could mean that our user base expanded
to include a bigger fraction of users who don't have a need for
VeraCrypt. For example if they only use Tails to browser the
Internet anonymously and not to exchange sensitive documents from
Tails with other operating systems.

Q: How many VeraCrypt volumes do you have (not counting the hidden volumes inside them)?

Question

Answers

Fraction

2-5

183

52%

1

83

24%

6-10

45

13%

More than 10

39

11%

Total answers

350

Most of Tails+VeraCrypt users are serious and regular users of VeraCrypt.

They have more than one VeraCrypt volume and not only curious about
VeraCrypt or tried it once.

Comments on the questions

Our survey allowed people to add comments to some questions. Some people
described the lack of VeraCrypt support in Tails as part of a workflow
including Windows, often leading to dangerous practices. The comments
were rewritten to prevent stylometry.

« When I move files between Windows and Tails, I have to remove the
TrueCrypt encryption and copy the files unencrypted to another USB
stick. Then I have to securely delete the files from the USB stick and
that takes a lot of time. This is dangerous as an attacker could
access my files during the process. »

« I need to be able to open TrueCrypt file containers in Tails in
order to move files securely between Tails and Windows. Right now, I
have to copy my files unencrypted between Tails and Windows and this
is quite dangerous. »

We suppose that people choose Linux over Windows or macOS because of
technical reasons, ethical reasons, or both. Both are also good
reasons to use Tails, either because their technical skills make it
easier to get started or use Tails or because their ethical motivation
aligns with the values of Tails.

There is a huge difference between the fraction of Tails users and the
global market share for Windows (in negative) and Linux (in positive)
but at the same time, almost half of Tails users are otherwise mostly
Windows users. So it seems like Tails is still quite complicated for
Windows users but not that hard either.

Tails+Windows users are using VeraCrypt more than Tails users in
general (+4%). This confirms that VeraCrypt is of more interest to
people who are not using Linux as their primary operating system.

This aligns with our objective of making Tails easier to integrate in
workflows involving other operating systems.

Q: How familiar are you with GNOME Disks?

Question

Answers

Fraction

I can use GNOME Disks to do advanced operations

438

43%

I don't know what GNOME Disks is

410

41%

I can use GNOME Disks to do basic operations

163

16%

Total answers

1011

This seems to mean that:

A majority of our user base is "basic": not well-versed in Linux
and GNOME, not skilled enough to manipulate partitions, or not using
Tails to manipulate sensitive documents outside of the persistent
volume.

A good share of the rest of our user base is "advanced" and more
technically skilled and knowledgeable about Linux and GNOME.

Q: Imagine that you want to share a big video footage with someone else
who doesn't use Tails. You can meet in person or communicate online. For
security reasons, you want the exchange to be encrypted. How would you
do that?

Due to the huge numbers of answers (626) to this question which was very
open-ended, it is challenging and very time consuming to extract
insights from all the answers.

We manually flagged the encryption techniques mentioned in the first 472
answers (75%) to get an overview of what Tails users would do to
exchange sensitive information between Tails and another operating
system.

While flagging the answers, we flagged some techniques that were only
mentioned implicitly. For example, some people implicitly referred to:

LUKS when they proposed to store the footage in the persistent
volume of a Tails USB stick and exchange this USB stick in person.

OpenPGP when they proposed to encrypt the file doing
right-click ▸Encrypt… from the file browser.

The answers often included mixed strategies to either:

Design both online and offline strategies, as the question made it
possible to either meet in person or communicate online.

Combine several encryption techniques, for example to encrypt and
send the footage using some techniques and to exchange a password or
other credential information using other techniques.

Design several strategies depending on the threat model or technical
knowledge of the person they were sharing the footage with.

We cannot know from if people would know how to apply the strategies
they described. For example, if they already know how to use the
techniques that they mentioned or if they only heard of them.

Encryption technique

Mentions

Fraction

OpenPGP

134

28%

- OpenPGP (unspecified)

79

17%

- OpenPGP (asymmetric)

39

8%

- OpenPGP (symmetric)

16

3%

VeraCrypt

107

23%

I don't know

78

17%

LUKS

49

10%

ZIP with password

49

10%

OnionShare

46

10%

Signal, WhatsApp, Telegram

25

5%

Total answers analyzed

472

VeraCrypt was the second most frequently mentioned encryption
technique.

VeraCrypt is still a reference when people think about encrypting
files.

We were surprised to see OpenPGP as the most frequently mentioned
encryption technique. This could either mean that:

Tails users are especially knowledgeable about OpenPGP or only heard
of it as an encryption technique.

Tails users rely a lot seahorse-nautilus
which allows to encrypt files from the file browser
(right-click ▸Encrypt…). This allows to use
symmetric encryption ("password encryption") without the need to
master the complex key management of OpenPGP.

We were also surprised to see OnionShare mentioned almost as
frequently as LUKS or ZIP with password. Good news for Micah Lee!

Scope of our work

We structure the scope of our work in four iterations, based on our
preliminary research work on user needs and technical feasibility.

We will implement and upstream each iteration one after the other and go
as far as the budget allows.

This iteration extends the work done on the unlocking of partitions to
also unlock file containers.

File containers are very important to support as 76% of Tails+VeraCrypt
users use file containers. They are also interesting because using a
single file to store a whole file system is a possibility which is not offered
by the other encryption techniques in Tails.

But they are more challenging in terms of user interactions and
integration code:

It's a new concept for users ("mounting a file").

We cannot rely on file containers having a .TC or .HC extension as
discovered during the survey.

Since our main objective for integrating better VeraCrypt in Tails is to
allow for cross-platform sharing of encrypted files, we consider making
it possible to create VeraCrypt volumes in Tails as optional since users
can continue creating volumes from their other operating systems.
This iteration covers:

The creation of new partitions, for which we already have a solid UX
design.

The creation of new file containers, which will be harder to discover
for users but will almost come for free once we support creating new
partitions.

The modification of existing volumes, which will be very similar to
the creation of new volumes.

VeraCrypt Mounter is a very simple application wrapper that we
designed and tested. It makes it easier for users to learn how to use
VeraCrypt in Tails and makes it faster to open file containers.
VeraCrypt Mounter would only be available in Tails.

If we cannot create VeraCrypt Mounter in time, we will replace it with
a link to our documentation which should lead to similar success rates
but a bit less comfort for first time users.

Non goals

Opening of loop-AES and dm-crypt volumes. Loop-AES and dm-crypt
volumes are other encryption formats that are indistinguishable from
VeraCrypt volumes while they are locked (both look like random data).
Even if some of our work could be make it easier to support Loop-AES
and dm-crypt, we won't do that because these formats are not popular
enough.

User interface

Changes to GNOME Disks

Unlock dialog in GVfs

VeraCrypt Mounter (optional)

Detecting VeraCrypt volumes

In contrast to LUKS, VeraCrypt and TrueCrypt volumes do not have a cleartext header, but are completely encrypted (see the VeraCrypt Volume Format Specification). As a result, VeraCrypt/TrueCrypt volumes cannot be distinguished from random data. This means that the best we can do is to indicate to the user that a partition / file seems to be encrypted or random data, and therefore is a candidate for being a VeraCrypt/TrueCrypt volume.

To determine whether data seems to be encrypted or random, we use Pearson's chi-squared test. This test is often used to test for randomness.

When trying to determine whether a partition (or whole device) is a VeraCrypt/TrueCrypt volume, we don't want to read more than necessary, to avoid slowing things down too much. Because non-encrypted filesystems usually start with a header, which is very non-random, we only perform the chi-squared test on these first 512 Bytes.

The chi-squared test requires a p-value, for which to reject the hypothesis that the data is random. We choose 1/10.000.000.000 as the p-value, which means that in one of 10 billion cases, the test will issue a false negative, i.e. the test says the data is non-random/non-encrypted, even though it actually is random/encrypted. From this p-value, we derive the following lower and upper limits for the chi-squared value (using the scipy chi2 module):

We round these values to the closest integer. So for chi-squared values between 136 and 426, we accept the hypothesis that the data is random/encrypted.

We will not be able to prevent false positives as effectively as false negatives. Since we treat all random-looking partitions as TrueCrypt/VeraCrypt candidates, we will definitely have false positives, because there are other use cases for random looking partitions, for example plain dm-crypt, headerless LUKS, or LoopAES partitions. This cannot be avoided, therefore we have to clearly indicate to the user that a partition is not definitely a TrueCrypt/VeraCrypt partition, but only a candidate.

We don't expect false positives for unencrypted filesystems, because the chi-squared value clearly indicates that they are not encrypted. Some examples for chi-squared values of (more or less) common filesystems, calculated with the above method: