Windows Internals Tour - Roma Tre University

62
Windows Internals Tour Windows File System Andrea Dell’Amico – Microsoft Student Partner [email protected]

Transcript of Windows Internals Tour - Roma Tre University

Page 1: Windows Internals Tour - Roma Tre University

Windows Internals Tour

Windows File System

Andrea Dell’Amico – Microsoft Student Partner

[email protected]

Page 2: Windows Internals Tour - Roma Tre University

21 Aprile 2012 – Roma 3

Page 3: Windows Internals Tour - Roma Tre University

Sommario

• File Systems supportati da Windows

• NTFS Design Goals

• Architettura del File System Driver

• Operazioni NTFS

• Windows File System On-Disk Structure

• Compressione NTFS

• BitLocker

• One more thing…

Page 4: Windows Internals Tour - Roma Tre University

Windows File System - Terminology

Settori:

– Blocchi indirizzabili in hardware su un media di storage

– La dimensione tipica è di 512 bytes in un sistema x86

Formato File System:

– Definisce come i dati sono memorizzati nel media di storage

– Impatta sulle caratteristiche: permessi e sicurezza, limitazioni, supporto dischi grandi dimensioni

Clusters:

– Blocchi indirizzabili che possono essere usati dal FS

– La dimensione è sempre multipla di quella dei settori

– Dimensione = tradeoff tra efficienza di spazio e tempo di accesso

Metadata:

– Sono informazioni di supporto alla gestione del FS

– Contiene le informazioni per localizzare i file e directory in un volume

– Tipicamente non accessibili alle applicazioni

Page 5: Windows Internals Tour - Roma Tre University

Formati supportati da Windows

• CD-ROM File System (CDFS)

• Universal Disk Format (UDF)

• File Allocation Table (FAT12, FAT16, FAT32,

exFAT)

• New Technology File System (NTFS)

Page 6: Windows Internals Tour - Roma Tre University

NTFS

NTFS è il file System Nativo di Windows

NTFS usa indici a 64-bit per l’identificazione dei cluster

– In teoria può indirizzare volumi fino a 16 exabytes (16 miliardi di GB)

– Da Windows 2000 il limite è stato settato a 128 TB utilizzando cluster da

64-KB indirizzabili a 32-bit

Perché usare NTFS al posto del Fat? FAT è semplice, rende alcune

operazioni più veloci, ma NTFS supporta:

– File e HD di grandi dimensioni

– Migliori prestazioni in HD grandi, con grandi cartelle e piccoli file

– Affidabilità

– Sicurezza

Page 7: Windows Internals Tour - Roma Tre University

NTFS Design Goals

Superare i limitazioni inerenti a FAT / HPFS

– FAT (File Allocation Table) non supporta dischi di grandi

dimensione

– FAT16 (MS-DOS file system) supporta solo 216 clusters e dischi da 2 GB ( con clusters da 64 Kb)

– FAT / root directory rappresentano un singolo punto di fallimento

– Il numero di record nella root directory è limitato

– HPFS ha rimosso alcune limitazioni del FAT, ma non supporta sicurezza, tecnologie di ripristino, ridondanza dei dati e fault-tolerance (versioni successive di HPFS supportano fino a dischi da 2TeraByte)

Page 8: Windows Internals Tour - Roma Tre University

NTFS Recoverability

Nel passato l’ottimizzazione dell’I/O dei PC era focalizzato sulla velocità

NTFS ha cambiato questa visione – l’affidabilità è diventata la cosa più importante:

Le operazioni di I/O che alterano la struttura di NTFS sono implementate con transazioni atomiche

– Cambio della struttura delle directory,

– Estendere file, allocare lo spazio per nuovi file

Le transazioni devono essere completate o annullate

NTFS memorizza in modo ridondante le informazioni vitali per l’FS

– Al contrario in FAT e HPFS, c’è un singolo settore che contiene tutte le informazioni critiche

– Un errore di lettura di questo settore causa la perdita del volume

Page 9: Windows Internals Tour - Roma Tre University

NTFS Security and Recoverability

La sicurezza di NTFS deriva dal modello a oggetti di Windows L’apertura di un file è implementata come un oggetto, i descrittori di sicurezza sono memorizzanti come parte del file

Il sistema di gestione della sicurezza di NT verifica i diritti di accesso quando un processo tenta di accedere ad un oggetto

L‘amministratore e owner del file possono impostare le proprietà di sicurezza

NTFS recoverability garantisce l’integrità della struttura del FS Non può garantire il completo ripristino dei file degli utenti

Modello stratificato + FTDISK driver

– Mirroring of data – RAID level 1

– Striping of data – RAID level 5 (un disco con informazioni di parità)

Page 10: Windows Internals Tour - Roma Tre University

Altre funzionalità di NTFS

Multiple data streams

Unicode-based names

Hard links

Junctions

Compression and sparse files

Change logging

Per-user volume quotas

Link tracking

Encryption

POSIX support

Defragmentation

Page 11: Windows Internals Tour - Roma Tre University

Dischi e File Grandi

FAT16: – Tabella a 16-bit memorizza la struttura del disco

– Fino a 65.536 clusters per volume (#files !!); la dimensione dei cluster è modificabile

FAT32: – Introdotto con Windows 2000

– 4kb clusters per volumi fino a 8 GB

– Può riallocalre la root directory / mantenere una copia di backup della FAT

– La Root directory è una lista di cluster, non ci sono limiti al numero di entry

HPFS (supporto rimosso in NT 4.0): – 32 bits per enumerare le unità di allocazione, 4 GB la dimensione massima dei

file

– Alloca lo spazio in settori fisici da 512 bytes (alcuni dischi con geometria a 1024 bit per settore non sono supportati)

Page 12: Windows Internals Tour - Roma Tre University

Dischi e File Grandi (cont.)

NTFS indica i cluster con indici a 64-bit

Fino a 264 clusters di 64 Kbytes di dimensione

Dimensione massima dei file: 264 bytes

Dimensione dei cluster modificabile – 512 bytes per dischi piccoli

– Fino a 64Kb per dischi grandi

Page 13: Windows Internals Tour - Roma Tre University

NTFS Cluster Size

La dimensione dei cluster dipende dalla dimensione del disco

– 512 bytes per dischi piccoli (up to 512 MB)

– 1 KB per dischi fino a 1 GB

– 2 KB per dischi tra 1 e 2 GB

– 4 KB per dischi più grandi di 2 GB

Tradeoff: frammentazione del disco e spazio sprecato

Page 14: Windows Internals Tour - Roma Tre University

Multiple Data Streams

In NTFS, ogni unità di informazione associata ad un file (il

nome, il proprietario, i time stamp, il contenuto, etc) sono

implementate come un file attribute (NTFS object attribute)

Ogni attributo consiste in un singolo stream, che è una

sequenza di bytes

– Questa generica implementazione permette di aggiungere nuovi

attributi ad un file

Page 15: Windows Internals Tour - Roma Tre University

Multiple Data Streams

Un file NTFS ha uno stream di default che non ha nome

– Una applicazione può creare nuovi stream, fornendone un nome

e riferendosi a questi con il nome scelto

– Al fine di non modificare le Microsoft Windows I/O API, che

prendono come argomento un nome di file, i data stream

aggiuntivi possono essere riferiti aggiungendo : al nome del file:

es myfile:stream2

Page 16: Windows Internals Tour - Roma Tre University

Unicode Names

Il supporto Unicode è ereditato da Windows,

è quindi possibile salvare file, directory e

volumi con un set completo di caratteri

Page 17: Windows Internals Tour - Roma Tre University

Hard Links •Un Hard link consente di riferire path diversi allo stesso file

o directory

– Se si crea un hard link a C:\Users\Documents\Spec.doc che si

riferisce al file C:\My Documents\Spec.doc, I due percorsi

puntano allo stesso file fisico, una modifica dell’uno si riflette su

entrambi

Page 18: Windows Internals Tour - Roma Tre University

Junctions

•Le Junctions sono anche chiamati symbolic

links, permettono di redirigere i file o le

directory ad altre posizioni

– Se il path è C:\Drivers è una junction che redirige

a C:\Winnt\System32\Drivers, una applicazione

che legge C:\Drivers\Ntfs.sys, avrebbe accesso a

C:\Winnt\System\Drivers\Ntfs.sys

– Può essere creata con il comando:

mklink /J NomeJunction PercorsoDiDestinazione

Page 19: Windows Internals Tour - Roma Tre University

Junctions

•Nei sistemi

precedenti a Windows

Vista, le junction

possono essere create

con il juction tool di

Sysinternals o il tool

linkd tool dal

Resource Kits

Page 20: Windows Internals Tour - Roma Tre University

Change Logging

Molte applicazioni, come le utility di backup

necessitano di monitorare i cambiamenti dei

volumi su cui operano

C’è un quindi un modo per l’applicazione di

“aspettare” la disponibilità di una directory

ed essere notificata in caso di modifica

Page 21: Windows Internals Tour - Roma Tre University

Change Logging

Con Windows 2000, NTFS include I change

log, che tengono traccia degli eventi che

avvengono nel FS, sono implementati come

record metadata

– Se il file supera la dimensione imposta, NTFS

elimina I dati più vecchi

– Le applicazioni devono usare le Win32 API per

leggere gli eventi

– Il log è condiviso e in genere abbastanza

grande per tenere traccia di tutte le modifiche

anche in caso di operazione con grandi I/O

Page 22: Windows Internals Tour - Roma Tre University

Per-User Volume Quotas

Le NTFS Quota permettono di definire la quantità di spazio

disco utilizzabile da ciascun utente.

– Può essere configurato per registrare nell’Event Log il

superamento della soglia di attenzione da parte di utente.

– Se un utente supera il limite imposto, l’evento viene registrato e

l’operazione di scrittura interrotta con un avviso di “disco pieno”

Lo spazio occupato viene calcolato in base alla somma

della dimensione logica dei file e directory che hanno

l’utente come proprietario degli stessi.

Page 23: Windows Internals Tour - Roma Tre University

Link Tracking

Numerosi tipi di link simbolici sono usati dalle applicazioni:

– I collegamenti permettono agli utenti di collocare i file nel loro ambiente

di lavoro (es desktop) indipendentemente dalla loro posizione nel file

system

– Object linking and embedding (OLE) permettono ai documenti di

un’applicazione di essere nei documenti di un’altra

In passato erano difficili da gestire

– Se spostavi la sorgente il link si rompeva

Ora Windows ha un servizio di link-tracking, TrkWks (gira dentro

services.exe), che tagga le sorgenti con un unique object ID e le rialloca

in caso di spostamenti

Page 24: Windows Internals Tour - Roma Tre University

Encryption

L’implementazione della sicurezza di NTFS è applicabile a file e

directory. Non è efficace in caso di violazione fisica della macchina:

– Installazione parallela di altra copia di Windows

– NTFSDOS

– Boot Disk / Live / etc.

Encrypting File System (EFS)

– Come la compressione è trasparente all’utente

– E’ implementata come attributo per file e directory

– I file crittografati con EFS possono essere letti solo dall’account che

possiede la chiave privata corrispondente. La chiave privata è rilasciata

solo dopo l’autenticazione dell’utente stesso.

– EFS è integrato al livello più basso di NTFS anche se è implementato

come un file system filter.

Page 25: Windows Internals Tour - Roma Tre University

POSIX Support

Il supporto POSIX richiede alcune

caratteristiche specifiche implementate in

NTFS:

– Un descrittore di protezione per i gruppi

– Nomi dei file case sensitive

– Indicazioni di accesso e informazioni

dettagliate sull’orario.

Page 26: Windows Internals Tour - Roma Tre University

Filenames

POSIX:

– Case-sensitive, trailing periods & spaces

– NTFS namespace equivalente al POSIX space

Win32:

– File name lunghi, con unicode

– Punti multipli, spazi, punti iniziali

MS-DOS:

– Nomi da 8.3 caratteri, non case sensitive

NTFS genera i nomi MS-DOS per i file Win32 automaticamente

– Funzionano come alias NTFS

– Memorizzati nella stessa directory; dir /x

POSIX

subsystem

Win32

subsystem

MS-DOS

Win16 clients

Namespaces

Page 27: Windows Internals Tour - Roma Tre University

Deframmentazione

•Frammentazione: un file si dice frammentato quando non è memorizzato in cluster contigui

•La frammentazione è significativa solo nei dischi a piatti rotanti, nei nuovi supporti SSD (Solid State Disk) invece non esiste.

Page 28: Windows Internals Tour - Roma Tre University

Deframmentazione

Anche se è comune opinione che NTFS non si frammenti,

questo non è vero:

– Le API della deframmentazione sono incluse fin da NT 4

– Windows 2000 ha introdotto un deframmentatore non

schedulabile

– In Windows XP è stata aggiunta una implementazione da linea di

comando

– In Windows 7 il defrag

è automatico, disattivato di

default se è presente un

disco allo stato solido

Page 29: Windows Internals Tour - Roma Tre University

NTFS File System Driver

Cache

manager

Virtual memory

manager

I/O manager

NTFS driver

Fault tolerant

driver

Disk driver

Access the mapped

file or flush the cache

Flush the

log file

Write the

cache

Log file

service

Log the transaction

Read/write the file

Load data

from disk

into

memory

Read/write

a mirrored

or striped

volume

Read/write

the disk

Page 30: Windows Internals Tour - Roma Tre University

Componenti di NTFS

Cache Manager •System wide caching

– Per NTFS e altri drivers di file systems

– Includendo i driver di network file system (server and redirectors)

•Cached files sono mappati nella memoria virtuale – L’interfaccia specializzata da Cache Manager NT manager della

memoria virtuale

– Il Memory manager ordina a NTFS di accedere ai driver del disco ed ottenere i file

Log File Service – 2 copie dei transaction logs

– I Transaction log sono scritti su disco prima che la cache in scrittura sia inviata al disco stesso

– Cache manager esegue il flush dell’operazione corrente

Page 31: Windows Internals Tour - Roma Tre University

NTFS & File Objects

File object

Handle table

Process

File object Data

attribute

User-

defined

attribute

Stream

control

blocks

File

control

block

Master file

table

NTFS data

structures (used to manage

the on-disk

structure) NTFS

database (on disk)

Object

manager

data

structures

App accesses files as

NT objects by handles.

Object Manager and security

subsystem verify access rights

Page 32: Windows Internals Tour - Roma Tre University

NTFS On-Disk Structure

I volumi corrispondono alle partizioni logiche dei dischi fissi

E’ possibile creare volumi fault tollerant distribuiti su più dischi

– Variano dalla SKU di Windows le modalità supportate

I volumi consistono in una serie di file + lo spazio vuoto

– FAT volume: alcune aree sono formattate in modo specifico per l’FS

– NTFS volume: tutti i dati sono memorizzati come normali file

NTFS fa riferimento internamente ai cluster

– Cluster factor: #sectors/cluster; varia con la dimensione dl volume; (l’intero numero dei settori fisici è sempre potenza di 2)

Logical Cluster Numbers (LCNs):

– Si riferiscono alla locazione fisica dei cluster

– LCN sono l’indice contiguo di tutti i cluster del volume

Page 33: Windows Internals Tour - Roma Tre University

Master File Table

Tutti i dati memorizzati in un volume sono contenuti in un file

MFT: Il cuore della struttura dei volumi NTFS

– Implementata come un array di file records

– Una riga per ogni file del volume (inclusa una riga per la MFT stessa)

– Archivio dei Metadata con le informazioni sulla struttura del file system (file nascosti; $MFT; $Volume...)

– Più di un MFT record per i file molto frammentati

MFT

MFT copy (partial)

Log file

Volume file

Attribute def. table

Root directory

Bitmap file

Boot file

Bad cluster file

User files and dirs.

...

NTFS

metadata

file

Page 34: Windows Internals Tour - Roma Tre University

Operazioni NTFS

Montare un volume 1. NTFS controlla nei boot file per individuare l’indirizzo fisico della

MFT ($MFT)

2. Il secondo record della MFT punta ad una copia della MFT stessa ($MFTMirr)

– Necessaria per trovare i metadati se la MFT è corrotta

3. I record della MFT contengono la mappatura VCN a LCN

4. NTFS ottine dalla MFT l’indirizzo dei metadati

– NTFS apre questi file

5. NTFS esegue le operazioni di ripristino

6. Il file system è ora pronto e accessibile all’utente

Page 35: Windows Internals Tour - Roma Tre University

NTFS metadata

•NTFS writes to log file ($LogFile)

– Memorizza tutti i comandi che cambiano la struttura del volume

•Root directory:

– Quando NFTS cerca di aprire un file, parte sempre dalla root directory

– Quando il file è trovato, ne memorizza il riferimento della MFT

– Nelle seguenti operazioni di I/O è possibile accedere al record MFT direttamente

•Bitmap file ($Bitmap):

– memorizza lo stato di allocazione del volume (1 bit, 1 cluster)

•Boot file ($Boot):

– Contine il codice del bootstrap

– E’ memorizzato in una specifica area del disco

– Rappresentato come file -> file ops. possible (!) (non è editabile)

Page 36: Windows Internals Tour - Roma Tre University

NTFS metadata (contd.)

Bad-cluster file ($BadClus) – Memorizza la locazione dei Bad-Cluster

Volume file ($Volume) – Contiene: nome del volume, versione NTFS

– Bit, che indica se il volume è corrotto

Attribute Definition Table ($AttrDef) – Definisce quali sono gli attributi supportati dal

volume

– Indica cosa può essere indicizzato, recuperato, etc.

Page 37: Windows Internals Tour - Roma Tre University

LCN vs VCN

NTFS si riferisce alle locazioni fisiche attraverso LCN

Physical cluster = LCN * cluster-factor

Virtual Cluster Numbers (VCNs): Memorizza i cluster che appartengono ad un file; mappato sul LCN LCNs non sono necessariamente fisicamente contigui

Page 38: Windows Internals Tour - Roma Tre University

File Records &

File Reference Numbers

I file nei Volumi NFTS sono identificati dal file reference

– File number == index in MFT

– Sequence number – usato per i controlli di consistenza; incrementato ogni volta che il file è riusato

File Records:

– Un file è una collezione di coppie attributi/valori (uno di questi è il dato)

– Altri attributi: filename, time stamp, security descriptor,...

– Ogni attributo del file è memorizzato come uno stream di byte all’interno del file

Sequence

number File number

0 63 47

Page 39: Windows Internals Tour - Roma Tre University

File Records (contd.)

NTFS non legge e scrive file:

– Legge e scrive attributi

– Operazioni: create, delete, read (byte range), write (byte range)

– Read/write lavorano su attributi senza nome

Filename Standard

information

Security

descriptor Data

Master File Table

MFT record for a small file

Windows optimization: Security descriptors

are stored in a central file and referenced

by each file record (saves disk space)

Page 40: Windows Internals Tour - Roma Tre University

Attributi Standard dei file su NTFS

Attribute Description

Standard

information

File attributes: read-only, archive, etc; time stamps;

creation/modification time; hard link count

Filename Name in Unicode characters; multiple filename

attributes possible (POSIX links!!); short names for

access by MS-DOS and 16-bin Win applications

Security descriptor Specifies who owns the file and who can access it

data Contents of the file; a file has one default unnamed data

attribute; directory has no default data attrib.

Index root, index Three attributes used to implement filename allocation,

bitmap index for large directories (dirs. only)

Attribute list List of attributes that make up the file and first reference

of the MFT record in which the attribute is located (for

files which require multiple MFT file records)

Page 41: Windows Internals Tour - Roma Tre University

Attributi (contd.)

Tutti gli attributi in un file record hanno un nome e un valore

NTFS identifica gli attributi con:

– Nomi maiuscoli che iniziano con $: $FILENAME, $DATA

Attribute‘s value: Byte stream

– Il nome del file per $FILENAME

– I Bytes di dati per $DATA

I nomi degli attributi corrispondo ad un typecode numerico

Gli attributi dei file nel record MFT sono memorizzati nell’ordine dei typecode

– Alcuni attributi possono comparire più di una volta (es. Nome del file)

Page 42: Windows Internals Tour - Roma Tre University

MS-DOS filenames in NTFS

Il nome NTFS e il nome MS-DOS sono memorizzati nello stesso record e puntano allo stesso file

– La rinominazione cambia entrambi i nomi

– Apertura, lettura, scrittura, cancellazione lavorano con entrambi i nomi allo stesso modo.

POSIX hardlinks sono implementati allo stesso modo

– Cancellare un file con più nomi, decrementa solo il contatore dei link

Generazione dei nomi MS-DOS:

1. Rimuove caratteri illegali, rimuove altri caratteri non alfanumerici ad eccezione dei punti, tronca a 6 caratteri.

2. Concatena ~1 al nome; tronca l’estensione a 3 caratteri, tutti maiuscoli

3. Inscrementa ~1 se trova duplicati nella stessa cartella

NTFS filename Standard info MS-DOS filename Security desc. Data

MFT file record with MS-DOS filename attribute

Page 43: Windows Internals Tour - Roma Tre University

Resident & Nonresident Attributes

File Piccoli:

– Tutti gli attributi sono memorizzati nella MFT

– Gli attributi che risiedono nella MFT sono chiamati „resident“

– Tutti gli attributi iniziano con un header (sempre contenuto nella MFT)

– L’Header include l’offset to attr. value e lunghezza del value

NTFS filename Standard info Security desc. Data

MYFILE.DAT

„RESIDENT“

Offset: 8h

Length: 14h

header

value

Page 44: Windows Internals Tour - Roma Tre University

•Piccole Cartelle: – Index root contiene i riferimenti ai file e

subdirectory

Attributes (contd.)

NTFS filename Standard info Index root Security desc. Empty

Index of files

file1, file2, file3,...

MFT file record for a small directory

• Se l‘attributo non sta nella MFT: • NTFS alloca un cluster separato (run, extent) per memorizzare il valore

• NFTS alloca altri run se l‘attributo cresce nel tempo

• Questi attributi sono chiamati „non-resident“

• L‘Header degli attributi „non-resident“ contiene

l‘informazione sulla loro locazione

Page 45: Windows Internals Tour - Roma Tre University

Large files & directories

Solo gli attributi che possono crescere devono essere non-resident

Il nome del file e le informazioni standard devono essere sempre resident

Gli indici dei file per le directory formano dei B+ tree

NTFS filename Standard info HPFS extended attr. Security desc. Data

MFT record for large file with 2 data runs

NTFS filename Standard info Index root Security desc. Bitmap

file4, file8

MFT file record for a large directory

with nonresident filename index

Index allocation

file1, file2, file3 file5, file6

Index of files

VCN-to-LCN

mappings

Page 46: Windows Internals Tour - Roma Tre University

Large files (contd.)

NTFS keeps track of runs by means of VCN (Virtual Cluster Numbers)

– Logical Cluster Numbers rappresentano l’intero volume

– Virtual Cluster Numbers rappresentano i cluster che fan parte di un file

– La lista degli attributi può estendersi tra più run (non solo i dati)

NTFS filename Standard info Security desc. Data

Data

VCN-to-LCN mappings for a

nonresident data attribute

Startin

g VCN

Startin

g LCN

Number of

clusters

0 1355 4

4 1588 4

VCN 0 1 2 3

LCN 1355 1356 1357 1358

Data

VCN 4 5 6 7

LCN 1588 1589 1590 1591

Page 47: Windows Internals Tour - Roma Tre University

Compressione

NFTS supporta la compressione trasparente dei file

– Se una cartella è indicata come compressa, tutti i file contenuti e

le sub directory sono compresse

– La compressione è a livello di cluster ed è applicata a 16 blocchi

di ogni file

– La compressione è attivabile dalla GUI del sistema operativo.

Page 48: Windows Internals Tour - Roma Tre University

Compression of sparse files

NTFS azzera tutto il contenuto del file alla creazione

Molti sparse files contengono una gran quantità di “zeri”

– Questi occupano spazio – quelli inutili sono compressi.

NTFS filename Standard info Security desc. Data

Data

Startin

g VCN

Startin

g LCN

Number of

clusters

0 1355 16

32 1588 16

48 96 16

128 324 16

VCN 0 1 2 3 .... 15

LCN 1355 1356 1357 1358 .... 1370

Data

VCN 32 33 34 35 ... 47

LCN 1588 1589 1590 1591 .... 1603 Certain ranges of VCNs have no

disk allocation (16-31, 64-127)

Page 49: Windows Internals Tour - Roma Tre University

Compressing Nonsparse Data

•NTFS divide i file non processati in unità di compressione da 16 cluster l’una.

•Alcune sequenze non possono essere molto compresse – NTFS determina se è possibile comprimere di almeno un cluster ogni

unità

– Se i dati non possono essere compressi, alloca lo spazio e li scrive su disco

– Se i dati possono essere compressi di almeno un cluster, NTFS alloca solo lo spazio necessario per la memorizzazione dell’informazione compressa

•Quando sono scritti dati, NTFS si assicura che ogni run inizi sempre al limite del 16 cluster.

– In lettura/scrittura si accede sempre all’intera unità di compressione

– Lettura anticipata + decompressione asincrona migliorano le performance

Page 50: Windows Internals Tour - Roma Tre University

Data runs of a compressed file

0 15

19 20 21 22

VCN

LCN

Compressed data

16 31

23 24 25 26

Compressed data

32 47

97 98 99 100 101 102

Noncompressed data

48 63

Compressed data

27 28 29 30

103 104 105 106 107 108 109 110 111 112

113 114 115 116 117 118 119 120 121 122

Startin

g VCN

Startin

g LCN

No. of

cluster

s

0 19 4

16 23 8

32 97 16

48 113 10

MFT record for a compressed file

Page 51: Windows Internals Tour - Roma Tre University

VHD: Virtual Hard Disk

E’ un file che riprende le caratteristiche di un

HD fisico

Le specifiche sono disponibili sotto

Microsoft Open Specification Promise

Supportato dalla maggior parte dei software

di virtualizzazione

Integrato in Windows 7 / 2008 R2

Page 52: Windows Internals Tour - Roma Tre University

BitLocker e BitLocker to Go

Introdotto in Windows Vista

Sistema di crittografia per la protezione

dell’intero volume

Utilizza AES 128 o AES 256 (con o senza

diffusione)

Integrato con TPM

Page 53: Windows Internals Tour - Roma Tre University

BitLocker™ Drive Encryption Architecture

Volume Blob of Target OS

unlocked

All Boot Blobs

unlocked

Static OS

BootSector

BootManager

Start

OSOS Loader

BootBlock

PreOS

BIOS

MBR

TPM Init

Page 54: Windows Internals Tour - Roma Tre University

Disk Layout And Key Storage

OS Volume

• Encrypted OS

• Encrypted Page File

• Encrypted Temp Files

• Encrypted Data

• Encrypted Hibernation File

Dove è l’Encryption Key?

1. SRK (Storage Root Key)

dentro il TPM

2. SRK encrypts FVEK (Full Volume

Encryption Key) protetta da

TPM/PIN/USB Storage Device

3. FVEK memorizzata (encrypted da

SRK) nel HD dentro l’OS Volume

System

OS Volume

System Volume Contains:

MBR, Boot manager, Boot Utilities

(Unencrypted, small)

3

2 FVE

K

1 SRK

Page 55: Windows Internals Tour - Roma Tre University

Come superare BitLocker ™?

1. Trovare la macchina Target

2. Controllare che sia accesa o in Standby

3. Raffreddare la ram con uno spray

criogenico…

4. Fare il dump della RAM con un USB boot

disk

5. Trovare la chiave di BitLocker analizzando

il dump…

6. Facile no?

Page 56: Windows Internals Tour - Roma Tre University

One more thing…

Page 57: Windows Internals Tour - Roma Tre University

ReFS: Resilient File System

Disponibile in Windows Server 8

Solo per volumi dati (no boot)

Integrità dei metadati con checksums

Page 58: Windows Internals Tour - Roma Tre University

ReFS: B+ tree on-disk structure

Page 59: Windows Internals Tour - Roma Tre University

DOMANDE, RICHIESTE,

SUGGERIMENTI?

Page 60: Windows Internals Tour - Roma Tre University

GRAZIE A TUTTI PER

L’ATTENZIONE!

Page 61: Windows Internals Tour - Roma Tre University

Copyright Notice © 2000-2005 David A. Solomon and Mark Russinovich

These materials are part of the Windows Operating System

Internals Curriculum Development Kit, developed by David

A. Solomon and Mark E. Russinovich with Andreas Polze

Microsoft has licensed these materials from David Solomon

Expert Seminars, Inc. for distribution to academic

organizations solely for use in academic environments (and

not for commercial use)

Page 62: Windows Internals Tour - Roma Tre University

Microsoft, Windows Server 2003 R2, Windows Server 2008, Windows 7 and Window Vista are either registered trademarks or trademarks of Microsoft Corporation in the

United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. The information

herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to

changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information

provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS

PRESENTATION.