Hibrit saldırı - Kapsamlı Operasyon
Project reference document Time2Crack
Recipients: geliştiricileri, güvenlik araştırmacıları, gelişmiş kullanıcılar
İçerikler
addHybridAttacks()1. Genel bakış
Hibrit saldırı, birleştiriren çatlak yöntemdir Bir sözlük kelime listesi ile birlikte Bir dizi dönüşüm kuralıHer kelimenin sözlükteki her kelimeyi test etmek yerine (sözcülük saldırısı), her kelimenin tüm plausible varyantlarını ortaya koyar - sermayeleşmeleri, karakter altkuruları, ek /suffix ekleri, inverss - ve sistematik olarak test eder.
Neden bu kadar etkili? İnsanlar bir şifre olarak "password" seçmezler, "Password1", "p@sw0rd", "PASSWORD123" veya "password!" gibi daha güçlü görünüyorlar, çünkü ham sözlük listesinde değiller - henüz herhangi bir modern hibrit çatlaklar aracı tarafından üretilen ilk kişi arasındalar.Hibrit saldırı tarihsel olarak gerçek "mean" şifre çatlaklarının çoğunluğu için sorumlu yöntemdir - güçlü olmayan görünürler Ma ve al. (2014, IEEE S&P), Mevcut bir kelimeye uygulanan ilk 8 ila 10 kural, medyan şifresini kırmak için yeterlidir Nüfus.
Time2Crack'de, hibrit saldırı modellendi:
2. Tarihsel ve akademik arka plan
2.1 Origins: John the Ripper ve mutasyon kuralları
Hibrit saldırı resmi olarak doğdu John the Ripper (Solar Designer, 1996), ilk kamu aracı, yapılandırılabilir bir kural motoru ile bir kelime listesini bir araya getirmek için.John the Ripper'dan önce, sözlük saldırıları çiğ kelimeleri test etti; John her kelimenin bir adayı oluşturduğunu açıkladı.
Chronology ofroads : YılEvent Event Event - ►- !!! 1979 1979 1979Morris & Thompson: kullanıcılar şifrelerini "gizli" olarak yerine getirir 1996 1996 1996 1996John the Ripper 1.0: ilk genel kural motoru, JtR sözlüğü (İngilizce).:, c, u, r, d...)
2000 2000 2000 2000Alec Muffett gerçek çatlakların %80'inin kelime listesi+rules üzerinden gittiğini belgeliyor, brute güç değil
2006 2006 2006 2006Hashcat 0.01: GPU'da geçiş, kurallar 1M+1000M adayı / saniye
2009 2009 2009RockYou: 14.3M net şifreler en etkili kuralların ampirik kalibrasyonuna izin verir
2012 2012 2012Gosney (Passwordscon): 8 GPU GTX 580, en iyi64 kurallar, < 6 gün içinde% 90 LinkedIn
2013 2013 2013 2013Löf iplik: "en iyi64.rule", mevcut insan dönüşümlerinin 85-% 90'ını kapsayan 64 kural
2014 2014 2014 2014Ma et al. (IEEE S&P): İlk akademik çalışma, kural sıralaması ile etkinliğini ölçmek
2016Hashcat açık kaynak: En iyi64, MD5 hız 2 TH /s 8× GTX 1080
2019 2019 2019 2019Hashcat 6.0: OneRuleToRuleThemAll game (52k kurallar) ML tarafından şifrelendi
2023 2023 2023 2023NSA Danışma: Kurumsal şifreleri hibrit araçlarla test etmeyi açıkça tavsiye eder
2.2 Ampirik çalışmalar
Klein (1990) - 15,000 Unix şifrelerinin analizi, 24.2%'nin saf bir sözlüğe sıkıştırılabilir olduğunu kabul eder, ancak% 32 ek basit dönüşümlerle kırılabilir (kapitalizasyon, son sayısallaştırma). Toplam:% 56.2% ilkel bir hibrit araçla. Weir et al. (2009, IEEE S&P) - PCFG modelini taklit eder, ancak en iyi 64 kelime ile üretilen ilk 100 aday arasında RockYou'de gözlemlenen dönüşümlerin% 78'ini kapsar. Ma et al. (2014, IEEE S&P) - Hibrit kuralların etkinliğinin en çok alıntı çalışması.- Kural 1 (
: → mot brut) : dict tabanlı şifrelerin% 18'ini kırın
2.3 LinkedIn bir okul durumu olarak uçuş
2012 LinkedIn sızıntı (6.5 milyon dolar değerinde olmayan SHA-1s) karmanın gücünü mükemmel bir şekilde göstermektedir. 72 saat içinde, hashcat topluluğu kırmıştı:
Post-crack analizi, "linkedin1", "Linkedin1", "l!nked!n" ve "LINKEDIN" - tüm "linkedin" biçimleri - kolektif olarak on binlerce uzlaşma hesabı temsil etti.
3. Kavramsal Vakıflar: Hybrid Works
3.1 "gizli" insan davranışı
Bir sistem karmaşıklık kurallarını yüklerken (majuscule, sayı, sembolü), kullanıcılar rastgele üretmez - rastgele yaratmazlar - Güvenilir kelimeler için öngörülebilir dönüşümler :
İnsan stratejisiÖrnek Örnek Örnek Örnek Örnek Örnek Örnekİlgili Hibrit Kural ---- *►---- !!! İlk mektubu Sermayelendirmek"sunshine" → "Sunshine"c (İlk önce dikkat edin)
Bütün Sayılar"sunshine" → "SUNSHINE"u (tüm)
Sonunda bir sayısal ekleyin."sunshine" → "sunshine1"$1 (appends "1")
Yıl Ekle"sunshine" → "sunshine2024"$2 $0 $2 $4
→3"sunshine" → "suns3ine"s e 3 (Profesyonel e Tarafından 3)
Bir →@"password" → "p@ssword"s a @
Ters kelime"sunshine" → "enihsnus"r (reverses)
Çift kelime"sun" → "sunsun"d (duplicate)
Add ! final"sunshine" → "sunshine!"$!
Birden çok"password" → "P@sw0rd1"c s a @ s o 0 $1
Bu dönüşümler Yaratıcı görünüyor gibi görünüyor Kullanıcıya. Tam olarak saldırganın çalıştığı ilk olanlar Güvenlik politikaları tarafından uygulanan kısıtlamalara karşılık gelirler.
3.2 Verimli azaltılan uzay konsepti
harflerle 10character şifre + dijital+symbols, 94.10, 5,4 × 10.19 kombinasyonlarını makul bir zamanda seyahat etmek için çok büyük.
Ancak bu şifre "Password1!" ise - "password"nin önemsiz bir dönüşümü - bu arasında 500 ilk aday Saldırgan 5.4 × 10.19 kombinasyonlarını seyahat etmiyor: 500 seyahat ediyor.
Bu, hibrit saldırının temel azaltımıdır: İnsan seçimlerinin gerçek alanı astronomik olarak mümkün karakterlerin teorik alanından daha küçük.
3.3 Dönüşüm Yasası
Tıpkı ham şifreler bir güç kanununu takip ediyor (Zipf), insanların da çok yoğun bir dağıtım uyguladığı dönüşümler. Ma ve al. (2014) Amply gösterdi:
Bu konsantrasyon, 64 iyi seçilmiş kuralın (en iyi64) bir kısmını 79-85% kapsamasına olanak sağlar, 64 rastgele kuralın sadece% 10-15'e ulaşması.
3.4 Temel kelimenin popülerliği ile etkileşim
Daha yaygın olan temel kelime, elde edilen şifre daha önceki saldırganın öncelik listesindedir. Saldırıcı adaylarını olasılık azaltmadaki emirler:
Candidats générés par l'attaquant (ordre de test) :
şifre (gross, en yaygın kelime)
Şifre (ilk olarak kısaltılır)
şifre1 (1)
PASSWORD (tüm)
şifre! (!)
p@ssword (bir →@)
passw0rd (substitute o→0)
Password1 (c + 1)
P@ssword (c + bir @)
şifre123 (12$3)
...
p@ssW0rd! (kombinasyon kompleksi)
"password" en yaygın kelimedir → türevleri ilk olarak test edilir. "papillon" daha az yaygındır → türevleri çok daha sonra test edilir. Bu öncelik, Time2Crack'deki üç ayrı anahtar alanı açıklayan merkezi mekanizmadır.
4 Modern bir hibrit saldırının mimarı
4.1 Genel boru hattı
Phase 1 : Sélection de la wordlist
├── Passwords fuités triés par fréquence (RockYou, HIBP, Collections)
├── Dictionnaire linguistique (fr.txt, en.txt, de.txt...)
├── Wordlists thématiques (prénoms, villes, marques, séries TV)
└── Wordlists contextuelles (domaine cible, noms d'employés, termes métier)
Aşama 2: Kuralların Seçimi
- En iyi64.rule (balanced reference, 64 kurallar)
OneRuleToRuleThemAll.rule (52,000 kurallar, ML-mill)
D3ad0ne.rule (34.000 kural, Ampi)
- JtR kuralları (genelleştirilmiş.rule, spesifik.rule, ekstra.rule)
- Özel kurallar (göçme alanına alındı)
Aşama 3: genişleme (wordlist × kurallar)
Her kelime için kelime listesi:
Her kural için kurallarda r:
, başvuru = uygulama (r, w)
Promosyon │ Eğer aday
Promosyon queue kuyrukBunun üzerineAdaylar.push(candidate)
-Order: (w1, kural1), (w1, kural2)... (w2, kural1)...
veya: (w1, kural1), (w2, kural1).
Aşama 4: Haching ve Karşılaştırma (GPU)
- ~ 10M adaylarının GPU'ya gönderilmesi
- Varhs'ın Paralel Hesaplaması (CID, 168 GH / MD5)
- Hedefle Karşılaştırma (es)
Eğer maç: FINDED - log(candidate, hash, kural)
Aşama 5: Raporlama
- Cracked adayı + kuralı listede + rütbe kullandı
4.2 Hashcat işlem modları
Hashcat iki farklı şekilde hibridi uygular:
Mode -a 0 (wordlist + kurallar) : kelime listesinin her kelimesi için, tüm kuralları uygulayın. Bu klasik hibrit mod.hashcat -a 0 -m 0 hashes.txt rockyou.txt -r best64.rule
Mode -a 6 (wordlist + maske) : Bir pozisyon maskesi ile bir kelime listesi birleştirir. Tüm kombinasyonlar tüm kombinasyonlar mot + suffixeMaskeli maskeler.
hashcat -a 6 -m 0 hashes.txt wordlist.txt ?d?d?d?d
Test "sunshine0000", "sunshine0001", ..., "sunshine999999"
Mode -a 7 (mask + kelime listesi) : inverse – maskelenmiş ön ek + kelime.
hashcat -a 7 -m 0 hashes.txt ?d?d wordlist.txt
Test "00sunshine", "01sunshine", ..., "99sunshine"
Time2Crack çoğunlukla modu modeller -a 0 (Değişim kuralları), gerçek hibrit saldırıların büyük çoğunluğunu belgeledi.
4.3 Adayların siparişi ve stratejiye öncelik verme stratejisi
Hangi adayların test edildiği düzen kritik.
Strateji kelimesi-ilk (default hashcat): Tüm kurallar W2'ye geçiş yapmadan önce W1'e uygulanır.(W1, R1), (W1, R2), ..., (W1, Rn), (W2, R1), (W2, R2)...
Avantaj: W1 çok büyükse (e.g. "password") hızla varyantlarını keşfedersiniz.
Kural-ilk strateji : Tüm kelime listeleri R2'ye gitmeden önce R1 için çalışır.
(W1, R1), (W2, R1), ..., (Wm, R1), (W1, R2), (W2, R2)...
Avantaj: En etkili kural (: → mot brut) ilk olarak tüm kelimeler üzerinde uygulanır. Çoğu zaman farklı korpus için daha etkilidir.
Pratikte, hashcat, birinci kelimeyi varsayılan olarak kullanır, ancak deneyimli operatörler hedef profiline göre seçer.
5 mutasyon kuralları kuralları kuralları kuralları
5.1 Cümle kuralları
Her karakterin aday dizesinde bir operasyon temsil ettiği minimum dilde ifade edilir:
Vaka değiştiricileri :: - Kimlik (gross kelimesi, hiçbir dönüşüm)l - tüm ("PASSWORD" → "password")u - Tüm ("password" → "PASSWORD")c - İlk olarak, daha düşük geri kalanı ("PASSWORD" → "Password")C - İlk olarak, üst kat geri kalanı ("Password" → "pASSWORD")t - Tüm karakterlerin kutusu ("Password" → "pASSWORD")TN - Karakterden N pozisyonuna çıkmak için kutur - Ters ("password" → "drowsap")d - Duplicate ("password" → "passwordpassword")f - Reflect (word + ters) ("sun" → "sunnos"){ - Rotate sol ("password" → "asswordp")} - Doğru ("password" → "dpasswor")[ - İlk karakterin (password) → "assword")] - Son karakterin kaldırılması ("password" → "passwor")$X - Append character X ("password" + $1 → "password1")^X - Prepend karakteri X ("password" + ^1 → "1password"iNX - Karakter X pozisyonda NsXY Tüm X'i Y ("password" ile değiştirin s a @ → "p@ssword"SNX - X tarafından N pozisyonundaki karakteri değiştirin'N - Truncate pozisyonda N (password + '4 → "pass"DN - pozisyonda Delete karakteri N Kuralı sadece uzunluk < N >N Kuralı sadece uzunluk > N=N Kuralı sadece uzunluğu = N5.2. Kompozit kurallar
Kurallar karmaşık dönüşümler oluşturmak için tek bir çizgide zincirlenebilir:
c $1 → "Password1" (capitalize + append 1)
c $! $1 → "Password!1" (capitalize + append ! + 1)
s a @ s e 3 → "p@ssw3rd" (substitute a→@ et e→3)
r $1 → "1drowssap" (reverse + append 1)
u $2 $0 $2 $3 → "PASSWORD2023" (uppercase + append year)
Güç kompozisyonda: 64 basit kurallar kombinasyon tarafından binlerce farklı dönüşüm yaratır.
5.3 Main Kuralları
En iyi64.rule (Löffilament, 2013) - 64 kural Rock'ta rasyon oranını en üst düzeye çıkarmak için ampirik olarak seçildi. OneRuleToRuleThemAll (Not soSecure, 2019) - Kırılmış şifre korpusu üzerinde otomatik öğrenme tarafından üretilen 52,218 kural. Crack oranı, modern korpusta% 64'den daha büyük, bir hesaplama zamanında -800 × daha uzun. d3ad0ne.rule - 34,096 Topluluk kuralları, en iyi64 ( aksan, genişletilmiş karakterler, İngilizce olmayan desenler) ile kaplı olmayan desenlere odaklanır. Canlı.rule - 99 000+ kural, en yorucu. Diğerleri başarısız olduğunda uzun vadeli çatlaklar için kullanılır. Generalized2.rule (JtR) - zaten kırılmış şifrelerin istatistiksel analizi tarafından otomatik olarak üretilmiştir. Yeni sızıntılar meydana gelir.6. En İyi64 kurallar: referans oyunu
En iyi64, akademik literatür ve endüstride 64 standart referans kuralıdır. İşte en önemli kurallar ve onların ampirik gerekçesi:
6.1 En etkili 20 kural ( performans düzeni)
Rank Rank Rank Rank Rank RankKural Kural KuralıDönüşüm Dönüşüm% % % 2 parolayı kapladı (Mayıs 2014) - ►- ►-[12] 1 1 1:Gross Word~18%
2 2cİlk önce Capitalize%11
3 3uHer şey~6%
4 4 4$1Append "1"-5%
5 5lAşağıya her şey%4%
6 6$!"!"~3%
7 7 7s a @A→@5.8
8 8c $1Capitalize + "1"-%2.5
9 9$2Append "2"-%2.1%
10 10rTers-%1.9%
11 11 11$! + + + + cCapitalize + "!"~1.7%
12s o 0→0~1.6%
13 13dDuplicate-%1.4%
14 14s e 3→3~1.3%
15 15$1 $2 $3Append "123"~1.2%
16c $1 $2 $3Capitalize + "123"~1.1%
17 17 17$0Append "0"~1.0%
18^1Prep "1"-0.9%
19 19s i 1I→1-%0.8%
20 20c $! $1Capitalize + "!1"~0.7%
Cumulation kuralları 1-10 :~55% of dict-based passwords
Cumulation kuralları 1-20 : - dict tabanlı şifrelerin%68'i
Cumulation kuralları 1-64 : dict tabanlı şifrelerin%79'u
6.2 Bu kurallar neden bu kadar etkili?
Her üst-10 kuralı, ortak bir güvenlik politikası kısıtlamalarına karşılık gelir:
c)$1)$!)c $1 veya c $1 $2 $3Şifre politikaları, kullanıcıların öngörülebilir dönüşümleri uygularlarsa gerçekten güvenliği artırmaz - sadece en iyi64'ün ikinci veya üçüncü kuralına şifreler hareket ederler.
7. Dönüşümlerin Vergikonomisini Tamamlayın
7.1 Kategori 1: Vaka dönüşümleri
Çoğu yaygın. Bir sermaye sermayesine sahip olmak yükümlülüğünü ortaya çıkarın:
c Değişiklikler)7.2 Kategori 2: Dijital Suf ekleri ve ekleri
Bir rakama sahip olma zorunluluğunu ortaya çıkarın:
7.3 Kategori 3: Leet substitutions
Benzer sayılar veya sembollerle mektupların sistematik değiştirilmesi:
SubstitutionEmpirical frekansı [12]- !!! → @ @@ 23% of password with @ → 3Şifrelerin %31'i 3 ile I → 1şifrelerin% 19'u 1 ile → 0parolaların% 27'si 0 ile → $Şifrelerin% 14'ü $ ile → 1% 8% → 7% 6% → 9% 4%Kombinasyonlar ("P@ssw0rd") karmaşık görünüyor ancak birkaç kuralda üretilir: c s a @ s o 0Onlar arasındalar 500 ilk aday "password" üzerine.
7.4 Kategori 4: Sembolik Suf ekleri
Özel bir karaktere sahip olma yükümlülüğü:
7.5 Kategori 5: Yapısal dönüşümler
Bazı profiller için daha az sık ama kullanışlı:
7.6 Kategori 6: Kombinasyonlar (önemli seviye)
Kompleks kurallar çeşitli işlemleri birleştirir:
c $1 s a @ → "P@ssword1" (capitalize + append 1 + substitute a→@)
u $! $1 $2 $3 → "SUNSHINE!123" (uppercase + append !123)
r c $1 → "Drowssap1" (reverse + capitalize + append 1)
s e 3 s a @ c $! → "P@ssw3rd!" (multiple substitutions + capitalize + !)
Bu dönüşümler çok karmaşık görünüyor, ancak iyi bir kural seti tarafından tespit edilebilir kalır. OneRuleToRuleThemAll bunlardan binlerce içerir.
8. Frekans Önceliği: Etkililiğin Kalbi
8.1. Temel kelimenin frekansı önceliği belirler
Akıllı bir saldırgan tüm kelimelere eşit olarak kuralları uygulamaz.O öncelikler:
Bu strateji, ilk stratejiyle birlikte frekansı azaltarak kelime listesinin sıralaması ile uygulanıyor. "Password1" (belirli kelime 1) kelimesi milisanste kırılırken, "Soleil1" kelimesinden birkaç saniye alabilir.
8.2 Medya alanı arama alanında
Anahtar ölçü, Hedef şifre bulmadan önce test edilen medyan sayıda adayı. Ma et al. (2014) ampirik ölçümler sağlar:
ÜçüncüÖrnek Örnek Örnek Örnek Örnek Örnek ÖrnekMedian başvurularını bulmadan önce - ►►- !!! TOP100"password1", "P@ssword"~450-500 Common dict (top-10k)"Sunshine1", "sunshine!"~5 000-15 000 Daha az yaygın"Paillon2024"~50 000-200,000 Sözlüğü olmadan"Xk7 #mP9q"N/A (inapplicable hybrid)Bu ölçümler Time2Crack sabitlerinin doğrudan temelidir:
const HYBRIDKEYSPACECOMMON = 500; // Ma et al. 2014 — médiane top-100
const HYBRIDKEYSPACEDICT = 8000; // Ma ve al. 2014 – medyan şu anki diktatör
SınırlıKEYSPACEFULL = 128e6; // Gosney 2012 - en iyi64 × 2M yorucu kelimeler
Hibrit için gerekli 83 Koşullar uygulanabilir
Hibrit saldırı parolanın olması gerekir Bir sözlük kelimesinden yapısal olarak alıntılanabilirTime2Crack bu durumu bu durumu algılar hybridVuln :
const hybridVuln = dictWord || (common && /[a-z]/i.test(pw));
dictWord = true : Şifre ya da bir dil kelime listesinden elde edilircommon && lettre : Şifre COMMON (HIBP üst-400) ve harfler içerir - bu yüzden neredeyse kesinlikle bir kelimeden türlenmişEğer eğer dictWord Ne de ne de hybridVuln Gerçek - şifre tespit edilemez bir sözlük kökü içeriyor - hibrit saldırı geri dönüşleri null ( uygulanabilir değil) “xK9#mQ7@” gibi saf rastgele bir şifre karma için savunmasız değildir.
9. Time2Crack'de uygulama: addHybridAttacks()
9.1 Tamamlanmamış bir kod
function addHybridAttacks(rows, hybridVuln, weak, common, dictWord) {
if (hybridVuln || weak) {
// Sélection du keyspace selon la popularité du mot de base :
// common → mot dans HIBP top-400 → position ~500 dans la liste de l'attaquant
// dictWord → mot dans la wordlist → position ~8000
// sinon (hybridVuln sans dictWord ni common) → scan exhaustif ~128M
const hybridKS = common ? HYBRIDKEYSPACECOMMON
dictWord? HYBRIDKEYSPACEDICT
: HYBRIDKEYSPACEFULL;
(En büyük bir ALGOS) için
satırlar.push
Atk: t("aHybrid")
hash: a.name,
oran: a.rate,
// bütçeTime: anahtar alan tahminlerin sayısı - 2 bölüm tarafından bölünme
// ( BrutTime gibi, burada adaylar olasılık tarafından sipariş edilir)
Kuru: zayıf mı? zayıfGuesTime(a.rate): bütçeTime(hybridKS, a.rate),
Not: zayıf? t("nWeakPassword"): t("nDictMut")
Kedi: "hybrid",
=)
}
Diğer {
Form sözlüğü olmadan // Password → hibrid inapplicable
satırlar.push
Atk: t("aHybrid")
hash: "(all)",
Hız: 0,
Kuru: null, // N / A masada
Not: t(nStructUnrecog),
Kedi: "hybrid",
=)
}
}
9.2 budgetTime vs vs bruteTime
İki işlev arasındaki ayrım temeldir:
// bruteTime : l'attaquant ne sait pas où est le mot de passe dans l'espace.
// Il teste en moyenne la moitié avant de le trouver. → keyspace/2
function bruteTime(keyspace, rate) {
const ls = Math.log(keyspace / 2) - Math.log(rate);
return Math.exp(ls);
}
// bütçe: Saldırıcı adayları olasılık sıralamasında test eder.
// Keyspace, bulmadan önce beklenen adayların sayısı (median pozisyonu).
// 2 ile bölünme - medyan zaten Ma 2014 sabitlerine dahil edilmiştir.
bütçe fonksiyonuTime(gues, rate) {
s. = Math.log (guesses) - Math.log(rate);
Math.exp(ls);
}
Hibrit için, budgetTime Doğru çünkü 500/8000 /128M adaylarının ampirik tahminleri median pozisyonuAncak seyahat etmek için toplam yer değil.
9.3 İlişki ile isDictWord()
Analiz dictWord Hangi koşullar Hibrit anahtar alanı seçimi tarafından üretilir isDictWord() :
function isDictWord(pw) {
if (!DICTWORDS || !DICT(WORDS.size) sahte geri döner;
l = pw.normalize("NFC")toLowerCase();
// Doğrudan test: Sözde olduğu gibi şifre mi?
Eğer (DICT)
WORDS.has(l)) return true;
// Leeated testi: "s0le1l" → dico'da "sun"?
Kont dl = deLeet(pw);
Eğer (dl!)WORDS.has (dl) gerçek geri döndü;
// Test substring: "sunshine123" dico'da "sunshine" içeriyor mu?
(DICTWORDS) için
(l. dahil (w) && w.long >= 4) gerçek geri döner;
}
Sahte geri dönüş;
}
Bu algılama sadece hibridin uygulanabilir olup olmadığını değil, aynı zamanda da belirler. Hangi anahtarspace (common vs dict) zamanı hesaplamak için kullanılır.
10. Üç karma anahtar alanı ve onların gerekçeleri
10.1 HYBRIDKEYSPACECOMMON = 500
Arka plan arka plan arka plan Şifre COMMON'da - zor kodlanmış liste HIBP üst-~400. Bunlar dünyanın en yaygın şifrelerinden bazıları ("password", "letmein", "sunshine", "iloveyou". Justification Justification Ma et al. (2014) Amply, bir hibrit listedeki en iyi 1000 şifrenin en iyi konumunun - 450 adayı olduğunu ölçtü. Yorum : Bir saldırgan, parolayı bulmadan önce ortalama 500 adayın frekans testlerine en iyi 64 ila bir kelime listesine başvurmaktadır.In 2,000 GH /s (MD5, 12× RTX 4090), 500 aday = 0.25 picosansPratik olarak anında. Örnek Örnek Örnek Örnek Örnek Örnek Örnek "Sunshine1" → "sunshine" COMMON → HYBRIDKEYSPACECOMMON = 500budgetTime(500, 2027e9) 0.25 nanosaniye.
10.2 HYBRIDKEYSPACEDICT = 8,000
Arka plan arka plan arka plan Şifre dil kelime listesinden gelen bir kelimeden elde edilir, ancak COMMON'dan değil. Bunlar ortak kelime kelimeler (“sun”, "tain", "paillon"...) dönüşümlerle yazılır. Justification Justification Ma et al. (2014), RockYou'daki kelimenin popülaritesine bağlı olarak 2.000 ila 15,000 arasında bir arabulucu pozisyonu ölçmek. Bu anahtar alan, saldırganın kelimeyi ve daha yaygın adaylarını test ettiğini yansıtıyor. Yorum : 2.000 GH/s (MD5) 8,000 adayı = 4 nanosaniye. Her zaman hızlı hashs için yakın. bcrypt (69 kH/s): 8,000 / 69 000 0.12 saniye. Örnek Örnek Örnek Örnek Örnek Örnek Örnek : "Soleil2024" → "sun" in fr.txt → HYBRIDKEYSPACEDICT = 8,000 → MD5'te birkaç nanosaniye, bcrypt üzerinde 0.12.10.3 HYBRIDKEYSPACEFULL = 128,000,000
Arka plan arka plan arka plan :hybridVuln Gerçek (password'in bir sözlük yapısı vardır) ama ne de common Ne de ne de dictWord Saldırgan tüm kelime listesini tüm kurallarla göz önünde bulundurmalıdır.
Justification Justification Gosney (Passwordscon 2012) 3.5M kelime listesi × en iyi64 (64 kurallar) = 224M adayları toplam olarak 2M kelime yapar ve kısmi en iyi64 daha geniş kurallara tırmanmadan önce durur.
Formula Formula Formula Formula : 2000 000 000 000000 mots × 64 règles = 128000 000 000 000000 candidats
Yorum : 2000 GH/s (MD5) 64 mikrosaniyebcrypt (69 kH/s): - 31 dakika.
11. Yüksek sadakat kalibrasyonu
11.1 Yüksek sadakat modundaki rolü
Yüksek sadakat modu (HF) Time2Crack'de etkinleştirildiği zaman, doğruyu düzeltme için hesaplanmış zamanlarda ek bir multiplier uygulanır. hibrid saldırı için, bu multiplier temel anahtar uzaylar tarafından yakalanmayan hesap faktörlerine girer.
hibridler için
İçinde In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In In applyHighFidelityCalibration() :
case "hybrid":
// Mots très courants : crackés encore plus tôt que la médiane Ma 2014
// car les attaquants modernes trient word-first + règle-first simultanément.
// Réduction de 30% sur les temps déjà courts.
m = context.common? 0.7
: context.dictWord? 0.8
- 1.0;
Bölüm;
Justification Justification :
common : Modern araçlar (hashcat with with with --markov-threshold) Ampirik etkinliği ile kuralları önceden oluşturun. En iyi adaylar daha önce gelir.% 30'u azaltır.dictWord : Daha az etki çünkü kelime listesindeki pozisyon daha az yoğunlaşmıştır.% 20'nin azaltılması.hybridVuln Sadece (FULL anahtar alanı): hiçbir azalma - tam anahtar alanı zaten muhafazakar bir tahmindir.11.3 monoton koruma ile etkileşim
monoton koruma, özel bir saldırı iddialarının olması için garanti eder Daha hızlı daha hızlı Bu, şifre alfabetik substring üzerinde ham kuvvet:
// Pour chaque row non-brute :
const floorAlpha = bruteTime(Math.pow(26, alphaOnly.length), algo.rate);
if (row.sec < floorAlpha) row.sec = floorAlpha;
Kısa kelimeler için (e.g., "cat" = 3 mektup, kat = 26.3/rate
12. Türlü saldırılarla İlişki
12.1 Hybrid vs. Pure Dictionary
KriterleriSaf SözlükHybrid Hybrid Hybrid Hybrid ►-- --► Adaylar test edildiDoğru Liste KelimelerKelimeler + tüm çeşitleri Kapak (RockYou)~18%~79-85% (en iyi64) Keyspace (200k kelime)200 000 000200 000 × 64 = 12.8M ApplicabilityŞifre = tam kelimeBir kelimeden elde edilen şifre Vulnerable örnek"sunshine" (exact)"Sunshine1!", "sunsh1ne" Dayanıklı örnek"Sunshine1""xK9 #mQ7@" (no kök)12.2 Hybrid vs Rule-Based
Time2Crack'deki kural tabanlı saldırı kavramsal olarak benzer ama çok daha geniş bir kurallar kümesi ile:
const RULEKEYSPACE = 250000000; // vs 128M tam hibrit
Fark: En iyi64 model hibrit (64 kurallar, ortak insan dönüşümüne odaklanır). kural tabanlı saldırı modelleri d3ad0ne (34k kurallar) veya OneRuleToRuleThemAll (52k kurallar), en iyi64 başarısız olduğunda kullanılır.
12.3 Hybrid vs PCFG
PCFG (Probabilistic Context-Free Grammar, Weir 2009) Adayları oluşturmak için şifrenin grammatik yapısını modeller.
KriterleriHybrid Hybrid Hybrid HybridPCFGGG ►►- ► Yaklaşım Yaklaşım YaklaşımTemel kelime + dönüşüm kurallarıGlobal grammatical yapı Kuvvet GücüMevcut kelimeler mutatedatedStructures type "word+Digits" Örnek Örnek Örnek Örnek Örnek Örnek Örnek"sunshine" → "Sunshine1""Caps+lower+digit" yapısı ComplementarityTetikleyicilerdictWordTanımlanan yapıdaki Teprasyonlar
Keyspace (Time2Crack)500 / 8k / 128MpcfgKeyspace(pw) Dinamik olarak hesaplandı
PCFG, kök sözlüğü olmadan şifrelere saldırabilir, eğer onların Yapı yapısı yaygındır (ex: "Thelonious8" → dico'nun bir anlamı değil, Capitalize+lower+digit çok öngörülebilir).
12.4 Hybrid vs Morphological (morph)
morfolojik saldırı testleri dilsel varyantlar (saçlar, varyasyonlar) Zengin morfoloji ile dillerin genelleştirilmesi:
Hibrit sözcüğün yüzeyinde çalışır (karacter dönüşümleri), morfolojik lexical yapısı üzerinde çalışır (derivation, bükme), ve tamamlayıcıdırlar.
13. Benchmarks by hash algoritma
Üç karma anahtar alanı için 13.1 Zamanı (12× RTX 4090)
AlgorithmPuan (H/s)(500)DICT (8k)FULL (128M) - !!!- !!!---- ►- !!!---- ► MD52 027 GH /s0.25 ps3.9 ns63 μs SHA-1610 GH /s0.82 ps13 ns210 μs SHA-256272 GH /s1.84 ps29 ns470 NTLM3,462 GH /s0,14 ps2.3 ns37 μs bcrypt (cost 10)69 kH /s7.2 ms0.1231 min Argon2id800 H /s0.625 s10 s44 saat 44 Okuma MD5 ve NTLM için, FULL anahtar alanı (128M adayları) birkaç düzine mikrosaniyede kırılır. Argon2id Ortak kelimeler için bile önemli ölçüde direnen tek algoritma: bir COMMON kelimesi için 0.625 saniye, bir dictWord için 10 saniye. Bu kez mutlak değerde kısa kalır, ancak x10.12 vs MD5'in yavaşlamasını temsil eder - büyük ölçekli ekonomik saldırılar yapılabilir.Saldırı profilinin 13.2 Etkisi
Time2Crack iki profil sunar (Experienced 12 GPU, Profesyonel 100 GPU). Hibrit için, profil farkı doğrudan orantılıdır:
Profil ProfiliGPUsMultiplierFULL bcrypt --- ►- ►----- ► Deneyimlendi12× RTX 40901×31 min Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel Profesyonel~100 GPU~8×~4 minMD5 için, SHA-1, NTLM: profil mikrosaniyelerden nanosaniyelere zaman değiştirir – herhangi bir pratik etki olmadan, her ikisi de anında olur.
14. Hibrit çatlakların beton örnekleri
14.1 Örnek 1: "Password1" (COMMON)
Analiz Analizi :isCommon("Password1") → false (tam HIBP'de değil)isDictWord("Password1") Daha düşük durumda DICTWORDS'de gerçek ("password")COMMON.has("password") → gerçek → common = true: (gross kelime "password" → hayır), c ("Password" → hayır), c $1 ("Password1" → FINDsatır -8)
14.2 Örnek 2: "Sun2024" (DICT)
Analiz Analizi :isCommon("Soleil2024") → falseisDictWord("Soleil2024") → true ("sun" in fr.txt)COMMON.has("soleil") → false → common = false, dictWord = truec $2 $0 $2 $4 ("Sun2024") kendi kurallarının sırasında -3.
14.3 Örnek 3: "p@pillon!" (geçerler ile DICT)
Analiz Analizi :isDictWord("p@pillon!") : De-leetification → "paillon" → in fr.txt → dictWord = trues a @ $! → "p@pillon!" satırda - 12. Genel pozisyon: ~180.000. Her zaman HÜŞÜN'de iyiKEYSPACEDICT.
14.4 Örnek 4: "xK9 #mQ7@".
Analiz Analizi :isDictWord("xK9#mQ7@") → false (no kök sözlüğü)isCommon("xK9#mQ7@") → falsehybridVuln = falsesec = null → Hibrit geçerli değilBu şifre karma saldırı ile kırılamaz. Kelime kökü yoktur. Saldırgan saf brute kuvveti, PCFG veya istatistiksel saldırıları kullanmalıdır (Markov, Neural).
14.5 Örnek 5: "LinkedInB3st!"
Analiz Analizi :isDictWord("LinkedInB3st!") : "linkedin" → kelime listesi.txt + deLeet("b3st") → "en iyi" → dictWord = trueİlginç bir durum: şifre iki kök içerir ("linkedin" ve "en iyi" de-leetification) Hybrid saldırı uygulanabilir çünkü en azından bir kök tespit edilir. Uygulamada, bir düktör saldırısı (iki kelime yapıştırılır) burada daha etkili olacaktır.
15. Hybrid Attack Limits
15.1 Intrinsic limitleri
Kelimelistinin kalitesine bağlı olarak Temel kelime listede değilse, karma çok özel bir terime dayanan bir şifre (neologism, belirsiz teknik terim, nadir bir dil kelimesi) tüm yaygın kelime listelerinden yoksun olup olmadığına karşı direnebilir. Tamamen dönüşümlerin kapsamı : OneRuleToRuleThemAll with 52k kuralları hayal edilebilir dönüşümlerin% 100'ini kapsamaz. Bazı çok nadir dönüşümler (base64 kısmi kodlamalar, icat desenler) kurallardan kaçır. Combinatory Blast with Long Wordlists 2.000 GH /s (MD5), ~250 saniye alır - ancak bcrypt (69 kH /s), ~230,000 yıl. Hibrit ölçeklenebilirliği, kelime listesinin uzunluğu ve hash algoritmasının yavaşlığı ile sınırlandırılır.15.2 What Time2Crack does not catch
Context Wordlists Belirli bir şirketin hedeflediği bir saldırgan, şirketin adı ile bir kelime listesi inşa edecek, ürünler, çalışan isimleri, iş koşulları. "Renault2024!", Renault'yu hedef alan bir saldırgan tarafından anında kırılacaktı - ancak Time2Crack bu bağlamda model yapmaz (bu "Targeted OSINT" saldırısının rolüdür). Multi-pass kompozit kuralları Bazı şifreler en iyi64'e karşı direnir, ancak iki yönlü kurallara (bir kural olarak, o zaman sonuca başka bir kural uygular). Time2Crack modeli sadece bir kural geçer. Rehber Etkileri ve Memorization : hashcat zaten tekrarları önlemek için test edilen adayların bir masasını koruyor, bu da pratikte hızlanıyor. Time2Crack (conservative).15.3 Hibrit'in aşırı derecede tükendiği durumlarda
Time2Crack iki durumda enestimate hibrit hızı olabilir:
16. Etkili Savunmalar
16.1 Hibritleşmeye Karşı Olanlar
Hibrit saldırı başarısız olur if if if Şifre mevcut herhangi bir sözlük kelimesinden kaynaklanmazEtkili stratejiler:
Rastgele şifreler "xK9 #mQ7@vP2!" hiçbir sözcük kökü yoktur. Hiçbir hibrit kural bunu üretebilir. Direniş: maksimum. Şifre jeneratörü : Şifre yöneticileri (Bitwarden, 1Password, KeePass) rastgele dizeler üretir. Hiçbir sözcü → hibrid inapplicable. Gerçekten rastgele kelimeler : "tabouret-marmot-ginger-flash" - dört rastgele kelime. Klasik modda Hibrit saldırı 4 kelime kombinasyonu yaratmaz (bu, moderatörün rolüdür). Passphrase standart karmaya karşıdır.16.2 Hibrit Direniş Nedir
En yaygın "güçlendirme" stratejileri direnmiyor:
Strateji StratejisiÖrnek Örnek Örnek Örnek Örnek Örnek ÖrnekDireniş - !!!►--- !!! İlk mektubu SermayelendirmekSunshineKural Kural Kuralıc2.
Bir sayısal ekle"sunshine1"Kural Kural Kuralı $14.
Ekle sembolü ekle"Sunshine!"Kural Kural Kuralı $!6.
→3"suns3ine"Kural Kural Kuralı s e 3, üst-20
Her şeyi birleştirin"Suns3ine!"Kompozit bir kural, üst-100
Nadir bir kelime seçin"Papil123"
Çift kelime"sunsun"Kural Kural Kuralı d, üst-30
Ters"enihsnus"Kural Kural Kuralı r, üst-15
Sonuç Sonuç Sonuç “Bir kelime + değişikliğine dayanan herhangi bir strateji, karmaya karşı savunmasızdır. istisna, herhangi bir kuralla kaplı olmadığı kadar karmaşık ve nadir bir değişikliktir - ancak kullanıcı bu karmaşık dönüşümü hatırlamalıdırsa, genellikle öngörülebilir bir şey seçmek zorundadır.
16.3. Direnç algoritmaları
Bir şifre yapısal hibrite karşı savunmasız olsa bile, hash algoritması saldırıyı ekonomik olarak dayanılmaz hale getirebilir:
AlgorithmDICT için zaman (8k tahminler)Uygulama saldırısı - !!!---- !!!--- * MD5 / NTLM< 1 nanosaniyeAnında SHA-256~30 nanosaniyeAnında bcrypt maliyeti 10~0.12 saniyeTrivial bcrypt maliyeti 14~32 saniyeFeasible Argon2id (default)~ 10 saniyeFeasible Argon2id (güçlü paramet)~100 saniyeYavaş ama mümkün Argon2id Yüksek parametrelerle (t=4, m=65536), karmayı gerçekten pahalı kılan tek algoritmadır, hatta zayıf şifrelerde bile.16.4 Pratik Tavsiye
17. Referanslar
Akademik Yayınlar
Klein, D.V. (1990) “Kıtmacıyı Keşfetmek”: A Survey of, and improves to, Password Security ABD Güvenlik Atölyesi'nin Bildirileri, 1990. - İlk ampirik çalışma, mutasyon kurallarının dağınık kapsama üzerindeki etkisini ölçmek. Şifrelerin% 56'sinin sözlük + basit dönüşümlerle kırılabilir olduğu notlar. Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009) Şifre İzleme Probabilistic Context-Free Grammars IEEE Güvenlik ve Gizlilik Sempozyumu (S&P), 2009 - PCFG modelini kurdu ve bok kurallarının RockYou'de gözlemlenen insan dönüşümlerinin% 78'ini kapladığı şekilde geçerlidir. Ma, J., Yang, W., Luo, M., & Li, N. (2014) A Study of Probabilistic Password Models IEEE Güvenlik ve Gizlilik Sempozyumu (S&P), 2014. – – Doğrudan referans çalışması Time2Crack: Medya pozisyonlarının ampirik ölçümü (500 for top-100, 2000-15000 for current dict) 10M gerçek şifreleri olasılıkla sipariş edilen bir hibrit tarama. Durmuth, M., Chaabane, A., Perito, D., ve Castelluccia, C. (2015) Gizlilik toplantıları Güvenlik: Şifre İzleme için Kişisel Bilgiler RICS 2015 - Kurallar JtR vs Hashcat vs PCFG. Concludes that best64, RockYou'de% 12 oranında PCFG'yi aşıyor. Veras, R., Collins, C., & Thorpe, J. (2014) Şifrelerin Semantik Desenleri ve Güvenlik Etkileri NDSS 2014. - semantik desenlerin dil analizi. Ur, B., Bees, J., Segreti, S. M., Bauer, L., Christin, N., & Cranor, L. F. (2015) Kullanıcıların Şifre Güvenliği Eş Gerçekliği Algısı mı? ACM CHI 2015 - Kullanıcıların, dilsiz şifrelerin gücünü sistematik bir şekilde sorgulayan şeytanlar. "P@ssw0rd" öznel bir "güçlü" puan alır, ancak < 1'de çatlanır. Wheeler, D.L. (2016) zxcvbn: Low-Budget Password Güçlü Tahmin 25. USENIX Güvenlik Sempozyumu, 2016. - Kuvvet tahminleri kütüphane mutasyon kuralı algılamasını bütünleştirir. Tespit heuristics uygulaması için referans.Endüstriyel konferanslar ve sunumlar
Gosney, J (2012) 8x Nvidia GTX 580 Cluster Hashcat Benchmarks / LinkedIn çatlaklar seansı Şifrelercon 2012, Oslo. - LinkedIn çatlakları belgeleyin: en iyi64 + kelime listesi 3.5M = 224M adayları, 6 gün içinde 90 çatlaklar.KEYSPACEFULL = 128M. Löf ring, K. (2013) En iyi64.rule - 64 hashcat kurallarının Empirical seçimi İç, GitHub'da yayınlandı. - Kaya'da seçilmiş 64 kuralın seti, çatlakları en üst seviyeye çıkarmak için. Endüstri referans standardı. Steube, J. (2016-günüm) Hashcat Advanced Password Recovery https://hashcat.net/hashcat/ - Resmi mod belgeleri -a 0, -a 6, -a 7. kuralların Syntax. Resmi GPU kriterleri 12× RTX 4090. değil mi? OneRuleToRuleThemAll – ML-rated hashcat kuralı set https://git.hub.com/Not soSecure/passwordçatmakkurallar - Kırklanmış şifreler üzerine otomatik öğrenme ile üretilen 52 218 kural.Referans araçları
John the Ripper (Solar Designer, 1996-günüm) https://www.openwall.com/john/ - Kelimelist+rules hibrit. JtR sözlüğü her zaman Hashcat ile paralel olarak kullanılır. Hashcat (Steube, 2009-günüm) https://hashcat.net/hashcat/ Referans GPU uygulaması. Modes -a 0/6/7 for hybrid. best64 bütünleşik. RockYou wordlist (2009) 14.3M açık şifreler. Tüm hibrit kural setleri için standart kalibrasyon. SecLists (Daniel Miessler, 2012-günüm) httpsgit http://hub.com/danielmiessler/SecLists - Dil, alan, tema. Ana zaman2Crack dil kelime listeleri kaynağı.Web kaynakları Time2Crack uygulamasında atıfta bulundu
Stok3nman (Hashcat kriterleri/rules). https://gist.github.com/Chick3nman/32e662a5bb63bc4f51b847bb4222fd - İlgili kaynakdescHybrid (app.js) uygulanan mutasyon kurallarının büyüklüğü için.
IEEE Xplore (hybrid referansı).
https://iee blastre.ieee.org/document/6956583
- İlgili kaynak descHybrid (app.js) çamurlu şifrelerin ampirik etkinliği ile ilgili.
Time2Crack projesinin bir parçası olarak üretilen Doküman - 2026 Ayrıca bakınız: BRUTEFORCEATTACKCHLAINED.md, MARKOVATTACKEXPATTACKEXP