Passwd - Passwd

passwd
Orijinal yazar (lar)AT&T Bell Laboratuvarları
Geliştirici (ler)Çeşitli açık kaynak ve ticari geliştiriciler
İşletim sistemiUnix, Unix benzeri, Plan 9, Cehennem
PlatformÇapraz platform
TürKomut

passwd bir komut açık Unix, Plan 9, Cehennem, ve en Unix benzeri işletim sistemleri bir kullanıcının parola. Kullanıcı tarafından girilen parola bir anahtar türetme işlevi Oluşturmak için karma sürüm kaydedilen yeni şifrenin Yalnızca hashing uygulanmış sürüm saklanır; girilen şifre güvenlik nedeniyle kaydedilmez.

Kullanıcı oturum açtığında, oturum açma işlemi sırasında kullanıcı tarafından girilen şifre aynı anahtar türetme işlevi üzerinden çalıştırılır ve elde edilen karma sürüm, kaydedilen sürümle karşılaştırılır. Karmalar aynıysa, girilen parolanın doğru olduğu kabul edilir ve kullanıcının kimliği doğrulanır. Teorik olarak, iki farklı parolanın aynı hashi üret. Ancak, kriptografik hash fonksiyonları aynı hash'i üreten herhangi bir şifreyi bulmanın çok zor ve pratik olarak imkansız olacağı şekilde tasarlanmıştır, bu nedenle üretilen karma saklanan ile eşleşirse, kullanıcı kimliği doğrulanabilir.

Passwd komutu, yerel hesapların parolalarını değiştirmek için kullanılabilir ve çoğu sistemde, dağıtılmış bir kimlik doğrulama mekanizmasında yönetilen parolaları değiştirmek için de kullanılabilir. NIS, Kerberos veya LDAP.

Şifre dosyası

/ etc / passwd dosya, metin tabanlı bir veri tabanıdır. kullanıcılar o olabilir giriş çalışan işlemlere sahip olan sistem veya diğer işletim sistemi kullanıcı kimlikleri.

Birçok işletim sisteminde, bu dosya, daha genel bir dosya için birçok olası arka uçtan yalnızca biridir. passwd isim hizmeti.

Dosyanın adı, doğrulama için kullanılan verileri içerdiği için ilk işlevlerinden birinden kaynaklanmaktadır. şifreler kullanıcı hesapları. Ancak, modern Unix sistemler, güvenliğe duyarlı parola bilgileri bunun yerine genellikle gölge parolalar veya diğer veritabanı uygulamaları kullanılarak farklı bir dosyada saklanır.

/ etc / passwd dosyada tipik olarak dosya sistemi izinleri sistemin tüm kullanıcıları tarafından okunabilmesini sağlayan (herkes tarafından okunabilir), ancak yalnızca tarafından değiştirilebilir süper kullanıcı veya birkaç özel amaçlı ayrıcalıklı komut kullanarak.

/ etc / passwd dosya bir Metin dosyası başına bir kayıt ile hat, her biri bir tanımlıyor Kullanıcı hesabı Her kayıt, ile ayrılmış yedi alandan oluşur. iki nokta üst üste. Dosya içindeki kayıtların sıralaması genellikle önemsizdir.

Örnek bir kayıt şunlar olabilir:

jsmith: x: 1001: 1000: Joe Smith, Oda 1007, (234) 555-8910, (234) 555-0044, e-posta: / home / jsmith: / bin / sh

Soldan sağa sırayla alanlar şunlardır:[1]

  1. jsmith: Kullanıcı adı: bir kullanıcının işletim sisteminde oturum açarken yazacağı dize: günlük adı. Dosyada listelenen kullanıcılar arasında benzersiz olmalıdır.
  2. x: Bir kullanıcının parola; Çoğu modern kullanımda, bu alan genellikle "x" (veya "*" veya başka bir gösterge) olarak ayarlanır ve gerçek şifre bilgileri ayrı bir gölge şifre dosya. Açık Linux sistemler için, bu alanı yıldız işaretine ("*") ayarlamak, bir hesabın adını korurken doğrudan oturum açmayı devre dışı bırakmanın yaygın bir yoludur; diğer bir olası değer ise NIS parolayı almak için sunucu.[2] Parola gölgelendirme etkin olmasaydı, bu alan genellikle kullanıcının parolasının kriptografik bir özetini içerir (bir tuz ).
  3. 1001: kullanıcı tanımlayıcı numarası, işletim sistemi tarafından dahili amaçlar için kullanılır. Benzersiz olması gerekmez.
  4. 1000: grup tanımlayıcı kullanıcının birincil grubunu tanımlayan numara; Bu kullanıcı tarafından oluşturulan tüm dosyalara başlangıçta bu grup erişebilir.
  5. Joe Smith, Oda 1007 ...: Gecos alanı, kişiyi veya hesabı tanımlayan yorum. Tipik olarak bu, kullanıcının tam adı ve iletişim bilgilerini içeren virgülle ayrılmış değerler kümesidir.
  6. / ev / jsmith: Kullanıcının yolu ana dizin.
  7. / bin / sh: Kullanıcı sisteme her giriş yaptığında başlatılan program. Etkileşimli bir kullanıcı için bu genellikle sistemin komut satırı yorumlayıcıları (kabuklar ).

