TCPLAY(8) | System Manager's Manual | TCPLAY(8) |
tcplay
— tool to
manage TrueCrypt volumes
tcplay |
-c -d
device [-g ]
[-z ] [-w ]
[-a pbkdf_hash]
[-b cipher]
[-f keyfile_hidden]
[-k keyfile]
[-x pbkdf_hash]
[-y cipher] |
tcplay |
-i -d
device [-e ]
[-p ] [-f
keyfile_hidden] [-k
keyfile] [-s
system_device] [--fde ]
[--use-backup ]
[--use-hdr-file hdr_file]
[--use-hidden-hdr-file
hdr_file] |
tcplay |
-j mapping |
tcplay |
-m mapping
-d device
[-e ] [-p ]
[-f keyfile_hidden]
[-k keyfile]
[-s system_device]
[-t ] [--fde ]
[--use-backup ]
[--use-hdr-file hdr_file]
[--use-hidden-hdr-file
hdr_file] |
tcplay |
--modify -d
device [-k
keyfile] [--new-keyfile
new_keyfile]
[--new-pbkdf-prf pbkdf_hash]
[-s system_device]
[--fde ] [--use-backup ]
[--use-hdr-file hdr_file]
[--use-hidden-hdr-file
hdr_file] [--save-hdr-backup
hdr_file] [-w ] |
tcplay |
--modify -d
device [-k
keyfile]
--restore-from-backup-hdr
[-w ] |
tcplay |
-u mapping |
tcplay |
-h | -v |
The tcplay
utility provides full support
for creating and opening/mapping TrueCrypt-compatible volumes. It supports
the following commands, each with a set of options detailed further
below:
-c
,
--create
--device
.-h,
--help
-i
,
--info
--device
.-j
mapping,
--info-mapped
=mapping--modify
-m
mapping,
--map
=mapping--device
as a dm(4) mapping
called mapping. The mapping
argument should not contain any spaces or special characters.-u
mapping,
--unmap
=mapping-v,
--version
Options common to all commands are:
-d
device,
--device
=device-f
keyfile_hidden,
--keyfile-hidden
=keyfile_hidden--keyfile
option has to be used. This option
can appear multiple times; if so, multiple keyfiles will be used. This
option is not valid in the --modify
mode.-k
keyfile,
--keyfile
=keyfileAdditional options for the --create
command are:
-a
pbkdf_hash,
--pbkdf-prf
=pbkdf_hash--pbkdf-prf
=help
.-b
cipher,
--cipher
=cipher--cipher
=help
.-g,
--hidden
--keyfile-hidden
. The user will be
prompted for the size of the hidden volume interactively.-w,
--weak-keys
-x
pbkdf_hash,
--pbkdf-prf-hidden
=pbkdf_hash--hidden
. If no algorithm is specified, the same
as for the outer volume will be used. To see which algorithms are
supported, specify
--pbkdf-prf-hidden
=help
.-y
cipher,
--cipher-hidden
=cipher--hidden
. If no cipher is specified, the same
as for the outer volume will be used. To see which algorithms are
supported, specify
--cipher-hidden
=help
.-z,
--insecure-erase
Additional options for the --info
,
--map
and --modify
commands
are:
-e,
--protect-hidden
--info
and --map
commands.-p,
--prompt-passphrase
tcplay
to prompt for a
passphrase immediately, even if a keyfile is provided. Normally, if a
keyfile is supplied, tcplay
will first attempt to
unlock the volume using only the keyfile, and only prompt for a passphrase
if that first unlocking attempt fails. However, since a failed unlocking
attempt can take a non-trivial amount of time, specifying this option can
reduce the total unlocking time if both a keyfile and passphrase are
required. This option only makes sense if -k
or
-f
are used.-s
system_device,
--system-encryption
=system_device--device
option will point at the actual encrypted
partition, while the system_device argument will
point to the parent device (i.e. underlying physical disk) of the
encrypted partition.--fde
--device
option should point to the whole disk
device, not to any particular partition. The resultant mapping will cover
the whole disk, and will not appear as separate partitions. To access
individual partitions after mapping, kpartx(8) can be
used.--use-backup
tcplay
to use the backup headers, which are located at the end of the device, to
access the volume.Additional options only for the --map
command are:
-t
,
--allow-trim
Additional options only for the --modify
command are:
--new-pbkdf-prf
=pbkdf_hash--pbkdf-prf
=help
.--new-keyfile
=keyfile--restore-from-backup-hdr
--new-pbkdf-prf
nor
--new-keyfile
should be specified. This option
implies --use-backup
. Use this option to restore
the volume headers from the backup header.Sending a SIGINFO
or
SIGUSR1
signal to a running
tcplay
process makes it print progress on slower
tasks such as gathering entropy or wiping the volume.
TrueCrypt limits passphrases to 64 characters (including the
terminating null character). To be compatible with it,
tcplay
does the same. All passphrases (excluding
keyfiles) are trimmed to 64 characters. Similarly, keyfiles are limited to a
size of 1 MB, but up to 256 keyfiles can be used.
tcplay
offers plausible deniability.
Hidden volumes are created within an outer volume. Which volume is accessed
solely depends on the passphrase and keyfile(s) used. If the passphrase and
keyfiles for the outer volume are specified, no information about the
existence of the hidden volume is exposed. Without knowledge of the
passphrase and keyfile(s) of the hidden volume its existence remains
unexposed. The hidden volume can be protected when mapping the outer volume
by using the --protect-hidden
option and specifying
the passphrase and keyfiles for both the outer and hidden volumes.
tcplay
offers both legacy TrueCrypt as
well as VeraCrypt support. When creating a new volume, the selected PBKDF2
PRF determines whether the volume will use the TrueCrypt or VeraCrypt
format. The formats are identical other than the rounds of the key
derivation functions as well as the volume signature and minver fields in
the header. Converting volumes from one format or another using
tcplay
is simply a matter of using the
--modify
option specifying a PBKDF2 PRF hash
matching the intended target format with the
--new-pbkdf-prf
argument.
PBKDF2 PRFs suffixed with -VC
are
VeraCrypt PRFs, whilst all others are legacy TrueCrypt PRFs. By default, new
volumes are created with a VeraCrypt PRF to offer better security.
NOTE: Failed unlocking attempts even for legacy TrueCrypt volumes
now take significantly longer than before, as tcplay
will cycle through all PRFs, including the VeraCrypt PRFs with much higher
number of PRF iterations. Successful attempts should still take the same
amount of time as before, as the legacy PRF settings are tried first. One
notable exception is if both a keyfile and a passphrase is required.
Normally, tcplay
would first attempt an unlock
attempt with just the keyfile, and only prompt for a passphrase after that
attempt failed. If it is known in advance that both a keyfile and passphrase
are required to unlock a volume, the -p
option to
--info
and --map
can more
than halve the time required to unlock the volume.
Create a new TrueCrypt volume on /dev/vn0 using the cipher cascade of AES and Twofish and the Whirlpool hash algorithm for PBKDF2 password derivation and two keyfiles, one.key and two.key:
tcplay
--create
--device
=/dev/vn0
--cipher
=TWOFISH-256-XTS,AES-256-XTS
--pbkdf-prf
=whirlpool
--keyfile
=one.key
--keyfile
=two.key
Map the outer volume on the TrueCrypt volume on /dev/vn0 as truecrypt1, but protect the hidden volume, using the keyfile hidden.key, from being overwritten:
tcplay
--map
=truecrypt1
--device
=/dev/vn0
--protect-hidden
--keyfile-hidden
=hidden.key
Map the hidden volume on the TrueCrypt volume on /dev/vn0 as truecrypt2, using the keyfile hidden.key:
tcplay
--map
=truecrypt2
--device
=/dev/vn0
--keyfile
=hidden.key
Map and mount the volume in the file secvol on Linux:
tcplay
--map
=secv
--device
=/dev/loop1
/dev/mapper/secv
/mnt
Similarly on DragonFly:
tcplay
--map
=secv
--device
=/dev/vn1
/dev/mapper/secv
/mnt
Unmapping the volume truecrypt2 on both Linux and DragonFly after unmounting:
Or alternatively:
tcplay
--unmap
=truecrypt2
A hidden volume whose existence can be plausibly denied and its outer volume can for example be created with
tcplay
--create
--hidden
--device
=/dev/loop0
--cipher
=TWOFISH-256-XTS,AES-256-XTS
--pbkdf-prf
=whirlpool
--keyfile
=one.key
--cipher-hidden
=AES-256-XTS
--pbkdf-prf-hidden
=whirlpool
--keyfile-hidden
=hidden.key
tcplay
will prompt the user for the
passphrase for both the outer and hidden volume as well as the size of the
hidden volume inside the outer volume. The hidden volume will be created
inside the area spanned by the outer volume. The hidden volume can
optionally use a different cipher and prf function as specified by the
--cipher-hidden
and
--pbkdf-prf-hidden
options. Which volume is later
accessed depends only on which passphrase and keyfile(s) are being used, so
that the existence of the hidden volume remains unknown without knowledge of
the passphrase and keyfile it is protected by since it is located within the
outer volume. To map the outer volume without potentially damaging the
hidden volume, the passphrase and keyfile(s) of the hidden volume must be
known and provided alongside the --protect-hidden
option.
A disk encrypted using full disk encryption can be mapped using
tcplay
--map
=tcplay_sdb
--device
=/dev/sdb
--fde
To access individual partitions on the now mapped disk, the following command will generate mappings for each individual partition on the encrypted disk:
To restore the main volume header from the backup header, the following command can be used:
tcplay
--modify
--device
=/dev/sdb
--restore-from-backup-hdr
As with most other commands, which header is saved (used as source) depends on the passphrase and keyfiles used.
To save a backup copy of a header, the following command can be used:
tcplay
--modify
--device
=/dev/sdb
--save-hdr-backup
=/tmp/sdb_backup_header.hdr
As with most other commands, which header is saved (used as source) depends on the passphrase and keyfiles used.
To restore a header from a backup header file, the following command can be used:
tcplay
--modify
-use-hdr-file
=/tmp/sdb_backup_header.hdr
Similarly, to restore a hidden header from a backup header file:
tcplay
--modify
-use-hidden-hdr-file
=/tmp/sdb_backup_hidden_header.hdr
Which header is used as the source of the operation will still
depend on the passphrase and keyfiles used. Even if you use the
--use-hidden-hdr-file
option, if you specify the
passphrase and keyfiles for the main header, the main header will be used
instead.
The tcplay
utility appeared in
DragonFly 2.11.
Alex Hornung
December 8, 2013 | Debian |