Yanıtlar:
Sisteminiz, MD5, SHA1 vb. Şifreleri saklamak için bir şifreleme karma kullanıyorsa, bu karma değerler herhangi bir miktarda veri ile oluşturulabildiğinden, parola uzunluğu için bir sınır yoktur. Bir MD5 veya SHA1 karma tüm sabit sürücü için oluşturulabilir ve bu genellikle adli amaçlar için yapılır, çünkü bir bit bile bu kadar hafif bir şekilde değiştirilirse, o zaman çok farklı bir karma değeriniz olur ve dolayısıyla verilerin değiştiğini doğrulayabilirsiniz. Bu, verilerin değiştirilip değiştirilmediğini test etmek için bu aynı algoritmaları kullanabileceğiniz anlamına gelir. Linux (en azından şu anki Linux) aynı karma fonksiyonları kullanır. Sizden bir şifre isteyecek ve daha sonra verdiğiniz şifrenin şifreli bir özetini oluşturacak ve bu değerin saklanan şifre ile uyuşup uyuşmadığını görecektir.
Bir karma değerinin sonlu bir boyuta sahip olduğu bu karma'lerin kullanılmasının hafif bir dezavantajı vardır, örneğin bir MD5 karma 128 bit'dir. Bu araçlar bir MD5 yalnızca sahip olduğu 2^128
ya da 340,282,366,920,938,463,463,374,607,431,768,211,456
olası kombinasyonları. Şimdi bu büyük bir sayı olsa da, bunun anlamı, aynı hastayı üreten iki farklı öğeye veya anahtara sahip olduğunuz karma çarpışma olarak adlandırdığınız şeye sahip olmanızdır. Teoride, daha büyük anahtar boyutu, bir çarpışma düşük olasılık ve o kadar uzun kaba kuvvet için bir şifre almalı ama kesinlikle entropinin ve ne kadar süre olduğunu o CANAncak, denedikleri ilk girişin karma çarpışma olsa bile eşleşen kayıt olma ihtimali de vardır. Genel olarak konuşursak, daha büyük anahtar boyutuna sahip bir hash kullanmak daha güvenlidir, çünkü bunun MD5 olduğunu varsayalım, 340,282,366,920,938,463,463,374,607,431,768,211,456
olası eşleşmelerden eşleşen ilk parolanın ihtimalinin çok düşük olması olasıdır. Ayrıca iyi bir şifre seçin, çünkü birçok kraker kelime listelerini, isim listelerini ve bu listenin mutasyonlarını (örneğin, eğer kelime "balık" ise, o zaman deneyecekler fish1234
, fish!@#$
vb.) Bir şifre zorlamadan kullanmaya çalışacaklardır .
Sisteminizde şifreleri saklamak için şifreleme karmaları kullanıp kullanmadığını anlamanın yolu, /etc/shadow
dosyaya bakmaktır (kök erişiminiz olduğunu varsayarak). Her satır gibi biçimlendirilmiş user:password:last-changed:minimum-age:maximum-age:warning-period:inactivity-period:expiration-date:reserved
. Parola alanı ile başlayabilir $num$
(örn., Parola alanındaki bir md5 karması, $1$01234567$b5lh2mHyD2PdJjFfALlEz1
başladığı yere benziyor $1$
). Bununla başlıyorsa, sisteminiz şifreli bir karma kullanıyor demektir. Tüm modern sistemlerde şifre alanının formatıdır $id$salt$hash
. Kimlik, ne tür bir şifreleme karma kullandığınızı belirtir. Tuz, bilinen karma değerlerinin önceden hesaplanmış tablolarına karşı korumak için, anahtarla (düz metin şifresi) birleştirilen rastgele oluşturulmuş bir dizedir. Karma, tuz ve anahtar / parolanın oluşturduğu şifreleme karmadır. Şifre alanınız ile başlıyorsa$num$
o zaman şifreli karmaları kullanıyorsunuz.
Yani, biliyorsunuz, sayılar şöyle:
$1$
MD5 kullandığınız anlamına gelir$2$
veya $2a$
blowfish kullandığınız anlamına gelir$5$
SHA-256 kullandığınız anlamına gelir$6$
SHA-512 kullandığınız anlamına gelirSHA-512, glibc'in sunduğu en iyi karmadır. Blowfish'in ne kadar güçlü olduğunu bilmiyorum ama bu glibc'nin bir parçası değil ve sadece onu ekleyen bazı dağıtımlarda mevcut. SHA-512, bir çarpışma beklenmeden önce 512 bit anahtar veya 2 ^ 512 olası kombinasyon oluşturur ve yeteri kadar karmaşık bir parola ile, karma bir parola veya karmaşayı bulmak için çok uzun bir süre bir bilgisayar kümesini alır. .
Ayrıca, başlamayan bir karmaşanız $num$
varsa, DES kullanırsınız ve bu 8 karakter uzunluğuyla sınırlıdır. DES veya en azından bazılarını kullanan eski sistemin herhangi bir boyut şifresini alacağına, ancak yalnızca ilk 8 karakteri kullanacağına inanıyorum. Bu, eğer şifrenizi ayarlarsanız mybigbigapple
ve birisi şifreyi kullanırsa, mybigbigcity
içeri girmelerine izin verilecektir, çünkü DES sadece kullanacaktır mybigbig
ve ondan sonraki herşey atılır.
Biliyorsunuz, Nisan 2008'de piyasaya sürülen 8.04'ten itibaren Ubuntu, MD5 hashelerini kullandı. Ekim 2008'de piyasaya sürülen 8.10'dan Ubuntu ve o zamandan beri tüm sürümler SHA-512 karma kullanıyor. Nisan 2008'den ne kadar önce bilmiyorum ama sanırım çoğu dağıtım için hash kullanmıyorsanız birkaç yıl daha fazla.
Ubuntu'nun güncel 12.04 ve 14.04 LTS (uzun süreli destek sürümleri) $6$
, / etc / shadow dosyasındaki karma çizimde görüldüğü gibi varsayılan olarak SHA-512'yi kullandığı görülüyor :
catullus:$6$MsHYK60sqcv$BtDqVCMXibpqg[...]
Şimdi herhangi bir karma algoritma için izin verilen anahtar veya şifrenin uzunluğu, hangi boyut şifresine sahip olduğunuzu belirleyen tek şey değildir. Diğer bir ilgi konusu ise programın nasıl yazıldığı ve hangi uzunluk programlarının destekleyeceği. Tüm modern şifre programları ve muhtemelen crypt(3)
Linux'taki fonksiyonların çoğu . Uzun süre şifreleyin (en azından MD5 kullanıldığından ve muhtemelen bundan önce), gerçek anahtar için karakter işaretçilerine izin vermiştir. Bu, bir anahtarın ne kadar süreyle kabul edeceği konusundaki tek sınırın, programın kullanabileceği RAM miktarına bağlı olduğunu, ancak her durumda, bu muhtemelen herhangi bir kişinin hatırlayabileceği herhangi bir şifreden çok daha uzundur (milyonlarca karakter?).
Bu, bir şifrenin ne kadar süreceği konusunda sorunuza cevap vermelidir. Umarım yardım etmişimdir.
Referanslar:
kripto (3) kılavuz sayfası (Ubuntu 14.04)
Hangi kimlik doğrulama modülünün kullanıldığına bağlıdır. Modern Linux sistemlerinde, şifre uzunluğu için maksimum sınır yoktur. Bazı eski sistemler parola saklama sistemleri tarafından getirilen sınırlamalara sahip olabilir - popüler maksimum değerler 8, 40 ve 255 gibi görünüyor.
Şifrenin nasıl depolandığına bağlı olarak, MD5, SHA1, BlowFish vb. Depolama yönteminin kendisinin belirlediği şifre sınırlaması olmadığını düşünüyorum.
Daha eski uygulamaların, muhtemelen 8 veya 255 karakter olan bir sınırı olabilir.
Bu, www.serverfault.com için olsa daha uygun bir soru gibi görünüyor :)
Passwd komutu, şifreleme için mcrypt Komutunu içerir. Mcrypt kaynak koduna göre maksimum stdin boyutu 512 Karakter (şifre) ile sınırlandırılmıştır - fakat bu iki yıl önceydi .... - (Bu cevabı önümüzdeki saatlerde güncelleyeceğim) ... Evet ... Kaynak kodunda Src dizininde bulunan 2.6.8 mcrypt, getpass.c dosyası var - orada başında statik değer olarak ayarlanan 512 değerini görün. (1.4 GB'a kadar pompalamayı çok isterdim ...):