Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner

Pagina creata da Camilla Piccolo
 
CONTINUA A LEGGERE
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
Windows Internals Tour
         Windows File System
  Andrea Dell’Amico – Microsoft Student Partner

      andrea.dellamico@academicclub.org
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
21 Aprile 2012 – Roma 3
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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…
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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)
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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)
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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à)
Windows Internals Tour - Windows File System Andrea Dell'Amico - Microsoft Student Partner
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
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)
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
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
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
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
Unicode Names

Il supporto Unicode è ereditato da Windows,
è quindi possibile salvare file, directory e
volumi con un set completo di caratteri
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
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
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
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
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
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.
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
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.
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.
Filenames

POSIX:
   – Case-sensitive, trailing periods & spaces    Namespaces
   – NTFS namespace equivalente al POSIX space
Win32:
   – File name lunghi, con unicode                    POSIX
   – Punti multipli, spazi, punti iniziali          subsystem
MS-DOS:
   – Nomi da 8.3 caratteri, non case sensitive        Win32
                                                    subsystem
NTFS genera i nomi MS-DOS per i file Win32
automaticamente                                     MS-DOS
   – Funzionano come alias NTFS                    Win16 clients
   – Memorizzati nella stessa directory; dir /x
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.
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
NTFS File System Driver

                                                     I/O manager            Read/write
               Log file        Log the transaction
                                                                            a mirrored
               service                                   NTFS driver
                               Read/write the file                          or striped
Flush the      Write the                                                    volume
                cache                                      Fault tolerant
 log file                                                     driver        Read/write
               Cache                                                        the disk
                                    Load data                 Disk driver
              manager
                                    from disk
     Access the mapped                 into
     file or flush the cache         memory

            Virtual memory
                manager
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
NTFS & File Objects
     Process
                    Handle table
                                                      Stream       File
                                    File object       control    control
  Object                                              blocks      block
                                    File object
manager                                                Data
   data                                              attribute               Master file
structures                                                                     table
                                                      User-
                                                     defined
                                    NTFS data        attribute
                                    structures
  App accesses files as            (used to manage
                                      the on-disk
  NT objects by handles.
                                       structure)                 NTFS
  Object Manager and security
                                                                 database
  subsystem verify access rights                                 (on disk)
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
Master File Table
Tutti i dati memorizzati in un volume sono                       MFT
contenuti in un file                                      MFT copy (partial)
MFT: Il cuore della struttura dei volumi
NTFS                                                            Log file

    – Implementata come un array di file                      Volume file
      records                                    NTFS     Attribute def. table
    – Una riga per ogni file del volume       metadata
      (inclusa una riga per la MFT stessa)         file     Root directory
    – Archivio dei Metadata con le                            Bitmap file
      informazioni sulla struttura del file
                                                               Boot file
      system
      (file nascosti; $MFT; $Volume...)                     Bad cluster file
    – Più di un MFT record per i file molto                        ...
      frammentati
                                                          User files and dirs.
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
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)
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.
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
File Records &
                 File Reference Numbers

                 Sequence
                                       File number
                  number
            63              47                            0

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
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

       Master File Table
                                       Windows optimization: Security descriptors
                                       are stored in a central file and referenced
                                       by each file record (saves disk space)

                                 Standard               Security
                                information   Filename descriptor      Data

                                MFT record for a small file
Attributi Standard dei file su NTFS
 Attribute             Description
 Standard              File attributes: read-only, archive, etc; time stamps;
 information           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)
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)
MS-DOS filenames in NTFS
Standard info       NTFS filename     MS-DOS filename      Security desc.     Data

                MFT file record with MS-DOS filename attribute

 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
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

      Standard info      NTFS filename     Security desc.           Data

                                                                              header

                          „RESIDENT“                                           value
                            Offset: 8h          MYFILE.DAT
                           Length: 14h
Attributes (contd.)
       •Piccole Cartelle:
          – Index root contiene i riferimenti ai file e
            subdirectory
   Standard info     NTFS filename Security desc.           Index root          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
Large files & directories

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

      MFT record for large file with 2 data runs

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

       Standard info     NTFS filename Security desc. Index root Index allocation               Bitmap
                                                                             Index of files
                                                                                VCN-to-LCN
                                                             file4, file8        mappings
       MFT file record for a large directory
       with nonresident filename index
                                            file1, file2, file3             file5, file6
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)

  Standard info    NTFS filename Security desc.                   Data
                                                   Startin   Startin       Number of
                                                   g VCN     g LCN          clusters
VCN-to-LCN mappings for a                            0       1355             4
nonresident data attribute
                                                     4       1588             4

         VCN 0       1       2   3                VCN 4       5        6      7
                         Data                                      Data
         LCN 1355 1356 1357 1358                  LCN 1588 1589 1590 1591
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.
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.

      Standard info         NTFS filename Security desc.                        Data
                                                                   Startin   Startin   Number of
                                                                   g VCN     g LCN      clusters
  VCN 0        1        2        3         ....        15            0       1355         16
                                 Data
                                                                     32      1588         16
  LCN 1355 1356 1357 1358 ....                         1370
                                                                     48        96         16
VCN 32    33       34       35       ...          47
                                                                    128       324         16
                            Data
LCN 1588 1589 1590 1591 ....                      1603        Certain ranges of VCNs have no
                                                              disk allocation (16-31, 64-127)
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
Data runs of a compressed file
      VCN 0                                                                                 15
                     Compressed data

          LCN 19      20 21         22
                       16                                                                        31
                                          Compressed data

                      23       24    25    26 27    28      29    30
                                    32                                                                  47
                                                                       Noncompressed data

Startin    Startin    No. of        97     98 99      100 101 102 103 104 105 106 107 108 109 110 111 112
g VCN      g LCN      cluster               48                                                               63
                      s
                                                                 Compressed data
  0          19            4
                                               113 114 115 116 117 118 119 120 121 122
 16          23            8
 32          97         16                  MFT record for a compressed file
 48         113         10
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
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
BitLocker™ Drive Encryption Architecture

        PreOS                  Static OS                    All Boot Blobs     Volume Blob of Target OS
                                                               unlocked               unlocked

 TPM Init

                BIOS

                       MBR

                             BootSector

                                          BootBlock

                                                      BootManager
                                                                                               Start
                                                                             OS Loader
                                                                                                OS
Disk Layout And Key Storage
                                         Dove è l’Encryption Key?
OS Volume                                1. SRK (Storage Root Key)
• Encrypted OS                              dentro il TPM
• Encrypted Page File                    2. SRK encrypts FVEK (Full Volume
• Encrypted Temp Files                      Encryption Key) protetta da
                                            TPM/PIN/USB Storage Device
• Encrypted Data
                                         3. FVEK memorizzata (encrypted da
• Encrypted Hibernation File
                                            SRK) nel HD dentro l’OS Volume

                       3
        OS Volume
                                          2 FVE                    1 SRK
                    System
                                                K
                               System Volume Contains:
                               MBR, Boot manager, Boot Utilities
                               (Unencrypted, small)
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?
One more thing…
ReFS: Resilient File System

Disponibile in Windows Server 8

Solo per volumi dati (no boot)

Integrità dei metadati con checksums
ReFS: B+ tree on-disk structure
DOMANDE, RICHIESTE,
SUGGERIMENTI?
GRAZIE A TUTTI PER
L’ATTENZIONE!
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)
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.
Puoi anche leggere