NTLM kullanıcı kimlik doğrulaması

Bu makalede NTLM kullanıcı kimlik doğrulaması hakkında bazı bilgiler sağlanır.

Şunlar için geçerlidir: Windows Server 2012 R2
Özgün KB numarası: 102716

Özet

Bu makalede, Windows'ta NTLM kullanıcı kimlik doğrulamasının aşağıdaki yönleri ele alınmaktadır:

  • Hesap veritabanında parola depolama
  • MSV1_0 kimlik doğrulama paketini kullanarak kullanıcı kimlik doğrulaması
  • Geçiş kimlik doğrulaması

Daha fazla bilgi

Hesap veritabanında parola depolama

Kullanıcı kayıtları güvenlik hesapları yöneticisi (SAM) veritabanında veya Active Directory veritabanında depolanır. Her kullanıcı hesabı iki parolayla ilişkilendirilir: LAN Yöneticisi ile uyumlu parola ve Windows parolası. Her parola şifrelenir ve SAM veritabanında veya Active Directory veritabanında depolanır.

LAN Yöneticisi ile uyumlu parola, LAN Manager tarafından kullanılan parolayla uyumludur. Bu parola, özgün donanım üreticisi (OEM) karakter kümesini temel alır. Bu parola büyük/küçük harfe duyarlı değildir ve en fazla 14 karakter uzunluğunda olabilir. Bu parolanın OWF sürümü, LAN Manager OWF veya ESTD sürümü olarak da bilinir. Bu parola, bir sabiti düz metin parolası ile şifrelemek için DES şifrelemesi kullanılarak hesaplanır. LAN Manager OWF parolası 16 bayt uzunluğundadır. Temiz metin parolasının ilk 7 bayt'ı, LAN Manager OWF parolasının ilk 8 baytını hesaplamak için kullanılır. Temiz metin parolasının ikinci 7 bayt'ı, LAN Manager OWF parolasının ikinci 8 baytını bilgisayara almak için kullanılır.

Windows parolası Unicode karakter kümesini temel alır. Bu parola büyük/küçük harfe duyarlıdır ve en fazla 128 karakter uzunluğunda olabilir. Bu parolanın OWF sürümü, Windows OWF parolası olarak da bilinir. Bu parola, RSA MD4 karma işlevi kullanılarak hesaplanır. Bu işlev, düz metin parola baytlarından oluşan değişken uzunlukta bir dizenin 16 baytlık özetini hesaplar.

Herhangi bir kullanıcı hesabında LAN Manager parolası veya Windows parolası olmayabilir. Ancak, parolanın her iki sürümünü de korumak için her deneme yapılır.

Örneğin, kullanıcı hesabı Bir LAN Manager UAS veritabanından PortUas kullanılarak taşınabilirse veya parola bir LAN Manager istemcisinden veya Windows for Workgroups istemcisinden değiştirilirse, parolanın yalnızca LAN Manager sürümü bulunur. Windows istemcisinde parola ayarlandıysa veya değiştirildiyse ve parolanın LAN Manager gösterimi yoksa, parolanın yalnızca Windows sürümü bulunur. (Parola 14 karakterden uzun olduğundan veya karakterler OEM karakter kümesinde temsil edilemediğinden parolanın LAN Manager gösterimi olmayabilir.)

Windows'taki kullanıcı arabirimi sınırları, Windows parolalarının 14 karakteri aşmasına izin vermez. Bu sınırlamanın etkileri bu makalenin ilerleyen bölümlerinde ele alınmaktadır.

Windows 2000 Service Pack 2'de ve Windows'un sonraki sürümlerinde, Windows'un parolanızın LAN Manager karmasını depolamasını engellemenizi sağlayan bir ayar sağlanır. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını gözden geçirin:

299656 Windows'un Active Directory ve yerel SAM veritabanlarında parolanızın LAN yöneticisi karmasını depolamasını önleme

Not

Microsoft, SAM veritabanını el ile veya program aracılığıyla değiştirmeyi desteklemez.

MSV1_0 kimlik doğrulama paketini kullanarak kullanıcı kimlik doğrulaması

