Encryption - Simetrik

xzh

Üye
8 Nis 2020
216
70
Şifreleme yöntemlerini incelemeden önce, bazı temel terimleri anlamamız gerekir.
  1. Düz Metin (Plaintext): Şifrelenmemiş veri anlamına gelir.
  2. Şifreli Metin (Ciphertext): Şifrelenmiş düz metindir.
  • Algoritma: Matematiksel işlemler gerçekleştirerek, bir anahtar yardımıyla orijinal içeriği şifreli metne dönüştürür. Algoritma, saldırganın anahtar olmadan işlemi tersine çevirip düz metni elde edemeyeceği kadar sağlam olmalıdır. Algoritmanın herkes tarafından bilinebilir olduğunu varsayıyoruz.
  • Tur (Round): Algoritmanın şifreleme işlemini güçlendirmek için tekrarladığı işlem basamaklarıdır.
  • Anahtar (Key): Düz metni şifreli içeriğe dönüştürmek için algoritma ile birleştirilen (genellikle rastgele) veridir. Anahtar gizli tutulmalıdır.
  • Nonce: "Bir kez kullanılan sayı" anlamına gelir. Aynı mesajın aynı algoritma ve anahtarla şifrelenmesi halinde aynı şifreli metni üretmemesi için kullanılır. Bu, "tekrar saldırıları" olarak bilinen bir saldırı kategorisini önler. Nonce'un gizli olması gerekmez, ancak yeniden kullanılamaz.
  • Başlatma Vektörü (IV): Anahtarla birlikte bir şifreleme algoritmasına girdi olarak sağlanan rastgele bir değerdir. Nonce gibi, şifreleme sürecine ek rastgelelik sağlamak için kullanılır. IV rastgele olmalı, ancak gizli olması gerekmez.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Simetrik şifreleme:

Simetrik şifreleme dünyasında, anahtar "shared secret" olarak adlandırılır.
Bu, hem şifreleme hem de şifre çözme için aynı anahtarın kullanıldığı anlamına gelir.
İşte kötü amaçlı yazılım analizinde karşınıza çıkabilecek bazı yaygın simetrik şifreleme algoritmaları: AES , Salsa20, ChaCha20, RC4.
Simetrik şifreleme algoritmaları, büyük miktarda veriyi şifrelemek için nispeten hızlı ve uygundur. Bu nedenle, fidye yazılımlarında dosyaları şifrelemek için sıklıkla kullanılırlar.
Simetrik şifrelemenin nasıl çalıştığını daha iyi anlamak için şu görseli inceleyelim:

Изображение: Symmetric encryption process

Görselde, düz metnin (plaintext) bir algoritma ve bir anahtar kullanılarak şifreli metne (ciphertext) dönüştürüldüğü görülmektedir. Şifreli metni tekrar düz metne dönüştürmek için aynı anahtar ve algoritma kullanılır.

Simetrik şifrelemede Block Cipher ve Stream Cipher olmak üzere iki önemli kategori bulunur.

Blok şifreler, sabit büyüklükteki veri blokları üzerinde çalışır.
Bu blokların boyutu, kullanılan algoritmaya göre önceden belirlenmiştir. Bir blok düz metin, algoritmaya girilir ve bir anahtar ile birleştirilerek şifreli metin üretilir. Düz metin, blok boyutuna tam olarak uymuyorsa, doldurma (padding) eklenebilir.

Akış şifreleri ise tek tek veri bitleri üzerinde çalışır. Anahtar, bir algoritmaya girdi olarak verilir ve bu algoritma bir bit akışı üretir. Bu bit akışı daha sonra düz metin ile XOR işlemine tabi tutularak şifreli metin üretilir.

Bir kitabı şifreleme işini bir metafor olarak düşünürsek, blok şifre bir sayfayı bir seferde şifreleyecekken, akış şifresi bir harfi bir seferde şifreleyecektir.

Blok şifrelerin ve akış şifrelerin arasındaki temel farklar şunlardır:


  • Veri İşleme Şekli: Blok şifreler önceden belirlenmiş bloklar halinde, akış şifreler ise bit bit çalışır.
  • Hız: Akış şifreler genellikle blok şifrelerden daha hızlıdır.
  • Hafıza Kullanımı: Akış şifreler daha az hafıza kullanır.
  • Kullanım Alanları: Blok şifreler dosya şifreleme gibi uygulamalarda, akış şifreler ise gerçek zamanlı iletişim gibi uygulamalarda tercih edilir.

Gelişmiş Şifreleme Standardı (AES), ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından oluşturulmuş bir şifreleme standardıdır. Rijndael blok şifresinin kullanımını belirtir.
İşte AES'in kilit özelliklerinin açıklaması:

  • Simetrik Anahtar Algoritması: AES, hem şifreleme hem de şifre çözme için aynı anahtarın kullanıldığı bir simetrik anahtar algoritmasıdır.
  • Blok Boyutu: AES, 128 bitlik bloklar halinde çalışır. Bu, düz metnin 128 bitlik bloklara bölündüğü ve her bloğun ayrı ayrı şifrelendiği anlamına gelir.
  • Anahtar Uzunlukları: AES, 128, 192 veya 256 bit uzunluğa sahip anahtarları kullanabilir. 128 bitlik anahtar uzunluğu çoğu uygulama için yeterli olsa da, ek güvenlik için diğer anahtar uzunlukları da mevcuttur.
  • Sabit Blok Boyutu: Anahtar uzunluğundan bağımsız olarak, blok boyutu her zaman 128 bittir. Bu, 128 bitlik düz metin girişinin 128 bitlik şifreli metin çıkışı ile sonuçlanacağı anlamına gelir.
  • SP-Network:AES, bir SP-Network'tür. Bu, hem değiştirme (substitution) hem de permütasyon (permutation) işlemlerini içeren bir blok şifreleme türü olduğu anlamına gelir.
    • Değiştirme (Substitution): Orijinal baytları gizlemek için düz metnin baytlarını başka baytlarla (bir arama tablosuna göre) değiştirme işlemidir.
    • Permütasyon (Permutation): Baytları yeniden düzenleme, karıştırma veya karıştırma işlemidir. Bu, ek bir karıştırma tekniği olarak kullanılır.
  • S-box (Substitution-box): Değiştirme işleminde kullanılan bir tablodur. Bazı bitleri girdi olarak alır ve bazı başka bitleri çıktı olarak vermek için değiştirmeler gerçekleştirir. S-box, baytları değiştirme kurallarını belirler ve temelde bir arama tablosuna başvurur.
  • Anahtar Çizelgeleme Algoritması: AES, bir anahtar çizelgeleme algoritması kullanır. Bu algoritma, tek bir giriş anahtarını alır ve operasyonların bireysel turlarına uygulanan alt anahtarlar (round keys) üretir. Tek bir başlangıç anahtarından birden fazla alt anahtar üretme işlemine "anahtar genişletme" (key expansion) denir.
Substitution (Değiştirme):
  • Düz metnin baytlarını başka baytlarla değiştirme işlemidir.
  • Bu değiştirme, bir arama tablosu (S-box) kullanılarak gerçekleştirilir.
  • S-box, her bir bayt için hangi baytın kullanılacağını belirler.
  • Örneğin, S-box, 'A' baytını 'F' baytıyla değiştirmeyi öngörüyorsa, 'A' yazılan her yer 'F' ile değiştirilir.
  • Bu işlem, orijinal baytların gizlenmesine yardımcı olur.
Permutation (Permütasyon):
  • Baytların sırasını yeniden düzenleme işlemidir.
  • Bu işlem, baytların yerlerini karıştırır ve düz metnin istatistiksel özelliklerini gizlemeye yardımcı olur.
  • Örneğin, [1, 2, 3, 4] dizisinin permütasyonu [3, 1, 4, 2] olabilir.
  • Permütasyon, şifreli metnin daha rastgele görünmesini sağlar ve saldırganların şifreyi kırmasını zorlaştırır.
AES, 128 bitlik veri blokları üzerinde çalışırken şu adımları izler:
  1. Veriyi Yerleştirme: AES, 128 biti (16 bayt) 4x4'lük yerleştirir. Bu , algoritmanın üzerinde işlem yapacağı temel yapıdır.
  2. Turlar: AES, verileri birden fazla "tur" işlemden geçirir. Her tur, şifreleme sürecini güçlendirmek için tasarlanmış bir dizi adım içerir.
  3. Tur İşlemleri:Her turun içinde aşağıdaki işlemler gerçekleşir:
    • Bayt Değiştirme (Substitution): S-box adı verilen bir tablo kullanılarak, ızgaradaki her bayt başka bir bayt ile değiştirilir. Bu, orijinal verilerin gizlenmesine yardımcı olur.
    • Satır Kaydırma (Shifting Rows): Izgaranın her satırı, belirli bir sayı kadar sola kaydırılır. Bu, baytların konumlarını karıştırır ve şifrenin kırılmasını zorlaştırır.
    • Sütun Karıştırma (Mixing Columns): Izgaranın her sütunu, matematiksel işlemler kullanılarak karıştırılır. Bu, baytlar arasındaki ilişkileri daha da karmaşık hale getirir.
    • XOR İşlemi: Izgaradaki her bayt, o turun anahtarından (round key) gelen bir bayt ile XOR işlemine tabi tutulur. Bu, anahtarı şifreleme sürecine dahil eder ve güvenliği artırır.
  4. Tur Sayısı:AES'te kullanılan tur sayısı, anahtarın uzunluğuna göre değişir:
    • 128-bit anahtar için: 10 tur
    • 192-bit anahtar için: 12 tur
    • 256-bit anahtar için: 14 tur
Buradaki anahtar nokta, AES'in sabit bir blok boyutuna (128 bit) sahip olmasıdır. Bu, 128 bitlik düz metin girişinin her zaman 128 bitlik şifreli metin çıkışı ile sonuçlanacağı anlamına gelir.

Flow chart of AES encryption | Download Scientific Diagram

Simetrik blok şifreler, AES gibi, düz metin bloklarının nasıl şifreleneceğini belirleyen çeşitli çalışma modlarına sahiptir. Bu modlar, şifreleme sürecinin güvenliğini ve esnekliğini artırmak için tasarlanmıştır.
Malware analizinde sıklıkla karşılaşılan üç önemli mod şunlardır:
  1. Electronic Code Book (ECB) Modu:
    • En basit çalışma modudur.
    • 128 bitlik veri blokları, anahtar kullanılarak bağımsız olarak şifrelenir.
    • Bloklar arasında bir ilişki yoktur.
    • Sorun: Aynı düz metin blokları, aynı şifreli metinleri üretir. Bu, saldırganların verilerdeki kalıpları tespit etmesine ve içeriğe dair bilgi edinmesine olanak tanır.
  2. Cipher Block Chaining (CBC) Modu:
    • Her blok, şifrelenmeden önce bir önceki şifreli blokla XOR işlemine tabi tutulur.
    • Bu, bloklar arasında bir zincirleme oluşturur ve aynı düz metin bloklarının farklı şifreli metinler üretmesini sağlar.
    • Saldırganların kalıpları tespit etmesini zorlaştırır.
  3. Counter (CTR) Modu:
    • Bir sayaç kullanarak, her blok için benzersiz bir başlatma vektörü (IV) oluşturur.
    • Bu IV, blokla birlikte şifrelenir ve şifreli metni üretir.
    • CTR modu, paralel olarak şifreleme ve şifre çözme işlemlerine izin verdiği için hızlı ve verimlidir.
