New Technology File System (NTFS)
Sekilas Sejarah NTFS
Pada awal tahun 1990, Microsoft ingin menciptakan suatu system file yang memiliki kualitas dan kecepatan tinggi serta dapat menjamin dan mengamankan sistem operasi. Saat itu, Microsoft telah memiliki system operasi yaitu MS-DOS dan Windows 3.x yang diharapkan memiliki kelebihan tersendiri untuk menyaingi UNIX dan system operasi lainya. Salah satu kelemahan dari system operasi MS-DOS dan Windows 3.x yaitu system ini masih tergantung pada file system FAT dimana file system ini memiliki banyak kekurangan dalam hal penyimpanan data dan proses manajemen file.
Pada saat yang bersamaan, Microsoft akan membuat suatu system operasi yang terbaru yaitu Windows NT. Oleh karena itu, untuk menghindari timbulnya kelemahan dari system operasi tersebut akibat penggunaan file system FAT, maka Microsoft harus membuat file system baru yang tidak lagi bergantung pada file system FAT. File system itu kemudian diberi nama New Technology File System atau yang sekarang lebih dikenal dengan nama NTFS.
Microsoft membuat desain dari file system NTFS ini berdasarkan analisis kebutuhan dari system operasi baru yang akan dibuatnya. Bagaimanapun NTFS tidak seluruhnya baru, sebab sebagian dari konsopnya didasarkan pada file system yang lain.
Fitur Utama NTFS
NTFS merupakan sebuah sistem file yang fleksibel dan ampuh sebagaimana yang dapat kita lihat dalam model sistem file sederhana. Fitur yang paling bermanfaat dari NTFS antara lain yaitu:
- Recoverabilitas: tinggi dalam daftar dari persyaratan untuk sistem file W2K yang merupakan kemampuan untuk kembali dari sistem yang hancur dan kesalahan disk. Dalam kesalahan ini, NTFS mampu untuk mengonstruksikan kembali volume disk untuk sebuah keadaan yang konsisten. Ini dilakukan dengan menggunakan sebuah model pemrosesan transaksi untuk perubahan sistem file; masing-masing perubahan yang signifikan diperlakukan sebagai sebuah aksi atomik yang seluruhnya dilakukan atau tidak dilakukan sama sekali. Masing-masing transaksi yang berada dalam proses waktu dari kesalahan merupakan bagian dari proses back up atau proses penyelesaian. Sebagai tambahan, NTFS menggunakan penyimpanan yang berulang untuk data sistem file kritis sehingga kesalahan dari sebuah sektor disket tidak berakibat hilangnya dari data yang menjelaskan struktur dan status dari sistem file.
- Security (keamanan): NTFS menggunakan model objek W2K untuk mendorong keamanan. Sebuah file terbuka diimplementasikan sebagai sebuah objek dengan sebuah penjelasan keamanan yang mendefinisikan dalam atribut keamanan.
- Disk yang besar dan file yang besar: NTFS mendukung disk yang sangat besar dan file yang sangat besar yang lebih efisien dibandingkan dengan sistem file lainnya termasuk FAT.
- Arus Data Multiple: isi aktual dari sebuah file diperlakukan sebagai sebuah arus byte. Dalam NTFS memungkinkan untuk mendefinisikan sebuah arus data multiple untuk sebuah file tunggal. Sebuah contoh dari utilitas fitur ini adalah membolehkan W2K digunakan oleh sistem Macintosh terpisah untuk menyimpan dan mengembalikan file. Dalam Macintosh, masing-masing file memiliki dua komponen, data file dan sebuah sumber fork yang mengandung informasi tentang file. NTFS memperlakukan dua komponen ini sebagai dua arus data.
- Fasilitas Indeks Umum: NTFS mengasosiasikan sebuah koleksi atribut dengan masing-masing file. Kumpulan dari deskripsi file dalam sistem manajemen file diorganisasikan sebagai sebuah database relasional sehingga file dapat diindeks oleh atribut mana saja.
Volume NTFS dan Struktur File
NTFS mengambil dari konsep penyimpanan disket:
- Sektor: unit penyimpanan fisik terkecil dalam disket. Ukuran data dalam bytes merupakan sebuah kekuatan dari 2 dan hampir selalau 512 bytes.
- Cluster: satu atau lebih sektor kontinyu (selanjutnya untuk masing-masing selain dari jalur yang sama). Ukuran cluster dalam sektor merupakan sebuah pangkat dari 2.
- Volume: sebuah partisi logis dalam sebuah disk, mengandung satu atau lebih dari kluster dan digunakan oleh sebuah file untuk daerah yang dialokasikan. Dalam setiap waktu, sebuah volume mengandung sebuah informasi sistem file, sebuah koleksi dari file dan sebuah tambahan dari daerah yang tidak dialokasikan tetap dalam sebuah volume yang dapat dialokasikan ke sebuah file. Sebuah volume dapat merupakan seluruh atau sebagian dari sebuah disk tunggal atau dapat diperluas dalam disk multiple.
Cluster adalah unit dasar dari alokasi dalam NTFS yang tidak mengenal sektor. Sebagai contoh, misalkan masing-masing sektor adalah 512 byte dan sistem dikonfigurasikan dengan dua sektor setiap kluster (satu kluster = 1 K byte). Jika seorang user membentuk sebuah file dari 1600 bytes, dua kluster yang dialokasikan ke file. Berikutnya, jika user mengupdate file ke 3200 bytes, lainnya dialokasikan. Kluster dialokasikan ke sebuah file tidak kontinu; adalah tidak diperbolehkan untuk fragmen dalam disket. Saat ini, ukuran maksimum dari file didukung oleh NTFS adalah 232 kluster, yang sama dengan sebuah maksimum 248 bytes.
Penggunaan cluster untuk alokasi membuat NTFS independen dari ukuran sektor fisik. Hal ini memungkinkan NTFS untuk mendukung dengan mudah disk tidak standar yang tidak memiliki ukuran sektor 512 byte serta mendukung efisiensi disk dan file yang sangat besar dengan menggunakan sebuah ukuran cluster yang lebih besar. Efisiensi muncul dari fakta bahwa sistem file harus menetapkan jalur untuk masing-masing cluster yang dialokasikan ke masing-masing file. Dengan Kluster yang lebih besar, terdapat item yang lebih sedikit untuk mengelola.
Layout Volume NTFS
NTFS sungguh sederhana namun luar biasa menggunakan pendekatan yang ampuh untuk mengorganisasikan informasi dalam sebuah volume disk. Setiap elemen dari sebuah volume adalah sebuah file dan masing-masing file terdiri dari sebuah atribut koleksi, walaupun isi data dari sebuah file diperlakukan sebagai sebuah atribut. Dengan struktur sederhana, beberapa fungsi dengan tujuan umum mencukupi untuk mengorganisasi dan mengatur suatu sistem file.
Layout Volume NTFS
Gambar di atas menunjukkan layout dari sebuah volume NTFS, yang mengandung empat daerah. Sektor pertama dalam volume ditempati oleh partition boot sector (yang panjangnya mencapai sektor ke-16), yang mengandung informasi tentang layout volume dan struktur sistem file begitu juga dengan informasi boot startup dan kode. Daerah kedua berisi master file tabel (MFT), yang mengandung informasi tentang seluruh file dan folder (direktori) dalam volume NTFS begitu juga informasi tentang daerah yang tak dialokasikan. Esensinya, MFT merupakan daftar dari isi volume NTFS ini, diorganisasikan sebagai sekumpulan dari barisan dalam sebuah struktur database relasional.
Tabel Master File (MFT)
Daerah MFT yang pada umumnya berukuran 1 Mbyte, yang mengandung sistem file. Bagian dalam MFT terbagi menjadi daerah-daerah sebagai berikut:
- MFT2: sebuah bayangan dari tiga baris yang pertama dari MFT yang digunakan untuk menjamin akses ke MFT seandainya terjadi sebuah kesalahan sektor tunggal.
- File Log: sebuah daftar dari langkah-langkah transaksi yang digunakan untuk pemulihan NTFS.
- Cluster bit map: sebuah representasi dari volume yang menunjukkan kluster mana yang digunakan.
- Tabel atribut definisi: mendefinisikan tipe atribut yang didukung dalam volume ini dan mengindikasikan apakah mereka dapat diindeks dan apakah mereka dapat dipulihkan selama operasi sistem pemulihan.
Jantung dari sistem file NTFS adalah MFT. MFT diorganisasikan sebagai sebuah tabel dari barisan dengan panjang variabel, yang dikenal sebagai record. Masing-masing harus dijelaskan sebagai file atau folder dalam volume, termasuk MFT itu sendiri yang diperlakukan sebagai sebuah file. Jika isi dari sebuah file terlalu kecil, maka keseluruhan file dilokasikan dalam sebuah baris dari MFT. Jika tidak, baris untuk file yang mengandung informasi parsial dan sisa dari file yang keluar dalam cluster lainnya tersedia dalam volume dengan pointer ke cluster itu dalam baris MFT dari file tersebut.
Masing-masing record dari MFT mengandung sekumpulan atribut yang melayani untuk mendefinisikan karakteristik file (folder) dan isi dari file. Tabel di bawah ini berisi atribut yang mungkin ditemukan dalam sebuah baris dengan atribut yang dibutuhkan.

Setiap file pada NTFS direpresentasikan sebagai record pada MFT. MFT memesan 16 record pertama dari tabel untuk informasi spesial. Record pertama mendeskripsikan MFT itu sendiri, diikiuti oleh mirror record. Jika MFT pertama corrupt, NTFS membaca record kedua untuk mencari MFT mirror file. Lokasi dari data segmen untuk MFT dan MFT mirror file terletak pada boot sector.
Record ketiga dari MFT berisi log file, digunakan untuk recovery file. Record ke 17 dan seterusnya dari MFT digunakan untukĀ setiap file dan directory di disk.
Gambar berikut mengilustrasikan struktur MFT:

MFT mengalokasikan beberapa space untuk setiap record file. Atribut dari file ditulis pada space yang telah dialokasikan pada MFT. File dan directory kecil (berukuran 1500 bytes atau lebih kecil), seperti yang digambaran di bawah ini bisa dimasukan semua pada MFT record.
MFT Record untuk file dan directory kecil
Desain ini bisa menjadikan akses ke sebuah file menjadi sangat cepat. Misalnya dibandingkan dengan file sistem FAT, dimana file allocation table user didaftar nama dan alamatnya untuk setiap file. Direktori pada file berisi index ke dalam file allocation table. Ketika ingin membaca file, pertama FAT membaca file allocation table dan memastikan itu ada. Kemudian FAT menerima file dengan mencari rantai dari allocation unit yang menandakan file. Sedangkan pada NTFS, ketika mendapatkan file bisa langsung digunakan tanpa harus mencari. Record direktori ditempatkan pada MFT seperti record file. Direktori berisi informasi index. Directori berukuran kecil terletak langsung pada struktur MFT. Directori besar diorganisasi menjadi B-tree, mempunyai record dengan pointer ke eksternal cluster berisi keseluruhan direktori yang tidak bisa ditampung pada struktur MFT.
Atribut File NTFS
Sistem file NTFS melihat setiap file atau folder sebagai satu set attribut file. Elemen seperti nama file, informasi keamanan dan terkadang datanya juga terletak pada attibut file tersebut. Setiap attribut diidentifikasi dengan kode tipe attribut dan nama attribut.
Ketika atribut file cukup pada record file MFT, atribut itu disebut resident atribut. Sebagai contoh, informasi seperti nama file dan timestamp selalu dimasukan pada file record MFT. Ketika tidak muat di MFT, maka beberapa atribut tersebut tidak dianggap sebagai atribut resident. Atribut ini terletak pada satu atau dua cluster pada disk space. NTFS membuat list atribut untuk mendiskripsikan lokasi dari semua record atribut.
Tabel di bawah ini menjelaskan atribut file yang didefinisikan pada file sistem NTFS.

Encrypting File System
Encrypting File System atau EFS adalah sebuah teknologi inti dalam Windows 2000, Windows XP Professional, atau Windows Server 2003 yang mengizinkan penyimpanan berkas secara terenkripsi dalam sebuah volume yang diformat dengan menggunakan sistem berkas NTFS.
Mekanisme pengamanan data dengan menggunakan izin akses NTFS memang dapat melindungi berkas dari akses pihak-pihak yang tidak berhak ketika sistem operasi berjalan, tapi dapat dengan mudah dikelabui jika seorang penyerang memperoleh akses fisik terhadap komputer. Salah satu solusinya adalah dengan menyimpannya secara terenkripsi di dalam media penyimpanan. Microsoft mengimplementasikan hal serupa agar mengamankan berkas para pengguna Windows (versi-versi khusus, lihat di bawah), yakni dengan menggunakan gabungan kriptografi kunci rahasia dengan kriptografi kunci publik. EFS memperkuat sistem keamanan berkas NTFS yang sebelumnya hanya berkisar pada izin akses NTFS saja, dengan beberapa teknologi kriptografi, yakni algoritma DESX, 3DES, AES dan RSA. Orang yang tidak berhak tidak akan pernah dapat membuka berkas, meski ia memiliki izin akses NTFS. Meskipun demikian, EFS tidak dapat mencegah terhadap serangan exhaustive key search untuk mencari password milik pengguna. Dengan kata lain, EFS tidak akan memberikan proteksi terhadap berkas, jika memang password milik pengguna gampang ditebak.
Sistem operasi dapat menggunakan EFS jika dan hanya jika format sistem berkas media penyimpanan yang digunakan adalah NTFS. FAT16, FAT32 atau sistem berkas lainnya tidak dapat mendukung EFS.

Algoritma kriptografi yang digunakan
EFS menggunakan beberapa algoritma kriptografi, yakni sebagai berikut:
- Data Encryption Standard eXtended (DESX), yang digunakan pada Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, serta Windows 2000 Datacenter Server. Panjang kunci yang digunakan adalah 56 bit.
- Triple Data Encryption Standard (3DES), yang digunakan pada Windows 2000, Windows XP Professional, Windows Server 2003, dan Windows Vista. Panjang kunci yang digunakan adalah 112 bit, 168 bit atau 192 bit. Secara default tidak aktif, tapi dapat diaktifkan dengan menggunakan Group Policy atau menyunting registry.
- Advanced Encryption Standard (AES), yang digunakan pada Windows XP Service Pack 1, Windows Server 2003 dan Windows Vista. Panjang kunci default yang digunakan adalah 256 bit.
- Rivest, Shamir, Adleman (RSA), yang digunakan sebagai pengaman untuk kunci-kunci simetrik di atas. Panjang kunci yang digunakan adalah 1024 bit. Ini juga menjadi sebab mengapa EFS dapat diimplementasikan sebagai anggota Public Key Infrastructure (PKI).
Cara kerja
Berkas dan direktori yang akan dienkripsi oleh sistem berkas harus ditandai dengan atribut sistem khusus enkripsi. Seperti halnya izin akses berkas dalam NTFS, yang memberlakukan atribut terhadap objek-objek anak (berkas dan subdirektori) secara default, hal tersebut juga terjadi dalam rangka enkripsi atau dekripsi EFS.
Ketika sebuah berkas disalin atau dipindahkan ke partisi (volume) lainnya yang memiliki format sistem berkas selain NTFS (sebagai contoh FAT atau CDFS), maka berkas atau direktori tersebut akan didekripsi terlebih dahulu sebelum melakukan operasi penyalinan atau pemindahan berkas dilakukan. Pengecualian terjadi pada saat proses backup dengan menggunakan program Windows Backup (NTBACKUP.EXE) atau program lainnya yang menggunakan fungsi Windows API OpenEncryptedFileRaw, ReadEncryptedFileRaw, WriteEncryptedFileRaw, dan CloseEncryptedFileRaw yang akan menyalin dalam bentuk terenktipsi secara langsung.
EFS bekerja dengan melakukan enkripsi terhadap berkas atau direktori dengan menggunakan sebuah kunci simetris yang disebut sebagai File Encryption Key (FEK). Setiap kali EFS melakukan enkripsi terhadapnya, EFS akan membuat sebuah kunci enkripsi yang acak. EFS akan menyimpan kunci enkripsi ini di dalam memori kernel sistem operasi Windows (atau sering disebut sebagai nonpaged pool). Hal ini dilakukan karena memang kunci simetris dapat melakukan enkripsi terhadap data yang besar dalam waktu yang relatif lebih singkat dibandingkan dengan kriptografi kunci publik.
Kunci simetrik yang digunakan untuk mengenkripsi berkas atau direktori, kemudian akan dienkripsi dengan kunci publik yang diasosiasikan dengan pengguna yang melakukan enkripsi terhadap berkas, dan data ini disimpan dalam header berkas terenkripsi yang bersangkutan.
Untuk melakukan dekripsi terhadap berkas, sistem akan menggunakan kunci privat yang menjadi pasangan kunci publik yang mengenkripsi kunci simetris yang disimpan dalam header. Jika kunci simetris berhasil dibuka, maka berkas akan langsung didekripsi oleh sistem. Karena hal ini dilakukan dalam level sistem berkas, proses ini tidak terlihat oleh pengguna, karena itulah mengapa EFS disebut sebagai transparan.
Recent Comments