Windows, her türlü kullanıcı kimlik doğrulaması için LsaLogonUser API'sini kullanır. LsaLogonUser API'si bir kimlik doğrulama paketi çağırarak kullanıcıların kimliğini doğrular. Varsayılan olarak, LsaLogonUser MSV1_0 (MSV) kimlik doğrulama paketini çağırır. Bu paket Windows NT ile birlikte sağlanır. MSV kimlik doğrulama paketi, kullanıcı kayıtlarını SAM veritabanında depolar. Bu paket, Netlogon hizmetini kullanarak diğer etki alanlarındaki kullanıcıların doğrudan kimlik doğrulamasını destekler.

Dahili olarak, MSV kimlik doğrulama paketi iki bölüme ayrılır. MSV kimlik doğrulama paketinin ilk bölümü, bağlanılmakta olan bilgisayarda çalışır. İkinci bölüm, kullanıcı hesabını içeren bilgisayarda çalışır. Her iki parça da aynı bilgisayarda çalıştırıldığında, MSV kimlik doğrulama paketinin ilk bölümü, Netlogon hizmetini dahil etmeden ikinci bölümü çağırır. GEÇIRILEN etki alanı adı kendi etki alanı adı olmadığından, MSV kimlik doğrulama paketinin ilk bölümü geçiş kimlik doğrulamasının gerekli olduğunu algılar. Doğrudan kimlik doğrulaması gerektiğinde, MSV isteği Netlogon hizmetine geçirir. Netlogon hizmeti daha sonra isteği hedef bilgisayardaki Netlogon hizmetine yönlendirir. Buna karşılık, Netlogon hizmeti isteği o bilgisayardaki MSV kimlik doğrulama paketinin diğer bölümüne geçirir.

LsaLogonUser etkileşimli oturum açmaları, hizmet oturum açmalarını ve ağ oturum açmalarını destekler. MSV kimlik doğrulama paketinde, tüm oturum açma biçimleri kullanıcı hesabının adını, kullanıcı hesabını içeren etki alanının adını ve kullanıcı parolasının bazı işlevlerini geçirir. Farklı oturum açma türleri, parolayı LsaLogonUser'a geçirirken farklı şekilde temsil eder.

Etkileşimli oturum açma işlemleri, toplu oturum açma işlemleri ve hizmet oturum açma işlemleri için, oturum açma istemcisi MSV kimlik doğrulama paketinin ilk bölümünü çalıştıran bilgisayardadır. Bu durumda, düz metin parolası LsaLogonUser'a ve MSV kimlik doğrulama paketinin ilk bölümüne geçirilir. Hizmet oturum açma işlemleri ve toplu oturum açma işlemleri için, Hizmet Denetim Yöneticisi ve Görev Zamanlayıcı hesabın kimlik bilgilerini depolamak için daha güvenli bir yol sağlar.

MSV kimlik doğrulama paketinin ilk bölümü, düz metin parolasını hem LAN Manager OWF parolasına hem de Windows NT OWF parolasına dönüştürür. Ardından paketin ilk bölümü net metin parolasını NetLogon hizmetine veya paketin ikinci bölümüne geçirir. İkinci bölüm daha sonra OWF parolaları için SAM veritabanını sorgular ve bunların aynı olduğundan emin olur.

Ağ oturum açma işlemleri için, bilgisayara bağlanan istemciye daha önce 16 baytlık bir sınama veya "nonce" verilmişti. İstemci bir LAN Manager istemcisiyse, istemci 16 baytlık sınamayı 16 bayt LAN Manager OWF parolası ile şifreleyerek 24 baytlık bir sınama yanıtı hesapladı. ARDıNDAN LAN Manager istemcisi bu "LAN Manager Sınama Yanıtı"nı sunucuya geçirir. İstemci bir Windows istemcisiyse, aynı algoritma kullanılarak "Windows NT Sınama Yanıtı" hesaplanır. Ancak, Windows istemcisi LAN Manager OWF verileri yerine 16 baytLık Windows OWF verilerini kullanır. Windows istemcisi daha sonra hem LAN Manager Sınama Yanıtı'nı hem de Windows NT Sınama Yanıtı'nı sunucuya geçirir. Her iki durumda da sunucu, aşağıdakilerin tümünü LsaLogonUser API'sine geçirerek kullanıcının kimliğini doğrular:

  • Etki alanı adı
  • Kullanıcı adı
  • İlk sınama
  • LAN Manager Sınama Yanıtı
  • İsteğe bağlı Windows NT Sınama Yanıtı

