From: Arno Wagner <arno@wagner.name>
To: dm-crypt@saout.de
Subject: Re: [dm-crypt] Key-Slot Checker Tool
Date: Sun, 9 Sep 2012 15:35:12 +0200 [thread overview]
Message-ID: <20120909133512.GA27154@tansi.org> (raw)
In-Reply-To: <504C5300.5030102@gmail.com>
On Sun, Sep 09, 2012 at 10:27:44AM +0200, Milan Broz wrote:
> On 09/09/2012 02:41 AM, Arno Wagner wrote:
> > Hi all.
> >
> > I just wrote a very simple key-slot checker. It divides all
> > active keyslots into 512 byte sectors and calculates entropy
> > for each. For valid encrypted data, entropy will be close
> > to 0.95 on average (would be 1, but this is sample entropy,
> > calculated on a limited data set).
>
> Yes, this is something very useful.
Thanks!
> But 512 slots is quite small chunk of random data, there will be
> some false warnings I guess.
Very, very few. Remember that the data looks like high-quality
randomness if correct. I might do a measurement how rarely,
but with my test-header I had to go up to 0.93 (default is 0.85)
to get a single false detection. And the entropy-threshold is
tunable.
> (Adding add test for the whole keyslot combined
> with separate sectors? Not sure if it helps something though...)
I don't think that is needed, but a sector-size option
(with 0 = whole slot) is a possibility.
> (Well, and it cannot obviously detect corruption with
> overwriting random data :)
That would be quite a trick ;-)
> > No fancy output, no library usage (but verifies LUKS version),
> > support for non-default key-sizes and setting your own entropy
> > threshold. I put in 0.85 as default threshold, which should work
> > well.
> >
> > Now I am not sure where to put it. Should I put it in
> > misc/ in the sources? That seems to be sort of a contrib/
> > directory. Or should we add a section in the Wiki for
> > tools?
>
> Parsing header on its own is something which should
> not be even in misc section (in the worst case it should
> include luks.h directly).
I can do that. Just wanted to see whether it works first.
> But anyway, this could be integrated into luks
> format checker directly (and run in "check" cryptsetup command).
That would probably be a good idea. Is that a new command?
If you can point out were that is in the code, I can add
these tests.
> (And the same random test perhaps should be in tests for large
> enough blocks - see tests/differ.c, there is nice fixme :-)
Will have a look.
> I am just not sure introducing floating point in libcryptsetup
> is good idea.
While this can be done without, it is really hard. Basically
you eiher need to simulate the logarithm in fixed-point integer
or build up huffman tree as direct entropy estimator. Easiest way
would probably be fixed-point and a 1000-entry table for the
log().
> But perhaps this can be compile time option,
> if some ancient/embedded CPU/distro has problems here,
> so it can be compiled-out.
I like that idea much better.
So, next step, make it use luks.h and put it in misc/ ?
Arno
--
Arno Wagner, Dr. sc. techn., Dipl. Inform., Email: arno@wagner.name
GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F
----
One of the painful things about our time is that those who feel certainty
are stupid, and those with any imagination and understanding are filled
with doubt and indecision. -- Bertrand Russell
next prev parent reply other threads:[~2012-09-09 13:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-09 0:41 [dm-crypt] Key-Slot Checker Tool Arno Wagner
2012-09-09 8:27 ` Milan Broz
2012-09-09 13:35 ` Arno Wagner [this message]
2012-09-09 21:40 ` Arno Wagner
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=20120909133512.GA27154@tansi.org \
--to=arno@wagner.name \
--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.