Gölge dosyası

/ etc / shadow yüksek ayrıcalıklı kullanıcılar dışındaki tüm kullanıcıların karma parola verilerine erişimini kısıtlayarak parolaların güvenlik düzeyini artırmak için kullanılır. Tipik olarak, söz konusu veriler yalnızca sahip olduğu dosyalarda tutulur ve yalnızca süper kullanıcı.

Sistem yöneticileri, karma parolalar listesini ayrıcalıksız kullanıcılar tarafından okunamaz hale getirerek kaba kuvvet saldırıları olasılığını azaltabilir. Bunu yapmanın açık yolu, passwd veritabanının kendisi yalnızca kök kullanıcı tarafından okunabilir. Ancak bu, kullanıcı adı-kullanıcı kimliği eşlemeleri gibi dosyadaki diğer verilere erişimi kısıtlar ve mevcut birçok yardımcı program ve hükümleri bozar. Çözümlerden biri, şifre karmalarının herkes tarafından okunabilen verilerdeki diğer verilerden ayrı tutulması için bir "gölge" şifre dosyasıdır. passwd dosya. Yerel dosyalar için bu genellikle / etc / shadow açık Linux ve Unix sistemleri veya /etc/master.passwd açık BSD sistemler; her biri yalnızca tarafından okunabilir kök. (Geleneksel "tümüyle güçlü kök" güvenlik modeline sahip sistemlerde, kök kullanıcı her durumda bilgiyi başka yollarla elde edebileceğinden, verilere kök erişim kabul edilebilir olarak kabul edilir). Hemen hemen tümü yeni Unix benzeri işletim sistemleri gölgeli parolalar kullanır.

Bazı ağ kimlik doğrulama şemaları, karma parolayı ağ üzerinden ileterek çalıştığından, gölge parola dosyası saldırganların hashing uygulanmış parolalara erişim sorununu tamamen çözmez (bazen açık metin, Örneğin., Telnet[3]), onu engellemeye karşı savunmasız hale getirir. Teybe veya optik ortama yazılan sistem yedeklemeleri gibi sistem verilerinin kopyaları da karma parolaların yasadışı bir şekilde elde edilmesinin bir yolu olabilir. Ayrıca, yasal parola kontrol programları tarafından kullanılan işlevlerin, kötü amaçlı programların yüksek hızlarda çok sayıda kimlik doğrulama kontrolü yapamayacağı şekilde yazılması gerekir.

Parola gölgelemenin belirli bir sistemde etkin olup olmadığına bakılmaksızın, passwd dosyası tüm kullanıcılar tarafından okunabilir, böylece çeşitli sistem yardımcı programları (örn. ls ) çalışabilir (örn., kullanıcı bir klasörün içeriğini listelediğinde kullanıcı adlarının gösterilmesini sağlamak için), buna yalnızca kök kullanıcı yazabilir. Parola gölgeleme olmadan, bu, sisteme ayrıcalıksız erişimi olan bir saldırganın her kullanıcının parolasının karma biçimini elde edebileceği anlamına gelir. Bu değerler, bir kaba kuvvet saldırısı Çevrimdışı, anormal sayıda başarısızlık tespit etmek için tasarlanmış sistem güvenlik düzenlemelerini uyarmadan, hash edilmiş parolalara karşı olası parolaları nispeten hızlı bir şekilde test etmek oturum aç denemeler. Özellikle hash tuzlanmadığında bu hash şifrelerine bakmak da mümkündür. gökkuşağı masaları, benzersiz bir hash için bir şifre geri vermek için özel olarak yapılmış veritabanları.

