LUKS má v hlavičce prostor pro klíče, může tam být až osm kopií klíče. Každá z nich může být chráněna jiným heslem nebo třeba žádným. Klíč se také může nacházet mimo tento prostor (klíčenku) a může se předávat ovladači bokem, což je právě používáno ve zmíněném návodu. Pokud je ten klíč běžně čitelný na disku, pak to skutečně není vůbec bezpečné a kdokoliv vyndá z počítače disk, tak si ten klíč přečte a data si dešifruje. Řešením je vykašlat se na ten soubor s klíčem a použít klíč uložený v hlavičce, který je zašifrovaný uživatelskou frází.
Tady bych si dovolil opravit -- key file (tedy minimálně ten, který se předává pomocí
--key-file nebo se píše do
/etc/crypttab nebo v případě
luksFormat jako poslední parametr) je prostě jen soubor s heslem, ne s master klíčem* (klíč pro šifrování dat). Výhodou key file je, že může obsahovat binární data, která uživatel normálně na klávesnici při žádnosti o zadání hesla nenapíše, takže je teoreticky bezpečnější (ale taky v něm může být prostě klasické textové heslo, které napsat jde).
*) Jde mít master klíč uložený zvlášť, to by se pak používalo
--master-key-file, ale to rozhodně není běžný use case.
Používá keyfile na /etc/keyfile které může číst pouze root.
Jenže pokud je systémový disk nešifrovaný (nemá full disk encryption, ale třeba pouze /home) a někdo má fyzický přístup k PC/PC je zcizen, tak může tento keyfile použít a dešifrovat data sekundárního disku ne?
Ano přesně tak. Výhoda key file je, že když si ho napíšeš do
/etc/crypttab, tak se šifrovaný disk připojí automaticky bez nutnosti zadání hesla. Je to užitečné u externích disků nebo právě nějakého "druhého" datového disku, ale ten disk, na kterém key file je musí být nějak chráněn. Nemusí to být nutně šifrování, desktop zamčený doma je relativně v bezpečí a řešit nějakou šifrovanou flešku key filem a položkou v
/etc/crypttab může být docela pohodlné.