added keyslot checker Redesigned to only use public definitions
[platform/upstream/cryptsetup.git] / misc / keyslot_checker / README
1 Purpose
2 =======
3
4 chk_luks_keyslots is a tool that searches the keyslot area of a
5 LUKS container for positions where entropy is low and hence
6 there is a high probability of damage from overwrites of parts
7 of the key-slot with data such as a RAID superblock or a partition
8 table.
9
10
11 Installation
12 ============
13
14 1. Install the version of cryptsetup the tool came with.
15 2. Compile with
16       gcc -lm -lcryptsetup chk_luks_keyslots.c -o chk_luks_keyslots
17
18 Usage
19 =====
20
21 Call chk_luks_keyslots without arguments for an option summary.
22
23
24 Example of a good keyslot area:
25 -------------------------------
26
27 root> ./chk_luks_keyslots /dev/loop0
28
29 parameters (commandline and LUKS header):
30   sector size: 512
31   threshold:   0.900000
32
33 - processing keyslot 0:  start: 0x001000   end: 0x020400
34 - processing keyslot 1:  start: 0x021000   end: 0x040400
35 - processing keyslot 2:  start: 0x041000   end: 0x060400
36 - processing keyslot 3:  start: 0x061000   end: 0x080400
37 - processing keyslot 4:  start: 0x081000   end: 0x0a0400
38 - processing keyslot 5:  start: 0x0a1000   end: 0x0c0400
39 - processing keyslot 6:  start: 0x0c1000   end: 0x0e0400
40 - processing keyslot 7:  start: 0x0e1000   end: 0x100400
41
42
43 Example of a fault in slot 8 at offset 0x100200:
44 -----------------------------
45
46 root>./chk_luks_keyslots /dev/loop2
47
48 parameters (commandline and LUKS header):
49   sector size: 512
50   threshold:   0.900000
51
52 - processing keyslot 0:  start: 0x001000   end: 0x020400
53 - processing keyslot 1:  start: 0x021000   end: 0x040400
54 - processing keyslot 2:  start: 0x041000   end: 0x060400
55 - processing keyslot 3:  start: 0x061000   end: 0x080400
56 - processing keyslot 4:  start: 0x081000   end: 0x0a0400
57 - processing keyslot 5:  start: 0x0a1000   end: 0x0c0400
58 - processing keyslot 6:  start: 0x0c1000   end: 0x0e0400
59 - processing keyslot 7:  start: 0x0e1000   end: 0x100400
60   low entropy at: 0x100200    entropy: 0.846546
61
62
63 Same as last, but verbose:
64 --------------------------
65 root>./chk_luks_keyslots  -v /dev/loop2
66
67 parameters (commandline and LUKS header):
68   sector size: 512
69   threshold:   0.900000
70
71 - processing keyslot 0:  start: 0x001000   end: 0x020400
72 - processing keyslot 1:  start: 0x021000   end: 0x040400
73 - processing keyslot 2:  start: 0x041000   end: 0x060400
74 - processing keyslot 3:  start: 0x061000   end: 0x080400
75 - processing keyslot 4:  start: 0x081000   end: 0x0a0400
76 - processing keyslot 5:  start: 0x0a1000   end: 0x0c0400
77 - processing keyslot 6:  start: 0x0c1000   end: 0x0e0400
78 - processing keyslot 7:  start: 0x0e1000   end: 0x100400
79   low entropy at: 0x100200    entropy: 0.846546
80   Binary dump:
81   0x100200  BD 0E C7 A8 7D EF 04 F6  AF 83 DF 74 94 FE 04 56  ....}......t...V
82   0x100210  3B 64 BD 68 A9 F6 CF 3C  37 CD 66 B7 17 4D 63 2B  ;d.h...<7.f..Mc+
83   0x100220  8F 6E 74 7E 96 7A 2B 27  32 1B F0 80 37 5A 9A 41  .nt~.z+'2...7Z.A
84   0x100230  4A 6E CB C0 CF 39 95 45  92 90 E1 0B E6 08 EE 2A  Jn...9.E.......*
85   0x100240  FA 66 6D 67 49 89 76 B1  41 CD 24 57 AA 65 F7 69  .fmgI.v.A.$W.e.i
86   0x100250  33 16 A7 C7 61 3D 43 B7  74 D6 86 83 1D 19 BF 85  3...a=C.t.......
87   0x100260  E4 22 3E 16 66 1C B0 1E  11 0D D4 26 37 AD A4 02  .">.f......&7...
88   0x100270  40 77 9A 5A B8 40 39 E3  A3 A0 96 08 4D 57 C5 0C  @w.Z.@9.....MW..
89   0x100280  D4 74 89 45 FA 93 F7 FE  A7 9D D3 99 43 77 8E 35  .t.E........Cw.5
90   0x100290  E0 55 90 3E 91 29 EA DB  5C 13 19 C9 83 CE D8 0C  .U.>.)..\.......
91   0x1002a0  85 7F 96 26 60 16 A0 0B  E1 F9 01 13 1E 59 83 98  ...&`........Y..
92   0x1002b0  06 B5 1D 6F B6 81 9D 60  58 70 15 30 29 42 32 C6  ...o...`Xp.0)B2.
93   0x1002c0  A7 55 64 00 65 ED 41 1C  B4 C1 C7 10 E1 8E 60 B0  .Ud.e.A.......`.
94   0x1002d0  F0 9E 9C 40 5A 84 92 8D  21 F0 B8 2D 61 4E 21 9D  ...@Z...!..-aN!.
95   0x1002e0  FA B8 18 D3 47 A4 4F D4  AB 73 C0 93 F3 8E 9A 95  ....G.O..s......
96   0x1002f0  A4 F1 6D EB 36 85 F4 F7  62 BA 26 D5 15 57 0D 0C  ..m.6...b.&..W..
97   0x100300  C9 4E 19 F2 5B 5A F5 54  B8 F4 B5 57 72 08 1B 7A  .N..[Z.T...Wr..z
98   0x100310  C3 66 7F 82 1E 75 92 C2  E9 97 64 5E F7 FB A9 05  .f...u....d^....
99   0x100320  CF 30 C8 6A D1 35 9B 9D  22 52 22 46 0E 4B DE 53  .0.j.5.."R"F.K.S
100   0x100330  68 C8 DA 5F C7 CA 31 D0  C9 B4 57 CF 0F 1F 4B 9C  h.._..1...W...K.
101   0x100340  DF 0C F8 7C F2 E3 32 52  3C 0D D2 DC 5C CF F0 00  ...|..2R<...\...
102   0x100350  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
103   0x100360  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
104   0x100370  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
105   0x100380  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
106   0x100390  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
107   0x1003a0  58 58 58 58 58 58 58 58  58 58 58 58 58 58 58 58  XXXXXXXXXXXXXXXX
108   0x1003b0  B4 81 7A F0 BE 38 7E 00  A4 61 41 06 ED 7B 40 D9  ..z..8~..aA..{@.
109   0x1003c0  BF 58 51 C9 CD 37 78 4D  4D B3 6E B4 7D 86 3C CB  .XQ..7xMM.n.}.<.
110   0x1003d0  D5 39 2E FC 78 B1 3E DE  C0 7F 55 25 65 71 AD 2A  .9..x.>...U%eq.*
111   0x1003e0  1E 68 D3 3B 78 17 5F D2  08 93 50 88 D8 0A 75 4F  .h.;x._...P...uO
112   0x1003f0  E5 AA 26 0F B4 F7 F5 88  65 2B E4 92 18 08 32 9E  ..&.....e+....2.
113
114
115 ----
116 Copyright (C) 2012, Arno Wagner <arno@wagner.name>
117 This file is free documentation; the author gives
118 unlimited permission to copy, distribute and modify it.