Puncte:0

Cum dm-crypt în Linux face ca modurile de criptare neparalelizabile să aibă toate blocurile de 512 de octeți diferite între ele?

drapel pf

dm-crypt în Linux utilizează blocuri de 512 de octeți (sectoare de disc) care au subblocuri de text simplu criptat pentru moduri de criptare bloc care nu sunt paralelizabile:

„Cu modurile obișnuite din cryptsetup (CBC, ESSIV, XTS), puteți obține un bloc de 512 octeți complet schimbat pentru o eroare de biți. Un bloc corupt provoacă mult mai multe ravagii decât un singur bit răsturnat ocazional și poate duce la diverse erori obscure. ."

/\ Sursă: https://gitlab.com/cryptsetup/cryptsetup/-/wikis/FrequentlyAskedQuestions

Suportă CBC, PCBC, OFB și CFB care nu sunt paralelizabile.

L-am testat aici în sistemul meu Linux:

dd if=/dev/zero of=./img count=5242880 bs=1
dd if=/dev/random of=./key count=32 bs=1
sudo cryptsetup open --type plain --cipher aes-cbc-essiv:sha3-256 --key-file ./key --key-size 256 ./img blah
sudo cat /dev/zero > /dev/mapper/blah
sudo cryptsetup close /dev/mapper/blah

/\ Am deschis fișierul imagine de disc într-un editor hexazecimal și am putut vedea că toate blocurile de 512 octeți sunt diferite între ele, chiar dacă textele clare din imaginea întregului disc sunt uniforme (zerouri).

Intrebarea mea este:

Cum dm-crypt face ca toate blocurile de 512 de octeți să fie diferite între ele, chiar dacă textele sale clare sunt aceleași?

Dacă criptez ceva cu CBC și împart în blocuri de 512 octeți pentru a face căutarea, cheia și IV ar fi aceleași pentru fiecare bloc de 512 octeți, așa că dacă criptez același text simplu, blocurile ar fi egale.

kelalaka avatar
drapel in
IV nou pe bloc....
phantomcraft avatar
drapel pf
@kelalaka Știu că opțiunea ESSIV din cryptsetup hashează cheia pentru a fi folosită ca IV, dar este adăugat un contor pentru hash la fiecare bloc de 512 de octeți?
Puncte:4
drapel cn

Pur și simplu folosesc numărul sectorului sau o anumită funcție a acestuia ca tweak/IV. Numărul sectorului este cunoscut la momentul criptării și decriptării, așa că nu trebuie să fie stocat cu textul cifrat, ceea ce este bun, deoarece nu este loc pentru el.

Toate aceste moduri sunt de fapt extrem de paralelizabile: I/O pe disc se întâmplă de obicei în multipli de cel puțin 4K și pot fi deja paralelizate în 8 moduri. Lipsa paralelizabilității sub-sectorului este o caracteristică de proiectare. Este imposibil ca driverul să autentifice sectoarele decriptate, deoarece nu există spațiu pentru a stoca un autentificator, așa că trebuie să se bazeze pe niveluri mai înalte pentru a observa că textul simplu este greșit și că acest lucru este mai probabil să se întâmple cu cât este mai greșit.

fgrieu avatar
drapel ng
Ultima propoziție din răspuns spune un adevăr trist și important: criptarea discului la nivel de sector nu oferă autentificare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.