From: Milan Broz <gmazyland@gmail.com>
To: "Michael Kjörling" <michael@kjorling.se>, dm-crypt@saout.de
Subject: Re: [dm-crypt] The future of disk encryption with LUKS2
Date: Thu, 4 Feb 2016 11:02:36 +0100 [thread overview]
Message-ID: <56B321BC.4020404@gmail.com> (raw)
In-Reply-To: <20160204092017.GA25029@yeono.kjorling.se>
On 02/04/2016 10:20 AM, Michael Kjörling wrote:
> On 4 Feb 2016 09:38 +0100, from gmazyland@gmail.com (Milan Broz):
>> On 02/03/2016 08:46 PM, Sven Eschenberg wrote:
> Storing the LUKS header in two separate locations on disk could
> probably do the trick. For example, right at the start *and* right at
> the end of the LUKS container, which would avoid any issues with
> having to remap a location in the middle of the container. Put a
> counter in the header, ensure that all copies are in sync when the
> header is read or written to, and if they are out of sync, use the one
> with the highest counter value that works and rewrite the other. Add a
> checksum (could be something really simple even, like CRC32, but it
> would be good to make this extensible without needing to change the
> on-disk format) to protect against any corruption that somehow manages
> to slip past the FEC in the storage layer.
That is really for design documentation I would like to write and send here,
but that's almost exactly I already have in LUKS2 branch
- two headers with checksum (configurable algorithm, for now just plain sha256)
(there is different salt for headers and small binary header to be parsed by blkid)
- counter (epoch) and automatic recovery (in fact trivial journal)
(this does not apply for raw slot key material)
FEC is not needed for header resilience, above works pretty well and it is simple.
The most "fancy" feature is that metadata are in JSON, so I can work even
with "unknown" future type keyslots/segments types and keep its metadata intact.
> In fact, that would be similar to how ZFS and Btrfs already solves
> pretty much the same problem.
If you mention these, I would like to have integrity protection (either authenticated
mode or additional integrity data) on block layer encryption level.
And LUKS2 header will allow to add this in future without on-disk header change,
just by defining new segment type.
For now, cryptography algorithms are the same as LUKS1 (except experimental
Argon2 KDF support that need a lot of engineering work for libargon2 library...)
but the format allows upgrade in future without on-disk change.
> I would discourage complex features; in cryptography, simple and easy
> to validate should be the name of the game, and simply storing the
> same data in two distinct locations is _far_ easier to understand than
> code to calculate and use FEC data.
YES, 100% agree with that.
Milan
next prev parent reply other threads:[~2016-02-04 10:02 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 [this message]
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
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=56B321BC.4020404@gmail.com \
--to=gmazyland@gmail.com \
--cc=dm-crypt@saout.de \
--cc=michael@kjorling.se \
/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.