Security Advisory

Security Advisory: Update encrypted USB drives and replace short passphrases

June 20, 2023

SecureDrop relies on Tails for the Journalist Workstation, the Admin Workstation, and the air-gapped Secure Viewing Station. If you are running SecureDrop, you should have possession of multiple Tails USB drives, depending on the number of users on the system, and multiple LUKS-encrypted drives.

If your USB drives are configured per our documentation, upgrade them at your earliest convenience. If your USB drives contain shorter than recommended passphrases (fewer than seven words), update immediately and change passwords.

Background

Tails 5.14, released on June 13, 2023, automatically upgrades the encryption method used to protect data stored on a Tails USB drive (from LUKS1 to LUKS2). We endorse the Tails project’s recommendations to upgrade all LUKS-encrypted drives to LUKS2.

LUKS2 includes support for a stronger password hashing function (Argon2id), which makes it much harder for any adversary who gains possession of one of your Tails USB drives to decrypt and access their contents using “brute force” methods. See the Tails security advisory for more information.

Security implications

The security implications of the use of LUKS1 vs. LUKS2 (with Argon2id) depend on the strength of your passphrases. We recommend seven word diceware passphrases for all encrypted drives. If you have followed this recommendation, a brute force attack against a LUKS1 drive would, as of this writing, be difficult to execute even for a very powerful adversary.

If you used passphrases with fewer than seven words, you should update to LUKS2 immediately and replace your passphrases with new, stronger ones as part of that process.

Even if you have a strong seven-word passphrase, we still recommend that you upgrade all Tails USB drives to version 5.14 (which will automatically migrate them to LUKS2 with Argon2id), and all other LUKS-encrypted drives to LUKS2 with Argon2id, as part of regular maintenance of the system.

Preparing the upgrade process

  • Inventorize all USB drives in your possession that are LUKS-encrypted. As noted above, this may include Journalist Workstations, Admin Workstations, Secure Viewing Stations, backup drives, and export or transfer devices you intend to use.
  • Ensure that Secure Viewing Station drives are clearly separated from all other drives. Because they hold your private encryption key, they should never be plugged into an Internet-connected device.
  • Back up your Journalist Workstation, your Admin Workstation and your Secure Viewing Station drives. You can do this by following our backup guide. Note that this backup should be performed on an air-gapped machine, such as the one used for your SVS.

    The backup drive itself will be converted to LUKS2 later in this process, but this backup will ensure that you can roll back if you encounter any issues.

Upgrading Journalist and Admin Workstations

  • On the Tails welcome screen, unlock the persistent storage.
  • Connect to the Internet.
  • Wait for Tails to notify you about available updates and follow the instructions. If you are many versions behind, you may have to perform a manual upgrade.
  • After the upgrade is complete, boot into Tails 5.14 and unlock the persistent storage. Tails 5.14 will automatically migrate your persistent storage to stronger encryption as soon as you unlock it.

Note: You may get an 'Upgrading persistent storage' message every time you unlock the drive. This is due to a bug. It does not indicate any problem with the conversion, and and is expected to be fixed with a future release of Tails.

Upgrading the Secure Viewing Station

Please follow our instructions for performing a manual upgrade on the air-gapped computer you use for the Secure Viewing Station. Ensure that the SVS drive is never plugged into an Internet-connected computer.

Once you have performed the Tails upgrade, you can boot it on the air-gapped computer and unlock the persistent storage. Tails 5.14 will then perform the automatic conversion.

Upgrading other LUKS-encrypted drives

To convert any other LUKS-encrypted drive, such as backup drives or transfer/export devices:

Option 1: Convert a drive to LUKS2/argon2id

  • Boot into a Tails 5.14 drive and set the admin password on the welcome screen.
  • Open a terminal window (Applications->Utilities->Terminal).
  • Run the command lsblk to list the current storage volumes on the computer.
  • Insert the encrypted USB drive you wish to convert. When prompted, do not enter its passphrase.
  • Run the command lsblk again. You should see a new device with an identifier such as “sdc” that was not in the previous command output. For each encrypted partition listed (e.g., /dev/sdc1), run the following commands, replacing <ID> with the partition identifier such as “sdc1”, “sdc2”, or just “sdc”, depending on how the disk was configured.
    • sudo cryptsetup convert --type luks2 /dev/<ID>
      • You will have to type “YES” in all-caps to confirm.
    • sudo cryptsetup luksConvertKey --pbkdf argon2id --pbkdf-memory 1048576 /dev/<ID>
      • You will have to provide the passphrase for each partition to confirm.
  • Run the command sudo cryptsetup luksDump /dev/<ID> | grep PBKDF, and confirm that the output includes “argon2id”.

Option 2: Create a new LUKS2 drive and copy LUKS1 contents

  • Note: To complete this operation in Tails, you will need two USB slots (one for the source drive and one for the target drive), in addition to the Tails USB you are running. You may need to use a USB hub.
  • Boot into a Tails 5.14 drive.
  • Plug in a blank USB drive (target drive).
  • Set this drive up as a new encrypted USB drive by following our documentation for creating transfer or export devices. Make sure you use a seven word passphrase.
  • Open the file manager (Applications->Accessories->Files).
  • Unlock the target drive by selecting it in the file manager sidebar and entering its passphrase. The contents should be empty.
  • Right-click the window and click “open in terminal”. You should see a path like “/media/amnesia/some-label”. Note it down as “target drive path”, but add a “/” character at the end (e.g., “/media/amnesia/some-label/”).
  • Plug in the drive you want to back up (source drive).
  • Unlock the source drive by selecting it in the file manager sidebar and entering its passphrase. The contents should be the data you wish to copy.
  • Right-click the source drive window and click “open in terminal”. You should see a path like “/media/amnesia/some-label”. Note it down as “source drive path”, but add a “/” character at the end.
  • In a terminal, type the following command, replacing the text in parentheses. Make sure that both paths end with a “/” character.
    • rsync -av <source drive path>/ <target drive path>/
  • Upon completion, eject both disks using the file manager. Set aside the source drive. Re-insert the target drive, unlock it, and confirm that the expected contents are present.
  • If you are confident that the backup completed successfully, physically destroy the source drive and securely dispose of it.

Upgrading passphrases

To upgrade a passphrase shorter than seven words in your persistent storage, you can follow the Tails guide to do so, including the steps for generating a passphrase using KeePassXC.

To upgrade a passphrase for a non-Tails USB drive, you can use the “Disks” utility:

  • Generate a new passphrase using KeePassXC as you did for Tails drives.
  • Plug in the USB drive while Tails is running.
  • Launch the “Disks” utility (Applications->Utilities->Disk).
  • Ensure that the correct drive is selected on the left-hand side.
  • Select the portion of the disk labeled “LUKS” by clicking on it.
  • Click the “gears” icon and select “Change passphrase.” Follow the interactive prompts.

Questions and comments

If you have questions or comments regarding this Security Advisory, please contact us:

  • Via our Support Portal, if you are a member (membership is available to SecureDrop administrators on request);
  • Via securedrop@freedom.press (GPG encrypted) for sensitive security issues (please use judiciously);
  • Via our community forums.

We also encourage you to file nonsensitive issues you encounter in our GitHub repository (issue report form).

Thank you for using SecureDrop!

Return to News