Documente Academic
Documente Profesional
Documente Cultură
Sisteme de operare
Sistemul de fiiere NTFS
Coordonator tiinific:
Dr. Ing. Stncescu tefan
Studeni:
Sava Alexandru Nicolae
Lascu Ionu Viorel
Grupa 433A
2015
Cuprins
1. Introducere...............................................................................................................3
2. Capitolul 1: Atributele fiierelor NTFS................................[Sava A.]........................4
3. Capitolul 2: Directoarele NTFS..........................................[Lascu I.]........................6
4. Capitolul 3: Structura de date B-tree..................................[Sava A.]........................8
3.1. Algoritmul B-tree.................................................................................8
3.2. Clustere de fiiere.............................................................................10
4. Capitolul 4: Compresia fiierelor NTFS..............................[Sava A.]......................12
5. Capitolul 5: Criptarea fiierelor NTFS................................[Sava A.]......................14
5.1 Criptarea EFS....................................................................................14
5.2 Structura unui fiier criptat.................................................................15
6. Capitolul 6: Atributele EFS.................................................[Lascu I.]......................19
7. Concluzii.............................................................................[Lascu I.].....................21
8. Bibliografie..............................................................................................................22
Introducere
La nceputul anilor 1990, Microsoft i-a propus s creeze un sistem de operare
de nalt performan i fiabilitate, dar totodat s ofere i siguran utilizatorilor. La
momentul respectiv, sistemele de operare Microsoft erau MS-DOS (Microsoft
Disk Operating System) i Windows 3.x, dar niciunul dintre ele nu avea
caracteristicile sau puterea necesar pentru ca Microsoft s depseasc UNIX sau
alte sisteme de operare "serioase". Una dintre cele mai mari probleme ale MS-DOS
i Windows 3.x a fost c aveau la baz sistemul de fi iere FAT ( File Allocation Table).
FAT oferea o mic parte din caracteristicile necesare pentru stocarea i gestionarea
datelor ntr-un mediu de reea, corporativ. Pentru a crete performanele noului sitem
de operare - Windows NT, Microsoft a fost obligat s introduc un nou sistem de
fiiere care s nu fie bazat pe FAT. Rezultatul a fost New Technology File System sau
NTFS.
NTFS a fost conceput pentru a ndeplini o serie de obiective specifice. Cele
mai importante dintre acestea sunt:
- Fiabilitate: O caracteristic important a unui sistem de fi iere este aceea de
a fi n msur s rezolve orice problem de sistem fr pierderi de date. NTFS pune
n aplicare caracteristici specifice pentru a permite tranzac iilor importante s fie
finalizate ca un ntreg, pentru a evita pierderea de date i pentru a mbunt i
tolerana la erori.
- Securitate i controlul accesului la fiiere: O slbiciune major a sistemului
de fiiere FAT este c acesta nu include nicio modalitate de a controla accesul la
dosare sau fiiere pe un hard disc. Fr acest control, este aproape imposibil de a
rula aplicaii i reele care necesit securitate i capacitatea de a gestiona cine poate
citi sau scrie diferite date.
- Dimensiune: La nceputul anilor 1990, FAT a fost limitat de catre versiunea
FAT16 a sistemului de fiiere, ceea ce a permis utilitarea parti iilor de pn la 4 GB.
NTFS a fost proiectat pentru a permite crearea de partiii de dimensiuni foarte mari,
n ateptarea creterii capacitilor hard disc-urilor, precum i utilizarea de matrice
RAID.
- Eficien la stocare: n momentul n care a fost dezvoltat NTFS, majoritatea
calculatoarelor utilizau FAT16, ceea ce duce la neutilizarea unui spa iu semnificativ
de pe hard disc. NTFS evit aceast problem prin utilizarea unei metode diferite de
alocare a spaiului pentru fiiere.
- Nume de fiiere lungi: NTFS permite numelor de fi iere s aib o lungime de
pn la 255 de caractere, n loc de 8+3 caractere, limitarea conven ional a sitemului
de fiiere FAT.
3
ID
0x10
Standard
Information
0x20
Attribute List
0x30
File Name
0x40
Object ID
0x50
Security
Descriptor
__________________________________________________________________________
ID
*Descrie toate fiierele de pe disk, inclusiv nume fiierelor, marcajele de timp, nume
flux, indici, identificatori de securitate i fiierul cu atribute ca " read-only", "comprimat", 4
"criptat", etc.
0x60
Volume Name
0x70
Volume
Information
0x80
Data
0x90
0xA0
0xB0
Index Root
Index Allocation
Bitmap
0xC0
Reparse Point
0x100
Logged Utility
Stream
2. Directoarele NTFS
n spatele fiecarui obiect NTFS dintr-un disc exist cel puin un fi ier, chiar
directoare. Un director este un indice de nume de fi iere. Din punct de vedere al unui
5
utilizator, un director este un tip special de fi ier care poate con ine alte fi iere. Un
dosar este folosit pentru a crea o ierarhie logic a fi ierelor pe un disc.
Din punctul de vedere al sistemului NTFS, un director este un indice de nume
de fiiere, sau, mai exact, o secven de intrri de index care con in un atribut nume
de fiier. O intrare index este creat pentru fiecare atribut nume de fi ier al fiecrui
fiier coninut n dosar. Acest tip de intrri index pot fi comparate mpreun n ordinea
alfabetic n funcie de atributul nume de fi ier.[1]
ID
Descriere
0x10
0x30
0x50
0x90
0xA0
0xB0
$STANDARD_INFORMATION
$FILE_NAME
$SECURITY_DESCRIPTOR
$INDEX_ROOT
$INDEX_ALLOCATION
$BITMAP
Nume
dirname
$I30
$I30
$I30
Intrare Index (Index Entry): un index reprezint o list cu intrri din Index.
Fiecare intrare conine numele fiierului, informa iile standard i un pointer la
informaiile de securitate.
Radacina Index (Index Root): acest atribut, care este rezident ntotdeauna, are
mai multe intrri de index. Formeaz rdcina arborelui index.
Alocarea Index (Index Allocation): un set de runs* spune sistemului unde sunt
ceilali indici.
Index Bitmap: indic clusterele (index-urile) care sunt n uz.
Un director nu are atribut de date. Dar, ca un index, acesta are trei atribute de
fiier: index_root, index_allocation i bitmap. Indici sunt stocai n nodurile unui
arbore B+ n felul urmtor: - fiecare nod al arborelui con ine una sau mai multe intrri
de index. n cadrul unui nod, intrrile din index sunt sortate n ordine cresctoare;
- fiecare intrare index poate indica un alt nod (sub-nod)
care conine intrri din index mai mici;
- nodul rdcin este n fluxul atributului index_root, alte
noduri (sub-noduri) sunt tampoane index.[1]
___________________________________________________________________
* Atributele nerezidente sunt stocate la intervale de clustere, numite runs. Fiecare
run este definit de clusterul su iniial i lungimea sa.
Dei duplicarea fluxului atributului indexat ntr-o intrare index poate dura ceva
timp, aceasta este necesar pentru a putea naviga printr-un un index fr a deschide
efectiv toate fiierele indexate (FAT i HPFS - High Performance File System fac
acest lucru, de asemenea).
ntr-un director, trei atribute de fiier: index_root, index_allocation, i bitmap
sunt numite "$I30", iar un director reprezint doar un Index al atributelor de fiier al
cror tip este 30. Dar NTFS a fost gndit ca un sistem de fi iere de baze de date i
se pot crea, de fapt, index-uri bazate pe orice atribute de fiier care este rezident
ntotdeauna. De exemplu, putem crea un nou fi ier atribut etichetat "nume autor" i
sorta fiierele n funcie de acest criteriu.[1]
_________________________________________________________________________
_
*Arborele B+ (B+ Tree): este o structur de date tip arbore care pstreaz datele
sortate i permite cutri, acces secvenial, inserii i tergerea unor noduri n timp
logaritmic. Arborele B+ reprezint o generalizare a unui arbore binar de cutare, n care un
nod poate avea mai mult de doi copii. Spre deosebire de arbori binari de cutare cu autoechilibrare, arborele B+ este optimizat pentru sisteme care scriu i citesc blocuri mari de
date. Acesta este frecvent utilizat n bazele de date i sisteme de fiiere.
Dac un arbore B-tree are nlimea h, rdcina conine cel puin o cheie, iar
toate celelalte noduri conin cel puin t-1 chei. Deci, exist cel pu in 2 noduri la
adncime de 1, cel puin 2*t noduri la adncime de 2, cel pu in 2*t 2 noduri la
adncime de 3, i aa mai departe, pn la adncimea h, unde exist cel pu in 2*t h-1
noduri. Astfel, numrul n de chei satisface inegalitatea t h(n+1)/2. Avnd un algoritm
de baz-t al ambelor pri rezult: hlogt h ((n+1)/2).
Structurile B-tree sunt utilizate n sistemele de fiiere. Directoare, n NTFS,
sunt indexate pentru a face mai rapid gsirea unei anumite intrri. Intrrile sunt
salvate, n arborele B-tree, n ordine alfabetic. Aceast organizare necesit mai mult
timp pentru adugarea de fiiere (fa de o organizare FIFS), ns este mai rapid
cnd utilizm un director. Exist dou atribute de sistem NTFS care descriu
coninutul B-Tree: INDEX_ROOT i INDEX_ALLOCATION. INDEX_ROOT reprezint
una sau mai multe structuri "Index Entry", care descriu fiecare un fiier sau director.
"Index Entry" conine o copie a atributului FILE_NAME al fiierului sau subdirectorului. Pentru directoare mici, atributul INDEX_ALLOCATION nu va exista, iar
toate informaiile vor fi salvate n structura INDEX_ROOT. Coninutul acestui atribut
este format din unul sau mai multe "Index Buffers". Fiecare "Index Buffers" conine
unul sau mai multe structuri "Index Entry", care sunt aceleai cu cele gsite n
INDEX_ROOT. Avantajul utilizrii arborelui B-tree este evident atunci cnd NTFS
enumer fiierele dintr-un director. [3]
Algoritmul B-tree permite NTFS s grupeze, sau indexeze, fi iere cu nume
similare, iar apoi permite cutarea doar n grupul care con ine fi ierul, minimiznd
numrul fr accese la disc pentru a gsi un anumit fi ier. Datorit structurii B-tree,
NTFS este mai rapid decat FAT pentru dosare mari, deoarece FAT trebuie s
scaneze toate numele de fiiere dintr-un director, nainte de listarea fi ierelor.
10
11
NTFS permite comprimarea unui ntreg disc, de unul sau mai multe dosare
ntr-un disc, sau chiar unul sau mai multe fiiere ntr-un dosar dintr-un disc NTFS.
Algoritmii de compresie din NTFS sunt concepui pentru a suporta dimensiuni
de cluster de pn la 4 KB. Cnd dimensiunea cluster-ului este mai mare de 4 KB pe
un disc NTFS, niciuna dintre funciile de compresie NTFS nu sunt disponibile.[6]
NTFS ofer acces n timp real la un fiier comprimat, decomprim fi ierul
atunci cnd este deschis i l comprim atunci cnd acesta este nchis. Cnd scrie i
un fiier comprimat, sistemul rezerv spaiu pe disc pentru dimensiunea
necomprimat. Sistemul recupereaz spaiu nefolosit dup realizarea fiecrei
compresii. [6]
12
_________________________________________________________________________
_
*Transparent Data Encryption (TDE) este o tehnologie dezvolatat att de Microsoft
ct i de Oracle pentru a cripta fiierele bazelor de date. TDE ofer criptarea la nivel de
fiier. TDE rezolv problema protejrii datelor n repaus, criptarea de date att pe hard disk
i, n consecin, asupra mediilor de backup.[7]
Encryption Key) pentru vitez i apoi FEK este asigurat asimetric pentru securitate
maxim. Cnd un utilizator solicit un fi ier criptat, EFS folosete un FEK generat
unic pentru a cripta un fiier i apoi cripteaz FEK folosind cheia public. FEK criptat
este stocat ntr-un fiier antet. Atunci cnd un utilizator cere decriptare, EFS
decripteaz FEK folosind cheia privat a utilizatorului, iar apoi folosete FEK pentru a
decripta fiierul.
Un fiier criptat conine cel puin un FEK stocat, FEK criptat folosind cheia
public encryptor iniial. Domeniul de stocare pentru acest FEK criptat este numit
cmpul de decriptare a datelor (DDF - Data Decryption Field). n plus, n cazul n
care un fiier criptat EFS este partajat, o copie a FEK-ului este criptat folosind cheia
public a utilizatorului nou autorizat, iar FEK-ul criptat este stocat ntr-un alt DDF.[5]
Atunci cnd un utilizator cripteaz un fiier existent, au loc urmtoarele
procese:[5]
1. Serviciul EFS deschide fiierul pentru acces exclusiv.
2. Toate fluxurile de date din fiier sunt copiate ntr-un fi ier temporar text n
directorul temporar al sistemului.
3. Un FEK este generat i folosit pentru a cripta fi ierul folosind DESX ( Data
Encryption Standard X) sau 3DES (Triple Data Encryption Algorithm), n funcie de
politica de securitate. n mod implicit, EFS folose te algoritmul DESX cu cheie de
15
128 de bii pentru a cripta datele de fi iere, dar Windows poate fi configurat pentru a
utiliza algoritmul cu cheie de 168-bit. n acest caz, utilizarea de algoritmi FIPS
conformi trebuie s fie pornit n politica LSA (este dezactivat n mod implicit).
4. Un DDF este creat. Acesta conine FEK-ul criptat folosind cheia public a
utilizatorului. EFS obine automat cheia public a utilizatorului de la X.509 versiunea
3 a certificatului de criptare de fiiere al utilizatorului.
5. Dac un agent de recuperare a fost desemnat prin politica de grup, este
creat un DRF s conin FEK criptat folosind RSA i cheia public a agentului de
recuperare. EFS obine automat cheia public a agentului de recuperare pentru
recuperarea de fiiere, care este stocat n politica de recuperare EFS. Dac exist
mai muli ageni de recuperare, o copie a FEK este criptat folosind cheia public a
fiecrui agent, iar apoi este creat un DRF pentru a stoca fiecare FEK criptat.
6. EFS scrie datele criptate, mpreun cu DDF i CRD, napoi la dosar.
Deoarece criptarea simetric nu adaug date suplimentare, cre terea dimensiunii
fiierului este minim, dup criptare. Metadatele, constand n principal din FEK-uri
criptate, este de obicei mai mic de un kilobyte. Mrimea fi ierului n bytes nainte i
dup criptare este raportat ca fiind identic.
7. Fiierul temporar este ters.
Atunci cnd un utilizator salveaz un fi ier ntr-un folder care a fost configurat
pentru criptare, procesul este similar cu excep ia faptului c fi ierul temporar nu este
creat. Modul n care este realizat criptarea unui fiier cu EFS este prezentat in
Figura 5.
6. Atributele $EFS
17
Cnd NTFS cripteaz fiiere, stabilete flags criptate (0x4000) pentru fiier i
creeaz $EFS atribut pentru dosarul n care stocheaz DDF-urile i DDR-urile. Acest
atribut are id = 0x100 la NTFS i poate fi destul de lung, ocupnd de la 0,5 K la mai
muli kilobytes, n funcie de numrul de DDF-uri i DRF-uri. [4]
n Figura 6 este reprezentat atributul $ESF:
18
19
20
Concluzii
Fiiere i directoarele de pe un disc NTFS sunt fie comprimate, fie
decomprimate. Starea de compresie a unui director nu reflect starea de compresie
a fiierelor din acel director. Spre exemplu, un director poate fi comprimat, dar toate
sau o parte din fiierele din acel director ar putea fi decomprimate, n cazul n care au
fost mutate dintr-un director decomprimat sau dac am ales s decomprimm unele
dintre fiierele din directorul respectiv.
Putem seta starea de compresie a unui director i comprima sau decomprima
fiiere cu ajutorul My Computer sau un program de linie de comand numit Compact.
Atunci cnd se utilizeaz My Computer, putem seta starea de compresie a unui
director NTFS fr a schimba starea de compresie a fi ierelor existente n acel
director. Dac avem permisiunea de Read/Write, putem schimba starea de
compresie la nivel local sau ntr-o reea. Avem op iunea de a selecta directoare
individuale sau fiiere pentru a comprima sau decomprima.
Mutarea i copierea fiierelor sau a directoarelor n volume de disc pot
schimba starea lor de compresie. Starea de compresie a acestor fi iere i directoare,
i sistemul de fiiere n care au fost create, pot avea un impact asupra modului n
care acestea sunt afectate n timp ce sunt mutate sau copiate. Starea de compresie
a unui fiier sau director NTFS este controlat de atributul de compresie.
Encrypting File System poate reprezenta un alt nivel de securitate n cazul n
care este configurat corect. Calculatoarele pot fi securizate prin exportul cheii de
recuperare (engl. recovery key) i utilizarea programului syskey pentru a fora
utilizatorii s introduc o expresie de acces sau o dischet pentru accesarea
sistemului. Din nefericire, utilizarea syskey nu este cea mai bun i totodat
accesibil soluie. Numai utilizatorii cu calitatea de administrator poate rula programul
i nu exist nicio posibilitate pentru a creea o "parol de administrator." ntr-o
companie de dimensiuni moderate, acest lucru poate ngreuna munca suportului
tehnic. O configurare EFS sigur nu este practic pentru un sistem independent.
EFS a fost proiectat pentru a lucra ntr-un mediu Windows. n acest domeniu, nici
SAM database, nici cheia de recuperare nu poate fi atacat, deoarece aceasta nu
exist fizic pe maina local. Deoarece nimic nu se afl pe hard-disk , nu exist
niciun motiv de a folosi utilitarul syskey pentru crearea unei parole de adiministrator.
Acest lucru nseamn c toate funciile de management pot fi manipulate de la
distan de ctre administratorul de domeniu i c fi ierele pot fi criptate n siguran
cu impact minim asupra metodelor de suport tehnic.
21
Bibliografie
[1]. Rajeev Nagar, Windows NT File System Internals, OReilly, 2000
[2]. Mark Russinovich, David A. Solomon, Alex Ionescu, Windows Internals, Sixth
Edition, Part 1, Microsoft Press, 2012
[3]. Petra Koruga, Miroslav Baca, Analysis of B-tree data structure and its usage
in computer forensics, Faculty of Organization and Informatics, University of
Zagreb, Croatia, 2010
Referine internet
[4]. http://ntfs.com/ntfs-files-types.htm
[5]. https://technet.microsoft.com/en-us/library/bb457116.aspx
[6]. http://ntfs.com/ntfs-compressed.htm
[7]. http://docs.oracle.com/cd/B19306_01/network.102/b14268/asotrans.htm#ASO
AG600
22