ECB modu, örüntülerin kolayca tespit edilebilmesi nedeniyle genellikle güvenli kabul edilmez. CBC ve CTR modları, bu güvenlik açığını giderdikleri için daha güvenli seçenekler olarak görülür.
Şimdi bir örnek vereyim: Düz Metin: "Merhaba dünya, nasılsın?"
  • "Merhaba" bloku şifrelenir ve ilk şifreli metin bloku oluşturulur.
  • "dünya" bloku şifrelenir ve ikinci şifreli metin bloku oluşturulur.
  • "nasılsın?" bloku şifrelenir ve üçüncü şifreli metin bloku oluşturulur.
"Merhaba" ve "nasılsın?" kelimeleri aynıysa, oluşan şifreli metin blokları da aynı olacaktır.
CBC modu ile şifreleme:
  • İlk blok, bir başlatma vektörü (IV) ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • İkinci blok, birinci bloğun şifreli metni ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • Üçüncü blok, ikinci bloğun şifreli metni ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • Bir bağımlılık oluşturuyor.
Counter (CTR) modu, bloklar arasındaki bağımlılığı ortadan kaldırarak CBC moduna göre bir gelişme sağlar. Bu, performansı artırır ve bir bloktaki hataların diğer blokları etkileme olasılığını azaltır.
CTR modunda şifreleme işlemi şu şekilde gerçekleşir:
  1. Nonce ve Sayaç: Bir nonce (bir kez kullanılan sayı) ve bir sayaç değeri birleştirilir.
  2. Şifreleme: Bu birleştirilmiş değer, blok şifreleme algoritması kullanılarak şifrelenir.
  3. XOR İşlemi: Düz metin, şifrelenmiş nonce ve sayaç değeri ile XOR işlemine tabi tutulur. Bu, şifreli metni üretir.
CTR modunun avantajları:
  • Performans: Bloklar bağımsız olduğundan, paralel işleme için uygundur ve CBC modundan daha hızlıdır.
  • Rastgele Erişim: Bir blokun şifresini çözmek için, önceki blokların şifresini çözmeye gerek yoktur. Bu, büyük dosyaların şifrelenmesi ve şifresinin çözülmesi için kullanışlıdır.
  • Blok Zincirleme Yok: Bloklar arasında zincirleme olmadığı için, bir bloktaki hata diğer blokları etkilemez.
  • Dolguya İhtiyaç Duymaz: Düz metin blokları, blok boyutunun tam katları olmak zorunda değildir.
CTR modunun dezavantajları:
  • Nonce'un Yeniden Kullanılmaması: Nonce'un her şifreleme işleminde farklı olması gerekir. Aynı nonce'un tekrar kullanılması, şifrenin kırılmasına neden olabilir.
  • Sayacın Senkronizasyonu: Şifreleme ve şifre çözme işleminde sayacın senkronize olması gerekir.

Örnek :
  • Metindeki örnek, ECB Modu ile şifrelenmiş bir veri örneğini içeriyor. Özellikle, xxd -p komutu kullanılarak şifrelenmiş verinin heksadesimal formatına dönüştürülmüş hali gösterilmektedir.
b2e5d275b8a9d7fd045f8ab1eb091f46890a6a8b763c4ddb97f642c5f7d8edb5b2e5d275b8a9d7fd05ee7b58a1e242f1f04eab49bff6e46fb8b5fd99

Zamanım olmadığı için bu labı gösteremiyeceğim ama siz yaparak daha iyi fikir elde ede bilirsiniz. Yazıların bir çoğu kendi notlarımdan oluşan bilgilerdir bunları sadece Aİ modeline verib düzenlemeler yapılmışdır.
Kod:
https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-authentication-bypass-via-encryption-oracle

References:
 

xezua

