Blok Şifreler
Blok şifreler verileri bloklar halinde alır ve şifrelemeyi gerçekleştirmek için aynı boyuttaki şifre bloklarını kullanır. Çok popülerdir ve aralarından seçim yapabileceğiniz birçok güvenli algoritma vardır. Ne yazık ki girdi verileri aynı boyuttaki bloklara düzgün bir şekilde sığmıyorsa, daha fazla yer/bellek kaplayan ve şifreleme hızını azaltan dolgu gerekebilir. Bu nedenle blok şifreleme genellikle akış şifrelemeden daha az performanslıdır.
Blok Şifreleme Çalışma Modları
Şifre bloklarınızı oluşturmanın çeşitli yolları vardır ve bunu nasıl yaptığınıza bağlı olarak çeşitli saldırılar mümkündür:
Elektronik Kod Kitabı (ECB)
En basit çalışma modu, veriler bloklara ayrılır ve her blok bir anahtar kullanılarak kodlanır. Bloklar aynı şekilde kodlandığından, aynı bloklar aynı şifre metinlerini verecektir. Bu, yeterli veri verildiğinde anahtarın ne olduğunu belirlemeyi kolaylaştırır.
Şifreleme blok zinciri (CBC)
Bir başlatma vektörü (IV) ile başlayarak her blok, sürekli değişen bir şifreli metin zinciri oluşturmak için bir önceki bloğun şifreli metninin bir kısmı ile XORlanır. Bu, aynı blokların farklı şifre metinleriyle sonuçlanacağı anlamına gelir. Bu en yaygın çalışma modudur, zayıf yönleri algoritmanın paralel olarak çalıştırılamaması (üzgünüm modern işlemciler) ve IV'ün yaygın bir saldırı hedefi olmasıdır.
Sayaç (CTR)
CTR, IV kullanmak yerine bir nonce (tüm bloklar için aynı olan rastgele sayı) ve sayaç kullanır. Sayaç her blokta artırılır, yani bu mod paralel olarak çalışabilir. CTR modu, ECB'nin sorunlarını çözerken modern makinelerde hızlı bir şekilde çalışabilen bir algoritma sağlar.
Galois/Sayaç Modu (GCM)
GCM, CTR gibi bir sayaç kullanır, ancak bir nonce kullanmaz. Bunun yerine başlangıç sayacıyla birlikte bir IV kullanılır. GCM ayrıca bloğun bütünlüğünü doğrulamak için her blok için bir mesaj kimlik doğrulama kodu (MAC) üretir. Bu kombinasyon, hızla benimsenen modern ve sağlam bir algoritma oluşturmaktadır.
| Örnek Olay İncelemesi: Yuvarlanmayan Kodlardan Yararlanma |
| CTR ve GCM blok şifreleme modlarında kullanılan sayaç kodları gibi tekrar etmeyen kodların önemi, kodları kullanan bir başka önemli teknolojinin analizi yoluyla vurgulanabilir: anahtarsız giriş sistemleri. Garaj kapısı açıcıları piyasaya ilk çıktığında, uzaktan kumanda, alıcının doğru olarak tanımak üzere programlandığı tek bir kod yayınlardı. Bu, dinleyen herhangi birinin kodu kolayca alabileceği ve kendi cihazıyla garaj kapısını açmak için kodu yeniden oynatabileceği anlamına geliyordu. Bununla mücadele etmek için şirketler uzaktan kumandalarında ve alıcılarında yuvarlanan kodlar kullanmaya başladı. Aynı çekirdek verildiğinde, yuvarlanan kod her cihazın tamamen aynı olan bir dizi kod üretmesini sağlar. Uzaktan kumanda, düğmeye her basıldığında sıradaki kodu kullanacaktır. Alıcı, sıradaki birkaç koddan herhangi biriyle eşleşirse alınan kodu doğrulayacaktır (düğmeye menzil dışında birkaç kez basılmış olması durumunda). Bu, yeniden oynatma saldırısını etkili bir şekilde azaltır. Bunun 1980’lerde garaj kapısı kumandalarında uygulandığı düşünüldüğünde, otomobil üreticilerinin de kumandalarında aynı teknolojiyi kullandığını varsayabilirsiniz. “Eski olan her şey tekrardan yenidir” vakasında bu doğru değildir. Blake Berry (HackingIntoYourHeart), çeşitli marka ve model otomobillerin aslında hala bir replay saldırısına karşı savunmasız olduğunu keşfetti. Sammy Kamkar da DEF CON 23’te gösterdiği RollJam adlı yuvarlanan kodlar için bir güvenlik açığı keşfetti. Kamkar’ın cihazı bir anahtarlık tarafından gönderilen sinyalleri karıştırırken, gönderilen kodları da kaydediyor. Muhtemelen kurbanın düğmeye birden fazla kez basmasıyla iki kod kaydettiğinde, sıkışmayı durdurur, aracın kilidini açmak için ilk kodu gönderir ve daha sonra aracın kilidini açmak için ikinci kodu kaydeder. |
Yorumlar
Yorum Gönder