Jak funguje LUKS keyfile a heslo?

- -

Jak funguje LUKS keyfile a heslo?
« kdy: 14. 06. 2021, 11:12:37 »
Dobrý den, četl jsem návod jak zašifrovat sekundární disk a připojovat ho automaticky při startu Linuxu. 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? V návodu používá příkaz:
sudo cryptsetup -v --type luks2 luksFormat /dev/sdb /etc/cryptkey

V manuálu cryptsetup uvádí: "you can give '-' as file name, which results in the passphrase being read from stdin" což mi říká, že asi nemůžu použít jak keyfile tak nějaké jednodušší heslo zároveň? Mám dojem, že u SSH klíčů je to tak, že můžu nastavit ještě navíc heslo, takže když někdo získá takový typ souboru/klíče s heslem tak je mu takový soubor více méně k ničemu když nemá super výpočetní kapacitu k prolomení hesla, u LUKS to takto není? Pokud je, jak tedy by měl vypadat cryptsetup příkaz aby použil super ochranu dlouhého klíče + navíc heslo nutné k použití souboru klíče?
« Poslední změna: 14. 06. 2021, 11:59:42 od Petr Krčmář »


Re:Jak funguje LUKS keyfile a heslo?
« Odpověď #1 kdy: 14. 06. 2021, 12:05:05 »
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í.

Re:Jak funguje LUKS keyfile a heslo?
« Odpověď #2 kdy: 14. 06. 2021, 18:54:51 »
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é.

k3dAR

  • *****
  • 2 102
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Jak funguje LUKS keyfile a heslo?
« Odpověď #3 kdy: 14. 06. 2021, 23:05:25 »
[...] ten disk, na kterém key file je musí být nějak chráněn. Nemusí to být nutně šifrování [...]
ale muze a je to nejvhodnejsi, protoze si mozna nekdo neuvedomuje ze nesifrovany disk znamena (krome probiraneho nechraneneho luks soubor-klice) pristup k celemu home, historie prohlizece, ulozena hesla, atd... pak samozrejme to ze nekdo s pristupem muze nasadit snadno backdoor a odchytit si to heslo pro luks toho datoveho disku ;-) => idealni je sifrovat system vcetne (pripadne oddeleneho) boot, jeste lepe misto Grubu pouzivat SicherBoot, v UEFI mit smazane vychozi klice a dane svoje vlastni a pak uz jen zajistit at nikdo ten stroj nerozebere a nevynda baterku ci neflashne offline bios chip ;-)

- -

Re:Jak funguje LUKS keyfile a heslo?
« Odpověď #4 kdy: 16. 06. 2021, 17:28:36 »
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í.

Díky všem, asi máte na mysli příkaz, který uvádím níže, našel jsem zde:

Citace
# cryptsetup luksFormat /dev/sdX1
Enter passphrase for /dev/sdX1:
# cryptsetup luksOpen /dev/sdX1 secret
Enter passphrase for /dev/sdX1:
# mkfs.ext4 /dev/mapper/secret
# mkdir /secret;mount /dev/mapper/secret /secret/
# umount /secret;cryptsetup luksClose /dev/mapper/secret