Yanıtlar:
Unix ve Unix tarzı işletim sistemleri (Linux dahil) en başından beri şifreleri her zaman şifreleme karmaları olarak depolamışlardır (1). Bu karma değerler başlangıçta depolandı /etc/passwd, ancak bu dosyanın bilgileri başka amaçlar için kullanılabilir hale getirmek için dünyaca okunabilir olması ls -lgerekiyordu; hatta /etc/passwdher dosyanın sahibinin sayısal kullanıcı kimliğini görüntülemek üzere kullanıcı adlarına dönüştürmek için okunması gereken basit bir ihtiyaç bile vardı . Bununla birlikte, şifrelenmiş şifrelerin dünyaca okunabilir bir dosyada bulunması, kötü niyetli kullanıcıların bu hastayı kolayca elde etmelerini ve diğer kullanıcıların hesapları için kullanılabilir şifreler (2) oluşturmaya çalışmasını sağlamıştır.
Bunu önlemek için, karma parolalar sonunda yalnızca root tarafından (ve bazen ayrıcalıklı bir yönetici grubu) okunabilen bir dosyaya taşındı /etc/shadow. Bu, kullanıcıların normal doğrulama kullanıcılarından gelen karmaları, kullanıcı kimlik doğrulama amaçları için hazır bulundurmalarını sağlar.
Notlar :
Pedantik, biliyorum, fakat saklanan şifreler şifreli değil . Kriptografik olarak güvenli (en azından yazıldığı zamandan itibaren) karma algoritma kullanılarak hashedilirler. Buradaki ilgili temel ayrımlar, sabit uzunlukların (şifreli metnin uzunluğunun, şifrelenmiş metnin uzunluğuna bağlı olarak değişir) ve geri dönüşümsüz (şifreli metnin şifresi çözülebilir; karma metnin olamaz) olmasıdır.
Karma değerler sabit uzunluklu olduğu için, verilen karma gösterim ile eşleşecek sonsuz sayıda girdi vardır. Bu nedenle bir saldırgan, sahip olunan kullanıcının şifresiyle aynı olması gerekmeyen bir çalışma şifresi bulabilir - buna rağmen, modern şifreleme karmalarının büyüklüğü çok düşüktür.
/etc/shadowGüvenlik nedenleriyle dosyaya oluşturulur ve her bir kullanıcının şifreli şifresini tutar edildi.
Başlangıçta, şifreli parola saklandı /etc/passwd. /etc/passwdSistemin kullanıcı adlarını kullanıcı adlarıyla eşleyebilmesi ve böylece diğerlerinin ana dizini veya geleneksel olarak "gecos" alanında depolanan telefon numarası hakkında bilgi bulabilmeleri için dünyaca okunabilir olması gerekiyordu. ve "parmak" yardımcı programı tarafından görüntülenir.
Ancak insanlar bunun bir güvenlik sorunu olduğunu anladılar. Yeterli zamanı olan herkes, her olası şifre için programlı olarak şifreli şifreler oluşturarak, kaba kuvvet saldırısı olarak adlandırılan şeyi yapabilir . Eğer saldırgan bunu telnetveya ile giriş yapmayı denemeden yaptıysa ssh, sistem saldırıya uğradığını bilemezdi.
Böylece şifrelenmiş parola yeni oluşturulmuş /etc/shadowve sadece root tarafından okunabilecek şekilde taşınmıştır .
Ayrıca, /etc/passwddosyanın kullanıcının hesabına ve şifresine ilişkin desteklemediği, örneğin şifrenin en son ne zaman değiştirildiği ve ne zaman sona ereceği gibi başka bilgiler de içerir .
Dosya formatının tüm ayrıntıları için man 5 shadow( web sürümü ) bölümüne bakın .
Hangi SUSE sürümüyle uğraştığınızı bilmeden SUSE için aynı olup olmadığını söyleyemem. Örneğin, SUSE sisteminiz MD5 yerine Blowfish kullanabilir.
Ayrıca, /etc/shadowdosyanızı farklı bir Linux dağıtımı çalıştıran bir sistemle karıştırdığınızı ancak diğer dağıtımın ne olduğunu söylemediğinizi ima ettiniz .
Örneğin , gölge dosyayı SuSE 9.3'ten Ubuntu Sunucusu x86_64'e geçirme Sorunlarına bakın .
Bunu anlamaya çalışmak için, açın /etc/shadowve şifreli parola alanının $1$veya ile başlayıp başlamadığını görün $2$. Eğer içeriyorsa $1$, MD5'tir ve diğer çoğu dağıtımla uyumludur. Eğer içeriyorsa $2$, muhtemelen Debian'daki Blowfish gölge dosyalarına göre Blowfish'tir .
Ubuntu kullanıyorsanız, Ubuntu blowfish için ilk Google arama sonucu iyi bir başlangıç olabilir.
Kullanıcılar /etc/passwddosyada listelenir . Bu dosya sadece kullanıcıların oturum açmasına izin vermek için değil, sistem tarafından kullanılan birçok bilgiyi içerir.
Her satır bir kullanıcı girişine karşılık gelir ve farklı alanlar virgüllerle ayrılır. İlk dosyalanan giriş, ardından gelen şifre izlenir.
Bu alanda depolanan eski şifreli şifreler. Ancak, /etc/passwddosya sistemdeki herkes tarafından okunabilir olmalıdır, bu nedenle şifreleme, @Mikel tarafından söylendiği gibi kaba kuvvet saldırılarını engellemez. Çözelti kök salt okunabilir dosyasında bu şifrelenmiş parolaları taşımak oldu: /etc/shadow.
Böylece, /etc/shadowsistem kullanıcılarının şifreli şifrelerini içerir. Sistem içinde şifre alanları zaman bu dosyada şifreleri kontrol etmek olduğunu bilir /etc/passwd( "anlamına yalnız bir x ihtiva çapraz / etc / shadow yanına")
/etc/passwdbulundukları gibi tamamen aynı şekilde saklandığını / saklandığını unutmayın /etc/shadow. Aslında parolaların düz metin olacağını söylemiyorsunuz/etc/passwd , ancak * nix parola işlemine aşina olmayan biri için cevabınızı bu şekilde yanlış yorumlaması kolay olacaktır.
xanlamı olduğunu sanmıyorum. Sadece geçersiz bir karma olarak var (şifreyle eşleşmeyen). Bazı sistemler kullanır !.
Bakalım dünyadaki tüm oyları alabilir miyim, çünkü '87'deki Linux Shadow Password Suite'i ne yazmıştım;)
Orijinal /etc/passwddosya, cleartext şifresinin değiştirilmiş bir DES tabanlı karmasını içeriyordu. Zamanda crypt()işlevi inanılırdı (ve bu UNIX işletim sisteminin yaratıcıları tarafından ifade edilmiştir) nedeniyle olası şifre sayısı ve 12 bit kullanımına, şifre karma karşı saldırıları yapılamaz olurdu yaratıldı (4,096 olası değerler) "tuz". Her olası açık metin şifresi 4.096 olası karma değere ve toplamda 2 ^ 72 olası şifre karma değerine sahip 64 bit karma sonuç vermiştir.
Bahsedilen bir başka posterde, /etc/passwdkullanıcı adları ve UID değerleri ( /etc/groupdosya gruplar için benzer işlevler sağlar) arasında eşleme yapmak için çeşitli programlar tarafından da kullanılmıştır ve bunun dünyaca okunabilir olmasını gerektirmiştir.
1980'lerde, /etc/passwddosyada depolanan parola hastasına yönelik sözlük saldırıları yapılabildiği ve /etc/shadowV Sisteminin ilk sürümünde AT&T UNIX’e tanıtıldığı ortaya çıktı. ve unutulduğundan beri, ancak kesinlikle erken bir System V sürümü, muhtemelen SVR3.2 idi.
AT&T ne yaptı ve nihayetinde Linux'ta kullanılan SCO Xenix (orijinal SCO Xenix, daha sonra kötü SCO Xenix değil) 'de nihayetinde Linux'ta kullanılmaya başlandı /etc/shadow. Bu, imtiyazsız bir kullanıcının bir kopyasını aldığı /etc/passwdve kendisine yönelik bir saldırı düzenlediği, arabanın saldırısını engelledi . Neden ilk olarak Shadow'u yazdığımı biliyorsanız, bir kullanıcı da /etc/passwdUUCP'yi hemen hemen her şey için kullandığımız günlerde UUCP üzerinden dosyamı indirdi.
Linux yaratıldı ve yaygın bir şekilde kullanılmaya başladığında, şifre karmalarına saldırmak için çok sayıda araç vardı. Yüksek performans uygulamaları crypt()bir cadde, Crack ve libcrack gibi araçlarla sözlüğe dayalı saldırılar da diğerleri arasındaydı. İlk liman Nate Holloway ve Floria La Roche tarafından yapıldı (onlara kredi verdim, onlardan önce işi yapan var mı bilmiyorum).
Sonunda, crypt()korumalı bir dosyada bile , tabanlı karmaların kullanımı artık güvenli değildi ve orijinal MD5tabanlı karma değişiklikler yapıldı. MD5Sonunda çok zayıf olarak kabul edildi ve yeni karma kullanıldı.
Teorik olarak, yeterince güçlü bir karma içinde saklanabilir /etc/passwd. Zayıf operasyonel güvenlik, birçok sistemin kendi /etc/shadowdosyalarına çeşitli saldırı vektörleri yoluyla ulaşabileceği anlamına gelir - "yedek dosyaları çaldım" muhtemelen en kolay olanıdır.