LUKS: „nejbezpečnější“ nastavení

martin

LUKS: „nejbezpečnější“ nastavení
« kdy: 24. 08. 2013, 13:50:12 »
Zdravim,
rad bych si LUKSem zasifroval disk a ze zvedavosti premyslim o nejbezpecnejsim nastaveni. Jde mi o sifru (aes, serpent, twofish,...), sifrovaci mod (ecb, cbc, lrw, xts,...), inicializacni vektor (plain, essiv:hash, benbi,...) a hash (ripemd160, sha1,...).
Cetl jsem, ze nejhorsi kombinace je ecb a plain - melo by jit o falesny pocit bezpeci.
Nikde jsem ale nenasel aktualne mozne maximalni zabezpeceni.

Jestli jsem spravne pochopil, tak nejlepsi sifrovaci mod je XTS (jadra >2.6.38, coz neni problem).
Jaka sifra? AES neni prolomena a je extremne siroce pouzivana, takze tady neni problem. Je lepsi AES-128, nebo AES-256? Na rootu jsem nasel, ze by melo byt bezpecnejsi AES-128 (Groveruv algortimus nechapu, ale to asi stejne neni moc aktualni). Kolika bitove AES LUKS umi?
Jaky inicializacni vektor? Je plain malo bezpecny (aes-xts-plain)? Nekde chvalili benbi (aes-xts-benbi), jaky je? A jake dalsi vektory se daji pouzit? Jaky hash je nejlepsi?

Co se vam zda nejbezpecnejsi?:
Kód: [Vybrat]
cryptsetup luksFormat -h sha512 -c aes-xts-plain -s 512 --verbose --verify-passphrase /dev/loop0
cryptsetup luksFormat -h sha512 -c aes-xts-plain64 -s 512 --verbose --verify-passphrase /dev/loop0
cryptsetup luksFormat -h sha512 -c aes-xts-benbi -s 512 --verbose --verify-passphrase /dev/loop0
Nebo neco uplne jineho?

Rychlost prosim nereste, pouze bezpecnost.

Diky za vase nazory :-)
« Poslední změna: 25. 08. 2013, 19:50:22 od Petr Krčmář »


Lol Phirae

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #1 kdy: 24. 08. 2013, 14:12:23 »

Trubicoid2

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #2 kdy: 24. 08. 2013, 16:30:48 »
aes-xts-benbi nebo aes-xts-plain64, plain ma potencialni problem na velkym disku, ze se zacne opakovat

IMHO xts nepouziva hash, takze -h bude ignorovano

Jeste misto aes muzes pouzit twofish nebo serpent

Trubicoid2

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #3 kdy: 24. 08. 2013, 16:41:24 »
Jinak klic 512 v xts je nejdelsi mozny, prakticky ale sifruje polovicnim klicem, takze aes256. Jestli nejde o rychlost, tak serpent-xts-bebi -s 512

martin

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #4 kdy: 24. 08. 2013, 18:18:37 »
Chapu dobre, ze misto aes-xts-plain je lepsi aes-xts-plain64?
Kdyz XTS nepouziva hash, je horsi nez ostatni (cbc, lrw,...)?

Jestli nejde o rychlost, tak serpent-xts-bebi -s 512
V cem je serpent lepsi/bezpecnejsi ve srovnani s AES?

Co tedy doporucujete? aes-xts-benbi nebo serpent-xts-bebi?


trubicoid2

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #5 kdy: 24. 08. 2013, 19:05:16 »
Chapu dobre, ze misto aes-xts-plain je lepsi aes-xts-plain64?
ano, plain pouziva pouze 32b vektor, plain64 a benbi 64b

Kdyz XTS nepouziva hash, je horsi nez ostatni (cbc, lrw,...)?
ne, naopak lepsi

V cem je serpent lepsi/bezpecnejsi ve srovnani s AES?
Co tedy doporucujete? aes-xts-benbi nebo serpent-xts-bebi?

AES vyhral Rijndael (tedy ted aes), protoze byl rychlejsi nez druhej Serpent, ale Serpent bude bezpecnejsi, myslim i do budoucna, protoze se vsichni soustredi na AES. Prikladem je treba cold-boot attack, kde automaticky v pameti hledaji AES klice.

Z tohoto pohledu tedy neni spatny treti twofish, ten je rychlejsi nez serpent. Jestli tedy neni rychlost rozhodujici, tak serpent. Jestli je potreba rychlost tak twofish, jestli je potreba kompatabilitu (treba jadro, co nema serpent nebo twofish moduly), nebo aby se pouzily aes-ni  instrukce u procesoru, co je podporuji, tak aes.

Jenda

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #6 kdy: 25. 08. 2013, 01:59:52 »
Prikladem je treba cold-boot attack, kde automaticky v pameti hledaji AES klice.
No tak pokud bude útočník alespoň trochu inteligentní, tak se před začátkem hledání podívá do hlavičky, zjistí, že tam není AES, ale Serpent, a bude hledat Serpent klíče ;). Jediný problém je, že na Serpent není dostupná ta hustá key-schedule optimalizace (viz aeskeyfind), takže je hledání šíleně pomalé, ale na lepším GPU by se to IMHO dalo dát přes noc (u AES to trvá minutu).

K původní otázce: na disk je bezpečné i CBC, na něj jsou útoky jenom když můžeš komunikaci real-time ovlivňovat, což u disku většinou nejde. Cokoli lepšího je plus… Šifra je spíš otázkou politického postoje (vybrala NSA AES proto, že je bezpečný a oni s ním chtějí chránit svá data, nebo proto, že je nebezpečný, chtějí poslouchat cizí data a doufají, že na to nikdo nepřijde?).

Neřešil bych to. Podle mě je mnohem pravděpodobnější, že ten počítač někdo hackne přes nějaký 0-day (díra ve FIrefoxu, je-li to desktop, díra v SSH, je-li to server, hacknutí admina, který se na ten server přes SSH přihlašuje…) nebo přes chybu uživatele/výrobce distribuce (podstrčení backdooru), pak možná i ten coldboot (dej si do case vypínač nebo zalep ramky epoxidem :) ) a pokud to někomu stojí za tvůj únos+mučení, tak prostým vymlácením hesla (tomu by mohlo pomoct mít klíč na nosiči, který se zničí).

Nobody

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #7 kdy: 25. 08. 2013, 03:19:51 »
...a pokud to někomu stojí za tvůj únos+mučení, tak prostým vymlácením hesla (tomu by mohlo pomoct mít klíč na nosiči, který se zničí).

Tak to je ale dost nesikovne, pokud behem muceni dojdes k zaveru, ze ti ta data za to nestoji.

Jenda

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #8 kdy: 25. 08. 2013, 06:13:20 »
...a pokud to někomu stojí za tvůj únos+mučení, tak prostým vymlácením hesla (tomu by mohlo pomoct mít klíč na nosiči, který se zničí).

Tak to je ale dost nesikovne, pokud behem muceni dojdes k zaveru, ze ti ta data za to nestoji.
That's a feature.

Trubicoid2

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #9 kdy: 25. 08. 2013, 10:24:09 »
No tak pokud bude útočník alespoň trochu inteligentní, tak se před začátkem hledání podívá do hlavičky, zjistí, že tam není AES, ale Serpent, a bude hledat Serpent klíče ;)
Jiste, toto plati pro LUKS, bez nej jen s cryptsetup zadna hlavicka neni, coz je mi sympaticke. Na druhe strane LUKS dela slozitejsi overeni klice, coz protahuje dobu na jeho brute-force najdeni v kopii pameti.

Waseihou

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #10 kdy: 25. 08. 2013, 10:43:24 »
Takže zjednodušme zadání: Jaké nastavení je bezpečné, aby šifru nerozlouskla Policie ČR, a to za předpokladu že se jim dokonce podaří sehnat borce který to umí s GPU a podobné skopičiny. Předpokládám že nejdůležitější bude dostatečně dlouhá passphrase, a jinak s tím nehnou. Použití exotičtější šifry by možná věc zkomplikovalo, ale proč, když dnešní CPU často mají podporu AES na hw úrovni...

Lol Phirae

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #11 kdy: 25. 08. 2013, 10:52:46 »
Takže zjednodušme zadání: Jaké nastavení je bezpečné, aby šifru nerozlouskla Policie ČR, a to za předpokladu že se jim dokonce podaří sehnat borce který to umí s GPU a podobné skopičiny. Předpokládám že nejdůležitější bude dostatečně dlouhá passphrase, a jinak s tím nehnou. Použití exotičtější šifry by možná věc zkomplikovalo, ale proč, když dnešní CPU často mají podporu AES na hw úrovni...

Znova, passphrase je pro tyto účely naprostý nesmysl. http://xkcd.com/538/

Franta <xkucf03/>

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #12 kdy: 25. 08. 2013, 11:09:16 »
Znova, passphrase je pro tyto účely naprostý nesmysl. http://xkcd.com/538/

PČR tě bude mlátit dokud nevydáš heslo? Nějaké zkušenosti? (neříkám tak ani tak, jen se ptám)

Jenda

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #13 kdy: 25. 08. 2013, 13:24:56 »
Jiste, toto plati pro LUKS, bez nej jen s cryptsetup zadna hlavicka neni, coz je mi sympaticke.

No ale furt tam ta data jsou, spoléháš jen na to, že útočník neumí použít GDB a ty jaderné struktury si vypsat :). V případě distribučního jádra/jádra se standardními parametry by to mohlo být i celkem snadné, protože si snadno sežene debug symboly.

Na druhe strane LUKS dela slozitejsi overeni klice, coz protahuje dobu na jeho brute-force najdeni v kopii pameti.

Na to bych zas tak nespoléhal, je složitější spočítat ten PBKDF nebo rozšifrovat kousek a zkontrolovat, jestli tam není nějaký FS?

Takže zjednodušme zadání: Jaké nastavení je bezpečné, aby šifru nerozlouskla Policie ČR, a to za předpokladu že se jim dokonce podaří sehnat borce který to umí s GPU a podobné skopičiny. Předpokládám že nejdůležitější bude dostatečně dlouhá passphrase, a jinak s tím nehnou. Použití exotičtější šifry by možná věc zkomplikovalo, ale proč, když dnešní CPU často mají podporu AES na hw úrovni...

Spíš než borce s GPU bych to omezil na „nesmí se jim povést cold-boot útok“. Pak je to, má-li to alespoň trochu rozumnou passfrázi (64bit+), naprosto v pohodě.

Waseihou

Re:LUKS - jake nastaveni je "nejbezpecnejsi"?
« Odpověď #14 kdy: 25. 08. 2013, 13:41:08 »
Tak předpokládám že onen "sprostý podezřelý" bude malá ryba typu přispěvatel na grower.cz a nebo warezák, nikoliv terorista, mafíán či politik. A u takových se "cold-boot útok" neprovádí, počítače se nahází do pytle a tím získání "důkazů" obvykle končí (a obvykle stačí). To už větší riziko hrozí při cestě do Velké Británie, tam můžete dostat pálku za neposkytnutí hesla, takže jediné rozumné řešení je TrueCrypt a "hidden partition" s dvojím heslem pro "plausible deniability".