610 likes | 827 Views
Bez pečnosť OS Unix a OS Windows. OBSAH. Problematika bezpečnosti v OS Linux Problematika bezpečnosti v OS Windows Súborové systémy a ich možnosti Pohľad do reality. Bezpečnosť v OS Linux. Správa užívateľov
E N D
OBSAH • Problematika bezpečnosti v OS Linux • Problematika bezpečnosti v OS Windows • Súborové systémy a ich možnosti • Pohľad do reality
Bezpečnosť v OS Linux Správa užívateľov • V systéme Linux musí byť každý program a súbor vo vlastníctve nejakého užívateľa. Každý užívateľ má jedinečný identifikátor, ktorý sa nazýva identifikátor užívateľa alebo tiež ID užívateľa (UID). Každý užívateľ musí patriť aspoň do jednej skupiny užívateľov, vytvorenej správcom systému. Užívatelia môžu patriť do viacerých skupín súčasne. Rovnako ako užívatelia majú i skupiny svoje identifikátory, ktoré sa nazývajú identifikátory skupín (skupinové ID – GID). • Prístupnosť súboru alebo programu závisí na identifikátoroch používateľa a identifikátoroch skupín. Spúšťaný program dedí prístupové práva po užívateľovi, ktorý tento program spustil. Práva každého užívateľa sa dajú definovať dvoma spôsobmi: práva bežného užívateľa a práva superužívateľa. Bežní užívatelia majú prístup iba k programom, ku ktorým majú prístupové právo, alebo k takým programom k spúšťaniu ktorých dostali povolenie; toto právo sa udeľuje preto, že užívateľ patrí do skupiny daného súboru alebo preto, že je tento súbor dostupný všetkým užívateľom. Správca systému má povolený prístup ku všetkým súborom a programom v systéme, a to i v prípade, že ich nevlastní. Správca systému sa často nazýva tiež superužívateľ alebo administrátor.
Bezpečnosť v OS Linux • V Linuxe má všetko svojho vlastníka. • Potrebujeme minimálne jedného užívateľa – root (r00t :-) • Druhú úroveň tvoria tzv. „bežní“ užívatelia • Systémoví užívatelia – skupina tzv. „prednastavených“ používateľov.
Bezpečnosť v OS Linux Domovský adresár • Miesto pre uloženie špecifických konfiguračných súborov užívateľa • Umožňuje užívateľom pracovať vo vlastnom upravenom prostredí bez toho, aby sa narušilo nastavenie prostredia iného užívateľa • Nutnosť ochrany pred možnosťou čítania alebo zápisu zo strany ostatných užívateľov (s výnimkou root-a) • Najčastejšie: chmod go-rwx home_adr • Príklad: drwx------ 3 sandusky student 4096 Apr 4 15:38 sandusky práva N1 užívateľ skupina veľkosť dátum, čas home adr.
Bezpečnosť v OS Linux • Najčastejšie umiestnenie domovských adresárov bežných užívateľov je v /home • Pomenuje adresár každého užívateľa → prihlasovacím menom. • Výnimkou sú systémové účty • Účet superužívateľa: Domovský adresár superužívateľa má tradične v mnohých unixových systémoch podobu /. Mnohé inštalácie Linuxu požívajú /root. • Rozhodnutie umiestniť domovské adresáre do /home je čisto subjektívne a dobrovoľné, má však svoj organizačný význam. • Časté je i rozdelenie adresára /home podľa jednotlivých oddelení, napríklad: /home/analytici, /home/support, /home/sales, /home/webmaster.
Bezpečnosť v OS Linux Heslá – základné myšlienky • Každý účet by mal byť buď chránený heslom, alebo by mal byť označený ako neprístupný • Než by sme sa mali spoliehať na to, že súbory s heslami sú dobre chránené, je lepšie, keď systém zašifruje heslo pomocou špeciálneho algoritmu.
Bezpečnosť v OS Linux Prihlásenie do systému • Užívateľ zadá prístupové heslo do systému • Zadané heslo sa zašifruje • Zašifrovaná hodnota sa porovná s heslom uloženým v systéme • Ak sa spomenuté hodnoty zhodujú, užívateľ môže vstúpiť do systému • Pôvodný algoritmus je výpočtovo nenáročný ... • Súbor s heslom mohol obsahovať navyše všetky potrebné údaje o užívateľovi • S nástupom rýchlejších počítačov vyvstala nutnosť prehodnotiť spôsob uchovávania hesiel
Bezpečnosť v OS Linux Vylepšenie filozofie hesiel I. – Tieňové heslá • Zašifrované heslo sa zo súboru s heslami odstráni a umiestni sa do samostatného súboru s názvom shadow • Bežný súbor s heslom je naďalej čitateľný pre všetkých užívateľov • Skutočné zaširované podoby hesiel sú čitateľné len pre správcu • Výzva k prihláseniu sa spúšťa s právami superužívateľa Prečo teda rovno nie je súbor s heslom čitateľný iba pre superužívateľa ???
Bezpečnosť v OS Linux Vylepšenie filozofie hesiel II. Zdokonalenie šifrovacieho algoritmu • Šifrovací algoritmus MD5 prevzatý z operačného systému FreeBSD • Zvýšenie komplikovanosti rozlúštenia hesla • Ukážka šifrovania algoritmom MD5 prístupná na w3.intrak.tuke.sk/~slodicak/code.php
Bezpečnosť v OS Linux Databáza užívateľov • OS Windows 2000 ponúka jako systém správy užívateľov nástroj Active directory, ktorý má na starosti tie najpodrobnejšie detaily databázy užívateľov. • Nevýhoda: Active Directory mierne komplikuje vývoj našich vlastných administrátorských nástrojov, pretože čítanie alebo manipulácia s informáciami o užívateľoch sa uskutočňujú prostredníctvom série volaní LDAP. ––––––––––––––––––––––––––––––––––––––––––––––– • OS Linux idúc po stopách tradičného UNIXu má všetky informácie o užívateľoch uložené v bežných textových súboroch. • Výhoda spočíva v tom, že môžeme v informáciách o užívateľoch kedykoľvek prevádzať zmeny bez nutnosti použiť nejaký špeciálny nástroj – stačí textový editor
Bezpečnosť v OS Linux Súbor /etc/passwd • Informácie o prihlasovaní užívateľa: - zašifrovaná podoba hesla - id užívateľa - implicitný skupinový identifikátor - skutočné meno užívateľa - domovský adresár - prihlasovací príkazový interpreter. • informácie o každom užívateľovi sú umiestnené na samostatnom riadku a každá položka informácie je oddelená dvojbodkou • Príklad: tanja:b20c3691f712164ee6de7174a8681db1:100:102:Tanja Sandusky:/home/tanja:/bin/bash
Bezpečnosť v OS Linux Podrobnosti o UID • Užívateľské ID musí byť jedinečné pre každého užívateľa • UID s hodnotou 0 má užívateľ, ktorý má administrátorský prístup do systému, a tým aj plnú kontrolu nad systémom. • Užívateľské meno môže mať podobu akéhokoľvek textového reťazca. • Užívateľské meno sa každopádne musí vojsť na 1 riadok
Bezpečnosť v OS Linux Súbor /etc/shadow – I. • S nárastom počtu útokov hackerov sa objavila nevyhnutnosť vyňať heslá zo súboru /etc/passwd a uložiť ich do samostatného súboru • Heslá sú uložené v súbore /etc/shadow, ktorý dokážu prečítať iba programy s právami administrátora • Každý riadok v tomto súbore obsahuje: ● prihlasovacie meno ● zašifrované heslo ● dni, počítané od 1.1.1970 do doby, kedy bolo heslo zmenené ● počet dní zostávajúcich do doby, kedy bude možné zmeniť heslo ● počet dní, po uplynutí ktorých sa musí heslo zmeniť ● počet dní pred skončením platnosti hesla – o tomto počte je užívateľ informovaný ● počet dní po skončení platnosti hesla a ktoré zostávajú do zablokovania účtu ● dni, počítané od 1.1.1970 do doby, kedy došlo k zablokovaniu účtu ● rezervovaná oblasť
Bezpečnosť v OS Linux Súbor /etc/shadow – II. • Záznam o každom užívateľovi je na samostatnom riadku a jednotlivé položky sú oddelené dvojbodkou • Príklad: vili:b20c3691f712164ee6de7174a8681db1:10750:0:99999:7:-1:-1:134529868 • Zápisy s hodnotou -1 znamenajú “bez obmedzenia”
Bezpečnosť v OS Linux Súbor /etc/group – I. • Súbor /etc/passwd obsahuje okrem iného implicitný identifikátor skupiny (GID) každého užívateľa. • Tento identifikátor skupiny sa priraďuje k názvu skupiny a ostatným členom skupiny v súbore /etc/group. • Každý riadok súboru /etc/group má nasledujúcu štruktúru: ● názov skupiny ● zašifrované heslo pre skupinu ● číslo identifikátora skupiny (GID) ● zoznam užívateľov, ktorí su členmi skupiny, jednotlivé položky sú oddelené čiarkou. • Každá položka v riadku je oddelená dvojbodkou • Príklad: windows:x:1002:ftp,vili
Bezpečnosť v OS Linux Súbor /etc/group – II. • súbor skupiny musí byť bežne čitateľný, aby mohli rôzne aplikácie testovať asociácie medzi užívateľmi a skupinami • názvy skupín by nemali presiahnuť dĺžku 8 znakov a identifikátor skupiny by mal byť pre každú skupinu jedinečný • ak potrebujeme skupinu, do ktorej by sa jednotliví užívatelia nemohli sami priradiť, použijeme miesto hesla symbol hviezdičky. Napríklad: projetc:*:102:vili
Bezpečnosť v OS Linux Nástroje pre správu užívateľov a skupín Nástroje pre manipuláciu s užívateľmi ● pridanie užívateľa – useradd ● odstránenie užívateľa – userdel ● úprava údajov užívateľa – usermod Nástroje pre manipuláciu so skupinami ● pridanie novej skupiny – groupadd ● odstránenie skupiny – groupdel ● modifikácia parametrov skupiny – groupmod
Bezpečnosť v OS Linux Programy SetUID a SetGID • Bit SetUID programom umožňuje spúšťanie s právami vlastníka programu, a nie s právami užívateľa, ktorý tento program spustil • Tzv. bit SetGID funguje rovnako, používa sa však pre nastavenie skupín pre program • Ak cheme aktivovať bit SetUID alebo SetGID, musíme použiť príkaz chmod: Ak chceme nastaviť SetUID, napíšeme na začiatok všetkých hodnôt práv, ktoré tomuto programu chceme priradiť, hodnotu 4. Ak chceme programu nastaviť SetGID, napíšeme na začiatok všetkých hodnôt práv hodnotu 2. Ak teda napr. Chceme z programu /bin/ls urobiť program SetUID (čo teda nie je dobrý nápad), použijeme príkaz [root@machine /root]# chmod 4755 /bin/ls.
Bezpečnosť v OS Windows Problematika hesiel • Systém Windows si heslo, ktoré zadá užívateľ pri vstupe nepamätá • Systém si namiesto pôvodného hesla pamätá jeho tzv. hash • Systém Windows NT si pamätá hash každého hesla • Pri prihlasovaní zadáme heslo, z neho sa určí hash a ten sa porovná s uloženým. Ak súhlasí, heslo je správne a autentifikácia úspešná. • Heslá sú uložené v súbore SAM
Bezpečnosť v OS Windows Ochrana súboru SAM? S príchodom Service Packu 3 pribudla vo Windows NT 4.0 možnosť zaktivovať prídavné šifrovanie. To znamená, že súbor SAM nebude obsahovať platné hash, ale zašifrované. Kľúč pritom môže byť: (a) uložený niekde v systéme na disku - navonok nevidno žiadnu zmenu; (b) zadáva sa vo forme hesla pri štarte Windows, ešte pred prihlasovaním; (c) uloží sa na disketu, ktorú je nutné pri štarte Windows vložiť.
Bezpečnosť v OS Windows Ako to aktivovať? • Vo Windows 2000 a XP je prídavné šifrovanie implicitne zapnuté, pričom sa používa variant (a). • Zaktivovanie vo Windows NT (ako aj zmena v 2000 a XP) sa vykoná programom syskey.exe, ktorý je súčasťou operačného systému. • Po zapnutí prídavného šifrovania už nie je možné ho vypnúť, je však možné zmeniť výber jedného zo spomínaných variantov (tlačítkom Update).
Bezpečnosť v OS Windows Je teraz SAM v bezpečí? • Súbor SAM je už síce chránený, no k hashom sa dá dostať aj inými spôsobmi. • Administrátor má oprávnenie získať hash ktoréhokoľvek užívateľa - keďže kľúč pre prídavné šifrovanie je už vložený (pri štarte Windows), má prístup k skutočným hashom, nešifrovaným. • Administrátor môže teda testovať silu hesiel užívateľov a tým, ktorí nespĺňajú bezpečnostné požiadavky, môže predpísať zmenu... • Doteraz bola zistené nejedna bezpečnostná chyba operačného systému, ktorá umožnila získať najvyššie oprávnenie hociktorému užívateľovi - a ten mal potom prístup aj ku hash...
Bezpečnosť v OS Windows Ako sťažiť lúštenie hesla? • Súbor SAM obsahuje pre každé konto dva rôzne (hash) z hesla: • Hash LM nie je citlivý na veľkosť písmen, teda nerozoznáva malé a veľké písmená v hesle. Okrem toho je heslo rozdelené na skupiny po 7 znakov - to znamená, že ak má heslo 12 znakov, bude k dispozícii hash z prvých 7 a hash z posledných 5 znakov. • Hash NTLM rozlišuje veľkosť písmen v hesle a heslo nerozdeľuje na 7-znakové skupiny.
Bezpečnosť v OS Windows Uveďme si príklad, ktorý názorne ukáže praktické rozdiely týchto dvoch typov hash v odolnosti proti útoku. • Majme teda veľmi silné 12-znakové heslo, ktoré obsahuje malé i veľké písmená (26 + 26), číslice (10) a nejaké základné symboly (33). • LM hash: Ak chceme heslo hádať, musíme brať do úvahy všetky 7-prvkové (na vyriešenie prvej časti hesla) kombinácie z množiny 26 + 10 + 33 = 69 znakov (nerozlišujú sa malé a veľké písmená). To značí 697 možností, teda približne 7 * 1012 - čo by dnešné najrýchlejšie počítače uhádli do 2 týždňov. Nezabúdajme, že je možné použiť i distribuovaný útok a čas hádania skrátiť i na hodiny... Chýba nám ešte posledných 5 znakov, no tie sa uhádnu za zanedbateľne krátku dobu v porovnaní s prvými 7 znakmi. • NTLM hash: V tomto prípade uvedené heslo predstavuje 12-prvkovú kombináciu z množiny 26 + 26 + 10 + 33 = 95 znakov. To je 9512 = 5 * 1023 možností, teda asi 1011-krát viac, ako v prípade LM hash (teda dnešný počítač by to hádal rádovo 109 rokov, čo je dosť veľká rezerva, aj pri použití distribuovaného útoku).
Bezpečnosť v OS Windows Ako zakázať LM hash • Takúto možnosť priniesol až Service Pack 2 pre Windows 2000. • Je potrebné túto možnosť zaktivovať v registroch. Konkrétne sa jedná o kľúč: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] V ňom sa vytvorí nový kľúč s názvom NoLMHash a hodnotou 1. • Vo Windows XP sa LM hash zakáže v správcovských nástrojoch cez politiku miestneho zabezpečenia (Local Security Policy), treba sa dostať do Security Settings\Local Policies\Security Options a tam nájsť a povoliť možnosť Network security: Do not store LAN Manager hash value on next password change. Kľúče je možné aj priamo importovať. • To, že sme zakázali LM hash ešte neznamená, že sa odstránil zo súboru SAM. Je treba ešte reštart (pre istotu :-) a vykonať zmenu hesla (môže byť aj na pôvodné) pre všetky požadované kontá.
Bezpečnosť v OS Windows Prístup do systému Windows 2000 Pristupovať do systému Windows 2000 môžeme dvojako: • na konto lokálne: kontá vytvorené na lokálnom stroji určené pre lokálnych užívateľov. Všetky informácie týkajúce sa konta, profilu i autorizácie sú uchovávané lokálne • na konto vzdialené: kontá vytvorené na servri, prístupné cez sieť. V takom prípade sú všetky informácie o konte uložené na servri a v okamihu logovania sa užívateľa do systému sú preposielané cez sieť na cieľovú stanicu.
Kontá názvy kont nemôžu prekročiť veľkosť 20 znakov lokálne kontá uchovávajú lokálne tzv. SID kľúče (interný identifikátor konta) doménové kontá sú prístupné v celej sieti dôveryhodných domén, čiže v určitej LAN implicitné kontá: existujú kontá prístupné hneď po prvotnej inštalácii systému, ktoré sú k práci nevyhnutné, napríklad Administrator, Guest ... Môžme ich podľa potreby modifikovať. Skupiny Windows 2000 má niekoľko skupín implicitných: Administrators – najvyššie priority Backup Operators – právo čítať a zapisovať Guests – najnižšie právomovi Users – privilegiá a práva podľa situácie Power Users – niektoré predvolené privilégiá Bezpečnosť v OS Windows
Súborové systémy • Súborové systémy OS Windows • Súborové systémy OS Linux • Kryptografické súborové systémy
Súborové systémy – OS Windows FAT16 Starší súborový systém, navrhnutý pre domáce použitie. Hlavné nevýhody: • chýbajúca možnosť kontrol prístupu • veľká náchylnosť na fragmentáciu • vysoká chybovosť (v štruktúrach adresárov i súborov) FAT32 Súborový systém, vyvtorený s príchodom väčších diskov, ktoré sa objavili v druhej polovici 90. rokov. Oproti FAT16 má upravených niekoľko nedostatkov. Avšak ostalo mu: • náchylnosť na fragmentáciu a výskyt chýb • nemožnosť kontroly prístupu
Súborové systémy – OS Windows NTFS Súborový systém utvorený pre potreby Windows NT. Oproti systémom FAT16 a FAT32 je upravených niekoľko nedostatkov. NTFS však so sebou prináša tieto prvky: • Kompresia (Lempel-Ziv, rovnaká ako GIF, veľmi efektívna pri kompresii textu – až 90%) • Šifrovanie adresárov i súborov • Quota, čiže ohraničenie miesta na disku pre danú skupinu alebo užívateľa • Integrácia so službami Active Directory Ďalšie vlastnosti: Bezpečnosť partície NTFS vyplýva z definovania lokálnych práv prístupu k súborom a katalógom. Prístupové práva fungujú bez rozdielu, či pristupujeme k súborom a katalógom lokálne alebo diaľkovo (cez sieť). Každý súbor i katalóg má vlastný ACL (Access Control List), ktorý definuje, či užívateľ resp. Skupina užívateľov má kdanému objektu prístup a na akej úrovni. Nemusíme nastavovať práva každému súboru v adresári samostatne. ACL adresára nadradeného sa prenáša na podadresáre i súbory,ktoré sa vyskytujú v danom adresári.
Súborové systémy – OS Windows Poznámka k ACL: • V operačnom systéme Sun Solaris, ktorého základ tvorí operačný systém UNIX, boli ACL implementované ako jeden z hlavných pilierov prístupu. • Adresár má kontrolu prístupu aktívnu, ak sú oprávnenia ukončené znakom +. # ls -ld tools -rwxr-xr-x+ 29 myers nogroup 8192 Feb 21 16:51 tool • Príkaz getfacl vypíše hlásenie o všetkých kontrolách prístupu k danému súboru. • Myšlienka ACL v Sun Solaris-e je však odlišná od ACL v MS Windows
Súborové systémy – OS UNIX, Linux Súborové systémy v OS UNIX a Linux • Súborový systém (fs) predstavuje formát, akým sú na disku usporiadané súbory a adresáre. • Žurnálový súborový systém sa od klasického fs líši prítomnosťou špeciálnej datovéj štruktúry (žurnálu), kam zapisuje, aké operácie prevádza so súbormi. • Pokiaľ dôjde k výpadku napájenia, môže sa stať, že dáta na disku sú v nekonzistentnom stave (v okamihu výpadku bola časť dát v pamäti) a je nutné ich opraviť, čo u bežného súborového systému môže znamenať časovo veľmi náročnú operáciu, pretože je nutné prejsť celú dátovú oblasť a skontrolovať ju programom fsck na prípadné chyby. Aj tak je takáto oprava niekedy stávkou do lotérie a môže dôjsť k poškodeniu dát. • Žurnálový fs naproti tomu zaisťuje, že dáta sú na disku uložené v "permanentne konzistentnom stave", resp. všetky nezrovnalosti je možné rekonštruovať počas niekoľkých sekúnd z práve za týmto účelom vedeného žurnálu.
Súborové systémy – OS UNIX, Linux Ext2 alebo Ext3 ? • Ext3 je založený na Ext2, ktorý je už dlhú dobu stabilným bodom v Linuxe a so svojím predchodcom je taktiež obojsmerne kompatibilný. • Pokiaľ by sme chceli vymeniť Ext2 za ReiserFS, neostáva nič iné, ako zálohovať všetky dáta, znovu vytvoriť fs a obnoviť zálohu. • V prípade Ext3 nám však stačí mať príslušnú verziu balíka e2fstools, a môžme takmer za behu systému vytvárať a rušiť žurnál, napríklad takto: tune2fs -j /dev/hda1 # vytvorí žurnál na zväzku hda1 tune2fs -O ^has_journal /dev/hda1 # zruší žurnál na zväzku hda1
Súborové systémy – OS UNIX, Linux Ext3 Tri úrovne, ktoré sa špecifikujú pri pripájaní fs: • data=journal – do žurnálu sa zapisujú ako operácie s metadátami (súborové entity), tak i vlastnými dátami. Po nekorektnom vypnutí je možné súborový systém v plnom rozsahu rekonštruovať. Tento režim predstavuje maximálnu ochranu pred poškodením dát. • data=ordered – do žurnálu sa síce zapisujú iba transakcie s metadátami, ale operácie s dátami sú uložené ešte pred zápisom metadát. Vďaka tomu sú metadáta v každom okamihu konzistentné. Ak sa nerozhodnete inak, je táto voľba predvolená. • data=writeback – žurnálujú sa iba metadáta. Operácie zápisu prebiehajú v optimálnom poradí s ohľadom na výkon. Po nekorektnom vypnutí bude súborový systém v poriadku, avšak medzi dátami môže dôjsť k chybám. Tento režim je čo do bezpečnosti ekvivalentný systému ext2 pri zachovaní rýchleho priebehu porgramu fsck. mount /dev/hda1 /mnt/space -t ext3 -o data=journal
Súborové systémy – OS UNIX, Linux Výkon? Hoci žurnálový fs predstavuje pre počítač vyššiu záťaž, jeho autori vyhlasujú, že ich Ext3 fs je dokonca rýchlejší ako ext2. Má to byť docielené tým, že zápisy sú prevádzané inteligentne a so snahou minimalizovať zbytočné presuny hlavy disku.
Súborové systémy – OS UNIX, Linux A čo xfs? xfs, žurnálový fs, navrhnutý firmou SGI, používaný pôvodne v operačnom systéme SGI Irix. V súčasnosti je dostupný pod licenciou GPL aj v Linuxe. Vyznačuje sa mimoriadnou škálovateľnosťou, využíva extenzívne B-stromy pri práci s veľkými súbormi “roztrúsenými” po disku a s extrémne veľkými adresármi.
Kryptografické súborové systémy Typy kryptosystémov Implementácie kryptosystémov sa orientujú na rôzne ciele počnúc kryptovaním celého súborového systému, cez kryptovanie adresárov a súborov v nich až po kryptovanie jednotlivých súborov. Každý z týchto prístupov má svoje výhody i nevýhody.
Kryptografické súborové systémy Kryptovanie na úrovni súborového systému Tieto systémy kryptujú (a dekryptujú) na úrovni drivera pre konkrétny typ súborového systému. Typickými implementáciami su PGPdisk, Secure File System (SFS), Linux CryptoAPI, ScramDisk. Tieto kryptovače kryptujú obsah celého súborového systému a ich hlavnou výhodou je, že sú transparentné pre koncového užívateľa - všetko je buď kryuptované, alebo nie. Na druhej strane neposkytujú dostatočnú granularitu pre kryptovanie individuálnych súborov a adresárov.
Kryptografické súborové systémy Kryptovanie na úrovni súborov • Kryptovače tohto druhu pracujú na aplikačnej alebo prezentačnej vrstve a umožňujú skutočné kryptovanie medzi dvoma koncovými bodmi (medzi dvoma aplikáciami). • Obyčajne potrebujú, aby samotná aplikácia dopredu vedela, že sa bude pristupovať ku kryptovaným dátam a teda aplikácie, ktoré nie sú na kryptovanie dát pripravené, nebudú vedieť s dátami pracovať. • Príkladom je PGP: ak máme kryptovaný súbor, musíme mať v editore PGP plugin, alebo musíte dáta rozkrypovať mimo aplikácie. Implementácie tohto typu sú vhodné v prostredí, kde je počet kryptovaných súborv malý a človek rozhoduje o použití kryptovania. Tieto systémy sa však vôbec nehodia na masové nasadenie pre kryptovanie množstva adresárov a súborov.
Kryptografické súborové systémy Kryptovanie na úrovni adresárov • Tieto systému umožňujú kryptovanie na úrovni adresátov a súborov v nich, pričom na kryptovanie používajú kľúč. • Medzi známe implementácie patrí Cryptographic File System (CFS) navrhnutý Mattom Blazeom, Transparent Cryptographic File System (TCFS), ktorý je implementovaný na Linuxe a BSD, ďalej CryptFS ako aj EFS pod Windows 2000.
Kryptografické súborové systémy Návrh kryptosystému – CryptFS Ide o kryptosystém, ktorý kryptuje celý súborový systém. Využíva modulárnu štruktúru, ktorú si UNIXové deriváty osvojili v poslednom čase. Linux, Solaris a iné používajú dátovú štruktúru vnode (virtual inode), ktorá reprezentuje objekt z ľubovoľného (virtuálneho) súborového systému. Užívateľský proces, ktorý číta zo súboru, pristupuje skrze jadro najskôr k vnodu a až potom pristupuje k inodu pre konkrétny filesystém. Implementácia vnodov je "štósovateľná", takže podobne ako kempingové stoličky sa dajú na seba vkladať jednotlivé volania a moduly. CryptFS vkladá svoje volanie tak, ako je to naznačené na nasledujúcom obrázku.
Kryptografické súborové systémy Princíp práce CryptFS • Akekoľvek dáta ktoré sú zapisované resp. čítané, prechádzajú v jadre cez vloženú kryptovaciu úroveň a sú kryptované resp. dekryptované, takže na disku je vždy kryptovaná reprezentácia dát. • Implementácia vyžaduje istú mieru manažmentu, takže existujú nástroje na primontovanie a odmontovanie CryptoFS, čo môže urobiť len root. • Každý používateľ tohoto CryptFS má možnosť manažovať svoje kľúče. • Kryptovanie a dekryptovanie je viazané nielen na UID užívateľa ale aj na GID procesu, takže nikto nemá možnosť užívateľské dáta čítať, lebo nemá možnosť vytvoriť proces s už existujúcim GID. • CryptFS používa algoritmus blowfish v CBC móde a je dostupný pod GPL licenciou.
Kryptografické súborové systémy Linux CryptoAPI • Linux CryptoAPI nie je úplne presne kryptovanie súborového systému. Poskytuje len možnosť súborový systém kryptovať. • Toto API bolo pôvodne obsiahnuté v kernelint patchi, ktorý bol určený pre jadrá série 2.2. V sérii 2.4 sa toto API prirodzene vyvynulo do univerzálneho kryptoAPI pre kernel-land funkcie. • Princíp je naznačený na nasledujúcich obrázkoch a v podstate ido o vloženie ďalšieho drivera medzi dáta a užívateľa pričom tento vložený driver volá cryptoAPI.
Kryptografické súborové systémy Princíp práce CryptoAPI – I.
Kryptografické súborové systémy Princíp práce CryptoAPI – II.
Kryptografické súborové systémy EFS pod Windows 2000 – I. • EFS je implementované pomocou PKI schémy. Samotné dáta sú kryptované rýchlym symetrickým algoritmom, ktorý je náhodne generovaný. Tento kľúč sa volá file encryption key a po zakryptovaní samotných dát v súbore je následne zakryptovaný verejným PKI kľúčom užívateľa, ktorý sa získa z X.509v3 certifikátu užívateľa. Privatna časť uživateľského PKI kľúča sa použije na rozkryptovanie file encryption key ak chce užívateľ neskôr pristúpiť k dátam. • Implementácie EFS podporuje symetrické algoritmy chránené heslom, pretože takéto schémy sú slabé kôli slabým heslám, ktoré si užívatelia volia. EFS navyše kryptuje file encryption key ďalším PKI verejným kľúčom, napríklad kľúčom administrátora, takže neskôr v prípade poreby môže administrátor použiť svoj tajný PKI kľúč a rozkryptovať file encryption key a pomocou neho následne kozkryptovať samotný súbor (ak napríklad užívateľ stratil svoj tajný kľúč). Zakryptovanie a rozkryptovanie sú naznačené na nasledovných schémach:
Kryptografické súborové systémy EFS II. - zakryptovanie
Kryptografické súborové systémy EFS III. - odkryptovanie
Kryptografické súborové systémy EFS IV. • EFS je navrhnutý tak, aby bol pre užívateľa transparentný • Implementácia EFS je naznačená na nasledovnej schéme a pozostáva zo štyroch častí: - EFS driver - filesystem runtime knižnica - EFS služba - rôzne API. • EFS driver je umiestnený nad NTFS driverom a komunikuje s EFS službou na generovanie file encryption keys prípadne iných kryptooperácií. Driver potom posunie dáta do runtime knižnice aby sa vykonali rôzne operácie nad súborovým sytémom. Komunikácia však nie je priama, ale používa sa NTFS call control mechanizmus. EFS služba je súčasť security subsystému a používa kanál medzi LSA (Local Security Authority) a kernelovým security monitorom na komunikáciu s EFS driverom. EFS služba komunikuje s CryptoAPI (nemýliť si s linuxovým CryptoAPI) v user-lande a zabezpečuje manažment okolo kľúčov a iné služby. Tiež poskytuje interface pre Win32 API teda programátorksý intrerface pre dekryptovanie a enkryptovanie a obnovu súborov, ako aj import a export súbrov. NasledovNá schéma znázorňuje implementáciu EFS.