===== Alati za šifriranje diskova ===== ===== Sažetak ===== ^ ^ Prednosti ^ Nedostatci ^ | **BitLocker** | lagan za korištenje | šifriranje dostupno samo u skupljim inačicama sustava | ^ | šifriranje s mjesta | zatvorena implementacija | ^ | više načina za spremiti ključ za oporavak | XTS 128 bit umjesto 256 bit | | **LUKS** | otvorena implementacija | van standardnih postavki je teži za korištenje | ^ | podržava više lozinki | šifriranje s mjesta zahtjeva naredbeni redak | ^ | stalno se provjerava | | | **VeraCrypt** | otvorena implementacija | loša brzina diska pri korištenju | ^ | šifrirano cijelo zaglavlje | nema mogućnost korištenja TPM modula | ^ | mogućnost stvaranja skrivenih šifriranih particija | | ^ | veći izbor šifriranja iz korisničkog sučelja | | | **FileVault** | lagan za korištenje | zatvorena implementacija | ^ | jedini način za šifrirati MAC računalo | ograničen po mogućnosti za krajnjeg korisnika | ^ | šifriranje s mjesta | | ^ | više načina za spremiti ključ za oporavak | | ===== Uvod ===== Šifriranje računala još uvijek nije po standardu uključeno na većini stolnih i prijenosnih računala, dok je to standard u mobilnim uređajima. Važno je kako bi se oduprijelo izvlačenju podataka metodama računalne forenzike. Postoji mnogo rješenja za šifriranje podataka diska. Ovaj rad proučava najpopularnija rješenja koja pokrivaju najpopularnije operacijske sustave. ===== BitLocker ===== {{:racfor_wiki:seminari2023:bitlocker-logo.png?100 | BitLocker logo}} //"[[https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker|BitLocker]] is a Windows security feature that provides encryption for entire volumes, addressing the threats of data theft or exposure from lost, stolen, or inappropriately decommissioned devices."// ==== Općenito ==== BitLocker je zatvoren program koji je razvio Microsoft za šifriranje podataka na računalima počevši od Windows Viste. Dostupan je samo u [[https://support.microsoft.com/en-us/windows/device-encryption-in-windows-ad5dcf4b-dbe0-2331-228f-7925c2a3012d|određenim]] (skupljim), inačicama Windowsa. Koristi otvorene i provjerene algoritme za šifriranje podataka [[https://en.wikipedia.org/wiki/Advanced_Encryption_Standard|AES]] 128 bit ili 256 bit u [[https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_block_chaining_(CBC)|CBC]] ili [[https://en.wikipedia.org/wiki/Disk_encryption_theory#XTS|XTS]] načinu rada. ==== Kritike ==== === Zatvorenost implementacije === Unatoč tome što koristi otvorene standarde za šifriranje, sama implementacija BitLocker-a je zatvorena za korisnike što ruši provjeru [[https://hr.wikipedia.org/wiki/Kerckhoffsovo_na%C4%8Delo|Kerckhoffovog principa]] da kriptosustav mora biti siguran kada su javno poznati svi detalji rada sustava osim ključeva. === _NSAKEY incident === Na sustavu Windows NT 4 su se prilikom jednog ažuriranja pojavili debug nazivi varijabli od koje su dvije bile KEY i [[https://en.wikipedia.org/wiki/NSAKEY|_NSAKEY]]. _NSAKEY naziv varijable je izazvalo kontroverze i narušilo povjerenje korisnika jer se mislilo kako se radi o ključu koji omogućuje američkoj obavještajnoj agenciji da zaobiđe šifriranje. Microsoft je negirao tvrdnje i službeni odgovor bio je da služi za provjeru potipsa pružatelja kriptografskih usluga. === Hardversko šifriranje === Od pojave harverskog šifriranja u SSD diskovima pa sve do [[https://support.microsoft.com/en-us/topic/september-24-2019-kb4516071-os-build-16299-1420-5648029d-8d1c-ed9e-b72c-63c6fee30bff| 24. rujna 2019]], BitLocker bi po standardnom ponašanju, ako je u mogućnosti, koristio [[https://en.wikipedia.org/wiki/Hardware-based_encryption|hardversko šifriranje]] na SSD disku. Standardno ponašanje je promjenjeno na programsku zbog kritika istraživača i otkrivenih slabosti u šifriranju [[https://ieeexplore.ieee.org/document/8835339|određenih SSD diskova]] . Hardversko šifriranje je u pravilu brže, ali se povećava površina napada. I dalje je moguće koristiti hardversko šifriranje umjesto programskog, ali zahtjeva [[https://www.crucial.com/support/articles-faq-ssd/setup-ssd-encryption-via-bitlocker|dodatne korake]]. === Nemogućnost obrane od napada kvantnim računalom u standardnom ponašanju === Untaoč tomu što podržava 256 bitni ključ za šifriranje, BitLocker u [[https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/|standardnom načinu]] koristi 128 bitni ključ zbog boljih performansi na starim sustavima. 128 bitni ključ nije dovoljan za obranu od [[https://www.linkedin.com/pulse/quantum-computing-crack-128-bit-aes-key-matter-seconds-jayant-dusane|napada kvantnim računalom]]. ==== Ponašanje ==== Standardno ponašanje BitLockera je programsko šifriranje standardima AES 128 bit u XTS načinu rada. Šifriranje se obavlja dok je sistem aktivan, tj. može se šifrirati bilo kada bez gubitka podataka na disku. BitLocker u standardom ponašanju koristi [[https://support.microsoft.com/hr-hr/topic/%C5%A1to-je-tpm-705f241d-025d-4470-80c5-4feeb24fa1ee|TPM]] za pohranu ključeva. 48 znamenkasti broj za oporavak potrebno je spremiti na sigurno mjesto (primjerice [[https://en.wikipedia.org/wiki/Password_manager|upravitelju zaporki]]) u slučaju korištenja izvanmrežnog računa. Kako koristi TPM, Windows neće pitati za ključ već samo zaporku za prijavu, tj. sve dok nema promjene u firmwareu ili primjerice bootloaderu, TPM modul će automatski dešifrirati disk. Inače će tražiti 48 znamenkasti broj za oporavak [1]. Microsoft nudi i opciju spremanja ključa oporavka na svojim serverima preko osobnog Microsoft računa. {{ :racfor_wiki:seminari2023:recovery-bitlocker.png?600 | Prikaz korisničkog sučelja za oporavak diska sustava Windows}} Prikaz korisničkog sučelja za oporavak diska sustava Windows. [1] Detaljnije ponašanje BitLockera nije moguće odrediti jer je zatvorenog koda pod licencom Microsofta. ==== Primjeri korištenja ==== {{ :racfor_wiki:seminari2023:bitlocker-logo.png?100|}} {{ :racfor_wiki:seminari2023:win-folder-bitlocker.png?100|}} {{ :racfor_wiki:seminari2023:win-folder.png?100|}} Najlakši način za prepoznati BitLocker šifrirani disk na sustavu Windows je prema ikonama. Šifrirani disk će imati prikazan lokot, dok nešifirani neće. (slike desno) ---- Bolji način je provjera pomoću naredbenog retka, koja će otkriti i dodatne detalje. [2] {{ :racfor_wiki:seminari2023:decrypted-bitlocker.png?600 |}} Prikaz rezultata narebenog retka nakon izvođenja naredbe. [2] Šifriranje se vrši na način opisan u video uratku. Potrebno je spremiti ključ za oporavak na sigurno mjesto. Status šifriranja možemo provjeriti istom naredbom. [3] {{ :racfor_wiki:seminari2023:encrypted-bitlocker.png?600 |}} Prikaz rezultata narebenog retka šifriranja. [3] ===== Linux Unified Key Setup ===== {{:racfor_wiki:seminari2023:luks-logo.png?270 |}} //"[[https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup|The Linux Unified Key Setup (LUKS)]] is a disk encryption specification created by Clemens Fruhwirth in 2004 and originally intended for Linux. LUKS implements a platform-independent standard on-disk format for use in various tools. This facilitates compatibility and interoperability among different programs and operating systems, and assures that they all implement password management in a secure and documented manner."// ==== Općenito ==== LUKS je standard za šifriranje na Linux sustavima. Postoji inačica LUKS1 i LUKS2, s razlikama u sadržaju i strukturi zaglavlja te funkcije derivacije ključa. Obe verzije standardno koriste AES 256 bit šifriranje. LUKS uz AES podržava i mnoge druge šifrate od kojih su najpoznatiji [[https://en.wikipedia.org/wiki/Serpent_(cipher)|Serpent]], [[https://en.wikipedia.org/wiki/Twofish|Twofish]] i [[https://en.wikipedia.org/wiki/CAST-256|CAST]] te načine rada[[https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_codebook_(ECB)|ECB]], CBC i XTS. ==== Kritike ==== === LUKS1 === LUKS1 ne podržava dovoljno jaku funkciju derivacije ključa da izdrži veliki paralelan napad jer koristi [[https://en.wikipedia.org/wiki/PBKDF2|PBKDF2]] koji je [[https://lwn.net/Articles/929343/|manje otporan]] nego [[https://en.wikipedia.org/wiki/Argon2|Argon2id]]. Često korišteni[[https://en.wikipedia.org/wiki/Bootloader|pokretač operacijskog sustava ]] [[https://en.wikipedia.org/wiki/GNU_GRUB#Version_2_(GRUB_2)|GRUB2]] ne podržava LUKS2, pa ga se mora šifrirati s LUKS1. ==== Ponašanje ==== Standardno ponašanje LUKS-a je programsko šifriranje s AES 256 bit i s funkcijama za derivaciju ključa PBKDF2 u LUKS1 i ARGON2id u LUKS2. Šifriranjem diska gubi se prethodni sadržaj, [[https://man.archlinux.org/man/cryptsetup-reencrypt.8.en|ali je moguće]], iako manje preporučano, šifrirati sadržaj diska bez brisanja. Ne koristi TPM u standardnom ponašanju, ali ga je moguće koristiti uz dodatne naredbe u naredbenom retku. Preporučeno je izraditi sigurnosnu kopiju podataka. Detalji podatci o korištenom šifratu i načinu rada se mogu naći u LUKS zaglavlju [4] kojeg svaki disk šifrirani LUKS disk ima. {{ :racfor_wiki:seminari2023:luks-header.png?400 |}} Primjer LUKS zaglavlja. [4] LUKS ima mogućnost korištenja više zaporki koje služe za dobivanje glavnog ključa kao i mijenjanje zaporke bez ponovnog šifriranja cijelog diska. To funkcionira jer se glavni ključ zaslužan za šifriranje diska ne mijenja, već se za svaku zaporku ponovno šifrira. Zbog istog razloga ne smijemo izgubiti zaglavlje jer zaporke ne znače ništa bez glavnog ključa koji je zapisan u njemu. LUKS2 ima veće zaglavlje s [[https://www.e2encrypted.com/posts/luks-vs-luks2/|više mogućnosti]] kao što je npr. 32 umjesto 8 zaporki. ==== Primjeri korištenja ==== Za početak je dobra praksa vidjeti kako se različiti algoritmi ponašaju na računalu koje želimo šifrirati. Za to postoji alat [[https://man.archlinux.org/man/cryptsetup-benchmark.8.en|cryptsetup benchmark]]. [5] {{ :racfor_wiki:seminari2023:benchmark.png?600 |}} Rezultati naredbe ''cryptsetup benchmark''. [5] Iz tablice se vidi kako je za najbolji omjer brzine i zaštite koristiti AES-XTS s ključem od 256 bita. (Slika prikazuje veličinu ključa od 512 bita. To je takav prikaz, [[https://www.kingston.com/en/blog/data-security/xts-encryption|XTS]] koristi dva ključa od 256 bita) Razlog pobjedi AES šifrata je i činjenica da današnji procesori imaju [[https://en.wikipedia.org/wiki/AES_instruction_set|instrukcije specifično namjenjene za računanje navedenog šifrata]]. Većina Linux distribucija ima mogućnost šifriranja operacijskih sustava kao i diskova kroz grafička korisnička sučelja koji su vrlo intuitivni za korištenje pa nije potrebno koristiti naredbeni redak. Takav primjer je opisan u video uratku. Na kraju se isplati [[https://www.cyberciti.biz/security/how-to-backup-and-restore-luks-header-on-linux/|napraviti sigurnosnu kopiju LUKS zaglavlja]] koji sadrži podatke o detaljima šifriranja kao i šifrirani glavni ključ. Sigurnosna kopija je sama po sebi beskorisna, ali je dobra praksa spremiti u neki od upravitelja zaporki. ''sudo cryptsetup luksHeaderBackup /dev/UREĐAJ --header-backup-file /put/do/sigurnosne/kopije'' ===== VeraCrypt ===== {{:racfor_wiki:seminari2023:verycrypt.png?100 |}} //"[[https://www.veracrypt.fr/en/Home.html|VeraCrypt]] is a free and open-source utility for on-the-fly encryption. The software can create a virtual encrypted disk that works just like a regular disk but within a file. It can also encrypt a partition or (in Windows) the entire storage device with pre-boot authentication."// ==== Općenito ==== Veracrypt je besplatan alat otvorene implementacije podržan na svim popularnim operacijskim sustavima sa širokim spektrom dostupnih šifrata. [[https://en.wikipedia.org/wiki/Fork_(software_development)|Fork]] je [[https://en.wikipedia.org/wiki/TrueCrypt|TrueCrypt]] alata te ga poboljšava i proširuje. ==== Kritike ==== === Brzina === VeraCrypt šifriranje je sporo čak i na brzim SSD diskovima. Na githubu je još uvijek otvoren problem od 2017 godine na ovu temu, a može se pronaći [[https://github.com/veracrypt/VeraCrypt/issues/136|ovdje]]. === Nema mogućnost korištenja TPM === Korisnici su zahtjevali mogućnost korištenja TPM modula za lakše korištenje ili drugi način verifikacije. Za sada Veracrypt nema takvu mogućnost. Razvojni programeri Truecrypta su protiv podrške TPM modulu jer otvara još jedan vektor napada i moguće je izvesti [[https://en.wikipedia.org/wiki/Cold_boot_attack|cold boot napad]]. === Licenca === Kako je Veracrypt fork TrueCrypta, sadrži dvije licence; [[https://en.wikipedia.org/wiki/Apache_License|Apache licencu]] koja je licenca slobodnog koda i Truecrypt licencu koju neki ne smatraju [[https://hr.wikipedia.org/wiki/Slobodna_programska_podr%C5%A1ka|slobodnom]]. ==== Ponašanje ==== VeraCrypt se ponaša na isti način na svim podržanim sistemima. Grafičko sučelje je staromodno, ali konzistentno za korištenje. [6] {{ :racfor_wiki:seminari2023:veracrypt-gui.png?600 |}} Grafičko korisničko sučelje alata VeraCrypt na sustavu Linux. [6] Jedna od cjenjenijih značajki je mogućnost stvaranja skrivenih particija ili datoteka na disku. [ [[https://veracrypt.eu/en/Hidden%20Volume|7]] ] To otvara mogućnost [[https://en.wikipedia.org/wiki/Plausible_deniability|uvjerljivog poricanja]]. Za dešifriranje se koriste dvije zaproke, jedna koja otključava vidljivu particiju i druga koja otključava skrivenu particiju. {{ :racfor_wiki:seminari2023:veracrypt-hidden-draw.gif?600 |}} Prikaz strukture VeraCrypt diska sa skrivenom particijom. [7] Kao i kod LUKS, postoji zaglavlje s detaljima o šifriranju. Razlika je ta što kod je cijelo zaglavlje kod VeraCrypt-a šifrirano. Prednost ovakvog pristupa je ta što se šifriranje može poricati, ali loša strana je teža upotrebljivost. Kod potpunog šifriranja diska, potrebno je imati VeraCrypt algoritam za dešifriranje opisan na samom početku diska ili kao disk za oporavak na USB-u. Algoritam je neovisan o disku koji je šifriran. Kada počinje proces dešifriranja, algoritam pokušava dešifrirati prvih 512 bajtova svim mogućim kombinacijama šifrata i funkcija derivacije. Za svaki pokušaj, dešifrira se isti šifrirani niz znakova "VERA" i kada se uspješno dešifrira, pretpostavlja se kako je kombinacija dobra. Nakon toga se dešifrira zaglavlje i dalje dešifriranje teče po već opisanom postpuku. ==== Primjeri korištenja ==== Primjer korištenja prikazan je u video uratku. Ovaj alat je posebno zanimljiv iz pogleda računalne forenzike jer ima mogućnost skrivanja particija. Skrivene particije sustav ne može detektirati. VeraCrypt prvo za unesenu lozinku prvo pokušava dešifrirati glavnu particiju, a ako ne može, onda tek skrivenu. ([[https://veracrypt.eu/en/Documentation.html|Detaljnije]]) Kroz inačice VeraCrypta postojali su napadi za otkrivanje skrivenih particija poput [[https://ro.uow.edu.au/cgi/viewcontent.cgi?article=1542&context=eispapers1|ovog]] znanstvenog rada. Ta značajka posebno je korisna odvjetnicima, novinarima, aktivistima pa i kriminalcima jer je teško dokazat postojanje skrivene particije. ===== FileVault ===== {{:racfor_wiki:seminari2023:filevault-logo.png?100 |}} //"[[https://en.wikipedia.org/wiki/FileVault|FileVault]] is a data encryption feature developed by Apple to protect user data in macOS. It was first introduced in 2003 as part of Mac OS X 10.3 (Panther). It performs on-the-fly encryption with volumes on Mac computers. "// ==== Općenito ==== FileVault je program za šifriranje Apple uređaja sa zatvorenom implementacijom i Apple licencom. Koristi AES-XTS u 256 bit za šifriranje. FileVault2 je zadnja verzija i podržava potpuno šifriranje diska, dok je FileVault1 podržavao samo šifriranje korisničkog direktorija. ==== Kritike ==== === Zatvorenost implementacije === Unatoč tome što koristi otvorene standarde za šifriranje, sama implementacija FIleVaulta-a je zatvorena za korisnike što ruši provjeru Kerckhoffovog principa da kriptosustav mora biti siguran kada su javno poznati svi detalji rada sustava osim ključeva. === Koristi korisničku zaporku za šifriranje === FileVault koristi korisničku zaporku da bi dešifrirao glavni ključ te nema mogućnosti postavljanja alternativne zaporke. Alternativne metode su kod za oporavak ili kontaktiranje Apple-a u slučaju da je korisnik odlučio da Apple čuva zaporku. ==== Ponašanje ==== FileVault podržava Apple uređaje. Kao i ostale metode potpunog šifriranja diska, koristi zaglavlje s potrebnim informacijama za dešifriranje. Kako je implementacija zatvorena i ne postoji službena dokumentacija za FileVault, detaljnije ponašanje se ne može odrediti, osim [[https://forums.macrumors.com/threads/how-exactly-does-filevault-work.2191792/|obrnutim inženjerstvom]]. ==== Primjeri korištenja ==== Primjer korištenja prikazan je u video uratku. Alat je lako za koristiti i nema previše mogućnosti ostavljeno krajnjem korisniku, što je ujedno poznato za Apple programsku potporu. ===== Zaključak ===== Svaki navedeni alat ima svoje prednosti i mane. Navedena su samo četiri najpopularnija alata za šifriranje diska. Neki od njih su jedini lagani način zaštite podataka na operacijskom sustavu (BitLocker za Windowse i FileVault za Linuxe), dok su drugi zanimljivi iz forenzičke perspekrive (VeraCrypt sa skrivenim particijama). S obzirom na [[https://owasp.org/www-community/Threat_Modeling|model prijetnje]], prednosti i nedostatke navedenih alata, potrebno je odabrati onaj koji najviše odgovara određenoj situaciji. ===== Literatura ===== [1] [[https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/]] [2] [[https://support.microsoft.com/en-us/topic/september-24-2019-kb4516071-os-build-16299-1420-5648029d-8d1c-ed9e-b72c-63c6fee30bff]] [3] [[https://en.wikipedia.org/wiki/Trusted_Platform_Module]] [4] [[https://learn.microsoft.com/en-us/mem/configmgr/protect/tech-ref/bitlocker/settings]] [5] [[https://gitlab.com/cryptsetup/cryptsetup]] [6] [[https://manpath.be/f31/cryptsetup/2.2.2-1.fc31.x86_64/8/cryptsetup#L167]] [7] [[https://blog.elcomsoft.com/2020/08/breaking-luks-encryption/]] [8] [[https://www.cl.cam.ac.uk/~osc22/docs/cl_fv2_presentation_2012.pdf]] [9] [[https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/]] [10] [[https://www.veracrypt.fr/en/VeraCrypt%20Volume%20Format%20Specification.html]] [11] [[https://ro.uow.edu.au/cgi/viewcontent.cgi?article=1542&context=eispapers1]] [12] [[https://veracrypt.eu/en/Documentation.html]] [13] [[https://ithelp.brown.edu/kb/articles/pdf/learn-about-filevault-2-encryption-for-macs]]