LM NTLM şifreleme

Günlük kullanmış olduğumuz şifreler disk üzerinde özet olarak kayıt edilir. Bu özetler iki ayrı şekilde LM ve NTLM olarak tutulup birbiri ile entegre olarak işlem görür ve kimlik doğrulamasını gerçekleştirir. Windows işletim sisteminde ise kullanıcı hesapları ve parolaların şifrelemesinde kullanılan SYSKEY  bilgisi SAM (Security Account Manager) dosyasında tutulur. İşletim sistemi çalışır durumunda bu dosyayı kontrolünde tutar, Admin dahi olunsa işletim sistemi içerisinden herhangi bir müdahaleye izin vermez. Windows İşletim sistemleri versiyonu doğrultusunda, kullanıcı parolalarını NTLM veya LM özeti fonksiyonuna sokarlar. Sonuç olarak SYSTEM dosyası içerisinde bulunan SYSKEY ile şifreler ve bu şekilde SAM dosyasına kayıt eder. Örnek olarak  SAM dosyasında tutulan kullanıcı hesap bilgileri aşağıdaki gibidir.Parola 14 karakter ise ilk 14 karakteri alınır. 14 karakterden daha kısa ise eksik karakterler yerine boş (null) karakter eklenir. 14 karakterden uzun ise sonuna ‘0’ karakteri eklenir.Elde edilen 14 karakterlik değer 7 karakterlik 2 parçaya bölünür ve her parça sabit bir katarı (string) DES şifreleme algoritmasıyla şifrelemek için  anahtar olarak kullanılarak 2 adet özet değeri elde edilir.Parolanın ilk 14 karakteri alınır. Daha kısa ise 14 karaktere kadar bilinen bir karakterle (‘0’) tamamlanır.Parolası olmayan veya 14 karakterden daha uzun parolası olan bir kullanıcının LM özeti sabit ve bilinen bir sonuç (AAD3B435B51404EE-AAD3B435B51404EE) verir. Bu sebeple boş parola ile sisteme giriş yapılma teşebbüsünde bulunabilir, başarısız olunması durumunda ise, parolanın 14 karakterden daha uzun olduğu anlaşılır.DES şifrelemede sabit bir katar kullanılmaktadır. LM özeti, DES şifreleme metodu kullandığından, aslında bir özetleme yöntemi bile sayılmayabilir.İlk veya son 7 karakteri aynı olan kullanıcıların parolalarının LM özet değerlerinin de ilk veya son parçaları aynı olur. Parolası “Bb123456” olan bir kullanıcı ile parolası “bB12345” olan başka bir kullanıcının parolalarına ait LM özetlerinin ilk 16 byte’lık parçaları aynıdır.LM kimlik doğrulama için kullanılan LM özetleme metodu gökkuşağı saldırılarıyla birkaç saniyede, kaba kuvvet saldırılarıyla (brute force) ise birkaç saatte çözülebilir.Sunucu istemciye kimliğini ispatlaması için 16 byte’lık rastgele bir sayı yollar. Bu sayıya “challenge” veya “nonce (number used once)” adı verilir.Sunucu etki alanı denetleyicisine kullanıcı ismini, bu şifreli sayıyı ve sayının orijinal halini yollayarak etki alanı denetleyicisinin istemci kimliğini doğrultmasını talep eder. Eğer ortamda bir DC yok ise bu adım ve bir sonraki (5.) adım olarak sunucu üzerinde gerçekleşir.İstemcinin özel anahtarına sahip olan etki alanı denetleyicisi, sayıyı (challange) istemcinin özel anahtarı ile özetleyerek daha önceden alınan özet sayı değeri ile karşılaştırır. Sonucu sunucuya gönderir.Kullanıcı parolasının MD4 ile özetlenmiş hali istemci özel anahtarı olur. Bu özet değerine NTLM özetidir.Oluşan 8’er byte’lık değerler birleştirilerek 24 byte değer elde edilir. Bu değer sunucuya cevap değeridir.Önceden hesaplanmış sayı (challage) sayesinde LM’e göre daha güvenilirdir. Aynı sayı kullanılmadıkça tekrar saldırılarına karşı biraz daha direnç sağlar.NTLM kimlik doğrulama, bütünlük ve gizlilik sağlar. Bütünlük için CRC (Cyclic redundancy check) ve özetleme algoritmaları (RFC1321) kullanır. Şifreleme için RC4 kullanır.LM özetleme tekniğine göre daha güvenilir olan NTLM özeti, gökkuşağı saldırılarına veya brute force’a karşı LM özetleme tekniğine göre biraz daha dirençlidir.İstemci parolası ağ üzerinden yollanmaz. Parolanın özetinin bir kısmı şifreli bir kanal üzerinden yollanır.Sayıyı şifrelemekte kullanılan DES zayıf bir algoritmadır. Brute-force ile parola elde edilebilir. Bu amaçla Cain&Abel gibi araçlar kullanılabilir.MITM saldırılarına karşı açıktır. Aktif saldırganlar istemciye bilinen sayılar yollayarak cevap bekleyebilir. Böylece sözlük saldırılarıyla kullanıcının parolası elde edilebilir.