Gölgeli bir parola şeması kullanımdayken, / etc / passwd dosya tipik olarak '*"veya"x'Hashing uygulanmış parola yerine her kullanıcı için parola alanında ve / etc / shadow genellikle aşağıdaki kullanıcı bilgilerini içerir:

  • Kullanıcı oturum açma adı
  • tuz ve karma şifre VEYA bir durum istisnası değeri örn .:
    • $ id $ salt $ hashed, bir parola karmasının yazdırılabilir biçimi tarafından üretilen crypt (C), nerede $ id kullanılan algoritmadır. Diğer Unix benzeri sistemler farklı değerlere sahip olabilir, örneğin NetBSD. Anahtar germe artırmak için kullanılır şifre kırma varsayılan olarak 1000 tur değiştirilmiş MD5 kullanarak zorluk,[4] 64 mermi Blowfish, 5000 mermi SHA-256 veya SHA-512.[5] Tur sayısı değişebilir Balon balığı veya SHA-256 ve SHA-512 için $ A $ mermi = X $, burada "A" ve "X" algoritma kimlikleri ve tur sayısıdır.
      • $1$ - MD5
      • $ 2a $ - Balon balığı
      • $ 2y $ - Eksblowfish
      • $5$ - SHA-256
      • $6$ - SHA-512
    • Boş dize - Parola yok, hesabın parolası yok (Solaris'te "NP" ile passwd tarafından rapor edilir).[6]
    • "!", "*" - hesap parola kilitli, kullanıcı parola doğrulaması yoluyla oturum açamayacak, ancak diğer yöntemlere (örn. Ssh anahtarı, kök olarak oturum açma) yine de izin verilebilir.[7]
    • "* LK *" - hesabın kendisi kilitli, kullanıcı oturum açamayacak.[7]
    • "* NP *", "!!" - şifre hiç ayarlanmadı[8]
  • O günden beri çağ son şifre değişikliğinin yüzdesi
  • Değişikliğe izin verilen gün sayısı
  • Değişiklikten önceki günler gerekli
  • Son kullanma tarihi için gün uyarısı
  • Hesabın kilitlenmesinden önceki gün sayısı
  • Hesap süresinin dolduğu dönemden beri geçen gün sayısı
  • Ayrılmış ve kullanılmamış

Gölge dosyasının biçimi basittir ve temelde parola dosyasıyla aynıdır, kullanıcı başına bir satır, her satırdaki sıralı alanlar ve iki nokta üst üste ile ayrılmış alanlar. Birçok[ölçmek ] sistemler, gölge dosyasındaki kullanıcı satırlarının sırasının, şifre dosyasındaki karşılık gelen kullanıcıların sırası ile aynı olmasını gerektirir.

Tarih

Parola gölgelemeden önce, bir Unix kullanıcısının karma oluşturulmuş parolası, kayıtlarının ikinci alanında saklanıyordu. / etc / passwd dosya (yukarıda özetlendiği gibi yedi alanlı format içinde).

Parola gölgeleme ilk olarak Unix sistemlerinde SunOS 1980'lerin ortalarında,[9] Sistem V 1988'de 3.2 sürümü ve BSD 4.3 1990'da Reno. Ancak, önceki UNIX sürümlerinden bağlantı noktaları gerçekleştiren satıcılar, sürümlerinde her zaman yeni parola gölgeleme özelliklerini içermedi ve bu sistemlerin kullanıcılarını parola dosyası saldırılarına maruz bıraktı.

Sistem yöneticileri ayrıca şifrelerin dağıtılmış veritabanlarında saklanmasını da ayarlayabilir. NIS ve LDAP, bağlı her sistemdeki dosyalarda değil. NIS durumunda, gölge parola mekanizması genellikle NIS sunucularında hala kullanılmaktadır; diğer dağıtılmış mekanizmalarda, çeşitli kullanıcı doğrulama bileşenlerine erişim sorunu, temeldeki veri havuzunun güvenlik mekanizmaları tarafından ele alınır.

1987'de orijinalin yazarı Shadow Password Suite, Julie Haugh, bilgisayarda bir zorla giriş yaşadı ve aşağıdakileri içeren Shadow Suite'in ilk sürümünü yazdı oturum aç, passwd ve su komutlar. SCO için yazılmış orijinal sürüm Xenix işletim sistemi, hızla diğer platformlara taşındı. Gölge Süiti, Linux 1992'de Linux projesinin ilk duyurulmasından bir yıl sonra ve birçok erken dağıtımda yer aldı ve birçok güncel Linux dağılımlar.

Geçmişte, farklı kimlik doğrulama şemalarında parolaları değiştirmek için farklı komutlara sahip olmak gerekiyordu. Örneğin, bir NIS şifresini değiştirme komutu yppasswd. Bu, kullanıcıların farklı sistemler için şifreleri değiştirmek için farklı yöntemlerin farkında olmalarını gerektirdi ve aynı işlevleri farklı şekilde yerine getiren çeşitli programlarda kodun boşa çoğaltılmasına neden oldu. arka uçlar. Çoğu uygulamada, artık tek bir passwd komutu vardır ve parolanın gerçekte nerede değiştirildiğinin kontrolü, aracılığıyla kullanıcıya şeffaf bir şekilde işlenir. takılabilir kimlik doğrulama modülleri (PAM'lar). Örneğin, kullanılan karma türü, pam_unix.so modül. Varsayılan olarak, MD5 karma kullanılmıştır, ancak mevcut modüller de daha güçlü karmalara sahiptir. balon balığı, SHA256 ve SHA512.

Ayrıca bakınız

Referanslar

  1. ^ Anlama / etc / passwd Dosya formatı
  2. ^ "passwd (5) - Linux kılavuz sayfası". Man7.org. Alındı 2014-08-25.
  3. ^ RFC 2877: 5250 Telnet Geliştirmeleri
  4. ^ MD5 ile ilişkili olarak MD5-crypt ile parola hashingi
  5. ^ SHA512-crypt ve MD5-crypt'in uygulanması
  6. ^ "solaris - passwd (1)". cs.bgu.ac.il. Arşivlenen orijinal 2013-12-17'de.
  7. ^ a b shadow (5) man sayfası
  8. ^ "6.3. Red Hat Enterprise Linux'a Özgü Bilgiler". Access.redhat.com. 1970-01-01. Alındı 2014-08-25.
  9. ^ "SunOS-4.1.3'te passwd.adjunt (5)". Modman.unixdev.net. Alındı 2016-01-03.

Dış bağlantılar