Re: what touches the LUKS header?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok, first read the relevant FAQ items. They really help. (I hope)

On Sat, Aug 07, 2010 at 06:48:39PM -0700, epvdm@xxxxxxxxxx wrote:
> On Sun, Aug 08, 2010 at 02:53:47AM +0200, Arno Wagner wrote:
> > 
> > So this is an n-way (n>2) RAID1?
> > 
> 
> It's a 2-way raid1, but i've (prior to the failure, of course) pulled copies 
> of it by breaking one member out, and resyncing a new blank drive to it. 
> I've done this many times in the past without trouble but I'm willing to 
> accept that it could be bad... 

Possible, but unlikely, I think. Lets look at other things first.
  
> > > I'm wondering if the header area ever gets written to under normal operation
> > > such that a crash could have left it corrupted, or if it's only written when
> > > modifying keyslots, etc... 
> > 
> > As far as I am aware of, nothing gets written unless you change
> > a key-slot.
> 
> That makes sense, and it's what I expected. 
> 
> > AFAIK the above error will also happen if the key has been corrupted.
> > As you can see from the FAQ, every key is about 128kB in size. Any bit 
> > changed in the key-stripes will result in unrecoverability.
> > 
> > I have been using md-RAID for a long time, also in a 3-way RAID1
> > configuration and never had any corruption that I know of. For 
> > the time I would rule that out, especially if the data area on all
> > mirrors is equal. I think you should compare the  header, keyslots and
> > key-stripes though. One way to do that would be to use 'cmp' on the 
> > raw devices and see where the first different byte is.
> 
> 
> > The one possibility when md will ever corrupt somethin is when
> > you get a manual mapping of the RAIDed area wrong and the 
> > RAID superblock happens to fall into a data area.
> > 
> > There is a second possibility: Keyboard input problems. I know
> > it sounds stupid, but try every character and symbol you have in
> > your passphrase and see whether it echos right.
> 
> Oh, certainly. I spent a long time on this before even looking into other
> possibilities. I put the disks on another machine to test, and tried with
> the passphrase in a keyfile, loaded with --key-file, with and without
> trailing cr/lf, as well as typing the passphrase in the clear and cut-n-pasting
> it into the cryptsetup prompt. 

Ok. Have you tried one of your backups for comparison as well? 
They should work. Just for completeness...

Incidentially, your backups should contain a good header + key-slots, 
so copying them over should repair any possible damage. See
FAQ item on making header backups. But don't do that yet, compare
the first 1MiB+4096B of a backup and a life disk first. Any header
or key-slot corruption should show up as difference. If there is no 
difference, then you have some other problem.

> for what it's worth, the partitions are identical at least for a few gigabytes
> in. Though I haven't compared the whole 900+ GB, I assume 3 or 4 GB should be
> more than enough to cover any possible key material. So whatever corruption
> has happened would seem to have been above the disk level. 

1MiB+4096B is enough to cover header and all keyslots. Hmm.
 
> here's a couple of questions - first, how do I determine the total extent
> of the partition in which corruption could cause this problem; i.e, header,
> all key material? 

Not a partition. Just the first 1MiB+4096B. They are not shown
in the decrypted device, the decrypted device is the sectors right 
after that. Also documented in the FAQ.

The problem could also happen, I think, if one of the salts
got corrupted. But I would need to try that to be sure. Apart
from that, the key-slots are the main suspect.

> And second, is that area sparse, or should it all be
> filled in. 

Mostly key data, but the key-stripes do not quite fill the 128kiB
allocated for each. See FAQ.

> I was thinking of looking through it manually trying to find 
> patterns of data that might have been dropped on top of it from buffer cache
> or elsewhere, for instance readable text, raid or filesystem superblocks,
> magic numbers of common executable or other file types, etc. This could at 
> least provide a clue. But if the area is sparse and might normally contain 
> data that was already on the raw partition before it was luksFormatted, it 
> would be more difficult.

No, this is a good idea. But do the comparison with the header and 
key-slots on a working backup disk first. See FAQ item 
"What does the on-disk structure of LUKS look like?" 
for exact length and position of the key-slots. A key-slot consists 
of tighly packed (no spacer or unused space) anti-forensic stripes 
and looks like encrypted data, i.e. "random". If you want to get a 
feel for it, FAQ item "How do I use LUKS with a loop-device?" gives 
instructions how to do LUKS on a file via the loop-device.

> thanks very much for your help,  btw. 

You are welcome.

Sorry for pointing to the FAQ so often, it really gives you most 
of the info you need. Current copy posted on this list today or 
on the web at

  http://code.google.com/p/cryptsetup/wiki/FrequentlyAskedQuestions

Arno
-- 
Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@xxxxxxxxxxx 
GnuPG:  ID: 1E25338F  FP: 0C30 5782 9D93 F785 E79C  0296 797F 6B50 1E25 338F
----
Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans

If it's in the news, don't worry about it.  The very definition of 
"news" is "something that hardly ever happens." -- Bruce Schneier 
_______________________________________________
dm-crypt mailing list
dm-crypt@xxxxxxxx
http://www.saout.de/mailman/listinfo/dm-crypt


[Index of Archives]     [Device Mapper Devel]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux