Kā droši šifrēt failus operētājsistēmā Linux, izmantojot Dm-crypt? Linux sāknēšanas ielādētāji atbalsta pilnu diska šifrēšanu? Debian diska šifrēšana.

Šajā rakstā es jums pastāstīšu, kā izveidot slēptu kriptovalūtu konteineru. standarta līdzekļi Linux OS (LUKS un šifrēšanas iestatīšana). LUKS iebūvētās funkcijas (piemēram, ārējo galveņu izmantošana un reālu datu izvietošana noteiktā nobīdē) ļauj lietotājam piekļūt esoša konteinera iekšpusē paslēptiem datiem, kā arī noliegt šādu datu esamību.

UPD: Tā kā šis ieraksts bija gatavs pirms mēneša, tad es pat iedomāties nevarēju tik dīvainu un negaidītu projekta nāvi. Nu jā, iespējams, tas vēl nav pilnībā miris, paskatīsimies... Tomēr šajā tekstā es nolēmu atstāt visas atsauces uz TrueCrypt tādu, kāds tas ir.

Kas ir "ticams noliegums"?

Ļoti garu un detalizētu šīs koncepcijas aprakstu varat atrast Vikipēdijā: http://en.wikipedia.org/wiki/Plausible_deniability . Īsāk sakot, tas nozīmē, ka tev var būt (vai varējis kaut ko izdarīt), par kura klātbūtni neviens nevar ne aizdomāties, ne pierādīt (ja vien tu pats to neatzīsti, protams). Un pēc tam jūs varat noliegt šī kaut kā esamību (vai izdarīšanas faktu), ja kāds vēlas jūs apsūdzēt, jo (es atkārtoju) šis fakts ir nepierādāms. Nu, piemēram, ja bērns savam mazajam brālim iesitu pa dupsi, un brālis aizietu meklēt taisnību pie vecākiem, kas notiktu šajā gadījumā?

Nu... It kā nekas nenotiktu. Jo tas čalis atteiksies, un vecāki, formāli runājot, nevarēs viņu noķert aiz rokas (jo, pirmkārt, stulbi nav liecinieku, otrkārt, jaunākais brālis var spēlēt savu netīro spēli). Tādējādi neviens netiks sodīts. Nu vai par katru ugunsdzēsēju sodīs abus. Šis bija tikai piemērs tam, kā bērns, kuram ir nosliece uz agresiju, izmantoja iespējamu noliegšanu. Bet jūs un es, protams, esam balti un pūkaini, un mēs izmantosim slēptos konteinerus tikai, lai aizsargātu savus personas datus no ļaunajiem. Tik pareizi? Protams, “kas ir “labs” un kas “slikts”” ir atsevišķs jautājums... Tomēr vairāk.

Vispārēja ieviešanas ideja

Pieņemsim, ka mēs vēlamies saglabāt dažus svarīgus datus šifrētā failā. Vispār mēs izmantosim kaut kādu kriptoaizsardzības programmu, kas visu melno darbu paveiks mūsu vietā. Mēs, iespējams, vēlēsim šifrēto failu apstrādāt tā, it kā tas būtu pret virtuālo disku, un tas ievērojami samazina potenciālo kandidātu skaitu. Tomēr ir viens "bet". Gandrīz visas šādas programmas darbojas ar failu tāpat kā ar vienu šifrētu datu daļu. Ļaujiet man paskaidrot: lietotājam parasti ir viens parole (un varbūt dažas "rezerves"). visi dati konteinera iekšpusē. Tas nozīmē, ka ir vismaz viena vājā saite: konteinera parole. Negribu pieminēt, ka parolei jābūt kriptogrāfiski spēcīgai, jo tā ir izplatīta patiesība. Es domāju, ka, ja lietotājs kāda iemesla dēļ (piemēram, piespiedu kārtā) atsakās no šīs paroles, visi dati tiks nolasīti. Un šis fakts man šķiet skumjš un pilnīgi nepareizs ...

Tomēr kopumā ir cerība. :) Piemēram, ir tāda programma kā , kas ir diezgan gudra. Lietotājs vienā failā var izveidot divus konteinerus: viens ir “manekens” ar noteiktu skaitu “aizliegto”, bet samērā drošu failu, bet otrs ir reāls, ar datiem, kurus nekādā gadījumā nedrīkst atklāt. Tādējādi TrueCrypt pieprasa divas dažādas paroles, kad lietotājs vēlas izveidot šādu "dubulto" konteineru. Darbības laikā lietotājs ievada tikai vienu paroli "īstajai" daļai un strādā ar to. Gadījumā, ja ārēju apstākļu spiediena ietekmē lietotājs ir spiests izpaust konteinera saturu trešajām personām, viņš vienkārši ievada citu paroli, un TrueCrypt atver "viltus". Es uzsveru (un tas ir patiešām svarīgi), ka nav iespējams pierādīt slēptās daļas klātbūtni, ja pētnieks nezina atbilstošo paroli.

Un tagad ātri izdomāsim, kā darbojas šis junk... Patiesībā viss ir ļoti vienkārši. Programmatūra sadala konteinera failu divās (vispārīgi runājot, nevienlīdzīgās) daļās. Pirmā daļa, kas var būt salīdzinoši neliela, satur īpaši sagatavotus datus; otrs ir īsts. Attiecīgi programmai ir jāspēj strādāt ar divām dažādām galvenēm (konfigurācijām) divām dažādām daļām, kā arī jāspēj izvēlēties, kuru daļu atšifrēt atkarībā no lietotāja ievadītās paroles. Un šī, jāsaka, nav tā triviālākā darba daļa. Nu, vienkārši tāpēc, ka "oficiāli" ir jābūt redzamai tikai vienai "viltus" konfigurācijai: ja konteineram ir standarta galvene, tai jābūt tikai "viltotai" galvenei; ja konteinera parametri tiek glabāti atsevišķā konfigurācijā, šai konfigurācijai ir jāļauj atšifrēt tikai "viltus" daļu. Un pēc "viltus" daļas atšifrēšanas nevajadzētu būt nevienam mājienam par īstās klātbūtnes klātbūtni. Viņiem jābūt absolūti neatkarīgiem. Turklāt, atverot “viltoto” daļu, programmatūrai ir jāparāda pilna kriptovalūta konteinera ietilpība, pat ja šīs daļas apjoms ir daudz mazāks.

Kā tad ar LUKS?

Nu, mums ir labas ziņas un… em… vēl vairāk labu ziņu.

Labā ziņa ir tā, ka cryptsetup var atšifrēt un montēt TrueCrypt izveidotos sējumus. Tomēr tikai lasāms, bet tas ir muļķības. Tā kā ir labākas ziņas. Proti, mēs varam izveidot "slēptos" konteinerus, tikai izmantojot . Turklāt šī utilīta ļauj izveidot neierobežotu skaitu "slēpto" daļu. Protams, saprātīgās robežās. Un lūk, kā to var izdarīt.

Bet pirms turpināt,

MILZĪGS TAUKU BIEDĒJOŠS BRĪDINĀJUMS!!!

  • Viss, kas aprakstīts tālāk, var izraisīt neatgriezenisku datu zudumu.
  • Jūsu valstī spēcīgas kriptogrāfijas izmantošana var būt aizliegta, tāpēc jūs varat tikt ieslodzīts nevis par patiesu informāciju, bet vienkārši par to, ka jums ir kriptogrāfijas konteiners, kas tiks atrasts uz jūsu skrūves.
  • Kriptogrāfija var aizsargāt jūsu datus, taču tā nepasargās jūs no spīdzināšanas. Slēpts konteiners var palīdzēt saglabāt vērtīgu informāciju, taču jūs nevarat noliegt tā klātbūtni nodevības vai denonsēšanas gadījumā.
  • Puiši, kurus interesē jūsu šifrētie dati, var nebūt tik stulbi, kā jūs gaidījāt. Pat ja viņi nevar pierādīt slēptās konteinera daļas klātbūtni, viņi var jūs bloķēt vienā kamerā ar pieredzējušiem noziedzniekiem, un pēc pāris dienām jūs atcerēsities visas visu slēpto datu paroles.
  • Ja jums ir tuvi cilvēki (draudzene/draugs, radi, draugi), viņi tikpat labi var kļūt par smaga spiediena mērķi. Un tas noteikti palīdzēs jums daudz ātrāk atcerēties visu kopumā, tostarp to, ko jūs pat nezinājāt.

Tāpēc labāk pārdomājiet, cik daudz informācijas ir vērtīgāka par jūsu un jūsu tuvinieku dzīvībām. Un izveidojiet dublējumu. Katram gadījumam.

Nu, cilvēka kriptoiestatīšana var mums daudz pastāstīt interesantas detaļas par šīs utilītas komandrindas opcijām. Piemēram, apskatīsim opciju --header:

Nu labi. Tas nozīmē, ka mums tagad var būt datu apjoms, kas piepildīts ar nejaušu nevēlamu saturu, bez jebkādiem jēgpilniem parakstiem. Šīs opcijas aprakstā ir ietverta nedaudz vairāk informācijas, brīdinājumi un brīdinājumi, taču apakšējā rindā tas ir viss, kas nepieciešams. Tomēr es ļoti iesaku izlasīt šo lielisko rokasgrāmatu.

Vēl viena ļoti noderīga opcija ir --align-payload , kas ļauj novietot reālos datus noteiktā nobīdē attiecībā pret sējuma sākumu:

Un tas ir arī forši, jo tagad mēs varam brīvi pārvietot savus datus uz jebkuru sējuma daļu. Jūs sapratāt domu, vai ne?

  1. Mēs inicializējam sējumu šifrēšanai: mēs to pilnībā pārrakstām ar nejaušiem datiem.
  2. Mēs izveidojam “oficiālu” šifrētu sējumu un nedaudz atlaižam inficēta varese, saritināta muzla, pron noderīga bezmaksas programmatūra, ieraksti no jūsu amatieru rokgrupas, mīlas filmas utt., kopumā, par ko jums tiks piešķirts ne vairāk kā divu gadu pārbaudes laiks.
  3. Izmantojot iepriekš minētās ezoteriskās kriptoiestatīšanas iespējas, mēs izveidojam slēptu sējumu ("oficiālā" iekšpusē) un nododam tā nosaukumu uz ārējiem datu nesējiem.Šeit jūs varat glabāt patiešām bīstamu informāciju (piemēram, jūsu bērnudārza fotogrāfijas vai plāni iekarot pasauli).

Patiesībā, ļaudis, tas arī viss. Nekādas maģijas. Protams, jūs nevarat piepildīt "oficiālo" šifrēto disku tā vienkāršā iemesla dēļ, ka daļa no tā vietas tiek nodota slēptam konteineram. Un, kā jau teicu sākumā, ja vēlaties, varat izveidot vairākus slēptos diskus, ievērojot to pašu loģiku.

Šeit ... Un, ja jums joprojām ir vajadzīgas detaļas, tad īpaši jums -

Iziet cauri

Uzmanību!

Tālāk norādītās komandas iznīcinās jūsu datus, ja tās tiks izpildītas, neieslēdzot smadzenes. Pazaudēto informāciju nevar atgūt, jo utilītas, piemēram, dd, darbojas zemā līmenī (tas ir, zem failu sistēmas līmeņa). Tāpēc nebūs iespējams atsaukt izmaiņas vai atsaukt to ietekmi, pat ja to pārtraucat tūlīt pēc palaišanas.

Īsāk sakot, nedariet to, ja vien nevarat izdomāt jēgpilnu skaidrojumu tam, kā katrs solis ir saistīts ar jūsu mērķiem. Un izveidojiet dublējumu. Tieši tagad.

Tātad pieņemsim, ka mums ir ierīce ar vairākiem nodalījumiem. Lai tas būtu, piemēram, /dev/sdb. Un ļaujiet /dev/sdb1 būt salīdzinoši mazam (8 GB) nodalījumam, kas paredzēts šifrēšanai. Mēs to sadalīsim 5 pret 3, kur 5 GB daļa būs "oficiāla", bet 3 GB daļa tiks paslēpta. Pieņemsim arī, ka šifrētā diska atslēgu saglabāsim mapē /etc/keys un slēptā konteinera galveni attiecīgi ārējā USB diskdzinī, kuru montēsim mapē /media/user/ExtUSBStick. Es pieņemu, ka jūs jau zināt, kādas atļaujas jums jāiestata atslēgu krātuvē, kā konfigurēt encfs / ecryptfs, lai droši glabātu konfidenciālus datus nedrošās ierīcēs, kā arī to, ka ir lietderīgi kopēt īstas slepenās atslēgas un uzglabāt tās vairākos ģeogrāfiski atdalītos seifos.

Nu, labi, es saista kurnēšanu un pāreju pie jautājuma būtības.

    Ierīces inicializācija /dev/sdb1:

    Dd if=/dev/urandom of=/dev/sdb1 bs=16M

    Mēs izveidojam atslēgu šifrētam sējumam. 512 biti (64 baiti) mūsu vajadzībām caur jumtu:

    Dd if=/dev/urandom bs=64 count=1 >/etc/keys/secret.key 2>/dev/null

    Šifrējiet skaļumu, izmantojot jaunizveidoto atslēgu:

    Kripta iestatīšana luksFormat /dev/sdb1 /etc/keys/secret.key

    Atveriet šifrēto ierīci un konfigurējiet kartēšanu slepenajos datos:

    Kripta iestatīšana luksOpen -- atslēgas fails /etc/keys/secret.key \ /dev/sdb1 slepenie dati

    Izveidojiet šifrētā sējumā failu sistēma(piemēram, btrfs):

    Mkfs.btrfs -L SecretData /dev/mapper/secretdata

    ... un uzstādiet to:

    Mount /dev/mapper/secretdata /var/secretdata/

    Paturot prātā 5 giga ierobežojumu, iestatiet apakšapjoma kvotu:

    Btrfs kvotas iespējošana /var/secretdata/

    Tā kā btrfs kvotas attiecas tikai uz apakšsējumiem, izveidosim vienu šādu lietu:

    brfs apakšsējums izveido /var/secretdata/workingvolume

    ... un piemērojiet tam norādīto kvotu (ņemiet vērā, ka btrfs apakšsējumus var montēt kā parastās failu sistēmas, tāpēc jums var būt ērtāk pievienot šo konkrēto apakšsējumu, nevis visu fs vēlāk):

    btrfs qgroup ierobežojums 5G /var/secretdata/workingvolume

    Mēs to aizpildām ar dažiem datiem:

    debootstrap --variant=buildd testing /var/secretdata/workingvolume

    Tas arī viss, tagad varat aizmirst par šo daļu:

    Umount /var/secretdata cryptsetup luksAizvērt slepenos datus

    Tagad izveidosim galvenes "zivi" un ievietosim tajā nejaušus atkritumus:

    Dd if=/dev/urandom of=/media/user/ExtUSBStick/hidden.head bs=4M count=1

    Un tagad pienāk brīdis, kad sākas īstā maģija. (Ko? Vai es teicu, ka nav maģijas? Tāpēc es meloju.) Mēs izmantojam to pašu slepeno atslēgu, taču ne pilnībā, bet tikai pusi (no 32 baitu nobīdes). Tomēr atlikušie 256 nejaušie biti ir diezgan spējīgi izveidot labu atslēgu. Pēc tam mēs atdalīsim galveni un ievietosim to zibatmiņas diskā. Visbeidzot, mēs sakām šifrēšanas iestatījumam “y”, ka mēs vēlamies kompensēt mūsu slēpto konteineru par 5 GB (t.i., 10485760 512 baitu blokiem) no sējuma sākuma:

    Kripta iestatīšana --keyfile-offset 32 - header /media/user/ExtUSBStick/hidden.head \ --align-payload 10485760 luksFormat /dev/sdb1 /etc/keys/secret.key

    Jā, tas ir tik vienkārši. Tagad atvērsim jaunu šifrētu ierīci:

    Cryptsetup luksOpen --key-file /etc/keys/secret.key --keyfile-offset 32 \ --header /media/user/ExtUSBStick/hidden.head /dev/sdb1 realsecretdata

    Ritīsim jebkuru vēlamo fs:

    Mkfs.btrfs /dev/mapper/realsecretdata

Noderīgas saites

Tiem, kas vēlas uzzināt vairāk, šeit ir daži papildu informācijas avoti:

  • diska šifrēšana, vispārīga informācija par diska šifrēšanu: https://wiki.archlinux.org/index.php/Disk_encryption
  • Aizliegta šifrēšana, jēdziens ir nedaudz šaurāks par "ticamu noliedzamību", kas attiecas tikai uz kriptogrāfijas jomu: https://en.wikipedia.org/wiki/Deniable_encryption
  • TrueCrypt

Disks (a la TrueCrypt). Es zinu, ka ir bijis darbs, lai GRUB2 pievienotu šifrēšanas atbalstu, taču tas vēl nav gatavs. Vai ir vēl kādi varianti?

(Ņemiet vērā, ka es tiešām domāju pilnu diska šifrēšanu, ieskaitot /boot)

Lielākajā daļā atbilžu ir aprakstīta iestatīšana, kurā /boot nav šifrēta, un dažas no tām mēģina izskaidrot, kāpēc nešifrētai /boot ir jābūt piemērotai.

Neiesaistoties diskusijā par to, kāpēc man patiešām ir nepieciešams /boot, lai tas būtu šifrēts, šeit ir raksts, kurā ir aprakstīts tieši tas, kas man ir nepieciešams, pamatojoties uz modificētu GRUB2 versiju:

  • http://xercestech.com/full-system-encryption-for-linux.geek

Problēma ir tāda, ka šīs modifikācijas, šķiet, netiek atbalstītas pašreizējā GRUB2 kodu bāzē (vai varbūt man kaut kā trūkst).

8 Risinājumi apkopo tīmekļa veidlapas “Linux sāknēšanas ielādētājiem, kas atbalsta pilnu diska šifrēšanu?”

ES domāju, ka Pašreizējā versija GRUB2 pats par sevi neatbalsta LUKS nodalījumu ielādi un atšifrēšanu (tajā ir daži šifri, bet es domāju, ka tie tiek izmantoti tikai paroļu atbalstam). Eksperimentālās izstrādes nozari apskatīt nevaru, bet GRUB lapā ir daži mājieni, ka ir plānots realizēt kādus darbus, ko gribas izdarīt.

Atjauninājums (2015) : jaunākā versija GRUB2 (2.00) jau satur kodu, lai piekļūtu LUKS un GELI šifrētajiem nodalījumiem. (OP nodrošinātajā saitē xercestch.com ir minēti pirmie labojumi, taču tagad tie ir iekļauti jaunākajā versijā).

Tomēr, ja drošības apsvērumu dēļ mēģināt šifrēt visu disku, lūdzu, ņemiet vērā, ka nešifrēts sāknēšanas ielādētājs (piemēram, TrueCrypt, BitLocker vai modificēts GRUB) nenodrošina lielāku aizsardzību nekā nešifrēts /sāknēšanas nodalījums (kā to atzīmē SP komentārs augstāk). Ikviens, kam ir fiziska piekļuve datoram, var to tikpat viegli aizstāt ar pielāgotu versiju. Tas pat ir minēts jūsu norādītajā xercestech.com rakstā:

Lai būtu skaidrs, tas nekādā veidā nepadara jūsu sistēmu mazāk neaizsargātu pret bezsaistes uzbrukumiem, ja uzbrucējs aizstātu jūsu sāknēšanas ielādētāju ar savu vai novirzītu sāknēšanas procesu uz savu sāknēšanu. savs kods, jūsu sistēma joprojām var būt apdraudēta.

Ņemiet vērā, ka visiem pilna diska šifrēšanas programmatūras produktiem ir šī nepilnība neatkarīgi no tā, vai tie izmanto nešifrētu sāknēšanas ielādētāju vai nešifrētu sāknēšanas/priekšsāknēšanas nodalījumu. Pat produktus, kas atbalsta TPM (Trusted Platform Module) mikroshēmas, piemēram, BitLocker, var izvietot, nemainot aparatūru.

Labākā pieeja būtu:

  1. atšifrēt BIOS līmenī (in mātesplatē vai diskdziņa adapteris vai ārējā aparatūra [viedkarte] ar TPM mikroshēmu vai bez tās), vai
  2. nēsājiet PBA (pirmssāknēšanas autorizācijas) autorizācijas kodu (šajā gadījumā /boot nodalījumu) noņemamā ierīcē (piemēram, viedkartē vai USB diskdzinī).

Lai to izdarītu otrajā veidā, varat pārbaudīt Linux Full projektu Diska šifrēšana(LFDE) vietnē: http://lfde.org/, kas nodrošina pēcinstalēšanas skriptu, lai pārvietotu /boot nodalījumu uz ārējais USB diskdzinisšifrējot atslēgu ar GPG un saglabājot to arī USB. Tādā veidā sāknēšanas ceļa vājā daļa (nešifrētais /sāknēšanas nodalījums) vienmēr ir ar jums (jūs būsiet vienīgais ar fiziska piekļuve koda un atslēgas atšifrēšanai). ( Piezīme: šī vietne ir pazaudēta, un arī autora emuārs ir pazudis, taču vecos failus varat atrast vietnē https://github.com/mv-code/lfde, tikai atzīmējot, ka pēdējā izstrāde tika veikta pirms 6 gadiem). Kā vienkāršāku alternatīvu varat uzstādīt nešifrētu sāknēšanas nodalījumu USB diskdzinī, kad instalējat OS.

Ar cieņu M.V.

Padariet savu pirmo RAM disku un / sāknēšanas mapi nešifrētu.

Tas izsauks "minimālu" kodolu ar draiveriem un atbalstu, lai pārslēgtos uz "īstu" saknes failu sistēmu, kas ir šifrēta.

Pirms sakāt "tas ir uzlauzts", atcerieties - lielākā daļa (ja ne visi) Linux izplatījumi šodien tiek sāknēti pēc noklusējuma. Tas skaidri ļauj jūsu sistēmai ielādēt un ielādēt saknes FS, izmantojot moduļus, kas jāielādē no failu sistēmas. (Sava veida vistas un olu problēma). Piemēram, ja jūsu saknes failu sistēma atradās aparatūras RAID sējumā un pirms saknes FS pievienošanas jums bija jāielādē tās draiveris.

Es paskatījos uz jūsu ievietoto saiti - tomēr sāknēšanas nodalījums nē, cietajam diskam joprojām ir nešifrēts sāknēšanas ielādētājs, kuram var piekļūt un ko var apdraudēt ļaunprātīgs uzbrukums. Esmu meklējis līdzīgu iestatījumu, kurā cietajā diskā nav nešifrētu datu, taču līdz šim esmu izdomājis palaist sāknēšanas ielādētāju tikai no noņemamā diska.

Es uzskatu, ka lielākā daļa no tā, kas jums nepieciešams, ir instrukcija par to, kā vispirms instalēt OS ar šifrētu HD.

Ubuntu ir jauka lapa ar instrukcijām, kā izveidot šifrētus nodalījumus, LMVP, mapes utt., tikai jūsu izplatīšanas versija...

Nē, es tā nedomāju.

Vai tiešām ir nepieciešams šifrēt/augšupielādēt? Man ir aizdomas, ka nē. Pārējo failu sistēmu var šifrēt ar parasto programmatūra Linux, kas atrodas initramfs mapē /boot un attiecīgi liek lietotājam.

Šķiet, ka tu prasi kaut ko tādu, ko nevar izdarīt, un salīdzini to ar Windows risinājums, kas slēpj ieviešanu no jums, bet patiesībā dara to pašu, ko dara Linux.

Tuvākais risinājums, ko es varu iedomāties, ir izmantot HDD, kas ievieš paroles drošību un šifrēšanu. Dažas Thinkpad klēpjdatori izmantojiet šos aparatūras risinājumus.

Atbilde ir rakstā. "Tagad tas ir iespējams ar paplašinājumiem nākamās paaudzes GRUB2 sāknēšanas ielādētājam, kas ir labots, lai atbalstītu vairāk nekā tikai" un "vēlam vēlāk instalēt jaunu luks grub2 iespējotu attēlu" un "Tagad mēs apkoposim GRUB2 avotu ar LUKS atbalsts. Šķiet, ka ir kāds labojums vai paplašinājums, kas jāiegūst un jāiespējo, izmantojot GRUB2 vai GRUB2 dakšu avotu.

Grub2 versija 2.02 ~ beta3 var darīt daudz, ko nevar darīt Grub2 versija 2.02 ~ beta2, esmu pārbaudījis:

  1. Sāknēšana, izmantojot Super Grub 2 disku
  2. Ierakstiet "c", lai pārietu uz komandrindu
  3. Ievadiet komandas, lai uzstādītu vajadzīgo šifrēto nodalījumu
    • insmod lux
    • cryptomount (hd0, #) // kur # apzīmē šifrēto nodalījumu
  4. Ievadiet atslēgas frāze un ievadiet dažas komandas
    • multiboot (crypto0) /grub/i386-pc/core.img
    • apavu

Tas sāks citu Grub2, kas atrodas šifrētajā nodalījumā, šeit nav ļaunu traku uzbrukumu... Es sāknēju no kompaktdiska (tikai lasāms) un pēc tam pievienoju šifrēto nodalījumu (nevis ieejas frāzi, jebko!), pēc tam sāknēju no iekšpuses. šifrēts nodalījums un Grub2 palaišana ar savu izvēlni utt.

Brīdinājums: Grub2 versija 2.02~beta2 nevar darīt to pašu, jo tajā ir dažas kļūdas (kas, šķiet, ir novērstas Grub2 versijā 2.02 ~ beta3), kas saistītas ar cryptomount komandu...

beta2 kļūdas, par kurām es runāju, ir:

  1. Tas faktiski nepievieno šifrēto nodalījumu, tāpēc tas neļauj piekļūt (crypto0)/*
  2. Ja ir vairāk nekā viens šifrēts nodalījums, izmantojot cryptomount -a, ir nepieciešama tikai viena ieejas frāze
  3. Pēc kriptomontāžas vienreiz palaišanas tas atkal sāk darboties, neko nedara

beta 3 versijā:

  1. Tas faktiski pievieno šifrēto nodalījumu un ļauj piekļūt failiem, izmantojot (crypto0)/* vai (crypto1)/* utt., ja vienlaikus ir uzstādīti vairāki
  2. Tas pieprasa katru ieejas frāzi (vienu katrā šifrētajā sadaļā)
  3. Tas ļauj to palaist tik reižu, cik vēlaties, varat instalēt vienu, pēc tam otru utt.

Sānu piezīme: es neesmu izdomājis, kā tos atvienot, izņemot pārstartēšanu vai cita vai viena ielādēšanu sāknēšanas ielādētājs grub2/cits utt.

Es ceru, ka tas palīdz noskaidrot lietas, un es ceru, ka Grub2 2.02~beta3 versija tiks integrēta LiveCD, lai mēs varētu to instalēt, pašiem to nekompilējot.

PD: ar Super Grub 2 disku es neredzu veidu, kā instalēt Grub2 versiju 2.02 ~ beta3 MBR/sāknēšanas nodalījumā utt.

Šajā rakstā es mēģināšu salīdzināt dažādu šifrēšanas sistēmu veiktspēju Linux sistēmā. Teorētiski, protams, ir zināms, kura sistēma ir produktīvāka, un mēģina aprēķināt veiktspēju dažādas sistēmas bija (). Truecrypt pat satur iebūvētu etalonu (kas tomēr parāda veiktspēju RAM, to var izmantot tikai dažādu šifrēšanas algoritmu ātruma novērtēšanai). Es darīšu savādāk - mērīšu ar dažādiem līdzekļiem šifrētas failu sistēmas ātrumu procentos, salīdzinot ar parasto nešifrētu failu sistēmu.


Mēs šifrēsim atsevišķu nodalījumu atsevišķā HDD, kurā nav saknes failu sistēmas, ar algoritmu, kas tiek izmantots pēc noklusējuma katrā konkrētajā gadījumā. Es kā parasts lietotājs nesaprotu šifrēšanas standartu nianses (piemēram, ar ko RIPEMD-160 jaukšana atšķiras no Whirpool, kurš no šiem režīmiem ir ātrāks, kurš veicina augstāku drošību), tāpēc paļaujamies tikai uz faktu ka ražotāji no katra programmatūras produkts izvēlējās pietiekami kriptoizturīgus noklusējuma parametrus. Varbūt tas nav pilnīgi pareizi, jo dažādu šifrēšanas algoritmu veiktspēja nav vienāda. Ja vēlaties, protams, varat mainīt šifrēšanas veidu, taču neesmu pārliecināts, ka visos pārbaudītajos produktos ir absolūti identisks algoritmu komplekts. Mēs pārbaudīsim:

3) eCryptfs ir noklusējuma sistēma, kas tiek piedāvāta Ubuntu lietotājiem mājas direktoriju šifrēšanai, tāpēc tā ir iekļauta šajā testā. Darbojas uz esošas failu sistēmas. Šifrē katru failu atsevišķi, lai ikviens varētu redzēt tiesības, modifikācijas datumus, šifrēto failu skaitu; pēc noklusējuma ir redzami arī failu nosaukumi, lai gan ir iespēja tos šifrēt. Visu laiku vismazāk funkcionālais rīks.

4) EncFS - aptuvens eCryptfs analogs, bet izmanto FUSE.

Tātad testiem tika piešķirta atsevišķa diezgan progresīva mašīna šādā konfigurācijā: CPU - Intel Celeron 2000Mhz, RAM - 512 Mb DDR PC2700, sistēmas HDD- WD Caviar SE 5400 RPM 80Gb, testa HDD - WD Caviar SE 7200 RPM 80Gb.
OS — Ubuntu 12.04 LTS, visas programmatūras versijas ir svarīgas šīs OS krātuvēm šī rakstīšanas laikā (Truecrypt 7.1a-linux-x86 nav no krātuvēm).

Lielākajai daļai izplatījumu mēs pārbaudīsim noklusējuma ext4 failu sistēmu. Veiktspējas pārbaudei mēs izmantosim izone3 utilītu un čaulas skriptu, kas rakstīts “uz ceļa”, lai izmērītu procentuālo atšķirību testos.

Skaitīšanas skripts. Koda tīrībai īpaša uzmanība netika pievērsta, vienīgais rakstīšanas kritērijs bija pareiza rezultāta esamība.

#!/bin/sh gendiffffile () ( #procedūra ģenerē failu, kas ir ērts parsēšanai. Pirmkārt, rindas, kuras nevar parsēt, tiek saīsinātas; otrkārt, pirmie divi cipari katrā rindā tiek saīsināti, norādot #faila lielumu un ierakstu izmērs, attiecīgi ; treškārt, viss fails tiek izvadīts rindiņa pa rindiņai - #viens testa rezultāts katrā rindā cat $1 | lasot LINE ; do echo $LINE| grep "^[[:space:]]*[[:digit:] ]" | awk "(for (i=3;i<=NF;i++) {print $i}}" done > > $2 ) getline () ( #procedure izvada faila $1 rindas numuru $2 head -n $2 "$1" | tail -n 1 ) salīdzināt () ( #procedure salīdzina failu $1 un $2 rindiņu pa rindiņai, aprēķinot katra procentuālo atšķirību testu pāris #tad aprēķina vidējo aritmētisko, par cik procentiem ātrāk vai lēnāk #fails, kurā ir pirmā testu grupa, fails, kurā ir otrā grupa P=0 MAX=0 L1=`cat "$1" | wc -l` #skaitlis no testiem failā L2=`cat "$2" | wc -l` ja [ $L1 -ne $L2 ]; tad #ja failos ir atšķirīgs testu skaits, tad mēs tos nesalīdzināsim echo error return fi STEP =$(($L1*5/100)) J=0 I 'seq 1 $L1'; veiciet J=$(($J+1)), ja [ $J -eq $STEP ]; tad J= 0 echo "$((100*$I/$ L1))% pabeigts ($I no $L1)" fi A=`getline "$1" $I` B=`getline "$2" $I` if [ `echo $A \> $B|bc -l` - eq 1 ]; tad D=`echo "100-($B*100/$A)"|bc -l` if [ `echo $D \> $MAX| bc -l` -eq "1" ]; tad MAX=$D miegs 5 fi else D=`echo "100-($A*100/$B)"|bc -l` if [ `echo $D \> $MAX| bc -l` -eq "1" ]; n MAX=$D miegs 5 fi D="-$D" #ja vērtībai ir "-" zīme, šis tests #otrajā failā bija ātrāks nekā pirmajā fi P=`echo "$P+$D "| bc -l`done P=`echo $P/$L1| bc -l` #aprēķināt vidējo aritmētisko atbalss PERCENT=$P MAX_PERCENT=$MAX ) genaverage () ( #procedūra analīzei sagatavota faila ģenerēšanai, kura katra rinda ir visu atskaites atbilstošo rindu #aritmētiskais vidējais faili, kas atrodas analizētajā direktorijā AVG=` mktemp` F=`ls "$1"|wc -l` #failu skaits ar atskaitēm norādītajā direktorijā #ar nosacījumu, ka tur tiek glabāti tikai tādi faili un nekas cits #nepārbaudīsim šī pieņēmuma pareizība, ja [ ! -d " $1" -o $F -lt 2 ]; tad atbalss kļūda >/dev/stderr #šajā procedūrā mēs visus ziņojumus izvadīsim uz stderr, jo #stdout tiek aizstāts ar citu procedūra rm -f $AVG iziet fi TMP=` mktemp` atrast "$1" -type f| lasot FILE; veiciet #katram jozona atskaites failam dotajā direktorijā I=`mktemp` #gendifffile "$FILE" "$I " #names ieraksta visus šādus failus "TMP" rindā pa rindiņai echo "$I">>$TMP darīts L=`cat \`getline "$TMP" 1\`|w c -l` kaķis "$TMP"| lasot LINE; darīt #nedaudz pārbaudīt ir labi L1=`kaķis "$LINE"| wc -l` #vai visos failos ir vienāds testu skaits, ja [ $L -ne $L1 ]; tad atbalss kļūda >/dev/stderr iziet fi darīts STEP=$(($L*5/100)) J=0 priekš I `seq 1 $L`; do J=$(($J+1)), ja [ $J -eq $STEP ]; tad J=0 atbalss "$((100*$I/$L))% paveikts ($I no $L)" >/dev/stderr fi SUMFILE=`mktemp` #tādā veidā es iegūstu SUM mainīgā vērtību no ligzdotas cilpas SUM=0 cat "$TMP"| lasot LINE; do SUM=$((`getline "$LINE" $I`+$SUM)) echo $SUM > "$SUMFILE" done echo `tail -n 1 "$SUMFILE"`/$F|bc -l >> $ AVG #iegūstiet vidējo aritmētisko #un ierakstiet to atbilstošajā #AVG faila vietā rm -f "$SUMFILE" done cat "$TMP"| lasot LINE; darīt #dzēst pagaidu failus rm -f "$LINE" darīts rm -f "$TMP" echo $AVG ) printf %b "\\033)