Katılımcı Üye
4 Tem 2023
332
97
Misconfiguration
Şifreleme yöntemlerini incelemeden önce, bazı temel terimleri anlamamız gerekir.
  1. Düz Metin (Plaintext): Şifrelenmemiş veri anlamına gelir.
  2. Şifreli Metin (Ciphertext): Şifrelenmiş düz metindir.
  • Algoritma: Matematiksel işlemler gerçekleştirerek, bir anahtar yardımıyla orijinal içeriği şifreli metne dönüştürür. Algoritma, saldırganın anahtar olmadan işlemi tersine çevirip düz metni elde edemeyeceği kadar sağlam olmalıdır. Algoritmanın herkes tarafından bilinebilir olduğunu varsayıyoruz.
  • Tur (Round): Algoritmanın şifreleme işlemini güçlendirmek için tekrarladığı işlem basamaklarıdır.
  • Anahtar (Key): Düz metni şifreli içeriğe dönüştürmek için algoritma ile birleştirilen (genellikle rastgele) veridir. Anahtar gizli tutulmalıdır.
  • Nonce: "Bir kez kullanılan sayı" anlamına gelir. Aynı mesajın aynı algoritma ve anahtarla şifrelenmesi halinde aynı şifreli metni üretmemesi için kullanılır. Bu, "tekrar saldırıları" olarak bilinen bir saldırı kategorisini önler. Nonce'un gizli olması gerekmez, ancak yeniden kullanılamaz.
  • Başlatma Vektörü (IV): Anahtarla birlikte bir şifreleme algoritmasına girdi olarak sağlanan rastgele bir değerdir. Nonce gibi, şifreleme sürecine ek rastgelelik sağlamak için kullanılır. IV rastgele olmalı, ancak gizli olması gerekmez.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Simetrik şifreleme:

Simetrik şifreleme dünyasında, anahtar "shared secret" olarak adlandırılır.
Bu, hem şifreleme hem de şifre çözme için aynı anahtarın kullanıldığı anlamına gelir.
İşte kötü amaçlı yazılım analizinde karşınıza çıkabilecek bazı yaygın simetrik şifreleme algoritmaları: AES , Salsa20, ChaCha20, RC4.
Simetrik şifreleme algoritmaları, büyük miktarda veriyi şifrelemek için nispeten hızlı ve uygundur. Bu nedenle, fidye yazılımlarında dosyaları şifrelemek için sıklıkla kullanılırlar.
Simetrik şifrelemenin nasıl çalıştığını daha iyi anlamak için şu görseli inceleyelim:

Изображение: Symmetric encryption process

Görselde, düz metnin (plaintext) bir algoritma ve bir anahtar kullanılarak şifreli metne (ciphertext) dönüştürüldüğü görülmektedir. Şifreli metni tekrar düz metne dönüştürmek için aynı anahtar ve algoritma kullanılır.

Simetrik şifrelemede Block Cipher ve Stream Cipher olmak üzere iki önemli kategori bulunur.

Blok şifreler, sabit büyüklükteki veri blokları üzerinde çalışır.
Bu blokların boyutu, kullanılan algoritmaya göre önceden belirlenmiştir. Bir blok düz metin, algoritmaya girilir ve bir anahtar ile birleştirilerek şifreli metin üretilir. Düz metin, blok boyutuna tam olarak uymuyorsa, doldurma (padding) eklenebilir.

Akış şifreleri ise tek tek veri bitleri üzerinde çalışır. Anahtar, bir algoritmaya girdi olarak verilir ve bu algoritma bir bit akışı üretir. Bu bit akışı daha sonra düz metin ile XOR işlemine tabi tutularak şifreli metin üretilir.

Bir kitabı şifreleme işini bir metafor olarak düşünürsek, blok şifre bir sayfayı bir seferde şifreleyecekken, akış şifresi bir harfi bir seferde şifreleyecektir.

Blok şifrelerin ve akış şifrelerin arasındaki temel farklar şunlardır:


  • Veri İşleme Şekli: Blok şifreler önceden belirlenmiş bloklar halinde, akış şifreler ise bit bit çalışır.
  • Hız: Akış şifreler genellikle blok şifrelerden daha hızlıdır.
  • Hafıza Kullanımı: Akış şifreler daha az hafıza kullanır.
  • Kullanım Alanları: Blok şifreler dosya şifreleme gibi uygulamalarda, akış şifreler ise gerçek zamanlı iletişim gibi uygulamalarda tercih edilir.

Gelişmiş Şifreleme Standardı (AES), ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından oluşturulmuş bir şifreleme standardıdır. Rijndael blok şifresinin kullanımını belirtir.
İşte AES'in kilit özelliklerinin açıklaması:

  • Simetrik Anahtar Algoritması: AES, hem şifreleme hem de şifre çözme için aynı anahtarın kullanıldığı bir simetrik anahtar algoritmasıdır.
  • Blok Boyutu: AES, 128 bitlik bloklar halinde çalışır. Bu, düz metnin 128 bitlik bloklara bölündüğü ve her bloğun ayrı ayrı şifrelendiği anlamına gelir.
  • Anahtar Uzunlukları: AES, 128, 192 veya 256 bit uzunluğa sahip anahtarları kullanabilir. 128 bitlik anahtar uzunluğu çoğu uygulama için yeterli olsa da, ek güvenlik için diğer anahtar uzunlukları da mevcuttur.
  • Sabit Blok Boyutu: Anahtar uzunluğundan bağımsız olarak, blok boyutu her zaman 128 bittir. Bu, 128 bitlik düz metin girişinin 128 bitlik şifreli metin çıkışı ile sonuçlanacağı anlamına gelir.
  • SP-Network:AES, bir SP-Network'tür. Bu, hem değiştirme (substitution) hem de permütasyon (permutation) işlemlerini içeren bir blok şifreleme türü olduğu anlamına gelir.
    • Değiştirme (Substitution): Orijinal baytları gizlemek için düz metnin baytlarını başka baytlarla (bir arama tablosuna göre) değiştirme işlemidir.
    • Permütasyon (Permutation): Baytları yeniden düzenleme, karıştırma veya karıştırma işlemidir. Bu, ek bir karıştırma tekniği olarak kullanılır.
  • S-box (Substitution-box): Değiştirme işleminde kullanılan bir tablodur. Bazı bitleri girdi olarak alır ve bazı başka bitleri çıktı olarak vermek için değiştirmeler gerçekleştirir. S-box, baytları değiştirme kurallarını belirler ve temelde bir arama tablosuna başvurur.
  • Anahtar Çizelgeleme Algoritması: AES, bir anahtar çizelgeleme algoritması kullanır. Bu algoritma, tek bir giriş anahtarını alır ve operasyonların bireysel turlarına uygulanan alt anahtarlar (round keys) üretir. Tek bir başlangıç anahtarından birden fazla alt anahtar üretme işlemine "anahtar genişletme" (key expansion) denir.
Substitution (Değiştirme):
  • Düz metnin baytlarını başka baytlarla değiştirme işlemidir.
  • Bu değiştirme, bir arama tablosu (S-box) kullanılarak gerçekleştirilir.
  • S-box, her bir bayt için hangi baytın kullanılacağını belirler.
  • Örneğin, S-box, 'A' baytını 'F' baytıyla değiştirmeyi öngörüyorsa, 'A' yazılan her yer 'F' ile değiştirilir.
  • Bu işlem, orijinal baytların gizlenmesine yardımcı olur.
