A fost publicat Shufflecake, un instrument pentru crearea de partiții criptate ascunse pe disc

Compania Kudelski Security, specializată în auditul de securitate, a publicat instrumentul Shufflecake, care permite crearea de sisteme de fișiere ascunse, dispersate în spațiul liber existent din partțiile existente și nu se deosebesc de datele reziduale aleatorii. Partțiile sunt create în așa fel încât, fără a cunoaște cheia de acces, existența lor este problematică în a fi dovedită chiar și în cadrul analizei criminologice. Codul utilităților (shufflecake-userland) și al modulului kernel Linux (dm-sflc) este scris în limbajul C și este distribuit sub licența GPLv3, ceea ce face imposibilă includerea modulului kernel publicat în kernelul Linux principal din cauza incompatibilității cu licența GPLv2, sub care este livrat kernelul.

Proiectul este poziționat ca fiind mai avansat decât Truecrypt și Veracrypt, o soluție pentru ascunderea datelor sensibile, care are suport nativ pentru platforma Linux și permite crearea de până la 15 partiții ascunse pe dispozitiv, incluse unele în altele pentru a confuza analiza existenței lor. Dacă utilizarea Shufflecake nu reprezintă un secret, așa cum se poate judeca, de exemplu, prin existența utilităților corespunzătoare în sistem, numărul total de partiții ascunse create este imposibil de determinat. Partițiile ascunse pot fi formatate după dorința utilizatorului pentru a găzdui orice FS, cum ar fi ext4, xfs sau btrfs. Fiecare partiție este tratată ca un dispozitiv de bloc virtual separat cu propria sa cheie de deblocare.

Pentru a confuza urmele, se propune utilizarea modelului de comportament „neagarea plauzibilă” (plausible deniability), a cărui esență este că datele valoroase sunt ascunse ca straturi suplimentare în partiții criptate cu date mai puțin valoroase, formând un fel de ierarhie ascunsă a partițiilor. În cazul unei presiuni, proprietarul dispozitivului poate dezvălui cheia pentru partiția criptată, dar în această partiție se pot ascunde și alte partiții (până la 15 niveluri incluse), iar determinarea existenței lor și dovedirea existenței este problematică.

Ascunderea este asigurată prin crearea fiecărei secțiuni ca un set de segmente criptate, plasate în poziții aleatorii pe dispozitivul de stocare. Fiecare segment este creat dinamic în momentul în care secțiunea necesită un spațiu suplimentar pentru stocare. Pentru a complica analiza, segmentele din diferite secțiuni sunt intercalate, adică secțiunile Shufflecake nu sunt legate de zone continue și segmentele tuturor secțiunilor sunt amestecate. Informațiile despre segmentele utilizate și libere sunt păstrate într-o hartă de locație asociată fiecărei secțiuni, la care se face referire în antetul criptat. Hărțile și antetul sunt criptate și, fără cunoașterea cheii de acces, nu pot fi deosebite de date aleatorii.

Antetul este împărțit în sloturi, fiecare definind propria secțiune și segmentele asociate. Sloturile din antet sunt plasate în ordinea stivă și sunt legate recursiv — slotul curent conține cheia pentru decriptarea parametrilor secțiunii anterioare din ierarhie (mai puțin ascunsă), ceea ce permite utilizarea unei singure parole pentru a decripta toate secțiunile mai puțin ascunse, legate de secțiunea selectată. Fiecare secțiune mai puțin ascunsă consideră segmentele secțiunilor închise ca fiind disponibile.

Implicit, toate secțiunile închise Shufflecake au aceeași dimensiune vizibilă ca și secțiunea de nivel superior. De exemplu, dacă pe un dispozitiv de 1 GB sunt utilizate trei secțiuni, fiecare dintre acestea va fi vizibil pentru sistem ca o secțiune cu dimensiunea de 1 GB, iar spațiul total de stocare disponibil va fi partajat în toate secțiunile — dacă dimensiunea totală a datelor salvate depășește dimensiunea efectivă a dispozitivului, se va începe afișarea unei erori de intrare/ieșire.

Secțiunile închise nu participă la distribuția spațiului, adică încercarea de a umple o secțiune de nivel superior va duce la suprascrierea datelor în secțiunile închise, dar nu va permite dezvăluirea existenței lor prin analiza dimensiunii datelor care pot fi plasate în secțiune înainte de a apărea o eroare (se presupune că secțiunile superioare conțin date imuabile pentru a distrage atenția și nu sunt folosite niciodată separat, iar funcționarea standard se realizează întotdeauna cu cea mai recentă secțiune închisă, schema însă presupune că este mai important să păstrăm secretul existenței datelor decât să pierdem acele date).

De fapt, sunt create întotdeauna 15 secțiuni Shufflecake - secțiunile utilizate sunt legate de parola utilizatorului, iar secțiunile neutilizate sunt dotate cu o parolă generată aleatoriu (nu este posibil să se înțeleagă câte secțiuni sunt realmente utilizate). La inițializarea secțiunilor Shufflecake, discul, secțiunea sau dispozitivul de bloc virtual alocat pentru plasarea lor este umplut cu date aleatorii, ceea ce nu permite determinarea metadatelor și datelor Shufflecake în fundal.

Implementarea Shufflecake are o performanță destul de ridicată, dar din cauza costurilor auxiliare, este cu aproximativ de două ori mai lentă în comparație cu criptarea discurilor bazate pe subsistemul LUKS. Utilizarea Shufflecake duce, de asemenea, la costuri suplimentare de memorie RAM și spațiu pentru stocarea datelor de sistem pe disc. Costul memoriei este estimat la 60 MB pentru fiecare secțiune, iar spațiul pe disc este de 1% din dimensiunea totală. Spre comparație, o tehnică similară cu scopul WORAM duce la încetiniri de la 5 la 200 de ori cu o pierdere de 75% din spațiul util de pe disc.

Instrumentarul și modulul kernel au fost testate doar în Debian și Ubuntu cu kernelurile 5.13 și 5.15 (se suportă funcționarea în Ubuntu 22.04). Se observă că proiectul ar trebui considerat deocamdată ca un prototip de lucru, care nu ar trebui utilizat pentru stocarea datelor importante. În viitor se preconizează optimizarea suplimentară a performanței, fiabilității și securității, precum și asigurarea capacității de bootare de pe secțiunile Shufflecake.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster