Kuidas Dm-krüpti abil Linuxis faile turvaliselt krüptida? Linuxi alglaadurid, mis toetavad täielikku ketta krüptimist? Debiani ketta krüptimine.

Selles artiklis räägin teile, kuidas luua peidetud krüptokonteinerit. standardsed vahendid Linux OS (LUKS ja krüpti seadistamine). LUKS-i sisseehitatud funktsioonid (nt väliste päiste kasutamine ja tegelike andmete paigutamine etteantud nihkele) võimaldavad kasutajal juurdepääsu olemasolevasse konteinerisse peidetud andmetele, aga ka keelata selliste andmete olemasolu.

UPD: Kuna see postitus sai valmis juba kuu aega tagasi, siis ei osanud ma isegi ette kujutada nii kummalist ja ootamatut projekti surma. Noh, jah, see ei pruugi veel täielikult surnud olla, vaatame ... Sellegipoolest otsustasin selles tekstis jätta kõik viited TrueCryptile nii, nagu see on.

Mis on "usutav eitamine"?

Selle kontseptsiooni väga pika ja üksikasjaliku kirjelduse leiate Vikipeediast: http://en.wikipedia.org/wiki/Plausible_deniability . Lühidalt tähendab see seda, et sul võib olla (või oleks võinud midagi teha), mille olemasolu ei saa keegi kahtlustada ega tõestada (muidugi kui sa ise seda ei tunnista). Ja pärast saate selle millegi olemasolu (või tegemise fakti) eitada, kui keegi tahab teid süüdistada, kuna (ma kordan) see fakt on tõestamatu. No näiteks kui laps lööks oma väikevennale jalaga tagumikku ja vend läheks vanematelt õigust otsima, mis siis sel juhul juhtuks?

Noh... Justkui midagi ei juhtuks. Sest see kutt keeldub ja vanemad ei saa formaalselt teda käest kinni püüda (sest esiteks pole tunnistajaid rumalalt ja teiseks saab noorem vend oma räpast mängu mängida). Seega ei karistata kedagi. Noh, või nad karistavad mõlemat iga tuletõrjuja eest. See oli vaid näide usutava eitamise võimaluse kasutamisest agressioonile kalduva lapse poolt. Aga sina ja mina oleme loomulikult valged ja kohevad ning me kasutame peidetud konteinereid ainult selleks, et kaitsta oma isikuandmeid pahade eest. Nii õige? Muidugi, “mis on “hea” ja mis “halb”” on omaette teema... Siiski, asja juurde.

Üldine idee rakendamisest

Oletame, et tahame krüptitud faili salvestada mõned olulised andmed. Üldiselt kasutame mingit krüptokaitseprogrammi, mis teeb kogu musta töö meie eest ära. Võib-olla soovime krüptitud faili käsitleda virtuaalse kettana ja see vähendab oluliselt potentsiaalsete kandidaatide arvu. Siiski on üks "aga". Peaaegu kõik sellised programmid töötavad failiga nagu ühe krüptitud andmetega. Selgitan: kasutajal tavaliselt on üks parool (ja võib-olla paar "varu"). kõik andmed konteineris. See tähendab, et on olemas vähemalt üks nõrk link: konteineri parool. Ma ei taha mainida, et parool peab olema krüptograafiliselt tugev, sest see on levinud tõde. Pean silmas seda, et kui kasutaja mingil põhjusel (nt sunniviisil) sellest paroolist loobub, loetakse kõik andmed läbi. Ja see fakt tundub mulle kurb ja täiesti vale ...

Lootust üldiselt siiski on. :) Näiteks on selline programm nagu , mis on päris tark. Kasutaja saab ühes failis luua kaks konteinerit: üks on näiv, milles on teatud arv keelatud, kuid suhteliselt turvalisi faile, ja teine ​​​​reaalne, mille andmed ei tohiks mingil juhul avaldada. Seega küsib TrueCrypt kahte erinevat parooli, kui kasutaja soovib sellist "topelt" konteinerit luua. Töötamise ajal sisestab kasutaja "päris" osa jaoks ainult ühe parooli ja töötab sellega. Juhul, kui kasutaja on väliste asjaolude survel sunnitud konteineri sisu kolmandatele isikutele avaldama, sisestab ta lihtsalt teise parooli ja TrueCrypt avab "võltsingu". Rõhutan (ja see on tõesti oluline), et peidetud osa olemasolu ei saa kuidagi tõestada, kui uurija vastavat parooli ei tea.

Ja nüüd mõtleme kiiresti välja, kuidas see rämps töötab ... Tegelikult on kõik väga lihtne. Tarkvara jagab konteinerfaili kaheks (üldiselt ebavõrdseks) osaks. Esimene osa, mis võib olla suhteliselt väike, sisaldab spetsiaalselt ettevalmistatud andmeid; teine ​​on päris. Sellest lähtuvalt peab programm suutma töötada kahe erineva päisega (konfiguratsiooniga) kahe erineva osa jaoks, samuti peab olema võimalik valida, milline osa dekrüpteerida olenevalt kasutaja sisestatud paroolist. Ja see, pean ütlema, pole töö kõige triviaalsem osa. Noh, lihtsalt sellepärast, et "ametlikult" peaks olema nähtav ainult üks "võlts" konfiguratsioon: kui konteineril on tavaline päis, peaks see olema ainult "võlts" päis; kui konteineri parameetrid on salvestatud eraldi konfiguratsioonis, peaks see konfiguratsioon võimaldama dekrüpteerida ainult "võltsitud" osa. Ja pärast "võltsitud" osa dešifreerimist ei tohiks tõelise olemasolu kohta olla ühtegi vihjet. Nad peavad olema täiesti sõltumatud. Veelgi enam, "võltsitud" osa avamisel peaks tarkvara näitama krüptokonteineri täismahtu, isegi kui selle osa maht on palju väiksem.

Kuidas on siis lood LUKSiga?

Noh, siin on meil häid uudiseid ja… ee… veelgi häid uudiseid.

Hea uudis on see, et cryptsetup saab lahti krüptida ja ühendada TrueCrypt " loodud köiteid. Lugege siiski, kuid see on jama. Kuna on paremaid uudiseid. Nimelt saame luua "peidetud" konteinereid ainult kasutades . Veelgi enam, see utiliit võimaldab teil luua suvalise arvu "peidetud" osi. Loomulikult mõistlikes piirides. Ja siin on, kuidas seda saab teha.

Aga enne jätkamist,

SUUR RASVA HOIATUS!!!

  • Kõik allpool kirjeldatud võib põhjustada pöördumatut andmekadu.
  • Teie riigis võib tugeva krüptograafia kasutamine olla keelatud, nii et teid võidakse vangi panna mitte tõelise teabe pärast, vaid lihtsalt selle eest, et teil on krüptokonteiner, mis teie kruvilt leitakse.
  • Krüptograafia võib teie andmeid kaitsta, kuid see ei kaitse teid piinamise eest. Peidetud konteiner võib aidata hoida väärtuslikku teavet, kuid te ei saa eitada selle olemasolu reetmise või denonsseerimise korral.
  • Poisid, kes on teie krüptitud andmetest huvitatud, ei pruugi olla nii lollid, kui ootasite. Isegi kui nad ei suuda tõestada konteineri peidetud osa olemasolu, võivad nad teid hästi kogenud kurjategijatega ühte kambrisse lukustada ja paari päeva pärast mäletate kõigi peidetud andmete paroolid.
  • Kui teil on lähedasi inimesi (tüdruksõber / poiss-sõber, sugulased, sõbrad), võivad nad sama hästi saada tugeva surve sihtmärgiks. Ja see aitab teil kindlasti palju kiiremini meeles pidada kõike üldiselt, sealhulgas seda, mida te isegi ei teadnud.

Seega on parem mõelda kaks korda, kui palju info on väärtuslikum kui teie ja teie lähedaste elu. Ja tee varukoopia. Igaks juhuks.

Noh, mehe krüptiseadistus võib meile palju öelda huvitavaid detaile selle utiliidi käsurea valikute kohta. Noh, vaatame näiteks valikut --header:

No okei. See tähendab, et meil võib nüüd olla andmemaht, mis on täidetud juhusliku rämpsuga, ilma sisukate allkirjadeta. Selle valiku kirjeldus sisaldab veidi rohkem teavet, ettevaatusabinõusid ja hoiatusi, kuid alumisel real on see kõik, mis vajalik. Siiski soovitan soojalt seda suurepärast juhendit lugeda.

Teine väga kasulik valik on --align-payload , mis võimaldab paigutada tegelikud andmed teatud nihkesse helitugevuse alguse suhtes:

Ja see on ka lahe, sest nüüd saame oma andmeid vabalt nihutada mis tahes mahuosasse. Saate ideest aru, eks?

  1. Initsialiseerime helitugevuse krüptimiseks: kirjutame selle juhuslike andmetega täielikult üle.
  2. Teeme "ametliku" krüpteeritud köite ja langetame veidi nakatunud varese, keerdunud muzla, pron kasulik tasuta tarkvara, teie amatöörrokkbändi salvestised, armastusfilmid jne üldiselt, mille eest saate kuni kaheaastase katseaja.
  3. Kasutades ülaltoodud esoteerilisi krüpti seadistamise võimalusi, loome peidetud köite (“ametliku” sees) ja kanname selle pealkirja üle välisele meediale.Siia saad talletada tõeliselt ohtlikku infot (näiteks oma lasteaia fotod või maailmavallutamise plaanid).

Tegelikult, inimesed, see on kõik. Ei mingit maagiat. Loomulikult ei saa te "ametlikku" krüptitud ketast täis toppida sel lihtsal põhjusel, et osa selle ruumist antakse peidetud konteinerisse. Ja nagu ma alguses ütlesin, saate soovi korral luua mitu peidetud draivi sama loogika järgi.

Siin ... Ja kui teil on veel üksikasju vaja, siis eriti teile -

Läbivaatus

Tähelepanu!

Järgmised käsud hävitavad teie andmed, kui neid täidetakse ilma aju sisse lülitamata. Kaotatud teavet ei saa taastada, kuna utiliidid, nagu dd, töötavad madalal tasemel (st failisüsteemi tasemest madalamal). Seetõttu ei ole võimalik muudatusi tagasi pöörata ega nende mõju tagasi võtta, isegi kui katkestate kohe pärast käivitamist.

Lühidalt, ärge tehke seda, kui te ei leia sisukat selgitust selle kohta, kuidas iga samm on teie eesmärkidega seotud. Ja tee varukoopia. Praegu.

Oletame, et meil on mitme partitsiooniga seade. Olgu selleks näiteks /dev/sdb. Ja olgu /dev/sdb1 suhteliselt väike (8 GB) krüptimisele pühendatud partitsioon. Jagame selle 5-ks 3-ks, kus 5 GB osa on "ametlik" ja 3 GB osa peidetud. Oletame ka, et säilitame krüptitud ketta võtme kaustas /etc/keys ja peidetud konteineri päise vastavalt välisele USB-draivile, mille ühendame kausta /media/user/ExtUSBStick. Eeldan, et teate juba, milliseid õigusi peate võtmehoidlas seadistama, kuidas seadistada encfs / ecryptfs konfidentsiaalsete andmete turvaliseks salvestamiseks ebaturvalistes seadmetes ja ka seda, et on mõttekas kopeerida päris salajased võtmed ja hoida neid mitmes geograafiliselt eraldatud seifis.

Noh, okei, ma seon nurisemise ja liigun teema olemuse juurde.

    Seadme lähtestamine /dev/sdb1:

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

    Teeme krüptitud köite jaoks võtme. 512 bitti (64 baiti) meie jaoks läbi katuse:

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

    Krüptige helitugevus vastloodud võtme abil:

    Krüpti seadistus luksFormat /dev/sdb1 /etc/keys/secret.key

    Avage krüptitud seade ja konfigureerige salajastes andmetes vastendamine:

    Krüpti seadistus luksAva --võtmefail /etc/keys/secret.key \ /dev/sdb1 salajased andmed

    Looge krüptitud köitel failisüsteem(nt btrfs):

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

    ... ja paigalda see:

    Ühendage /dev/mapper/secretdata /var/secretdata/

    Pidades meeles 5 giga piirangut, määrake alammahu kvoot:

    Btrfs-kvoodi lubamine /var/secretdata/

    Kuna btrfs-i kvoodid kehtivad ainult alamköidetele, loome ühe sellise asja:

    brfs alamköide loo /var/secretdata/workingvolume

    ... ja rakendage sellele määratud kvoot (pange tähele, et btrfs-i alamköiteid saab ühendada tavaliste failisüsteemidena, nii et teil võib olla mugavam ühendada see konkreetne alamköide hiljem kogu fs-i asemel):

    btrfs qgroup limiit 5G /var/secretdata/workingvolume

    Täidame selle teatud andmetega:

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

    See on kõik, nüüd võite selle osa unustada:

    Umount /var/secretdata cryptsetup luks Sulgege salajased andmed

    Nüüd loome päise jaoks "kala" ja topime sinna suvalist prügi:

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

    Ja nüüd saabub hetk, mil algab tõeline maagia. (Mida? Kas ma ütlesin, et maagiat pole? Nii et ma valetasin.) Me kasutame aga sama salajast võtit mitte tervikuna, vaid ainult poole (alates 32-baidisest nihkest). Ülejäänud 256 juhuslikku bitti on aga üsna võimelised tegema head võtit. Seejärel eraldame päise ja paneme selle mälupulgale. Lõpuks ütleme krüptiseadistusele "y", et tahame oma peidetud konteinerit nihutada 5 GB võrra (st 10485760 512-baidiseid plokke) köite algusest:

    Krüptiseadistus --keyfile-offset 32 ​​​​--header /media/user/ExtUSBStick/hidden.head \ --align-payload 10485760 luksFormat /dev/sdb1 /etc/keys/secret.key

    Jah, see on nii lihtne. Nüüd avame uue krüptitud seadme:

    Krüpti seadistus luksAva --key-file /etc/keys/secret.key --keyfile-offset 32 \ --header /media/user/ExtUSBStick/hidden.head /dev/sdb1 realsecretdata

    Veeretame soovitud fs-i:

    Mkfs.btrfs /dev/mapper/realsecretdata

Kasulikud lingid

Neile, kes soovivad veidi rohkem teada saada, on siin mõned täiendavad teabeallikad:

  • ketta krüpteerimine, üldine teave ketta krüptimise kohta: https://wiki.archlinux.org/index.php/Disk_encryption
  • Krüpteerimine keelatud, on mõiste mõnevõrra kitsam kui "usutav eitamine", viidates ainult krüptograafia valdkonnale: https://en.wikipedia.org/wiki/Deniable_encryption
  • TrueCrypt

Ketas (a la TrueCrypt). Tean, et GRUB2-le on krüpteerimistoe lisamiseks tehtud tööd, kuid see pole veel valmis. Kas on muid võimalusi?

(Pange tähele, et ma mõtlen siin tõesti täielikku ketta krüptimist, sealhulgas /boot)

Enamik vastuseid kirjeldab seadistust, kus /boot pole krüptitud, ja mõned neist püüavad selgitada, miks krüptimata /boot peaks sobima.

Arutlemata selle üle, miks ma tõesti vajan /boot krüptimist, on siin artikkel, mis kirjeldab GRUB2 muudetud versiooni põhjal täpselt seda, mida ma vajan:

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

Probleem on selles, et praegune GRUB2 koodibaas ei paista neid muudatusi toetavat (või võib-olla on mul midagi puudu).

8 Lahendused koguvad veebivorme "Linuxi alglaadurite jaoks, mis toetavad täielikku ketta krüptimist?"

ma arvan, et Praegune versioon GRUB2 ei toeta iseenesest LUKS-i partitsioonide laadimist ja dekrüpteerimist (see sisaldab mõningaid šifreid, kuid arvan, et neid kasutatakse ainult paroolide toetamiseks). Eksperimentaalse arenduse haruga ma tutvuda ei saa, aga GRUB-i lehel on vihjeid, et plaanis on mingid tööd juurutada, mida teha tahetakse.

Värskendus (2015) : Uusim versioon GRUB2 (2.00) sisaldab juba koodi LUKSi ja GELI krüptitud partitsioonidele juurdepääsuks. (OP-i pakutud link xercestch.com mainib selle esimesi parandusi, kuid need on nüüd kaasatud uusimasse versiooni).

Kui aga proovite turvakaalutlustel kogu draivi krüpteerida, pange tähele, et krüptimata alglaadur (nt TrueCrypt, BitLocker või modifitseeritud GRUB) ei paku rohkem kaitset kui krüptimata /boot partitsioon (nagu SP märkis kommentaar ülal). Igaüks, kellel on arvutile füüsiline juurdepääs, saab selle sama lihtsalt kohandatud versiooniga asendada. Seda mainitakse isegi teie lingitud xercestech.com artiklis:

Selguse mõttes ei muuda see teie süsteemi võrguühenduseta rünnakute suhtes vähem haavatavaks, kui ründaja asendab teie alglaaduri enda omaga või suunab alglaadimisprotsessi enda alglaadimiseks. enda kood, võib teie süsteem siiski olla ohus.

Pange tähele, et see nõrkus on kõigil täisketta krüptimise tarkvaratoodetel, olenemata sellest, kas nad kasutavad krüptimata alglaadurit või krüptimata alglaadimise/eelkäivituse partitsiooni. Isegi tooteid, mis toetavad TPM (usaldusväärse platvormi mooduli) kiipe, nagu BitLocker, saab juurutada ilma riistvara muutmata.

Parim lähenemine oleks:

  1. dekrüpteerida BIOS-i tasemel (in emaplaat või draiviadapter või väline riistvara [kiipkaart], TPM-kiibiga või ilma) või
  2. kandke PBA (preboot Authorization) autoriseerimiskoodi (antud juhul partitsiooni /boot) teisaldataval seadmel (nt kiipkaardil või USB-draivil).

Teisel viisil saate kontrollida projekti Linux Full Ketta krüptimine(LFDE) aadressil: http://lfde.org/, mis pakub installijärgset skripti partitsiooni /boot teisaldamiseks väline USB-draiv krüpteerides võtme GPG-ga ja salvestades selle ka USB-le. Nii on alglaadimistee nõrk osa (krüptimata /boot partitsioon) alati teiega kaasas (olete ainuke füüsiline juurdepääs koodi ja võtme dekrüpteerimiseks). ( Märge: see sait on kadunud ja kadunud on ka autori ajaveeb, kuid vanad failid leiate aadressilt https://github.com/mv-code/lfde, märkides vaid, et viimane arendus tehti 6 aastat tagasi). Lihtsaima alternatiivina saate OS-i installimisel USB-draivi ühendada krüptimata alglaadimissektsiooni.

Lugupidamisega M.V.

Muutke oma esimene RAM-ketas ja /boot-kaust krüptimata.

See kutsub esile "minimaalse" kerneli koos draiverite ja toega, et lülituda "päris" juurfailisüsteemile, mis on krüptitud.

Enne kui ütlete "see on häkkimine", pidage meeles – enamik (kui mitte kõik) Linuxi distributsioonid käivitatakse tänapäeval vaikimisi. See võimaldab teie süsteemil laadida ja laadida juur-FS-i, kasutades mooduleid, mis tuleb failisüsteemist laadida. (Omamoodi kana ja muna probleem). Näiteks kui teie juurfailisüsteem oli riistvaralisel RAID-köitel ja peate enne juur-FS-i ühendamist laadima selle draiveri.

Vaatasin sinu postitatud linki – siiski alglaadimise partitsioon ei, kõvakettal on endiselt krüptimata alglaadur, millele pääseb juurde ja mida pahatahtlik rünnak ohustab. Olen otsinud sarnast seadistust, mille kõvakettal pole krüptimata andmeid, kuid siiani olen jõudnud käivitada ainult irdkettalt alglaadurit.

Usun, et enamik sellest, mida vajate, on juhised krüptitud HD-ga OS-i installimise kohta.

Ubuntul on kena leht, kus on juhised krüptitud partitsioonide, LMVP-de, kaustade jms loomiseks, just teie distro versiooni...

Ei, ma ei usu.

Kas teil on tõesti vaja krüpteerida/üles laadida? Ma kahtlustan, et mitte. Ülejäänud failisüsteemi saab krüpteerida tavalisega tarkvara Linux, mis asub /boot kaustas initramfs ja küsib kasutajalt vastavalt.

Tundub, et sa küsid midagi, mida ei saa teha, ja võrdled seda Windowsi lahendus, mis peidab teostuse teie eest, kuid tegelikult teeb seda sama, mida Linux.

Lähim lahendus, mida ma suudan välja mõelda, on kasutada HDD, mis rakendab parooliturvet ja krüptimist. Mõned Thinkpad sülearvutid kasutage neid riistvaralahendusi.

Vastus on artiklis. "See on nüüd võimalik uue põlvkonna GRUB2 alglaaduri laiendustega, mis on paigatud, et toetada rohkem kui lihtsalt" ja "tahame hiljem installida uue luks grub2-toega pildi" ja "Nüüd kompileerime GRUB2 allika LUKSiga toetus. Näib, et teil on GRUB2 või GRUB2 kahvelallikaga parandus või laiendus, mille peate hankima ja lubama.

Grub2 versioon 2.02~beta3 suudab teha palju, mida Grub2 versioon 2.02~beta2 ei suuda, kinnitasin mina:

  1. Käivitamine Super Grub 2 ketta abil
  2. Käsureale minemiseks tippige "c".
  3. Sisestage käsud soovitud krüptitud partitsiooni ühendamiseks
    • insmod lux
    • cryptomount (hd0, #) // kus # tähistab krüptitud partitsiooni
  4. Sisenema võtmefraas ja sisestage mõned käsud
    • multiboot (crypto0) /grub/i386-pc/core.img
    • kinga

See käivitab teise Grub2, mis on krüptitud partitsioonis, siin pole hullu hullu rünnakut... Käivitan CD-lt (kirjutuskaitstud) ja ühendan seejärel krüptitud partitsiooni (mitte parooli, midagi!), seejärel käivitan krüptitud partitsiooni seest krüptitud partitsioon ja Grub2 käivitamine oma menüüga jne.

Hoiatus: Grub2 versioon 2.02~beta2 ei saa sama teha, kuna sellel on mõned vead (mis näivad olevat Grub2 versioonis 2.02~beta3 parandatud), mis on seotud käsuga cryptomount...

beeta2 vead, millest ma räägin, on järgmised:

  1. See ei ühenda tegelikult krüptitud partitsiooni, seega ei võimalda see juurdepääsu (crypto0)/*
  2. Kui krüptitud partitsioone on rohkem kui üks, nõuab cryptomount -a kasutamine ainult ühte parooli
  3. Pärast krüptomounti ühekordset käivitamist käivitub see uuesti, ei tee midagi

beetaversioonis 3:

  1. See ühendab tegelikult krüptitud partitsiooni ja võimaldab juurdepääsu failidele läbi (crypto0)/* või (crypto1)/* jne, kui korraga on ühendatud rohkem kui üks
  2. See küsib iga parooli (üks krüptitud jaotise kohta)
  3. See võimaldab seda käivitada nii mitu korda kui soovite, saate installida ühe, seejärel teise jne.

Vahemärkus: ma ei ole aru saanud, kuidas neid lahti ühendada, välja arvatud taaskäivitamine või teise või ühe laadimine alglaadur grub2/muu jne.

Loodan, et see aitab asju selgeks teha ja loodan, et Grub2 versioon 2.02~beta3 integreeritakse LiveCD-sse, et saaksime selle installida ilma seda ise kompileerimata.

PD: Super Grub 2 draivi puhul ei näe ma võimalust installida Grub2 versiooni 2.02~beta3 MBR/boot partitsioonile jne.

Selles artiklis proovin võrrelda erinevate krüpteerimissüsteemide jõudlust linuxi all. Teoreetiliselt on muidugi teada, milline süsteem on produktiivsem, ja proovitakse jõudlust välja arvutada erinevad süsteemid olid (). Truecrypt sisaldab isegi sisseehitatud võrdlusalust (mis näitab siiski RAM-i jõudlust, seda saab kasutada ainult erinevate krüpteerimisalgoritmide kiiruse hindamiseks). Teen midagi teisiti – mõõdan erinevate vahenditega krüpteeritud failisüsteemi kiirust protsendina võrreldes tavapärase krüptimata failisüsteemiga.


Krüpteerime eraldi sektsiooni eraldi HDD-l, mis ei sisalda juurfailisüsteemi, kasutades igal konkreetsel juhul vaikimisi kasutatavat algoritmi. Tavakasutajana ei mõista ma krüpteerimisstandardite nüansse (näiteks kuidas RIPEMD-160 räsimine Whirpoolist erineb, milline neist režiimidest on kiirem, kumb aitab kaasa kõrgemale turvalisusele), seega tugineme lihtsalt faktile et tootjad iga tarkvaratoode valis piisavalt krüptokindlad vaikeparameetrid. Võib-olla pole see täiesti õige, sest erinevate krüpteerimisalgoritmide jõudlus ei ole sama. Soovi korral saab muidugi krüptimise tüüpi muuta, aga ma pole kindel, et kõikides testitud toodetes on absoluutselt identne algoritmide komplekt. Testime:

3) eCryptfs on vaikesüsteem, mida Ubuntu kasutajatele pakutakse kodukataloogide krüptimiseks, mistõttu on see sellesse testi kaasatud. Töötab olemasoleva failisüsteemi peal. Krüpteerib iga faili eraldi, nii et kõik näevad õigusi, muutmise kuupäevi, krüptitud failide arvu; vaikimisi on näha ka failinimed, kuigi on võimalus neid krüpteerida. Kõige vähem funktsionaalne tööriist üldse.

4) EncFS - eCryptfsi ligikaudne analoog, kuid kasutab FUSE-d.

Niisiis eraldati testide jaoks eraldi üsna kõrge vanusega masin järgmises konfiguratsioonis: CPU - Intel Celeron 2000Mhz, RAM - 512 Mb DDR PC2700, süsteemi HDD- WD Caviar SE 5400 RPM 80Gb, test HDD - WD Caviar SE 7200 RPM 80Gb.
OS – Ubuntu 12.04 LTS, kogu tarkvara versioonid on selle OS-i hoidlate jaoks selle kirjutamise ajal asjakohased (Truecrypt 7.1a-linux-x86 ei ole hoidlatest pärit).

Testime enamiku distributsioonide jaoks vaikimisi ext4 failisüsteemi. Jõudluse testimiseks kasutame izone3 utiliiti ja shelliskripti, mis on kirjutatud "põlvele", et mõõta testide protsentuaalset erinevust.

Loendamise skript. Koodi puhtusele erilist tähelepanu ei pööratud, ainsaks kirjutamise kriteeriumiks oli õige tulemuse olemasolu.

#!/bin/sh gendiffffile () ( #protseduur genereerib parsimiseks mugava faili. Esiteks kärbitakse read, mida ei saa sõeluda; teiseks kärbitakse iga rea ​​kaks esimest numbrit, mis näitavad # faili suurust ja kirjet suurus vastavalt ; kolmandaks väljastatakse kogu fail ridade kaupa - #üks testitulemus rea kohta cat $1 | LINE lugemise ajal ; tee kaja $LINE| grep "^[[:space:]]*[[:digit:] ]" | awk "(for (i=3;i<=NF;i++) {print $i}}" done > > $2 ) getline () ( #procedure väljastab faili $1 reanumbri $2 head -n $2 "$1" | saba -n 1 ) võrdle () ( #procedure võrdleb faile $1 ja $2 rida rea ​​haaval, arvutades kummagi protsendi erinevuse testipaar # siis arvutab aritmeetilise keskmise, mitu protsenti on kiirem või aeglasem # esimest rühma teste sisaldav fail, teist rühma sisaldav fail P=0 MAX=0 L1=`cat "$1" | wc -l` # testide arv failis L2=`cat "$2" | wc -l` kui [ $L1 -ne $L2 ]; siis #kui failid sisaldavad erinevat arvu teste, siis me neid ei võrdle echo error return fi STEP=$(($L1*5/100)) J=0 I jaoks 'järgus 1 $L1'; tehke J=$(($J+1)), kui [ $J -eq $STEP ]; siis J =0 echo "$((100*$I/$ L1))% lõpetatud ($I/$L1)" fi A=`getline "$1" $I` B=`getline "$2" $I` if [ ` kaja $A \> $B|bc -l` - eq 1 ], siis D=`kaja "100-($B*100/$A)"|bc -l`, kui [ `kaja $D \> $MAX | bc -l` -eq "1" ]; siis MAX=$D uni 5 fi else D=`kaja "100-($A*100/$B)"|bc -l` if [ `kaja $D \ > $MAX| bc -l` -eq "1" ]; n MAX=$D uni 5 fi D="-$D" #kui väärtusel on "-" märk, oli see test #teises failis kiirem kui esimeses fi P=`echo "$P+$D "| bc -l`done P=`kaja $P/$L1| bc -l` #arvuta aritmeetiline keskmine kaja PROTSENT=$P MAX_PERCENT=$MAX ) genaverage () ( #analüüsiks ettevalmistatud faili genereerimise protseduur, mille iga rida on kogu aruande vastavate ridade #aritmeetiline keskmine analüüsitud kataloogis asuvad failid AVG=` mktemp` F=`ls "$1"|wc -l` #raportitega failide arv määratud kataloogis #eeldusel, et sinna salvestatakse ainult sellised failid ja mitte midagi muud #me ei kontrolli selle eelduse õigsus, kui [ ! -d " $1" -o $F -lt 2 ]; siis kaja viga >/dev/stderr #selles protseduuris väljastame kõik sõnumid stderrile, kuna #stdout asendatakse teisega protseduur rm -f $AVG väljumine fi TMP=` mktemp` leidke "$1" -tüüp f|, kui loete FILE; tehke # iga izone aruandefaili jaoks antud kataloogis I=`mktemp` #gendifffile "$FILE" "$I " #names kirjutavad kõik sellised failid "TMP" ridade kaupa kaja "$I">>$TMP tehtud L=`cat \`getline "$TMP" 1\`|w c -l` kass "$TMP"| lugemise ajal LINE; kas #väike kontrollimine on hea L1=`kass "$LINE"| wc -l` #kas kõik failid sisaldavad sama arvu teste, kui [ $L -ne $L1 ]; siis kaja viga >/dev/stderr exit fi done STEP=$(($L*5/100)) J=0 for I in `seq 1 $L`; tee J=$(($J+1)), kui [ $J -eq $STEP ]; siis J=0 kaja "$((100*$I/$L))% tehtud ($I of $L)" >/dev/stderr fi SUMFILE=`mktemp` #nii saan SUM muutuja väärtuse pesastatud tsüklist SUM=0 cat "$TMP"| lugemise ajal LINE; do SUM=$((`getline "$LINE" $I`+$SUM)) echo $SUM > "$SUMFILE" tehtud echo `tail -n 1 "$SUMFILE"`/$F|bc -l >> $ AVG #võtke aritmeetiline keskmine #ja kirjutage see #AVG-faili sobivasse asukohta rm -f "$SUMFILE" tehtud cat "$TMP"| lugemise ajal LINE; tee #kustutage ajutised failid rm -f "$LINE" tehtud rm -f "$TMP" kaja $AVG ) printf %b "\\033)