- Tuz, her kullanıcı için benzersiz karma değerleri elde etmek amacıyla parolaya karma değerinin öncesinde eklenen rastgele bir dizedir.
- Linux /etc/shadow dosyasında hash, salt ve algoritma depolanarak sözlük saldırılarına ve gökkuşağı tablolarına karşı güvenlik artırılır.
- İyi uygulamalar, sağlam karma algoritmaları ve uzun, rastgele ve benzersiz tuzlar gerektirir. veritabanları iyi korunmuştur.
- Parola tuzlaması, güçlü parolalar, MFA ve parola yöneticileri gibi daha geniş güvenlik politikalarına entegre edilmelidir.

GNU/Linux sistemleriyle çalışıyorsanız veya hesaplarınızın güvenliği konusunda endişeleriniz varsa, muhtemelen şunu duymuşsunuzdur: şifre karmasındaki tuzÇokça bahsedilen ama çoğu zaman tam olarak anlaşılmayan kavramlardan biri: Kulağa teknik geliyor ama gerçekte kırılması kolay bir sistem ile saldırılara karşı çok daha dirençli bir sistem arasındaki farkı yaratıyor.
Kısacası, tuz bir parola karmalarını öngörülemez hale getirmenin temel unsuruKarma algoritması uygulanmadan önce rastgele veriler eklenerek çalışır, böylece iki kullanıcı aynı parolaya sahip olsa bile veritabanında saklanan sonuç farklı olur. Buradan itibaren, Linux'taki özel uygulama, /etc/shadow ile ilişkisi, mkpasswd gibi araçlar ve modern güvenlik uygulamaları başlı başına bir dünyadır ve bunları ayrıntılı olarak inceleyeceğiz.
Bir parola karmasındaki tuz tam olarak nedir?

Kriptografide, bir tuz (tuz) bir rastgele karakter dizisi Bir karma işlevi uygulanmadan önce kullanıcının parolasına eklenen bir işlevdir. Amaç, düz metin parolası birden fazla kullanıcı için aynı olsa bile, ortaya çıkan karmanın benzersiz olmasıdır.
Bir kullanıcı şifresini oluşturduğunda veya değiştirdiğinde, sistem bir rastgele tuzBunu şifreyle birleştirir (şemaya bağlı olarak önce, sonra veya belirli bir biçimde) ve bu kombinasyona bir karma algoritması uygular, örneğin: SHA-256 o SHA-512Şifre veritabanında saklanmaz, bunun yerine (şifre + tuz) özetive çoğu şemada tuzun kendisi de karma ile birlikte saklanır.
Bu teknik, birçok şeyi ortaya çıkarır önceden hesaplanmış karmalara dayalı saldırı teknikleriGökkuşağı tabloları gibi, sözlük ve kaba kuvvet saldırılarını büyük ölçüde karmaşıklaştırır. Bir saldırgan artık birden fazla kullanıcının aynı parolayı paylaşmasından yararlanamaz, çünkü her birinin farklı bir özeti olacaktır.
Tuzun başlı başına bir sır olmadığını anlamak önemlidir: Bu bir şifre veya özel anahtar değildirİşlevi, karma işlemine rastgelelik ve benzersizlik katmaktır. Güvenlik hala şu şekilde kullanılmasına bağlıdır: güçlü parolalar y uygun karma algoritmaları, tercihen özellikle parolalar için tasarlanmıştır (örneğin bcrypt, scrypt, Argon2), ancak birçok klasik Linux sistemi SHA-256 veya SHA-512'nin varyantlarını kullanır.
Şifre tuzlama adım adım nasıl çalışır?

Tuzlama işlemi oldukça basit bir dizi adımla özetlenebilir, ancak güvenlik üzerinde büyük bir etkisi var:
İlk olarak, bir kullanıcı kaydolduğunda veya şifresini değiştirdiğinde sistem bir benzersiz ve rastgele tuz Bu kimlik bilgisi için. Bu tuz genellikle yeterli uzunluktadır (örneğin, 16 bayt veya daha fazla) ve kriptografik olarak güvenli bir rastgele sayı üretecinden elde edilir.
Daha sonra kullanıcı tarafından seçilen şifre, bu tuzla birleştirilerek bir şifre oluşturulur. ara zincirBu kombinasyon, salt + password'ü birleştirmek kadar basit olabileceği gibi, karma şemasıyla tanımlanan daha karmaşık bir formata da sahip olabilir. Önemli olan, her kullanıcının farklı bir kombinasyon elde etmesidir.
Sonra, bir tek yönlü karma algoritmasıSonuç, sabit uzunlukta, görünüşte rastgele bir dize olan karmadır ve bu, tuzla birlikte veritabanında saklanacaktır. Modern sistemlerde, aşağıdakileri üreten algoritmalar aranmaktadır: uzun ve karmaşık çıkışlarBu durum arama alanını genişletir ve kaba kuvvet saldırılarının daha pahalı olmasına neden olur.
Son olarak kullanıcı giriş yaptığında sistem tekrar girilen şifreyi alır. ilişkili tuz Veritabanından aynı birleştirme ve karma işlemini tekrarlar ve sonucu depolanan karma ile karşılaştırır. Eşleşirlerse, düz metni bilmesine gerek kalmadan parolanın doğru olduğunu bilir.
Bu mekanizma, veritabanı sızdırılsa bile saldırganın yalnızca kendi tuzlarına sahip bireysel karmalarKarşılaştırılabilir bir karma kümesi yerine, bir saldırıyı durdurmak sihir değildir, ancak hesaplama açısından önemli ölçüde daha maliyetli hale gelir.
Şifre karmalarında tuz kullanmanın avantajları

Tuzlamanın kullanılmasının temel nedeni şudur: saklanan parolaların güvenliğini güçlendirir çok çeşitli saldırılara karşı etkilidir. Ancak, spesifik faydalarını ayrıntılı olarak belirtmekte fayda var.
Öncelikle tuzlama sağlar sözlük saldırılarına karşı dirençTuz olmadan, bir saldırgan yaygın parolaların ve karma değerlerinin yer aldığı devasa bir liste hazırlayabilir ve bunları çalınan veritabanıyla karşılaştırabilir. Kullanıcı başına benzersiz bir tuz değeriyle, önceden hesaplanmış bu karma değerler işe yaramaz hale gelir, çünkü her parola + tuz kombinasyonu farklı bir değer üretir.
İkincisi, tuz kullanımı, ilacın etkinliğini bozar. gökkuşağı masalarıBunlar, popüler parolaların kurtarılmasını hızlandırmak için önceden hesaplanmış karma veritabanlarıdır. Sonuç, belirli tuza bağlı olduğundan, tuzlanmamış karmalar için tasarlanmış bu tablolar işe yaramaz veya en azından oldukça verimsiz hale gelir.
Bir diğer belirgin avantajı ise, sızıntı durumunda gizlilikBir saldırgan, hash ve salt değerleriyle kullanıcı tablosuna erişse bile, kimin diğerleriyle aynı parolaya sahip olduğunu hızlı bir şekilde tespit edemez veya kolayca toplu saldırılar başlatamaz. Her hesap, genellikle büyük ölçekte pratik olmayan bireysel ilgi gerektirir.
Ayrıca tuzlama, işleme karmaşıklık katar. kaba kuvvet saldırılarıSaldırgan, aday parolayı tüm karma değerlerine karşı aynı anda test etmek yerine, her kullanıcının tuzunu dikkate almak zorunda kalır ve bu da toplam iş yükünü artırır. Bu durum, yavaş ve parametrelendirilebilir bir karma algoritmasıyla (bcrypt veya Argon2 gibi) birleştirildiğinde, saldırı maliyeti daha da artar.
Son olarak, tuzlama, teknolojik evrime iyi uyum sağlayan bir tekniktir. Bilgisayar ekipmanları gelişse ve yeni saldırılar ortaya çıksa bile, sağlam hash ve benzersiz tuzun birleşimi Yüksek ve ölçeklenebilir bir zorluk seviyesi korur: Tuzun uzunluğunu artırabilir, algoritmayı güçlendirebilir, hesaplama maliyetini artırabilirsiniz, vb.
Linux parola tuzlamasını (/etc/shadow) nasıl uygular?
Linux sistemlerinde ve diğer *NIX sürümlerinde, kullanıcı parolaları /etc/passwd dosyasında değil, dosyada saklanır. / etc / shadowSadece süper kullanıcı tarafından erişilebilen bu dosya, şifre karmalarını ek bilgilerle birlikte saklar ve tuz kullanımı ile karma algoritmasının açıkça görüldüğü yerdir.
/etc/shadow dosyasındaki satırların yapısı şuna benzer:
kullanıcı:$id$sal$hash:ek_alanlar…
Sembol $ Farklı bölümleri ayırın. Kullanıcı adından sonraki ilk bölüm, algoritma türü kullanılmış. Örneğin, 1 $ genellikle MD5'i temsil eder, 5 $ SHA-256 ve 6 $ Modern dağıtımlarda en yaygın kullanılan algoritma olan SHA-512, DES veya MD5 tabanlı eski şemalara göre daha fazla güvenlik sunar.
Algoritma tanımlayıcısı göründükten sonra tuzve sonra ortaya çıkan karmaTüm bunlar aynı alandadır. Bir parola doğrulandığında, sistem bu tanımlayıcıyı, yani tuzu okur, girilen parolaya karşılık gelen algoritmayı uygular ve hesaplanan karmayı depolananla karşılaştırır.
Hangi kullanıcıların şifreli parolalara sahip olduğunu ve hangi algoritmanın kullanıldığını hızlıca incelemek istiyorsanız, şu komutu kullanabilirsiniz: grep '\$' /etc/shadowBu bağlamda, dolar işareti ($), modern formatta karma içeren satırları bulmak için kullanılır. Düzenli ifadelerde "satır sonu" anlamına geldiğinden, bu simgenin önüne ters eğik çizgi konulmalıdır.
Şifresi olmayan veya kilitli hesaplar genellikle bu alanda şu şekilde bir değer gösterir. ! o * Dolar içeren bir karma yerine, standart bir parola kullanılarak kimlik doğrulamasının yapılamayacağını belirten bir yapı. Bu yapı bir şeyi açıklığa kavuşturuyor: Linux, tuzlamayı kendi formatına entegre ediyor depolama şifreler doğal olarak.
Şifre karma ve tuzlama arasındaki fark
Bazen birbirine karıştırılan iki kavramı net bir şekilde ayırmak önemlidir: karma y tuzlamaParola karma işlemi, bir parolanın tek yönlü bir algoritma kullanılarak tanınmaz bir değere dönüştürülmesi işlemidir. Sunucunun orijinal parolayı bilmesi gerekmez, yalnızca kullanıcının doğru parolayı bildiğini doğrulaması gerekir çünkü aynı karma değerini üretir.
Sorun şu ki, iki parola aynıysa, Tuzsuz haşhaş da aynı olacaktırBu, bir saldırganın kullanıcıları parolaya göre karşılaştırıp gruplandırmasına veya önceden hesaplanmış tabloları kullanmasına olanak tanır. Ayrıca, karma algoritması hızlıysa ve veri bütünlüğü için tasarlanmışsa (örneğin basit SHA-256), büyük kaba kuvvet saldırılarına karşı daha savunmasız hale gelir.
Tuzlama tam da bu zayıflığı çözmek için devreye giriyor: şifreye rastgele veri ekle Sonuç olarak, iki kullanıcı parola olarak "casa"yı seçse bile, veritabanındaki karmalar tamamen farklı olacaktır, çünkü örneğin birinde ön karma dizesi olarak "casa+7Ko#", diğerinde ise "casa8p?M" bulunacaktır.
Bu nedenle, karma ve tuzlama birbirinin rakibi değil, tamamlayıcısıdır. Karma, tek yönlülük özelliği ve doğrulama kolaylığı; tuz sağlar büyük saldırılara karşı benzersizlik ve dayanıklılıkGüvenli bir parola depolama uygulaması, her iki tekniği de birleştirir ve ideal olarak bu amaç için tasarlanmış bir algoritmayı kullanarak, yapılandırılabilir bir maliyetle gerçekleştirir.
Linux'ta mkpasswd ile salt kullanımı
GNU/Linux ortamlarında ve diğer sistemlerde UnixTuzlama ile deney yapmanın çok pratik bir yolu, alettir mkpasswdBu komut, oluşturmak için kullanılır şifrelenmiş parolalar güvenli bir şekilde çalışır ve kullanıcı oluşturma süreçlerine, yönetim betiklerine vb. yaygın olarak entegre edilir.
mkpasswd'nin temel sözdizimi, şifrelenecek parolayı ve algoritma türü (örneğin, des, md5, sha-256, sha-512) gibi bir dizi seçeneği belirtmenize olanak tanır. -mModern sistemlerde yapılacak en mantıklı şey, SHA-512 en azından, ya da dağıtım destekliyorsa daha da sağlam şemalarla.
Tuzlama bağlamında özellikle ilginç olan seçenek şudur: -Ssağlayan tuz ekle Şifrelemeden önce parolayı girin. Manuel olarak belirtilmezse, mkpasswd bir her uygulamada rastgele tuzBöylece aynı giriş şifresi kullanılsa bile, ortaya çıkan hash her seferinde farklı olur.
Bunu kolayca doğrulayabilirsiniz: "password123" değerini mkpasswd ile SHA-512 ve rastgele bir tuz kullanarak birkaç kez şifrelerseniz, tamamen farklı karma değerler elde edersiniz. Ancak, aynı tuz değerini -S kullanarak geçirirseniz, parola + tuz kombinasyonu değişmediği için karma değer her zaman aynı olacaktır.
Bu araç sayesinde çok kolay Tuzla şifrelenmiş parolalar hazırlayın Yapılandırma dosyalarına eklemek, kullanıcıları manuel olarak yönetmek veya herhangi bir şey programlamaya gerek kalmadan tuzlama davranışını test etmek için.
Genel olarak bayt ve teknoloji dünyası hakkında tutkulu bir yazar. Bilgilerimi yazarak paylaşmayı seviyorum ve bu blogda da bunu yapacağım; size gadget'lar, yazılım, donanım, teknolojik trendler ve daha fazlasıyla ilgili en ilginç şeyleri göstereceğim. Amacım dijital dünyada basit ve eğlenceli bir şekilde gezinmenize yardımcı olmaktır.