MSV kimlik doğrulama paketinin ilk bölümü, bu bilgileri değiştirmeden ikinci bölüme geçirir. İlk olarak, ikinci bölüm SAM veritabanından veya Active Directory veritabanından OWF parolalarını sorgular. Ardından ikinci bölüm, veritabanından OWF parolasını ve geçirilen sınamayı kullanarak sınama yanıtını hesaplar. İkinci bölüm daha sonra hesaplanan sınama yanıtını geçirilen sınama yanıtıyla karşılaştırır.

Not

NTLMv2, istemcinin ortak saldırı riskini azaltmaya yardımcı olan oturum anahtarlarının kullanımıyla birlikte bir sınama göndermesine de olanak tanır.

Daha önce belirtildiği gibi, parolanın herhangi bir sürümü SAM veritabanında veya Active Directory veritabanında eksik olabilir. Ayrıca, LsaLogonUser çağrısında parolanın herhangi bir sürümü eksik olabilir. Sam veritabanından parolanın Windows sürümü ve LsaLogonUser'dan gelen parolanın Windows sürümü kullanılabilirse, ikisi de kullanılır. Aksi takdirde, karşılaştırma için parolanın LAN Manager sürümü kullanılır. Bu kural, Windows'tan Windows'a ağ oturum açma işlemleri gerçekleştiğinde büyük/küçük harf duyarlılığının uygulanmasına yardımcı olur. Bu kural geriye dönük uyumluluk da sağlar.

Geçiş kimlik doğrulaması

NetLogon hizmeti doğrudan kimlik doğrulaması uygular. Aşağıdaki işlevleri gerçekleştirir:

  • Kimlik doğrulama isteğinin geçirlmek üzere etki alanını seçer.
  • Etki alanı içindeki sunucuyu seçer.
  • Kimlik doğrulama isteğini seçili sunucuya geçirir.

Etki alanını seçmek basittir. Etki alanı adı LsaLogonUser'a geçirilir. Etki alanı adı aşağıdaki gibi işlenir:

  • Etki alanı adı SAM veritabanının adıyla eşleşiyorsa, kimlik doğrulaması bu bilgisayarda işlenir. Bir etki alanının üyesi olan bir Windows iş istasyonunda, SAM veritabanının adı bilgisayarın adı olarak kabul edilir. Active Directory etki alanı denetleyicisinde, hesap veritabanının adı etki alanının adıdır. Etki alanının üyesi olmayan bir bilgisayarda, tüm oturum açma işlemleri istekleri yerel olarak işler.
  • Belirtilen etki alanı adına bu etki alanı tarafından güveniliyorsa, kimlik doğrulama isteği güvenilen etki alanına geçirilir. Active Directory etki alanı denetleyicilerinde, güvenilen etki alanlarının listesi kolayca kullanılabilir. Windows etki alanının bir üyesinde istek her zaman iş istasyonunun birincil etki alanına geçirilir ve birincil etki alanının belirtilen etki alanına güvenilip güvenilmediğini belirlemesine olanak sağlar.
  • Belirtilen etki alanı adına etki alanı tarafından güvenilmiyorsa, kimlik doğrulama isteği, belirtilen etki alanı adı bu etki alanı adı gibi bağlanılan bilgisayarda işlenir. NetLogon var olmayan bir etki alanı, güvenilmeyen bir etki alanı ve yanlış yazılan etki alanı adı arasında ayrım yapmaz.

NetLogon, bulma adlı bir işlemle etki alanındaki bir sunucuyu seçer. Windows iş istasyonu, birincil etki alanındaki Windows Active Directory etki alanı denetleyicilerinden birinin adını bulur. Active Directory etki alanı denetleyicisi, her güvenilen etki alanındaki bir Active Directory etki alanı denetleyicisinin adını bulur. Bulmayı sağlayan bileşen, Netlogon hizmetinde çalışan DC Bulucu'dur. DC Bulucu, yapılandırılan etki alanı ve güven türüne bağlı olarak gerekli sunucuları bulmak için NETBIOS veya DNS ad çözümlemesi kullanır.