Permutation (Permütasyon):
  • Baytların sırasını yeniden düzenleme işlemidir.
  • Bu işlem, baytların yerlerini karıştırır ve düz metnin istatistiksel özelliklerini gizlemeye yardımcı olur.
  • Örneğin, [1, 2, 3, 4] dizisinin permütasyonu [3, 1, 4, 2] olabilir.
  • Permütasyon, şifreli metnin daha rastgele görünmesini sağlar ve saldırganların şifreyi kırmasını zorlaştırır.
AES, 128 bitlik veri blokları üzerinde çalışırken şu adımları izler:
  1. Veriyi Yerleştirme: AES, 128 biti (16 bayt) 4x4'lük yerleştirir. Bu , algoritmanın üzerinde işlem yapacağı temel yapıdır.
  2. Turlar: AES, verileri birden fazla "tur" işlemden geçirir. Her tur, şifreleme sürecini güçlendirmek için tasarlanmış bir dizi adım içerir.
  3. Tur İşlemleri:Her turun içinde aşağıdaki işlemler gerçekleşir:
    • Bayt Değiştirme (Substitution): S-box adı verilen bir tablo kullanılarak, ızgaradaki her bayt başka bir bayt ile değiştirilir. Bu, orijinal verilerin gizlenmesine yardımcı olur.
    • Satır Kaydırma (Shifting Rows): Izgaranın her satırı, belirli bir sayı kadar sola kaydırılır. Bu, baytların konumlarını karıştırır ve şifrenin kırılmasını zorlaştırır.
    • Sütun Karıştırma (Mixing Columns): Izgaranın her sütunu, matematiksel işlemler kullanılarak karıştırılır. Bu, baytlar arasındaki ilişkileri daha da karmaşık hale getirir.
    • XOR İşlemi: Izgaradaki her bayt, o turun anahtarından (round key) gelen bir bayt ile XOR işlemine tabi tutulur. Bu, anahtarı şifreleme sürecine dahil eder ve güvenliği artırır.
  4. Tur Sayısı:AES'te kullanılan tur sayısı, anahtarın uzunluğuna göre değişir:
    • 128-bit anahtar için: 10 tur
    • 192-bit anahtar için: 12 tur
    • 256-bit anahtar için: 14 tur
Buradaki anahtar nokta, AES'in sabit bir blok boyutuna (128 bit) sahip olmasıdır. Bu, 128 bitlik düz metin girişinin her zaman 128 bitlik şifreli metin çıkışı ile sonuçlanacağı anlamına gelir.

Flow chart of AES encryption | Download Scientific Diagram

Simetrik blok şifreler, AES gibi, düz metin bloklarının nasıl şifreleneceğini belirleyen çeşitli çalışma modlarına sahiptir. Bu modlar, şifreleme sürecinin güvenliğini ve esnekliğini artırmak için tasarlanmıştır.
Malware analizinde sıklıkla karşılaşılan üç önemli mod şunlardır:
  1. Electronic Code Book (ECB) Modu:
    • En basit çalışma modudur.
    • 128 bitlik veri blokları, anahtar kullanılarak bağımsız olarak şifrelenir.
    • Bloklar arasında bir ilişki yoktur.
    • Sorun: Aynı düz metin blokları, aynı şifreli metinleri üretir. Bu, saldırganların verilerdeki kalıpları tespit etmesine ve içeriğe dair bilgi edinmesine olanak tanır.
  2. Cipher Block Chaining (CBC) Modu:
    • Her blok, şifrelenmeden önce bir önceki şifreli blokla XOR işlemine tabi tutulur.
    • Bu, bloklar arasında bir zincirleme oluşturur ve aynı düz metin bloklarının farklı şifreli metinler üretmesini sağlar.
    • Saldırganların kalıpları tespit etmesini zorlaştırır.
  3. Counter (CTR) Modu:
    • Bir sayaç kullanarak, her blok için benzersiz bir başlatma vektörü (IV) oluşturur.
    • Bu IV, blokla birlikte şifrelenir ve şifreli metni üretir.
    • CTR modu, paralel olarak şifreleme ve şifre çözme işlemlerine izin verdiği için hızlı ve verimlidir.
