gbde(4)

NAME

gbde - Geom Based Disk Encryption

SYNOPSIS

options GEOM_BDE

DESCRIPTION

NOTICE: Please be aware that this code has not yet received
much review
and analysis by qualified cryptographers and therefore
should be considered a slightly suspect experimental facility.
We cannot at this point guarantee that the on-disk format
will not change
in response to reviews or bug-fixes, so potential users are
advised to be
prepared that dump(8)/restore(8) based migrations may be
called for in
the future.
The objective of this facility is to provide a high degree
of denial of
access to the contents of a ``cold'' storage device.
Be aware that if the computer is compromised while up and
running and the
storage device is actively attached and opened with a valid
pass-phrase,
this facility offers no protection or denial of access to
the contents of
the storage device.
If, on the other hand, the device is ``cold'', it should
present an
formidable challenge for an attacker to gain access to the
contents in
the absence of a valid pass-phrase.
Four cryptographic barriers must be passed to gain access to
the data,
and only a valid pass-phrase will yield this access.
When the pass-phrase is entered, it is hashed with SHA2 into
a 512 bit
``key-material''. This is a way of producing cryptographic
usable keys
from a typically all-ASCII pass-phrase of an unpredictable
user-selected
length.
First barrier: the location of the "lock-sector".
During initialization, up to four independent but mutually
aware ``lock''
sectors are written to the device in randomly chosen loca
tions. These
lock-sectors contain the 2048 random bit master-key and a
number of
parameters of the layout geometry (more on this later).
Since the entire
device will contain isotropic data, there is no short-cut to
rapidly
determine which sequence of bytes contain a lock-sector.
To locate a lock-sector, a small piece of data called the
``metadata''
and the key-material must be available. The key-material
decrypts the
metadata, which contains the byte offset on the device where
the corresponding lock-sector is located. If the metadata is lost or
unavailable
but the key-material is at hand, it would be feasible to do
a brute force
scan where each byte offset of the device is checked to see
if it contains the lock-sector data.
Second barrier: decryption of the master-key using
key-material.
The lock-sector contains an encrypted copy of an architec
ture neutral
byte-sequence which encodes the fields of the lock-struc
ture. The order
in which these fields are encoded is determined from the
key-material.
The encoded bytestream is encrypted with 256bit AES in CBC
mode.
Third barrier: decryption of the sector key.
For each sector, an MD5 hash over a ``salt'' from the lock
sector and the
sector number is used to ``cherry-pick'' a subset of the
master key,
which hashed together with the sector offset through MD5
produces the
``kkey'', the key which encrypts the sector key.
Fourth barrier: decryption of the sector data.
The actual payload of the sector is encrypted with 128 bit
AES in CBC
mode using a single-use random bits key.
Examining the reverse path
Assuming an attacker knows an amount of plaintext and has
managed to
locate the corresponding encrypted sectors on the device,
gaining access
to the plaintext context of other sectors is a daunting
task:
First he will have to derive from the encrypted sector and
the known
plain text the sector key(s) used. At the time of writing,
it has been
speculated that it could maybe be possible to break open AES
in only 2^80
operations; even so, that is still a very impossible task.
Armed with one or more sector keys, our patient attacker
will then go
through essentially the same exercise, using the sector key
and the
encrypted sector key to find the key used to encrypt the
sectorkey.
Armed with one or more of these ``kkeys'', our attacker has
to run them
backwards through MD5. Even though he knows that the input
to MD5 was 24
bytes and has the value of 8 of these bytes from the sector
number, he is
still faced with 2^128 equally likely possibilities.
Having successfully done that, our attacker has successfully
discovered
up to 16 bytes of the master-key, but is still unaware which
16 bytes,
and in which other sectors any of these known bytes con
tribute to the
kkey.
To unravel the last bit, the attacker has to guess the 16
byte randombits salt stored in the lock-sector to recover the indexes
into the masterkey.
Any attacker with access to the necessary machine power to
even attempt
this attack will be better off attempting to brute-force the
pass-phrase.
Positive denial facilities
Considering the infeasibility of the above attack, gaining
access to the
pass-phrase will be of paramount importance for an attacker,
and a number
of scenarios can be imagined where undue pressure will be
applied to an
individual to divulge the pass-phrase.
A ``Blackening'' feature provides a way for the user, given
a moment of
opportunity, to destroy the master-key in such a way that
the pass-phrase
will be acknowledged as good but access to the data will
still be denied.
A practical analogy
For persons who think cryptography is only slightly more in
teresting than
watching silicon sublimate the author humbly offers this
analogy to the
keying scheme for a protected device:
Imagine an installation with a vault with walls of several
hundred meters
thick solid steel. This vault can only be feasibly accessed
using the
single key, which has a complexity comparable to a number
with 600 digits.
This key exists in four copies, each of which is stored in
one of four
small safes, each of which can be opened with unique key
which has a complexity comparable to an 80 digit number.
In addition to the masterkey, each of the four safes also
contains the
exact locations of all four key-safes which are located in
randomly chosen places on the outside surface of the vault where they
are practically
impossible to detect when they are closed.
Finally, each safe contains four switches which are wired to
a bar of
dynamite inside each of the four safes.
In addition to this, a keyholder after opening his key-safe
is also able
to install a copy of the master-key and re-key any of key
safes (including his own).
In normal use, the user will open the safe for which he has
the key, take
out the master-key and access the vault. When done, he will
lock up the
master-key in the safe again.
If a keyholder-X for some reason distrusts keyholder-Y, she
has the
option of opening her own safe, flipping one of the switches
and detonating the bar of dynamite in safe-Y. This will obliterate the
master-key
in that safe and thereby deny keyholder-Y access to the
vault.
Should the facility come under attack, any of the keyholders
can detonate
all four bars of dynamite and thereby make sure that access
to the vault
is denied to everybody, keyholders and attackers alike.
Should the
facility fall to the enemy, and a keyholder be forced to ap
ply his personal key, he can do so in confidence that the contents of
his safe will
not yield access to the vault, and the enemy will hopefully
realize that
applying further pressure on the personnel will not give ac
cess to the
vault.
The final point to make here is that it is perfectly possi
ble to make a
detached copy of any one of these keys, including the master
key, and
deposit or hide it as one sees fit.
Steganography support
When the device is initialized, it is possible to restrict
the encrypted
data to a single contiguous area of the device. If config
ured with care,
this area could masquerade as some sort of valid data or as
random trash
left behind by the systems operation.
This can be used to offer a plausible deniability of exis
tence, where it
will be impossible to prove that this specific area of the
device is in
fact used to store encrypted data and not just random junk.
The main obstacle in this is that the output from any en
cryption algorithm worth its salt is so totally random looking that it
stands out like
a sore thumb amongst practically any other sort of data
which contains at
least some kind of structure or identifying byte sequences.
Certain file formats like ELF contain multiple distinct sec
tions, and it
would be possible to locate things just right in such a way
that a device
contains a partition with a file system with a large exe
cutable, (``a
backup copy of my kernel'') where a non-loaded ELF section
is laid out
consecutively on the device and thereby could be used to
contain a gbde
encrypted device.
Apart from the ability to instruct gbde which those sectors
are, no support is provided for creating such a setup.
Deployment suggestions
For personal use, it may be wise to make a backup copy of
the masterkey
or use one of the four keys as a backup. Fitting protection
of this key
is up to yourself, your local circumstances and your imagi
nation.
For company or institutional use, it is strongly advised to
make a copy
of the master-key and put it under whatever protection you
have at your
means. If you fail to do this, a disgruntled employee can
deny you
access to the data ``by accident''. (The employee can still
intentionally deny access by applying another encryption scheme to
the data, but
that problem has no technical solution.)
Cryptographic strength
This section lists the specific components which contribute
to the cryptographic strength of gbde.
The payload is encrypted with AES in CBC mode using a 128
bit random single-use key (``the skey''). AES is well documented.
No IV is used in the encryption of the sectors, the assump
tion being that
since the key is random bits and single-use, an IV adds
nothing to the
security of AES.
The random key is produced with arc4rand(9) which is be
lieved to do a
respectable job at producing unpredictable bytes.
The skey is stored on the device in a location which can be
derived from
the location of the encrypted payload data. The stored copy
is encrypted
with AES in CBC mode using a 128 bit key (``the kkey'') de
rived from a
subset of the master key chosen by the output of an MD5 hash
over a 16
byte random bit static salt and the sector offset. Up to
6.25% of the
masterkey (16 bytes out of 2048 bits) will be selected and
hashed through
MD5 with the sector offset to generate the kkey.
Up to four copies of the master-key and associated geometry
information
is stored on the device in static randomly chosen sectors.
The exact
location inside the sector is randomly chosen. The order in
which the
fields are encoded depends on the key-material. The encoded
byte-stream
is encrypted with AES in CBC mode using 256 bit key-materi
al.
The key-material is derived from the user-entered pass
phrase using 512
bit SHA2.
No chain is stronger than its weakest link, which usually is
poor passphrases.

SEE ALSO

gbde(8)

HISTORY

This software was developed for the FreeBSD Project by Poul
Henning Kamp
and NAI Labs, the Security Research Division of Network As
sociates, Inc.
under DARPA/SPAWAR contract N66001-01-C-8035 (``CBOSS''), as
part of the
DARPA CHATS research program.

AUTHORS

Poul-Henning Kamp <phk@FreeBSD.org>
BSD October 19, 2002
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout