Tails - Security advisoriesThe Amnesic Incognito Live Systemhttps://staging.tails.boum.org/security/index.zh_TW.htmlThe Amnesic Incognito Live Systemikiwiki2024-03-29T03:22:12ZPossible remote attack on onion serviceshttps://staging.tails.boum.org/security/TROVE-2023-006/index.zh_TW.html2024-03-26T03:21:21Z2023-11-15T14:00:00Z
<div class="caution">
<p><strong>Creating onion services from Tails 5.19 and earlier is unsafe.</strong></p>
<p>We recommend that you stop using <em>OnionShare</em> and upgrade to Tails
5.19.1.</p>
</div>
<p>The Tor Project has released a security fix for a vulnerability named
TROVE-2023-006.</p>
<p> The details of TROVE-2023-006 haven't been disclosed by the Tor Project to
leave time for users to upgrade before revealing more. We only know that the
Tor Project describes TROVE-2023-006 as a "<a href="https://gitlab.torproject.org/tpo/core/team/-/wikis/NetworkTeam/TROVE"><em>remote triggerable assert on
onion
services</em></a>".</p>
<p> Our team thinks that this vulnerability could affect Tails users who are
creating onion services from their Tails, for example when sharing files or
publishing a website using <em>OnionShare</em>.</p>
<p> This vulnerability might allow an attacker who already knows your
<em>OnionShare</em> address to make your Tor client crash. A powerful attacker might
be able to further exploit this crash to reveal your IP address.</p>
<p> This analysis is only a hypothesis because our team doesn't have access to
more details about this vulnerability. Still, we are releasing this emergency
release as a precaution.</p>
<p> <em>OnionShare</em> is the only application included in Tails that creates onion
services. You are not affected by this vulnerability if you don't use
<em>OnionShare</em> in Tails and only use Tails to connect to onion services and
don't create onion services using Additional Software.</p>
<p> More details about TROVE-2023-006 will be available on the
<a href="https://gitlab.torproject.org/tpo/core/tor/-/issues/40883">Tor issue #40883</a>
sometime after the release.</p>
Weak cryptographic parameters in LUKS1https://staging.tails.boum.org/security/argon2id/index.zh_TW.html2024-03-29T03:22:12Z2023-06-14T12:34:56Z
<p>The cryptographic parameters of LUKS from Tails 5.12 or earlier are weak
against a state-sponsored attacker with physical access to your device.</p>
<p><strong>We recommend you change the passphrase of your Persistent Storage and other
LUKS encrypted volumes unless you use a long passphrase of 5 random words or
more.</strong></p>
<h1 id="understanding">Understanding the weakness and its solution</h1>
<h2 id="race">The arms race to protect from brute-force attacks</h2>
<p>In all encryption technology that protects data on a disk or USB stick with
a password or a passphrase, an attacker can try all possible combinations
until they guess your passphrase and unlock the encryption. This type of
attack is called a <em><a href="https://en.wikipedia.org/wiki/brute%2Dforce%20attack">brute-force attack</a></em>.</p>
<p>A strong password makes brute-force attacks slower and more expensive. The
longer the passphrase, the more expensive the brute-force attack becomes.</p>
<p>Some cryptographic parameters can also make each guess of a brute-force
attack slower and more expensive, for example by having to do some
complicated calculations on each passphrase before being able to try to
unlock the encryption with the result of this calculation.</p>
<p>Over the years, computers become faster and cheaper. Encryption technologies
regularly upgrade their parameters to find a balance between making
encryption fast and usable by users while making brute-force attacks as
expensive as possible for attackers.</p>
<p>Strong encryption parameters <em>combined</em> with a strong passphrase make
brute-force attacks so slow and so expensive that they are impossible to do
in practice. For example, a brute-force attack is impossible to do in
practice if it would take thousands of years even with the most powerful
supercomputers.</p>
<h2 id="comparison">Strength of Argon2id compared to PBKDF2</h2>
<p>Until Tails 5.12 (19 April 2023), Tails created LUKS devices version 1
(LUKS1) with PBKDF2 as <em>key derivation function</em>, a calculation run on the
passphrase before trying to unlock the encryption with the result.</p>
<p>PBKDF2 is now considered too weak compared to available computing power.</p>
<p>Some cryptographers think this weakness might have already been <a href="https://mjg59.dreamwidth.org/66429.html">used
against an activist in France</a> but
the actual operations by the French police are kept secret.</p>
<p>Since Tails 5.13 (16 May 2023), Tails creates LUKS devices version 2 (LUKS2)
with Argon2id as <em>key derivation function</em>.</p>
<table>
<tr><th>Tails version<br />when encryption was created</th><th>Release date</th><th>LUKS version</th><th>Key derivation function</th><th>Strength</th></tr>
<tr><td>5.12 or earlier</td><td>19 April 2023</td><td>LUKS1</td><td>PBKDF2</td><td>Weak</td></tr>
<tr><td>5.13 or later</td><td>16 May 2023</td><td>LUKS2</td><td>Argon2id</td><td>Strong</td></tr>
</table>
<p>We estimated how much electricity it would cost to guess passphrases of
different strengths. As we recommend for the Persistent Storage, we
evaluated passphrases made of several random words.</p>
<table>
<tr><th>Passphrase length</th><th>PBKDF2</th><th>Argon2id</th></tr>
<tr><td>3 random words</td><td>$0.1</td><td>$100</td></tr>
<tr><td>4 random words</td><td>$1 000</td><td>$1 000 000</td></tr>
<tr><td>5 random words</td><td>$10 000 000</td><td>$10 000 000 000</td></tr>
<tr><td>6 random words</td><td>$100 000 000 000</td><td>$100 000 000 000 000</td></tr>
<tr><td>7 random words</td><td>$1 000 000 000 000 000</td><td>$1 000 000 000 000 000 000</td></tr>
</table>
<p>These numbers are very rough estimates but give an idea of what length of
passphrase a very powerful adversary like a state-sponsored attacker could
guess.</p>
<p>Even if guessing a passphrase of 3 random words with LUKS1 costs very little
energy, any such attack also requires:</p>
<ul>
<li>Physical access to the device - Very expensive computer equipment -
Professional hacking skills</li>
</ul>
<p>You can see the details of our calculations in <a href="https://gitlab.tails.boum.org/tails/tails/-/issues/19615">#19615</a> and
this
<a href="https://cryptpad.disroot.org/sheet/#/2/sheet/view/KdOJLeuCsc4dS3vq-bHhFw6zByUSRJXsCcAkB-ERxtc/">spreadsheet</a>.</p>
<h2 id="schemes">Other password schemes give too little guarantee</h2>
<p>We recommend using passphrases made of several random words because using
randomness is the only way to really guarantee the strength of a password.</p>
<p>Using other password schemes give little guarantee over the strength of a
password, even if it follows complicated password policies and validates on
password strength meters.</p>
<p>For example, a <a href="https://www.washingtonpost.com/world/2020/12/17/dutch-trump-twitter-password-hack/">Dutch hacker logged into Donald Trump's Twitter account
<em>twice</em></a>
by guessing his passwords, despite that these passwords included several
words, were more than 8 characters, and even had special characters. They
were definitely not random enough: "<em>maga2020!</em>" and "<em>yourefired</em>".</p>
<p>To understand the maths behind password strength, watch <a href="https://media.libreplanet.org/u/libreplanet/m/an-information-theoretic-model-of-privacy-and-security-metrics/">An information
theoretic model of privacy and security
metrics</a>.
Bill Budington from the EFF explains the concept of entropy and its
implication on browser fingerprinting and password safety in accessible
terms.</p>
<h1 id="updating">Keeping your encryption secure</h1>
<p>All users are recommended to upgrade to LUKS2 on all their encrypted
devices: Persistent Storage, backup Tails, and other external encrypted
volumes.</p>
<p>Depending on the strength of your passphrase, we might also recommend
choosing a different passphrase and migrating to another Tails USB stick:</p>
<ul>
<li><a href="https://staging.tails.boum.org/security/argon2id/index.zh_TW.html#4">If your passphrase has 4 random words or fewer</a> - <a href="https://staging.tails.boum.org/security/argon2id/index.zh_TW.html#5">If your
passphrase has 5 random words</a> - <a href="https://staging.tails.boum.org/security/argon2id/index.zh_TW.html#6">If your passphrase has 6
random words or more</a></li>
</ul>
<h2 id="4">If your passphrase has 4 random words or fewer</h2>
<p>If your current passphrase has 4 random words or fewer:</p>
<ul>
<li><p>Your encryption is insecure with LUKS1.</p>
<p>You have to upgrade to LUKS2.</p></li>
<li><p>Your encryption is more secure with LUKS2.</p>
<p>We still recommend changing your passphrase to be 5 random words or more.</p></li>
</ul>
<h3>Persistent Storage (4 words or fewer)</h3>
<p>To secure your Persistent Storage:</p>
<ol>
<li><p>Update to Tails 5.14.</p>
<p>When starting Tails 5.14 for the first time, Tails will automatically
convert your Persistent Storage to LUKS2.</p></li>
<li><p>Choose a new passphrase of 5 to 7 random words.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-ps-keepassxc">Display the instructions to generate a passphrase using <em>KeePassXC</em>.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-ps-keepassxc"></div>
<ol>
<li><p>Choose <strong>Applications</strong> ▸ <strong>KeePassXC</strong>.</p></li>
<li><p>Choose <strong>Tools</strong> ▸ <strong>Password Generator</strong>.</p></li>
<li><p>Switch to the <strong>Passphrase</strong> tab.</p>
<p>A very strong passphrase of 7 random words is automatically generated.</p>
<div class="caution">
<p>It is impossible to recover your passphrase if you forget it!</p>
<p>To help you remember your passphrase, you can write it on a piece of
paper, store it in your wallet for a few days, and destroy it once
you know it well.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>Change your passphrase.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-ps-passphrase">Display the instructions to change the passphrase of your Persistent Storage.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-ps-passphrase"></div>
<ol>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Persistent Storage</strong>.</p></li>
<li><p>Click on the <strong>Change Passphrase</strong> button on the left of the title bar.</p></li>
<li><p>Enter the current passphrase in the <strong>Current Passphrase</strong> text box.</p></li>
<li><p>Enter your new passphrase in the <strong>New Passphrase</strong> text box.</p></li>
<li><p>Enter your new passphrase again in the <strong>Confirm New Passphrase</strong> text box.</p></li>
<li><p>Click <strong>Change</strong>.</p></li>
<li><p>Close the <strong>Persistent Storage</strong> settings.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>If you created your Persistent Storage with Tails 5.12 or earlier, we
recommend you migrate your entire Tails to a different USB stick and
destroy your old Tails USB stick (or at least <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely delete the
entire device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-ps-tails-installer">Display the instructions to migrate your Tails to a new USB stick.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-ps-tails-installer"></div>
<ol>
<li><p>Plug in the new USB stick.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Tails Cloner</strong>.</p></li>
<li><p>Turn on the option <strong>Clone the current Persistent Storage</strong> below the
option <strong>Clone the current Tails</strong>.</p></li>
<li><p>Make sure that the new USB stick is selected in the <strong>Target USB stick</strong>
menu.</p></li>
<li><p>To start the cloning, click on the <strong>Install</strong> button.</p></li>
<li><p>Enter a passphrase for the Persistent Storage on the new USB stick in the
<strong>Passphrase</strong> text box.</p></li>
<li><p>Enter the same passphrase again in the <strong>Confirm</strong> text box.</p></li>
<li><p>Click <strong>Continue</strong>.</p></li>
<li><p>Read the warning message in the confirmation dialog.</p></li>
<li><p>Click <strong>Delete All Data and Install</strong> to confirm.</p>
<p>Cloning takes a few minutes.</p>
<div class="bug">
<p>The progress bar usually freezes for some time
while synchronizing data on disk.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h3>Backup Tails (4 words or fewer)</h3>
<p>To secure your <a href="https://staging.tails.boum.org/doc/persistent_storage/backup/index.zh_TW.html">backup Tails</a>, if you have
one:</p>
<ol>
<li><p>Start on your main Tails USB stick.</p></li>
<li><p>Update your main Tails USB stick to Tails 5.14.</p></li>
<li><p>Create a new backup Tails using <em>Tails Cloner</em></p>
<p>If you created your Persistent Storage with Tails 5.12 or earlier, we
recommend you create your new backup Tails on a different USB stick and
destroy your old backup Tails (or at least <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely delete the entire
device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-backup-tails-installer">Display the instructions to create a new backup.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-backup-tails-installer"></div>
<ol>
<li><p>Plug in the new USB stick.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Tails Cloner</strong>.</p></li>
<li><p>Turn on the option <strong>Clone the current Persistent Storage</strong> below the
option <strong>Clone the current Tails</strong>.</p></li>
<li><p>Make sure that the new USB stick is selected in the <strong>Target USB stick</strong>
menu.</p></li>
<li><p>To start the cloning, click on the <strong>Install</strong> button.</p></li>
<li><p>Enter a passphrase for the Persistent Storage on the new USB stick in the
<strong>Passphrase</strong> text box.</p></li>
<li><p>Enter the same passphrase again in the <strong>Confirm</strong> text box.</p></li>
<li><p>Click <strong>Continue</strong>.</p></li>
<li><p>Read the warning message in the confirmation dialog.</p></li>
<li><p>Click <strong>Delete All Data and Install</strong> to confirm.</p>
<p>Cloning takes a few minutes.</p>
<div class="bug">
<p>The progress bar usually freezes for some time
while synchronizing data on disk.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h3>Other encrypted volumes (4 words or fewer)</h3>
<p>To secure your other encrypted volumes, if you have any:</p>
<ol>
<li><p>Update to Tails 5.14.</p></li>
<li><p>Choose a new passphrase of 5 to 7 random words.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-other-keepassxc">Display the instructions to generate a passphrase using <em>KeePassXC</em>.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-other-keepassxc"></div>
<ol>
<li><p>Choose <strong>Applications</strong> ▸ <strong>KeePassXC</strong>.</p></li>
<li><p>Choose <strong>Tools</strong> ▸ <strong>Password Generator</strong>.</p></li>
<li><p>Switch to the <strong>Passphrase</strong> tab.</p>
<p>A very strong passphrase of 7 random words is automatically generated.</p>
<div class="caution">
<p>It is impossible to recover your passphrase if you forget it!</p>
<p>To help you remember your passphrase, you can write it on a piece of
paper, store it in your wallet for a few days, and destroy it once
you know it well.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<p>If your encrypted volume is on a traditional hard disk (not an SSD) and you
can use the command line:</p>
<ol>
<li><p>Identify the partition name of your encrypted volume.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-other-cryptsetup-partition">Display the instructions to identify the partition name using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-other-cryptsetup-partition"></div>
<ol>
<li><p>When starting Tails, <a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">set up an administration
password</a>.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>System Tools</strong> ▸ <strong>Root Terminal</strong>.</p></li>
<li><p>Execute the following command:</p>
<pre><code>lsblk
</code></pre>
<p>The output is a list of the storage devices and partitions on the system.
For example:</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Plug in your encrypted volume. Keep the encryption locked.</p></li>
<li><p>Execute the same command again:</p>
<pre><code>lsblk
</code></pre>
<p>Your encrypted volume appears as a new device with a list of partitions.
Check that the partition size corresponds to your encrypted volume.</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
sdb 8:0 1 7G 0 disk
└─sdb1 8:2 1 7G 0 part
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Take note of the <em>partition name</em> of your encrypted volume. In this
example, the new device in the list is <span class="code">sdb</span>
and the encrypted volume is in the partition
<span class="code">sdb1</span>. Yours might be different.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>If you created your encrypted volume with Tails 5.12 or earlier, upgrade
to LUKS2.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-other-cryptsetup-upgrade">Display the instructions to upgrade to LUKS2 using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-other-cryptsetup-upgrade"></div>
<ol>
<li><p>To verify whether your encrypted volume uses PBKDF2 or Argon2id, execute
the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output:</p>
<ul>
<li><p><code>Version</code> indicates the version of LUKS,
either <code>1</code> or <code>2</code>.</p></li>
<li><p><code>PBKDF</code> indicates the key derivation function,
either <code>pbkdf2</code> or <code>argon2id</code>.</p></li>
</ul>
<p>If your encrypted volume already uses LUKS2 and Argon2id, you can stop
here.</p></li>
<li><p>Execute the following command to do a backup of your LUKS1 header.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksHeaderBackup /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
<p>If something goes wrong, you will be able to restore your LUKS1 header
from this backup with:</p>
<p class="pre command-template">cryptsetup luksHeaderRestore /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
</li>
<li><p>To update your LUKS header to LUKS2, execute the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
device name found in step 1.6.</p>
<p class="pre command-template">cryptsetup convert /dev/<span class="command-placeholder">[partition]</span> --type luks2</p>
</li>
<li><p>To verify that Argon2id is the new key derivation function, execute the
following command again.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output, verify that:</p>
<ul>
<li><p>The <code>Version</code> is <code>2</code> and not <code>1</code>.</p></li>
<li><p>The <code>PBKDF</code> is <code>argon2id</code> and not <code>pbkdf2</code>.</p></li>
</ul>
</li>
<li><p>Try to unlock your encrypted volume.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>Change your passphrase.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.4-other-cryptsetup-passphrase">Display the instructions to change your passphrase using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.4-other-cryptsetup-passphrase"></div>
<ol>
<li><p>To change your passphrase, execute the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p> </p><p class="pre command-template">cryptsetup luksChangeKey /dev/<span class="command-placeholder">[partition]</span></p></li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<p>Otherwise, if your encrypted volume is on a USB stick (or an SSD) or you are
not comfortable with the command line:</p>
<ul>
<li><p>If you created your encrypted volume with Tails 5.13 or later, we
recommend you change your passphrase.</p>
<p>Follow our instructions on <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/encrypted_volumes/index.zh_TW.html#changing">changing the passphrase of an existing encrypted
partition</a>.</p></li>
<li><p>If you created your encrypted volume with Tails 5.12 or earlier, we
recommend you migrate all your encrypted data to a new encrypted device.</p>
<p>Follow our instructions on <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/encrypted_volumes/index.zh_TW.html">creating and using LUKS encrypted
volumes</a>.</p>
<p>We also recommend you destroy your old device (or at least <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely delete
the entire device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p></li>
</ul>
<h2 id="5">If your passphrase has 5 random words</h2>
<p>If your current passphrase has 5 random words:</p>
<ul>
<li><p>Your encryption is secure with LUKS1, except against a very powerful
adversary, like a state-sponsored attacker with a huge budget to spend on
guessing your passphrase.</p>
<p>We still recommend you upgrade to LUKS2.</p></li>
<li><p>Your encryption is even more secure with LUKS2.</p></li>
</ul>
<p>Congratulations on following our recommendations!</p>
<h3>Persistent Storage (5 words)</h3>
<p>To secure your Persistent Storage:</p>
<ol>
<li><p>Update to Tails 5.14.</p>
<p>When starting Tails 5.14 for the first time, Tails will automatically
convert your Persistent Storage to LUKS2.</p></li>
<li><p>Consider adding another random word to your passphrase.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-ps-passphrase">Display the instructions to change the passphrase of your Persistent Storage.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-ps-passphrase"></div>
<ol>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Persistent Storage</strong>.</p></li>
<li><p>Click on the <strong>Change Passphrase</strong> button on the left of the title bar.</p></li>
<li><p>Enter the current passphrase in the <strong>Current Passphrase</strong> text box.</p></li>
<li><p>Enter your new passphrase in the <strong>New Passphrase</strong> text box.</p></li>
<li><p>Enter your new passphrase again in the <strong>Confirm New Passphrase</strong> text box.</p></li>
<li><p>Click <strong>Change</strong>.</p></li>
<li><p>Close the <strong>Persistent Storage</strong> settings.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>If you created your encrypted volume with Tails 5.12 or earlier and are
worried about a very powerful adversary, consider migrating your entire
Tails to a different USB stick and destroying your old Tails USB stick
(or at least <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely deleting the entire
device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-ps-tails-installer">Display the instructions to migrate your entire Tails to a new USB stick.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-ps-tails-installer"></div>
<ol>
<li><p>Plug in the new USB stick.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Tails Cloner</strong>.</p></li>
<li><p>Turn on the option <strong>Clone the current Persistent Storage</strong> below the
option <strong>Clone the current Tails</strong>.</p></li>
<li><p>Make sure that the new USB stick is selected in the <strong>Target USB stick</strong>
menu.</p></li>
<li><p>To start the cloning, click on the <strong>Install</strong> button.</p></li>
<li><p>Enter a passphrase for the Persistent Storage on the new USB stick in the
<strong>Passphrase</strong> text box.</p></li>
<li><p>Enter the same passphrase again in the <strong>Confirm</strong> text box.</p></li>
<li><p>Click <strong>Continue</strong>.</p></li>
<li><p>Read the warning message in the confirmation dialog.</p></li>
<li><p>Click <strong>Delete All Data and Install</strong> to confirm.</p>
<p>Cloning takes a few minutes.</p>
<div class="bug">
<p>The progress bar usually freezes for some time
while synchronizing data on disk.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h3>Backup Tails (5 words)</h3>
<p>To secure your <a href="https://staging.tails.boum.org/doc/persistent_storage/backup/index.zh_TW.html">backup Tails</a>, if you have
one:</p>
<ol>
<li><p>Start on your main Tails USB stick.</p></li>
<li><p>Update your main Tails USB stick to Tails 5.14.</p></li>
<li><p>Update your backup or create a new backup Tails using <em>Tails Cloner</em>.</p>
<p>If you created your backup Tails with Tails 5.12 or earlier and are worried
about a very powerful adversary, consider creating your new backup Tails on a
different USB stick and destroying your old backup Tails (or at least
<a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely deleting the entire
device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-backup-tails-installer">Display the instructions to update your backup or create a new backup.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-backup-tails-installer"></div>
<ol>
<li><p>Plug in the new USB stick.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Tails Cloner</strong>.</p></li>
<li><p>Turn on the option <strong>Clone the current Persistent Storage</strong> below the
option <strong>Clone the current Tails</strong>.</p></li>
<li><p>Make sure that the new USB stick is selected in the <strong>Target USB stick</strong>
menu.</p></li>
<li><p>To start the cloning, click on the <strong>Install</strong> button.</p></li>
<li><p>Enter a passphrase for the Persistent Storage on the new USB stick in the
<strong>Passphrase</strong> text box.</p></li>
<li><p>Enter the same passphrase again in the <strong>Confirm</strong> text box.</p></li>
<li><p>Click <strong>Continue</strong>.</p></li>
<li><p>Read the warning message in the confirmation dialog.</p></li>
<li><p>Click <strong>Delete All Data and Install</strong> to confirm.</p>
<p>Cloning takes a few minutes.</p>
<div class="bug">
<p>The progress bar usually freezes for some time
while synchronizing data on disk.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h3>Other encrypted volumes (5 words)</h3>
<p>To secure your other encrypted volumes, if you have any:</p>
<ol>
<li><p>Update to Tails 5.14.</p></li>
<li><p>Consider adding another random word to your passphrase.</p></li>
</ol>
<p>If you created your encrypted volume with Tails 5.12 or earlier and your
encrypted volume is on a traditional hard disk (not an SSD) and you can use
the command line:</p>
<ol>
<li><p>Identify the partition name of your encrypted volume.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-other-cryptsetup-partition">Display the instructions to identify the partition name using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-other-cryptsetup-partition"></div>
<ol>
<li><p>When starting Tails, <a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">set up an administration
password</a>.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>System Tools</strong> ▸ <strong>Root Terminal</strong>.</p></li>
<li><p>Execute the following command:</p>
<pre><code>lsblk
</code></pre>
<p>The output is a list of the storage devices and partitions on the system.
For example:</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Plug in your encrypted volume. Keep the encryption locked.</p></li>
<li><p>Execute the same command again:</p>
<pre><code>lsblk
</code></pre>
<p>Your encrypted volume appears as a new device with a list of partitions.
Check that the partition size corresponds to your encrypted volume.</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
sdb 8:0 1 7G 0 disk
└─sdb1 8:2 1 7G 0 part
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Take note of the <em>partition name</em> of your encrypted volume. In this
example, the new device in the list is <span class="code">sdb</span>
and the encrypted volume is in the partition
<span class="code">sdb1</span>. Yours might be different.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>If you created your encrypted volume with Tails 5.12 or earlier, upgrade
to LUKS2.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-other-cryptsetup-upgrade">Display the instructions to upgrade to LUKS2 using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-other-cryptsetup-upgrade"></div>
<ol>
<li><p>To verify whether your encrypted volume uses PBKDF2 or Argon2id, execute
the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output:</p>
<ul>
<li><p><code>Version</code> indicates the version of LUKS,
either <code>1</code> or <code>2</code>.</p></li>
<li><p><code>PBKDF</code> indicates the key derivation function,
either <code>pbkdf2</code> or <code>argon2id</code>.</p></li>
</ul>
<p>If your encrypted volume already uses LUKS2 and Argon2id, you can stop
here.</p></li>
<li><p>Execute the following command to do a backup of your LUKS1 header.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksHeaderBackup /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
<p>If something goes wrong, you will be able to restore your LUKS1 header
from this backup with:</p>
<p class="pre command-template">cryptsetup luksHeaderRestore /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
</li>
<li><p>To update your LUKS header to LUKS2, execute the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
device name found in step 1.6.</p>
<p class="pre command-template">cryptsetup convert /dev/<span class="command-placeholder">[partition]</span> --type luks2</p>
</li>
<li><p>To verify that Argon2id is the new key derivation function, execute the
following command again.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output, verify that:</p>
<ul>
<li><p>The <code>Version</code> is <code>2</code> and not <code>1</code>.</p></li>
<li><p>The <code>PBKDF</code> is <code>argon2id</code> and not <code>pbkdf2</code>.</p></li>
</ul>
</li>
<li><p>Try to unlock your encrypted volume.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>Change your passphrase.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.5-other-cryptsetup-passphrase">Display the instructions to change your passphrase using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.5-other-cryptsetup-passphrase"></div>
<ol>
<li><p>To change your passphrase, execute the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p> </p><p class="pre command-template">cryptsetup luksChangeKey /dev/<span class="command-placeholder">[partition]</span></p></li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<p>If you create your encrypted volume with Tails 5.12 or earlier and your
encrypted volume is on a USB stick (or an SSD) or if you are not comfortable
with the command line:</p>
<ol>
<li><p>Migrate all your encrypted data to a new encrypted device.</p>
<p>Follow our instructions on <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/encrypted_volumes/index.zh_TW.html">creating and using LUKS encrypted
volumes</a>.</p></li>
<li><p>If you are worried about a very powerful adversary, consider destroying
your old device (or at least <a href="https://staging.tails.boum.org/doc/encryption_and_privacy/secure_deletion/index.zh_TW.html#device">securely deleting the entire
device</a>).</p>
<p>If you don't, the previous LUKS1 data might still be written in some recovery
data on the USB stick and could be recovered using advanced data forensics
techniques.</p></li>
</ol>
<h2 id="6">If your passphrase has 6 random words or more</h2>
<p>If your current passphrase has 6 random words or more:</p>
<ul>
<li><p>Your encryption is secure with LUKS1, even against a very powerful
adversary.</p>
<p>We still recommend you upgrade to LUKS2.</p></li>
<li><p>Your encryption is even more secure with LUKS2.</p></li>
</ul>
<p>Congratulations on following our most secure recommendations!</p>
<h3>Persistent Storage (6 words or more)</h3>
<p>Your Persistent Storage is already secure, even with LUKS1.</p>
<p>After you upgrade to Tails 5.14 or later, Tails will automatically convert
your Persistent Storage to LUKS2 and make your Persistent Storage even more
secure.</p>
<h3>Backup Tails (6 words or more)</h3>
<p>Your backup Tails is already secure, even with LUKS1.</p>
<p>If you want to upgrade your backup Tails to LUKS2 anyway:</p>
<ol>
<li><p>Start on your main Tails USB stick.</p></li>
<li><p>Update your main Tails USB stick to Tails 5.14.</p></li>
<li><p>Update your backup using <em>Tails Cloner</em>.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.6-backup-tails-installer">Display the instructions to update your backup.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.6-backup-tails-installer"></div>
<ol>
<li><p>Plug in the new USB stick.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>Tails Cloner</strong>.</p></li>
<li><p>Turn on the option <strong>Clone the current Persistent Storage</strong> below the
option <strong>Clone the current Tails</strong>.</p></li>
<li><p>Make sure that the new USB stick is selected in the <strong>Target USB stick</strong>
menu.</p></li>
<li><p>To start the cloning, click on the <strong>Install</strong> button.</p></li>
<li><p>Enter a passphrase for the Persistent Storage on the new USB stick in the
<strong>Passphrase</strong> text box.</p></li>
<li><p>Enter the same passphrase again in the <strong>Confirm</strong> text box.</p></li>
<li><p>Click <strong>Continue</strong>.</p></li>
<li><p>Read the warning message in the confirmation dialog.</p></li>
<li><p>Click <strong>Delete All Data and Install</strong> to confirm.</p>
<p>Cloning takes a few minutes.</p>
<div class="bug">
<p>The progress bar usually freezes for some time
while synchronizing data on disk.</p>
</div>
</li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h3>Other encrypted volumes (6 words or more)</h3>
<p>Your other encrypted volumes are already secure, even with LUKS1.</p>
<p>If you want to upgrade your other encrypted volumes to LUKS2 anyway and you
know how to use the command line:</p>
<ol>
<li><p>Identify the partition name of your encrypted volume.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.6-other-cryptsetup-partition">Display the instructions to identify the partition name using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.6-other-cryptsetup-partition"></div>
<ol>
<li><p>When starting Tails, <a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">set up an administration
password</a>.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>System Tools</strong> ▸ <strong>Root Terminal</strong>.</p></li>
<li><p>Execute the following command:</p>
<pre><code>lsblk
</code></pre>
<p>The output is a list of the storage devices and partitions on the system.
For example:</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Plug in your encrypted volume. Keep the encryption locked.</p></li>
<li><p>Execute the same command again:</p>
<pre><code>lsblk
</code></pre>
<p>Your encrypted volume appears as a new device with a list of partitions.
Check that the partition size corresponds to your encrypted volume.</p>
<pre><code>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
sdb 8:0 1 7G 0 disk
└─sdb1 8:2 1 7G 0 part
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Take note of the <em>partition name</em> of your encrypted volume. In this
example, the new device in the list is <span class="code">sdb</span>
and the encrypted volume is in the partition
<span class="code">sdb1</span>. Yours might be different.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
<li><p>Upgrade to LUKS2.</p>
<p><a class="toggle" href="https://staging.tails.boum.org/security/index.zh_TW.html#security-argon2id.zh-TW.6-other-cryptsetup-upgrade">Display the instructions to upgrade to LUKS2 using the command line.</a>
</p><div class="toggleable" id="security-argon2id.zh-TW.6-other-cryptsetup-upgrade"></div>
<ol>
<li><p>To verify whether your encrypted volume uses PBKDF2 or Argon2id, execute
the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output:</p>
<ul>
<li><p><code>Version</code> indicates the version of LUKS,
either <code>1</code> or <code>2</code>.</p></li>
<li><p><code>PBKDF</code> indicates the key derivation function,
either <code>pbkdf2</code> or <code>argon2id</code>.</p></li>
</ul>
<p>If your encrypted volume already uses LUKS2 and Argon2id, you can stop
here.</p></li>
<li><p>Execute the following command to do a backup of your LUKS1 header.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksHeaderBackup /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
<p>If something goes wrong, you will be able to restore your LUKS1 header
from this backup with:</p>
<p class="pre command-template">cryptsetup luksHeaderRestore /dev/<span class="command-placeholder">[partition]</span> --header-backup-file /home/amnesia/luks1header</p>
</li>
<li><p>To update your LUKS header to LUKS2, execute the following command.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
device name found in step 1.6.</p>
<p class="pre command-template">cryptsetup convert /dev/<span class="command-placeholder">[partition]</span> --type luks2</p>
</li>
<li><p>To verify that Argon2id is the new key derivation function, execute the
following command again.</p>
<p>Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 1.6.</p>
<p class="pre command-template">cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p>In the output, verify that:</p>
<ul>
<li><p>The <code>Version</code> is <code>2</code> and not <code>1</code>.</p></li>
<li><p>The <code>PBKDF</code> is <code>argon2id</code> and not <code>pbkdf2</code>.</p></li>
</ul>
</li>
<li><p>Try to unlock your encrypted volume.</p></li>
</ol>
<div class="toggleableend"></div>
</li>
</ol>
<h2 id="checking">Knowing which version of LUKS is used in your devices</h2>
<p>If you know how to use the command line, you can verify whether your
encryption uses PBKDF2 or Argon2id.</p>
<h3>Persistent Storage</h3>
<ol>
<li><p>When starting Tails, <a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.zh_TW.html">set up an administration
password</a>.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>System Tools</strong> ▸ <strong>Root
Terminal</strong>.</p></li>
<li><p>Execute the following command:</p>
<pre><code>lsblk
</code></pre>
<p>The output is a list of the storage devices and partitions on the system.
For example:</p>
<pre><code> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre>
<p> Your Persistent Storage appears as <code>TailsData_unlocked</code>.</p></li>
<li><p>Take note of the <em>partition name</em> of your Persistent Storage, which
appears above <code>TailsData_unlocked</code>. In this example, the Persistent
Storage is in the partition <span class="code">sda2</span>. Yours
might be different.</p></li>
<li><p>To verify whether your encrypted volume uses PBKDF2 or Argon2id,
execute the following command.</p>
<p> Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 4.</p>
<p> </p><p class="pre command-template">sudo cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p> In the output:</p>
<ul>
<li><p><code>Version</code> indicates the version of LUKS, either <code>1</code> or <code>2</code>.</p></li>
<li><p><code>PBKDF</code> indicates the key derivation function, either <code>pbkdf2</code> or
<code>rgon2id</code>.</p></li>
</ul>
</li>
</ol>
<h3>Other encrypted volumes</h3>
<ol>
<li><p>When starting Tails, <a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html">set up an administration
password</a>.</p></li>
<li><p>Choose <strong>Applications</strong> ▸ <strong>System Tools</strong> ▸ <strong>Root Terminal</strong>.</p></li>
<li><p>Execute the following command:</p>
<pre><code>lsblk
</code></pre>
<p>The output is a list of the storage devices and partitions on the system.
For example:</p>
<pre><code> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Plug in your encrypted volume. Keep the encryption locked.</p></li>
<li><p>Execute the same command again:</p>
<pre><code>lsblk
</code></pre>
<p>Your encrypted volume appears as a new device with a list of partitions.
Check that the partition size corresponds to your encrypted volume.</p>
<pre><code> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.2G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 7G 0 disk
├─sda1 8:1 1 4G 0 part /lib/live/mount/medium
└─sda2 8:2 1 3G 0 part
└─TailsData_unlocked 253:0 0 3G 0 crypt /run/nosymfollow/live/persistence/TailsData_un...
sdb 8:0 1 7G 0 disk
└─sdb1 8:2 1 7G 0 part
zram0 254:0 0 2.8G 0 disk [SWAP]
</code></pre></li>
<li><p>Take note of the <em>partition name</em> of your encrypted volume. In this
example, the new device in the list is <span class="code">sdb</span>
and the encrypted volume is in the partition
<span class="code">sdb1</span>. Yours might be different.</p></li>
<li><p>To verify whether your encrypted volume uses PBKDF2 or Argon2id,
execute the following command.</p>
<p> Replace <span class="command-placeholder">[partition]</span> with the
partition name found in step 6.</p>
<p> </p><p class="pre command-template">sudo cryptsetup luksDump /dev/<span class="command-placeholder">[partition]</span></p>
<p> In the output:</p>
<ul>
<li><p><code>Version</code> indicates the version of LUKS, either <code>1</code> or <code>2</code>.</p></li>
<li><p><code>PBKDF</code> indicates the key derivation function, either <code>pbkdf2</code> or
<code>argon2id</code>.</p></li>
</ul>
</li>
</ol>
Serious security vulnerability in Tails 5.0https://staging.tails.boum.org/security/prototype_pollution/index.zh_TW.html2024-03-26T03:21:21Z2022-05-24T12:34:56Z
<p><em>Tor Browser</em> in Tails 5.0 and earlier is unsafe to use for sensitive
information.</p>
<p><strong>We recommend that you stop using Tails until the release of 5.1 (early June) if
you use <em>Tor Browser</em> for sensitive information (passwords, private messages,
personal information, etc.).</strong></p>
<p>A security vulnerability was discovered in the JavaScript engine of
<em>Firefox</em> and <em>Tor Browser</em>. See the <a href="https://www.mozilla.org/en-US/security/advisories/mfsa2022-19/">Mozilla Foundation Security Advisory
2022-19</a></p>
<p>This vulnerability allows a malicious website to bypass some of the security
built in <em>Tor Browser</em> and access information from other websites.</p>
<p>For example, after you visit a malicious website, an attacker controlling
this website might access the password or other sensitive information that
you send to other websites afterwards during the same Tails session.</p>
<p>This vulnerability doesn't break the anonymity and encryption of Tor
connections.</p>
<p>For example, it is still safe and anonymous to access websites from Tails if
you don't share sensitive information with them.</p>
<p>After <em>Tor Browser</em> has been compromised, the only reliable solution is to
restart Tails.</p>
<p>Other applications in Tails are not vulnerable. <em>Thunderbird</em> in Tails is
not vulnerable because JavaScript is disabled.</p>
<p>The <em>Safest</em> <a href="https://staging.tails.boum.org/doc/anonymous_internet/Tor_Browser/index.zh_TW.html#security-level">security level of <em>Tor
Browser</em></a> is not affected
because JavaScript is disabled at this security level.</p>
<p>This vulnerability will be fixed in Tails 5.1 (early June), but our team
doesn't have the capacity to publish an emergency release earlier.</p>
JavaScript vulnerability in Tor Browserhttps://staging.tails.boum.org/security/mcallgetproperty/index.zh_TW.html2024-03-26T03:21:21Z2020-11-11T21:15:09Z
<p>A <a href="https://www.mozilla.org/en-US/security/advisories/mfsa2020-49/">critical
vulnerability</a>
was discovered in the JavaScript engine of <em>Firefox</em> and <em>Tor Browser</em>.</p>
<p>Until Tails 4.13 (November 17), we recommend all users to set the <a href="https://staging.tails.boum.org/doc/anonymous_internet/Tor_Browser/index.zh_TW.html#security-level">security
level of <em>Tor Browser</em></a>
to <em>Safer</em> or <em>Safest</em>.</p>
<p>This vulnerability was discovered during the <a href="http://www.tianfucup.com/">Tianfu Cup 2020 International
Cybersecurity Contest</a>. The details of the
vulnerability were not disclosed.</p>
<p>We are not aware of any use of this vulnerability against actual users.</p>
<p>The <em>Safer</em> or <em>Safest</em> security level of <em>Tor Browser</em> are not affected
because the feature of JavaScript that is affected, the <em><a href="https://en.wikipedia.org/wiki/just%2Din%2Dtime%20compilation">just-in-time compilation</a></em>, is disabled at these security levels.</p>
<p>Mozilla fixed this vulnerability in <em>Firefox</em> 78.4.1 and Tor fixed this
vulnerability in <em>Tor Browser</em> 10.0.4.</p>
<p>We decided not to release an emergency upgrade of Tails because:</p>
<ul>
<li>Tails 4.13 is already scheduled for November 17 and will fix this
vulnerability.</li>
<li>Our main release manager left the team recently and we have very limited
staffpower right now.</li>
<li>The details of the vulnerability were not disclosed, making it harder to
exploit, and we are not aware of any use of this vulnerability against
actual users.</li>
</ul>
Critical security vulnerability in Tails 3.14.1https://staging.tails.boum.org/security/sandbox_escape_in_tor_browser/index.zh_TW.html2024-03-26T03:21:21Z2019-06-20T10:34:57Z
<div class="caution">
<p>Tor Browser in Tails 3.14.1 and earlier is unsafe to use in most cases.</p>
<p>We <b>strongly</b> encourage you to
<a href="https://staging.tails.boum.org/news/version_3.14.2/">upgrade to Tails 3.14.2</a> as soon as possible.</p>
</div>
<p>A security vulnerability was discovered in the sandboxing
mechanism of <em>Firefox</em> and <em>Tor Browser</em>. This vulnerability allows a
malicious website to bypass some of the confinement built in <em>Firefox</em>,
which means possibly spying on the content of other tabs and steal
the passwords of other websites.</p>
<p>After <em>Tor Browser</em> has been compromised, the only reliable solution is
to restart Tails.</p>
<p>Because <em>Tor Browser</em> in Tails is <a href="https://staging.tails.boum.org/doc/anonymous_internet/Tor_Browser/index.en.html#confinement">confined using
<em>AppArmor</em></a>, only the
data accessible to <em>Tor Browser</em> might be compromised but not the other
applications or your other files. For example, a compromised <em>Tor
Browser</em> might access your files in the <em>Tor Browser</em> and
<em>Persistent/Tor Browser</em> folders but not anywhere else.</p>
<p>For example, without restarting Tails:</p>
<ul>
<li><p>It is unsafe to:</p>
<ul>
<li><p>Log in to a website and also visit an untrusted website.
Your password on the first website might be stolen by the untrusted website.</p></li>
<li><p>Visit an untrusted website if you have sensitive information stored
in your <em>Persistent/Tor Browser</em> folder. The untrusted website might
access these files.</p></li>
</ul>
</li>
<li><p>It is safe to:</p>
<ul>
<li><p>Visit untrusted websites, without logging in, if you have no
sensitive information stored in your <em>Tor Browser</em> and
<em>Persistent/Tor Browser</em> folders.</p></li>
<li><p>Log in to several trusted websites without visiting any untrusted
websites.</p></li>
</ul>
</li>
</ul>
Tor Browser not safe without manual actionhttps://staging.tails.boum.org/security/noscript_disabled_in_tor_browser/index.zh_TW.html2024-03-26T03:21:21Z2019-05-04T00:00:00Z
<div class="caution">Tor Browser in Tails 3.13.1 is not safe to use
without taking the manual steps listed below each time you start
Tails!</div>
<p>Starting from Friday May 3, a problem in <em>Firefox</em> and <em>Tor Browser</em>
disabled all add-ons, especially <em>NoScript</em> which is used to:</p>
<ul>
<li><p>Strengthen <em>Tor Browser</em> against some JavaScript attacks that can lead to
compromised accounts and credentials on websites.</p></li>
<li><p>Enable or disable JavaScript on some websites using the <em>NoScript</em>
interface, if you use it.</p></li>
</ul>
<p>If <em>NoScript</em> is activated, the <em>NoScript</em> icon appears in the top-right
corner and <em>Tor Browser</em> is safe:</p>
<p><img alt="" class="img" height="149" src="https://staging.tails.boum.org/news/version_3.13.2/with-noscript.png" width="269" /></p>
<p>If <em>NoScript</em> is deactivated, the <em>NoScript</em> icon is absent from the
top-right corner and <em>Tor Browser</em> is unsafe:</p>
<p><img alt="" class="img" height="149" src="https://staging.tails.boum.org/news/version_3.13.2/without-noscript.png" width="269" /></p>
<h2>Activate <em>NoScript</em> manually</h2>
<p>To secure <em>Tor Browser</em> in Tails 3.13.1 or earlier, you must activate
<em>NoScript</em> every time you start Tails:</p>
<ol>
<li><p>Open the address <code>about:config</code> in <em>Tor Browser</em>.</p>
<p><img class="img" height="155" src="https://staging.tails.boum.org/news/version_3.13.2/about-config.png" width="609" /></p></li>
<li><p>Click the <strong>I accept the risk!</strong> button.</p></li>
<li><p>At the top of the page, search for <code>xpinstall.signatures.required</code>.</p></li>
<li><p>Double-click on the <strong>xpinstall.signatures.required</strong> line in the results
to set its value to <strong>false</strong>.</p></li>
<li><p>Verify that <em>NoScript</em> is activated again.</p>
<p><img class="img" height="190" src="https://staging.tails.boum.org/news/version_3.13.2/xpinstall-false.png" width="617" /></p></li>
</ol>
Claws Mail leaks plaintext of encrypted emails to IMAP serverhttps://staging.tails.boum.org/security/claws_mail_leaks_plaintext_to_imap/index.zh_TW.html2024-03-26T03:21:21Z2015-05-07T12:34:56Z
<p>We discovered that <em>Claws Mail</em>, the email client in Tails, stores plaintext
copies of all emails on the remote IMAP server, including those that are
meant to be encrypted.</p>
<ul>
<li>When sending an email, <em>Claws Mail</em> copies the email in plaintext to the
sending queue of the IMAP server before encrypting the email. <em>Claws
Mail</em> deletes this plaintext copy after sending the email.</li>
<li><em>Claws Mail</em> drafts in plaintext on the server. An email can be saved as
draft either:
<ul>
<li>Manually by clicking on the <strong>Draft</strong> button when composing an email.</li>
<li>Automatically if you selected the <strong>automatically save message to
Draft folder</strong> option in the writing preferences. This option is
deselected by default in Tails.</li>
</ul>
</li>
</ul>
<p><strong>All users of <em>Claws Mail</em> using IMAP and its OpenPGP plug-in are affected.</strong></p>
<p>Users of <em>Claws Mail</em> using POP are not affected.</p>
<div class="tip">
To know if you are using IMAP or POP, choose <span class="menuchoice">
<span class="guimenu">Configuration</span> ▸
<span class="guimenuitem">Edit accounts…</span></span> and refer
to the <span class="guilabel">Protocol</span> column in the list of
accounts.
</div>
<p>Unfortunately, we were not yet able to fix the problem automatically and for
everybody. This would require to either modify <em>Claws Mail</em> or to migrate to
a different application. Refer to the workarounds section to solve this
problem in your setup and please warn others around you.</p>
<h1>Workarounds</h1>
<h2>Verify the content of your <strong>Drafts</strong> folder</h2>
<p>First of all, verify the content of the <strong>Drafts</strong> folder on the server,
either through <em>Claws Mail</em> or through the web interface of your email
provider. Delete any plaintext email that might have been stored against
your will in this folder until now.</p>
<p>Then apply one of the other two workarounds to prevent more leaks in the
future.</p>
<h2>Use POP instead of IMAP</h2>
<p><em>Claws Mail</em> can connect to the email server using either the IMAP or POP
protocol.</p>
<ul>
<li>With IMAP, <em>Claws Mail</em> constantly synchronizes with the server and
displays the emails and folders that are currently stored on the
server. IMAP is better suited if you access your emails from different
operating systems.</li>
<li>With POP, <em>Claws Mail</em> downloads the emails that are in the inbox on the
server and possibly removes them from the server. POP is better suited
if you access emails from Tails only and store them in the persistent
volume.</li>
</ul>
<p>To know more, see also this Yahoo! Help page on <a href="https://help.yahoo.com/kb/mail-for-desktop/compare-differences-pop-imap-sln3769.html">comparing the differences
between POP and
IMAP</a>.</p>
<p>POP is not affected at all by this security problem. When using POP, only
encrypted emails are sent to the server. So consider switching to POP if you
have an email account dedicated to your activities on Tails. To do so:</p>
<ol>
<li><p>Choose <strong>File</strong> ▸ <strong>Add mailbox</strong> ▸ <strong>MH…</strong> to
create a local mailbox where to download your emails.</p></li>
<li><p>To store the mailbox in the persistent volume, specify
<code>.claws-mail/Mail</code> as location.
Make sure to type the <code>.</code> before
<code>claws-mail/Mail</code>.</p>
<p> <img class="img" height="246" src="https://staging.tails.boum.org/security/claws_mail_leaks_plaintext_to_imap/add_mailbox.png" width="355" /></p></li>
<li><p>Choose <strong>Configuration</strong> ▸ <strong>Edit accounts…</strong>, select
your IMAP account in the list of accounts, and click <strong>Delete</strong> to
delete it. Doing so does not delete any email stored on the server.</p></li>
<li><p>Click <strong>New</strong> and configure this new account as specified by your
email provider.</p>
<ul>
<li>In the <strong>Basic</strong> tab, make sure that the <strong>Protocol</strong> option is set to
<strong>POP3</strong>.</li>
<li><p>In the <strong>Receive</strong> tab, click on the <strong>Browse</strong> button of the <strong>Default
Inbox</strong> option and select the <strong>Inbox</strong> folder of the mailbox that you
created in step 2.</p>
<p><img class="img" height="318" src="https://staging.tails.boum.org/security/claws_mail_leaks_plaintext_to_imap/select_inbox.png" width="302" /></p></li>
<li><p>If you want to keep a copy of the received emails on the server, verify
the preferences in the <strong>Receive</strong> tab. We recommend you to disable the
<strong>Remove messages on server when received</strong> option until you make sure
that the emails are stored in the persistent volume.</p></li>
</ul>
</li>
<li><p>Close the preferences dialog and the list of accounts to go back to
the main window of <em>Claws Mail</em>.</p></li>
<li><p>Click on the <strong>Get Mail</strong> button to download all emails from the
inbox on the server. Emails in other folders are not downloaded.</p></li>
</ol>
<h2>Use local <strong>Drafts</strong> and <strong>Queue</strong> folders</h2>
<p>If you want to continue using IMAP, you should configure your IMAP account
to use <strong>Drafts</strong> and <strong>Queue</strong> folders stored in Tails instead of on the
server. To do so:</p>
<ol>
<li><p>Choose <strong>Add mailbox</strong> ▸ <strong>MH…</strong> to create a local
mailbox where to save your drafts and queued emails.</p></li>
<li><p>To store the mailbox in the persistent volume, specify
<code>.claws-mail/Mail</code> as location.
Make sure to type the <code>.</code> before
<code>claws-mail/Mail</code>.</p>
<p> <img class="img" height="246" src="https://staging.tails.boum.org/security/claws_mail_leaks_plaintext_to_imap/add_mailbox.png" width="355" /></p></li>
<li><p>Choose <strong>Configuration</strong> ▸ <strong>Edit accounts…</strong>, select
your IMAP account in the list of accounts, and click <strong>Edit</strong> to edit
its preferences.</p></li>
<li><p>Select <strong>Advanced</strong> in the left pane.</p></li>
<li><p>Select the <strong>Put queued messages in</strong> option, click <strong>Browse</strong>, and
select the <strong>Queue</strong> folder of the <strong>MH</strong> mailbox.</p></li>
<li><p>Select the <strong>Put draft messages in</strong> option, click <strong>Browse</strong>, and
select the <strong>Drafts</strong> folder of the <strong>MH</strong> mailbox.</p></li>
</ol>
<p><img class="img" height="221" src="https://staging.tails.boum.org/security/claws_mail_leaks_plaintext_to_imap/local_folders.png" width="551" /></p>
<h1>Long term solution</h1>
<p>As for the possible long term solutions to this problem, we are considering:</p>
<ul>
<li><p>Getting the development team of <em>Claws Mail</em> to <a href="http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=2965">fix the problem
upstream</a>.
We contacted them about this problem already. Please help them provide a
technical solution if you can.</p></li>
<li><p>Replacing <em>Claws Mail</em> with <em>Icedove</em> (the name of <em>Mozilla Thunderbird</em>
in Debian). We have been willing to do so for years and this problem
motivates us to move faster.</p></li>
</ul>
<h1>Technical details</h1>
<h2>Leak through the sending queue</h2>
<p>When sending an email from an IMAP account, <em>Claws Mail</em> does the following:</p>
<ol>
<li><p>It connects to the IMAP server and stores a plaintext copy of the
email in the <strong>Queue</strong> folder on the server.</p></li>
<li><p>It encrypts the email locally.</p></li>
<li><p>It sends the encrypted email through the SMTP server.</p></li>
<li><p>It connects to the IMAP server and stores an encrypted copy of the
email in the <strong>Sent</strong> folder on the server.</p></li>
<li><p>It connects to the IMAP server and deletes the plaintext email
saved in step 1 from the <strong>Queue</strong> folder.</p></li>
</ol>
Security hole in I2P 0.9.13https://staging.tails.boum.org/security/Security_hole_in_I2P_0.9.13/index.zh_TW.html2024-03-26T03:21:21Z2014-07-24T21:15:00Z
<p>A security hole affects I2P 0.9.13, that is part of Tails 1.1 and earlier.</p>
<h1>Scope and severity</h1>
<p>If you are using I2P in Tails 1.1 and earlier, an attacker can deanonymize
you: they can learn the IP address that identifies you on the Internet.</p>
<p>To be able to conduct this attack:</p>
<ol>
<li><p>the attacker must be able to affect the content of a website that you are
visiting using the <a href="https://staging.tails.boum.org/doc/anonymous_internet/Tor_Browser/index.zh_TW.html">Tor Browser</a> in
Tails — many people are able to do so;</p></li>
<li><p>and, the attacker must find out how to exploit this security hole; this
information has not been published yet, but they may somehow already have
discovered it, or been made aware of it.</p></li>
</ol>
<div class="note">
<p><strong>Tails does not start I2P by default.</strong> This design
decision was made precisely in order to
protect the Tails users who do not use I2P from security holes in this
piece of software.</p>
<p>Still, an attacker who would also be able to start I2P on your
Tails, either by exploiting another undisclosed security hole, or by
tricking you into starting it yourself, could then use this I2P
security hole to deanonymize you.</p>
</div>
<h1>Temporary solutions</h1>
<p>You can protect yourself from this security hole until it is corrected.</p>
<p>Do not start I2P in Tails 1.1 and earlier. You can protect yourself further
by removing the <code>i2p</code> package every time you start Tails:</p>
<ol>
<li><a href="https://staging.tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.zh_TW.html">Set an administration
password</a>.</li>
<li><p>Run this command in a <span class="application">Root Terminal</span>:</p>
<pre><code>apt-get purge i2p
</code></pre></li>
</ol>
<p>However, if you really need to use I2P in Tails 1.1: before you start I2P,
disable JavaScript globally <a href="https://staging.tails.boum.org/doc/anonymous_internet/Tor_Browser/index.zh_TW.html#noscript">with
NoScript</a> in the Tor Browser.</p>
<h1>Credits</h1>
<p>This security hole was reported to us by Exodus Intelligence.</p>
You have to upgrade Tor to fix a critical anonymity vulnerabilityhttps://staging.tails.boum.org/security/Upgrade_Tor/index.zh_TW.html2024-03-26T03:21:21Z2011-10-30T15:12:13Z
<div class="tip">
<p>This security issue was fixed in Tails 0.9.</p>
</div>
<p>The version of Tor currently shipped in Tails does not protect your
anonymity as it should. <strong>This vulnerability is critical.</strong></p>
<p>Until a future version of Tails is released (soon), the only way to have
Tails protect your anonymity is to <strong>upgrade Tor every time you start
Tails</strong>, by following the instructions bellow.</p>
<p>(Every time, really? Sure. Tails is amnesic: any change you make in it is
lost upon restart.)</p>
<p>To upgrade Tor, start a <em>Root Terminal</em> from the
<em>Applications</em> → <em>Accessories</em> menu, and type the following command in
there:</p>
<pre><code>apt-get update && apt-get install tor && service tor start
</code></pre>
<p>... then type <em>Enter</em>, and wait until the upgrade is completed, which may
take a few minutes. At this time, the Vidalia icon on the top right of the
screen should have changed from the usual green onion to a grey, red-crossed
one. Right click on it and choose <em>Exit</em> in the menu that opens. Then, start
a new Vidalia from the <em>Applications</em> → <em>Internet</em> menu.</p>
<p>Once this is done, you can safely use Tails as usual.</p>
<p>Want details? See the <a href="https://blog.torproject.org/blog/tor-02234-released-security-patches">Tor project's blog
post</a>
about it.</p>
Iceweasel exposes a rare User-Agenthttps://staging.tails.boum.org/security/Iceweasel_exposes_a_rare_User-Agent/index.zh_TW.html2024-03-26T03:21:21Z2010-09-03T01:15:14Z
<p>A Torbutton bug (<a href="https://bugs.debian.org/595375">Debian bug #595375</a>) makes Iceweasel expose a recognizable
User-Agent when the "Spoof US English Browser" setting is disabled, which is
the case in T(A)ILS 0.5.</p>
<h1>Impact</h1>
<p>System administrators, webmasters and anyone able to read the logs of a
website are able to single out, amongst the visitors, the ones that are
using an affected Torbutton extension <em>and</em> have explicitly disabled the
"Spoof US English Browser" setting.</p>
<p>While T(A)ILS users are obviously not the only ones in this case, such a bug
eases fingerprinting.</p>
<p>The client IP address recorded in the webserver logs for such a connection
is the one of the Tor exit node used by the T(A)ILS user at this time.</p>
<h1>Solution</h1>
<p>Upgrade to T(A)ILS 0.6.</p>
<h1>Mitigation on T(A)ILS 0.5</h1>
<p>The following steps need to be done immediately after boot, <strong>before</strong>
running Iceweasel.</p>
<p>Run the following command in a terminal:</p>
<pre><code>gksudo gedit /etc/iceweasel/profile/user.js
</code></pre>
<p>... this opens a text editor. Delete the line that says:</p>
<pre><code>user_pref("extensions.torbutton.spoof_english", false);
</code></pre>
<p>... then save and quit. You can now run Iceweasel.</p>
<p>Beware! Changing this setting in the Torbutton preferences window is <strong>not</strong>
effective.</p>
<h1>Affected versions</h1>
<p>Torbutton 1.2.5, included in T(A)ILS 0.5</p>