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

Re: cryptsetup + optionen



Kai Wilke <kiste@netzworkk.de> wrote:
> kann mir mal jemand genau in deutsch erklaeren was die Optionen offset
> und skip, bei cryptsetup, bedeuten.

Im Prinzip machen beide dasselbe. cryptsetup baut device-mapper
Tabellen-Eintraege und der device-mapper wiederum schneidet quasi
Stuecke aus anderen Block-Devices heraus und stellt sie als eigenes
Block-Device zur Verfuegung (er kann das auch noch komplexer machen,
aber die vereinfachte Darstellung reicht uns hier). So gesehen macht der
device-mapper also (in unserem vereinfachten Fall) sowas aehnliches wie
die Partitionstabelle auf Festplatten. Halt nur ohne Partitionstabelle :)
Mit dem offset gibt man eben an, wo im Original-Block-Device das
herausgeschnittene Stueck anfangen soll.
Bei skip passiert dasselbe, nur dass die (bereits erwaehnte)
IV-Berechnung von dm-crypt so ausgefuehrt wird als gaebe es das Offset
nicht.

Angenommen ich habe ein Block-Device /dev/foo mit 1000 Sektoren und sag
dem device-mapper: map mir mal ein Stueck von /dev/foo beginnend bei
Sektor 300 (offset) bis zum Ende raus und nenn das /dev/mapper/bar.
Dann bekomm ich ein /dev/mapper/bar, das ist 700 Sektoren gross und
Sektor 0 von /dev/mapper/bar ist Sektor 300 von /dev/foo.

LUKS verwendet z.B. ein Offset (sieht man mit cryptsetup status), weil
am Beginn einer LUKS-Partition erstmal der 2056 Sektoren grosse
LUKS-Header steht, bevor die verschluesselten Daten beginnen.

Mach ich das jetzt mit skip, passiert exakt dasselbe. Das einzige was
sich unterscheidet ist die Ver- und Entschluesselung der Daten durch
dm-crypt. Das berechnet nun den IV von /dev/mapper/bar Sektor 0 so als
waere es Sektor 300. Dadurch kann man aus der Mitte eines
verschluesselten Block-Devices ein Stueck rausschneiden und es mit
dem Schluessel von /dev/foo immernoch "korrekt" ver- und vor allem
entschluesseln ("korrekt" i.S.v.: so dass dasselbe rauskommt, als haette
man Sektor n+300 von /dev/foo ver- bzw. entschluesselt).

Anwendungsfaelle? Zum Beispiel koennte man sich mit etwas Phantasie
ueberlegen, sowas fuer versteckte Container innerhalb eines
verschluesselten Geraetes zu verwenden (Stichworte: hidden container,
plausible deniability).
Man koennte es auch verwenden, um kaputte Sektoren aus einem
verschluesselten Block-Device auszublenden, wenn einem die partout die
Rettung der anderen Daten unmoeglich machen (ja, da gibts einfachere
Varianten).
Man koennte es auch verwenden, um von aussen auf Partitionen innerhalb
eines verschluesselten Block-Devices zuzugreifen oder auf einzelne
Sektoren - warum auch immer.


War das "deutsch" genug?


regards
   Mario
-- 
Und wie jede Sprache, so hat auch PHP ein Anwendungsgebiet, fuer das es
besonders gut geeignet ist. Soweit ich sehen kann, handelt es sich dabei
um das sogenannte "ins Knie schiessen".
                                -- Volker Birk, de.alt.sysadmin.recovery


Reply to: