Mungkin sudah banyak artikel lain yang membahas bagaimana mekanisme pengamanan password di Sistem operasi Windows 2000 atau XP. Artikel penulis ini akan memaparkan tentang penyimpanan, pengamanan dan recovery password di Windows 2000 atau XP.

Semua data tentang akun yang ada di Windows 2000/XP disimpan di registry, tepatnya di HKEY_LOCAL_MACHINE\SAM. SAM atau Security Account Manager adalah yang mengatur dan menyimpan semua keterangan akun yang ada di windows 2000/XP. Lalu dimanakah semua data tersebut secara fisik disimpan? (Karena Registry Editor hanya menampilkannya- saja), File SAM yang berada di %SystemRoot%\System32\Config adalah jawabannya. File ini tersedia untuk semua akun bahkan untuk non-Administrator. Tetapi File ini tidak dapat diakses atau dilihat begitu saja karena ada pengaruh dari registry itu sendiri. Untuk dapat mengaksesnya harus secara offline atau boot dari media lain.

Secara garis besar, windows 2000/XP tidak mengambil begitu saja password yang ada di file SAM. Karena password yang telah disimpan disitu berbentuk suatu checksum atau Hash. Checksum atau hash diciptakan oleh fungsi satu arah atau one-way function yang berarti fungsi tidak dapat dibalikkan karena rumitnya algoritma fungsi tersebut. Fungsi ini dibangkitkan oleh utiliti SYSKEY.

Hash dari password di file SAM disebut V-Block yang panjangnya 32 byte, 16 byte untuk NT Hash dan 16 byte sisanya untuk LM (LanMan) Hash. NT Hash digunakan untuk ototenkasi komputer lokal dan LM Hash digunakan untuk ototenkasi resource komputer lain.

* NT Hash
– Password dibentuk menjadi barisan *Unicode
– Hash dibangkitkan oleh algoritma *MD4
– Pembuatan variasi Hash di buat bedasarkan key, yaitu RID (user Identifier) untuk password akun yang sama. Algoritma yang digunakan adalah *DES.

* LM Hash
– Password diubah menjadi kapital dan ditambah byte null hingga mencapai panjang 14 byte.
– 14 byte password lalu dibagi menjadi 2, masing-masing 7 byte dan mengalami encode oleh DES dengan output 8 byte dan total 16 byte
– Pembuatan variasi Hash di buat bedasarkan key, yaitu RID (user Identifier) untuk password akun yang sama. Algoritma yang digunakan adalah *DES.

Seperti dikatakan diatas bahwa kita tidak dapat mengakses file SAM secara online, tetapi dapat mengambil data melalui 2 cara, yaitu :

1. PWDump, metode ini memungkinkan pengambilan secara “tidak langsung” karena program PWDump menghubungkan dirinya ke prosedur system di LSASS dan menggunakan ototenkasinya untuk mengambil Hash di registry atau di file SAM.

2. Scheduler, fitur scheduler mempunyai akses penuh terhadap sistem, bila kita mengatur agar scheduler untuk menyimpan registry ke sebuah file maka kita dapat membaca isi SAM di file tersbut.

Kedua Metode tersebut harus mutlak dijalankan sebagai Administrator. Bila tidak punya hak sebagai administrator, maka kita dapat menggunakan cara boot dari media lain seperti disket atau CD yang didalamnya sudah mempunyai fitur untuk mengcopy file SAM ke tempat lain atau membaca file SAM.

Berikut adalah contoh bagaimana hash dibangkitkan dari password akun :

1. Akun user AKUN_BARU mempunyai password dengan panjang 13 byte : password_baru

2. SYSKEY meng-encode password tersebut menjadi NT Hash dan LM Hash dengan key RID = 1001
misal : NT Hash : 707C1EE5C3AEA98E23F3C0801F0A0C61
LM Hash : Y54uR3OdTNheo

3. Bila akun user tersebut login, maka system akan membandingkan hash dari password yang diinput oleh user dengan kedua Hash tersebut. Bila sama maka ototenkasi sukses, bila tidak password dianggap salah.