0Pricing
Cryptology Academy · Ders

Ayrıntılı Dolgu Oracle Saldırıları

CBC dolgu oracle saldırısını adım adım inceleyin ve küçük şifre çözme hatası oracle'larının bile neden yıkıcı olduğunu anlayın.

Ayrıntılı Dolgu Oracle Saldırıları, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.

CBC Modunda Şifre Çözme Yapısı

CBC (Cipher Block Chaining) modunda her bloğun şifresini çözmek için önce blok şifresiyle şifreli metin bloğunun şifresi çözülür, ardından sonuç önceki şifreli metin bloğuyla XOR işlemine tabi tutulur. Bu XOR işlemi kritik bir özellik ortaya çıkarır: saldırgan, şifreli metin bloğundaki bitleri değiştirerek sonraki bloğun şifresi çözülmüş düz metnindeki belirli bitleri öngörülebilir biçimde etkileyebilir. Bu özellik, dolgu kehaneti saldırısını mümkün kılar.

PKCS#7 Dolgusu Açıklaması

Blok şifreleri, girdinin sabit boyutlu bloklar halinde olmasını gerektirir. PKCS#7 dolgusu son bloğu doldurur: 3 bayt dolgu gerekiyorsa, her biri 0x03 değerinde üç bayt eklenir. Blok zaten tamamen doluysa, 0x10 değerindeki 16 baytın tümünden oluşan eksiksiz bir dolgu bloğu eklenir. Şifre çözme sırasında dolgu baytlarının tutarlı olduğu doğrulanır; N baytın tümü N değerine sahip olmalıdır. Ardından dolgu kaldırılır. Dolgu geçersizse şifre çözme başarısız olmalıdır.

Kehanet Mekanizması: Dolgu Doğrulamasından Yararlanma

Dolgu kehaneti, şifreli metnin şifresi çözüldüğünde PKCS#7 dolgusunun geçerli olup olmadığını açığa çıkaran herhangi bir sistemdir. Kehanet şu biçimlerde olabilir: açık bir hata mesajı (Geçersiz dolgu), farklı bir HTTP durum kodu (500'e karşı 403), farklı bir hata yanıt gövdesi veya bir zamanlama farkı bile olabilir (geçerli dolgulu şifre çözme işlemi biraz daha hızlıdır). Saldırganın anahtarı bilmesi gerekmez; yalnızca şu ikili sinyale ihtiyacı vardır: dolgu geçerli mi, değil mi.

Düz Metnin Bayt Bayt Elde Edilmesi

Saldırgan belirli bir şifreli metin bloğunu hedefler. Düz metnin son baytını elde etmek için önceki şifreli metin bloğunun son baytını değiştirin ve değiştirilmiş şifreli metni kehanet mekanizmasına gönderin. Kehanet geçerli dolgu bildirene kadar 256 olası değer üzerinde yineleme yapın. Geçerli dolguyu (0x01) üreten değerde ara şifre çözme değeri bilinir; bu değer, değiştirilen baytla XOR işlemine tabi tutulduğunda 0x01 üretir. Ara değeri özgün şifreli metin baytıyla XOR'lamak düz metin baytını ortaya çıkarır.

Bir Bloğun Tamamının Elde Edilmesi

Son bayt elde edildikten sonra sondan bir önceki bayt hedeflenir. Son baytın ara değeri zaten bilindiğinden, bu bayt 0x02 üretecek şekilde ayarlanabilir. Ardından sondan bir önceki bayt için 256 değer üzerinde yineleme yapılır ve 0x02 0x02 dolgusu geçerli olana kadar devam edilir. Bu işlem her bayt için tekrarlanır ve blok başına ortalama 256 * 16 = 4.096 kehanet sorgusuyla 16 baytlık eksiksiz bir blok elde edilir. Kehanet mekanizması hızlıysa işlem saniyeler içinde tamamlanabilir.

Mesajın Tamamının Elde Edilmesi

İşlem, IV dışındaki her şifreli metin bloğu için tekrarlanır; IV, önceki blok olmadan elde edilemez. 128 baytlık bir şifreli metnin (8 AES bloğu) tamamen şifresini çözmek için ortalama yaklaşık 32.000 kehanet sorgusu gerekir. Saniyede yüzlerce isteği işleyen bir web sunucusuna karşı bu işlem birkaç dakika sürer. Saldırgan, şifreleme anahtarını hiçbir zaman öğrenmeden düz metnin tamamını elde eder.

Gerçek Dünya Saldırıları: POODLE

POODLE (Düşürülmüş Eski Şifrelemede Dolgu Kehaneti), SSL 3.0'ın CBC dolgu doğrulamasından yararlandı. SSL 3.0, PKCS#7 olmayan bir dolgu şeması kullanıyordu, ancak saldırı kehanet kavramına uyarlandı. Bir saldırgan SSL 3.0 oturumuna içerik ekleyebilir ve istemcileri SSL 3.0'a düşürmeye zorlayabilirse, dolgu kehaneti tekniğini kullanarak oturum çerezlerini elde edebilirdi. POODLE, SSL 3.0'ın kullanımdan kaldırılmasını zorunlu kıldı.

Lucky Thirteen ve BEAST

Lucky Thirteen (2013), TLS'nin CBC MAC-then-encrypt şemasındaki bir zamanlama yan kanalından yararlandı. MAC doğrulama süresi, dolgunun geçerli olup olmamasına bağlı olarak birkaç nanosaniye farklılık gösteriyordu ve bu da bir zamanlama kehaneti oluşturuyordu. BEAST (2011), oturum çerezlerine karşı seçilmiş düz metin saldırısı düzenlemek için TLS 1.0 CBC modundaki öngörülebilir IV'den yararlandı. Her iki saldırı da TLS'de CBC modunu doğru biçimde uygulamanın temelde zor olduğunu gösterdi.

Savunma: CBC Yerine AEAD Kullanın

Dolgu kehaneti saldırılarına karşı kesin savunma, CBC yerine AEAD (Associated Data ile Kimlik Doğrulamalı Şifreleme) modlarını kullanmaktır. AES-256-GCM ve ChaCha20-Poly1305 gibi AEAD modları, herhangi bir şifre çözme veya dolgu denetimi yapılmadan önce kimlik doğrulamayı doğrular. Kimlik doğrulama etiketi geçersizse şifre çözme hiç gerçekleşmez ve dolgu hakkında hiçbir bilgi sızmaz. TLS 1.3, AEAD kullanımını zorunlu kılar ve CBC'yi tamamen kaldırır.

Savunma: Önce Şifrele, Sonra MAC

AEAD kullanılamıyorsa, Önce Şifrele, Sonra MAC yapısı şifreli metin (düz metin değil) üzerinde bir MAC oluşturur. Şifre çözme veya dolgu denetiminden önce MAC doğrulanır. MAC doğrulaması başarısız olursa işlem, dolgu hakkında hiçbir bilgi açığa çıkarılmadan hemen durdurulur. Zamanlama kehanetlerini önlemek için bu işlem sabit zamanda gerçekleştirilmelidir. MAC doğrulamasının başarısız olması, dolgunun geçerli olup olacağı hakkında hiçbir bilgi vermez.

Dolgu Kehaneti Güvenlik Açıklarını Belirleme

Dolgu kehaneti güvenlik açıklarını test etmek için bilinen bir mesajı şifreleyin, ardından değiştirilmiş şifreli metni uygulamaya gönderip yanıtı gözlemleyin. Geçerli ve geçersiz dolgular gözlemlenebilir biçimde farklı yanıtlar üretiyorsa (hata mesajı, durum kodu veya yanıt süresi), bir dolgu kehaneti vardır. PadBuster gibi otomatik araçlar, şifreli metinleri sistematik olarak değiştirip yanıtları analiz ederek web uygulamalarındaki dolgu kehanetlerini özellikle test eder.

Dolgu Kehaneti Mekanizması

Dolgu kehaneti saldırısının, şifreli metnin anahtar olmadan şifresini çözebilmesi için hedef sistemden ne gerekir?

Dolgu Kehaneti Saldırısının Özeti

Dolgu kehanetinin özeti: CBC şifre çözme işlemindeki XOR özelliği, düz metin baytlarının kontrollü biçimde değiştirilmesine olanak tanır; PKCS#7 dolgu doğrulaması ikili bir kehanet sinyali açığa çıkarır; saldırgan, düz metni bayt bayt elde etmek için bayt değerleri üzerinde yineleme yapar ve geçerli ya da geçersiz yanıtları gözlemler; gerçek saldırılar arasında POODLE, Lucky Thirteen ve BEAST bulunur; savunma, kimlik doğrulamayı şifre çözmeden önce doğrulayan AEAD'ye (GCM, ChaCha20-Poly1305) geçmektir.

Sıkça Sorulan Sorular

“Ayrıntılı Dolgu Oracle Saldırıları” dersi ücretsiz mi?

Evet — “Ayrıntılı Dolgu Oracle Saldırıları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.

“Ayrıntılı Dolgu Oracle Saldırıları” dersinde ne öğreneceğim?

CBC dolgu oracle saldırısını adım adım inceleyin ve küçük şifre çözme hatası oracle'larının bile neden yıkıcı olduğunu anlayın. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Ayrıntılı Dolgu Oracle Saldırıları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ayrıntılı Dolgu Oracle Saldırıları
  2. Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları
  3. Uygulama Düzeyindeki Kodda Zamanlama Saldırıları
  4. Başlıca Kriptografik Yanlış Kullanım Kalıpları
← Cryptology Academy Sayfasına Dön