All of lore.kernel.org
 help / color / mirror / Atom feed
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 

  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.