ECB modu, örüntülerin kolayca tespit edilebilmesi nedeniyle genellikle güvenli kabul edilmez. CBC ve CTR modları, bu güvenlik açığını giderdikleri için daha güvenli seçenekler olarak görülür.
Şimdi bir örnek vereyim: Düz Metin: "Merhaba dünya, nasılsın?"
  • "Merhaba" bloku şifrelenir ve ilk şifreli metin bloku oluşturulur.
  • "dünya" bloku şifrelenir ve ikinci şifreli metin bloku oluşturulur.
  • "nasılsın?" bloku şifrelenir ve üçüncü şifreli metin bloku oluşturulur.
"Merhaba" ve "nasılsın?" kelimeleri aynıysa, oluşan şifreli metin blokları da aynı olacaktır.
CBC modu ile şifreleme:
  • İlk blok, bir başlatma vektörü (IV) ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • İkinci blok, birinci bloğun şifreli metni ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • Üçüncü blok, ikinci bloğun şifreli metni ile XOR işlemine tabi tutulur ve sonra şifrelenir.
  • Bir bağımlılık oluşturuyor.
Counter (CTR) modu, bloklar arasındaki bağımlılığı ortadan kaldırarak CBC moduna göre bir gelişme sağlar. Bu, performansı artırır ve bir bloktaki hataların diğer blokları etkileme olasılığını azaltır.
CTR modunda şifreleme işlemi şu şekilde gerçekleşir:
  1. Nonce ve Sayaç: Bir nonce (bir kez kullanılan sayı) ve bir sayaç değeri birleştirilir.
  2. Şifreleme: Bu birleştirilmiş değer, blok şifreleme algoritması kullanılarak şifrelenir.
  3. XOR İşlemi: Düz metin, şifrelenmiş nonce ve sayaç değeri ile XOR işlemine tabi tutulur. Bu, şifreli metni üretir.
CTR modunun avantajları:
  • Performans: Bloklar bağımsız olduğundan, paralel işleme için uygundur ve CBC modundan daha hızlıdır.
  • Rastgele Erişim: Bir blokun şifresini çözmek için, önceki blokların şifresini çözmeye gerek yoktur. Bu, büyük dosyaların şifrelenmesi ve şifresinin çözülmesi için kullanışlıdır.
  • Blok Zincirleme Yok: Bloklar arasında zincirleme olmadığı için, bir bloktaki hata diğer blokları etkilemez.
  • Dolguya İhtiyaç Duymaz: Düz metin blokları, blok boyutunun tam katları olmak zorunda değildir.
CTR modunun dezavantajları:
  • Nonce'un Yeniden Kullanılmaması: Nonce'un her şifreleme işleminde farklı olması gerekir. Aynı nonce'un tekrar kullanılması, şifrenin kırılmasına neden olabilir.
  • Sayacın Senkronizasyonu: Şifreleme ve şifre çözme işleminde sayacın senkronize olması gerekir.

Örnek :
  • Metindeki örnek, ECB Modu ile şifrelenmiş bir veri örneğini içeriyor. Özellikle, xxd -p komutu kullanılarak şifrelenmiş verinin heksadesimal formatına dönüştürülmüş hali gösterilmektedir.
b2e5d275b8a9d7fd045f8ab1eb091f46890a6a8b763c4ddb97f642c5f7d8edb5b2e5d275b8a9d7fd05ee7b58a1e242f1f04eab49bff6e46fb8b5fd99

Zamanım olmadığı için bu labı gösteremiyeceğim ama siz yaparak daha iyi fikir elde ede bilirsiniz. Yazıların bir çoğu kendi notlarımdan oluşan bilgilerdir bunları sadece Aİ modeline verib düzenlemeler yapılmışdır.
Kod:
https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-authentication-bypass-via-encryption-oracle

References:
Eline sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.