All of lore.kernel.org
 help / color / mirror / Atom feed
From: Milan Broz <gmazyland@gmail.com>
To: dm-crypt@saout.de
Subject: Re: [dm-crypt] The future of disk encryption with LUKS2
Date: Wed, 10 Feb 2016 09:37:09 +0100	[thread overview]
Message-ID: <56BAF6B5.4060300@gmail.com> (raw)
In-Reply-To: <20160209233532.GB21086@tansi.org>

On 02/10/2016 12:35 AM, Arno Wagner wrote:
> On Tue, Feb 09, 2016 at 23:08:19 CET, Lars Winterfeld wrote:
>> On 08.02.2016 22:51, Milan Broz wrote:
>>> [Just note to already crazy discussion here - there will be NO LUKS header
>>> at the end of device. Been there with another storage project and
>>> just no - it is not worth problems it causes.]
>>
>> Out of curiosity: what were those problems?

I think the real problem was mentioning here several times -
the device size sometimes changes and you have no real control over it.

People resize partition tables, logical volumes, use dd from
smaller disk to bigger (and vice versa but that's another story ;-)

Then you have not always chance to properly wipe out old header, and
in the LUKS case it is additional security risk.

(If you do not wipe additional space it is not so big problem.)

Also note that GPT stores backup header near the end of device,
I can imagine various semi-destroyed headers by that as well.

In case of a "forensic" recovery (you are trying to recover some
partially wiped disk) it complicates thinks even more (should
we expect that a second header somewhere on the device has correct device
size in it or it is just old header and the real one was destroyed?)
(If we have sequence if or epoch in such metadata - what to do
if there is more recent version - because some people tried to recover
with wrong device size (common mistake to try recovery before thinking
of the real problem)? What if it is an older metadata from some
previous install - can we expect always different UUID?)

From the LUKS POV it means that there is no need to change logic
of backup and recovery of header (just replace header, no need to
play magic with writing to device end).

With external scripts (and even programs compiled without proper flags)
you have even bigger chance to screw it up for large devices
when calculating header position because of limited integers handling
(note getsize/getsize64 in blockdev command for example).

The implementation is more complicated but that's not the reason
to reject it (despite I prefer simpler code).

IIRC for lvm2 the resize with redundant metadata (located near the end of PV)
was disabled for some time (code was not complete to handle it)
but today it should work (just FYI).

...
> Was the problem confusion/complexity because this 
> layering-sheme was violated?

That is another problem - during storage stack resize you require user
to do various complicated steps. If a layer just takes current device size
without any complicated steps it effectively limits area for error.
(Well, it can be exact opposite in some situations but I expect people are
more extending devices than shrinking it.)

(In current LUKS2 metadata we can store segment size, so we can limit
device size in header but this is meant for some internal segment handling
like reencryption which requires several segments of sliding window
with limited size. Default is still "use current device size".)

So my reason to not use header near the end of the device is mainly
that security risk of possibly old keyslot material on device.

Milan

  parent reply	other threads:[~2016-02-10  8:37 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 13:13 [dm-crypt] The future of disk encryption with LUKS2 .. ink ..
2016-02-03 14:02 ` Yves-Alexis Perez
2016-02-03 14:17 ` Milan Broz
2016-02-03 17:07   ` Arno Wagner
2016-02-03 19:46   ` Sven Eschenberg
2016-02-04  8:38     ` Milan Broz
2016-02-04  9:20       ` Michael Kjörling
2016-02-04 10:02         ` Milan Broz
2016-02-04 11:01           ` Arno Wagner
2016-02-04 16:34         ` Sven Eschenberg
2016-02-04 17:23           ` Arno Wagner
2016-02-04 18:42             ` Michael Kjörling
2016-02-04 20:51               ` Sven Eschenberg
2016-02-05 10:56               ` Arno Wagner
2016-02-05 15:08             ` Robert Nichols
2016-02-05 15:57               ` Arno Wagner
2016-02-05 23:51                 ` Sven Eschenberg
2016-02-06  2:58                   ` Arno Wagner
2016-02-06  3:18                     ` Sven Eschenberg
2016-02-06 10:01                       ` Michael Kjörling
2016-02-06 14:29                         ` Arno Wagner
2016-02-06 18:56                         ` Sven Eschenberg
2016-02-06 19:09                           ` Michael Kjörling
2016-02-06 19:18                             ` Sven Eschenberg
2016-02-07  0:09                               ` Lars Winterfeld
2016-02-07 23:05                               ` Arno Wagner
2016-02-08  0:25                                 ` Sven Eschenberg
2016-02-08 11:34                                   ` Michael Kjörling
2016-02-08 16:57                                     ` Arno Wagner
2016-02-08 20:19                                       ` f-dm-c
2016-02-08 16:41                                   ` Arno Wagner
2016-02-08 17:26                                     ` Sven Eschenberg
2016-02-08 18:49                                       ` Arno Wagner
2016-02-08 19:08                                         ` Sven Eschenberg
2016-02-08 20:31                                     ` f-dm-c
2016-02-08 20:51                                       ` Sven Eschenberg
2016-02-08 21:10                                         ` Arno Wagner
2016-02-08 21:43                                         ` f-dm-c
2016-02-08 22:04                                           ` Sven Eschenberg
2016-02-08 21:08                                       ` Arno Wagner
2016-02-08 21:45                                         ` f-dm-c
2016-02-06 14:20                       ` Arno Wagner
2016-02-06 19:13                         ` Sven Eschenberg
2016-02-07  7:09                       ` f-dm-c
2016-02-07 23:17                         ` Arno Wagner
2016-02-08  0:40                           ` Sven Eschenberg
2016-02-08  2:06                           ` f-dm-c
2016-02-08  2:46                             ` Sven Eschenberg
2016-02-08  3:43                               ` f-dm-c
2016-02-08  4:32                                 ` Sven Eschenberg
2016-02-08  6:09                                   ` f-dm-c
2016-02-08 16:51                                     ` Arno Wagner
2016-02-08 20:05                                       ` f-dm-c
2016-02-08 20:11                                       ` f-dm-c
2016-02-08 20:35                                         ` Sven Eschenberg
2016-02-08 17:27                                     ` Sven Eschenberg
2016-02-08 16:48                                   ` Arno Wagner
2016-02-08 19:49                                     ` f-dm-c
2016-02-08 19:57                                       ` Arno Wagner
2016-02-08 20:05                                       ` Sven Eschenberg
2016-02-04  9:35       ` Sumaya1960
2016-02-04 10:48         ` Arno Wagner
     [not found]           ` <56B4AC42.7070408@gmx.de>
2016-03-01 12:50             ` [dm-crypt] LUKS NVMe M.2 SSD - save disklayout Sumaya1960
2016-03-01 18:18               ` Sven Eschenberg
2016-03-04 22:05                 ` doark
2016-03-10 12:13                   ` Matthias Schniedermeyer
2016-03-14 18:23                   ` Sven Eschenberg
2016-02-04 16:29   ` [dm-crypt] The future of disk encryption with LUKS2 Yves-Alexis Perez
2016-02-04 17:17     ` Arno Wagner
2016-02-05  6:30       ` Yves-Alexis Perez
2016-02-05 11:02         ` Arno Wagner
2016-02-05 13:13           ` Yves-Alexis Perez
2016-02-05 13:31             ` Arno Wagner
2016-02-05 15:01               ` Yves-Alexis Perez
2016-02-05 15:24                 ` Arno Wagner
2016-02-05 15:44                   ` Milan Broz
2016-02-05 19:45                     ` Arno Wagner
2016-02-05 22:43                       ` Arno Wagner
2016-02-05 16:50                   ` Yves-Alexis Perez
2016-02-05 19:53                     ` Arno Wagner
2016-02-05 21:09                       ` Arno Wagner
     [not found]             ` <20160205133123.GA31320@das-labor.org>
2016-02-05 13:49               ` Zaolin
2016-02-05 15:15                 ` Arno Wagner
2016-02-08 21:51   ` Milan Broz
2016-02-08 22:36     ` Sven Eschenberg
2016-02-09  0:27       ` Milan Broz
2016-02-09  1:02     ` Arno Wagner
2016-02-09 22:08     ` Lars Winterfeld
2016-02-09 23:35       ` Arno Wagner
2016-02-10  0:20         ` Sven Eschenberg
2016-02-10  8:37         ` Milan Broz [this message]
2016-02-10 11:47           ` Arno Wagner
2016-02-10 13:48           ` Sven Eschenberg
2016-02-10 14:35             ` Robert Nichols
2016-02-10 15:09               ` Sven Eschenberg
2016-02-10 15:39                 ` Milan Broz
2016-02-10 16:22                   ` Arno Wagner
2016-02-10 17:13                     ` Sven Eschenberg
2016-02-10 16:48                   ` Sven Eschenberg
2016-02-11  5:09                 ` Robert Nichols
2016-02-11  6:44                   ` Milan Broz
2016-02-14  8:20             ` Milan Broz
2016-02-14 21:32               ` Sven Eschenberg
  -- strict thread matches above, loose matches on Subject: below --
2016-03-12 21:20 David Niklas
2016-03-16  6:36 ` Ondrej Kozina
2016-03-25 21:09   ` David Niklas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56BAF6B5.4060300@gmail.com \
    --to=gmazyland@gmail.com \
    --cc=dm-crypt@saout.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.