Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları
GCM ve diğer kiplerde nonce yeniden kullanımının şifreli metin gizliliğini nasıl tamamen tehlikeye atabileceğini anlayın.
Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 2. 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.
Tek Kullanımlık Değerin Kriptografideki Amacı
Bir kez kullanılan sayı, aynı düz metin mesajının iki kez şifrelenmesi durumunda farklı şifreli metinler üretilmesini sağlar. Bu, anlamsal güvenlik için gereklidir: birden fazla şifreli metni gözlemleyen saldırgan, bunların aynı mı yoksa farklı düz metinleri mi şifrelediği hakkında bilgi edinemez. Akış şifrelerinde ve CTR modundaki blok şifrelerinde tek kullanımlık değer, anahtar akışı üretimini başlatır; bu da onu güvenlik açısından kritik hale getirir.
GCM Tek Kullanımlık Değerinin Sayaç Başlatması Olarak Kullanılması
AES-GCM'de 96 bitlik tek kullanımlık değer, CTR modu şifrelemesi için bir sayacı başlatır ve GHASH kimlik doğrulama hesaplamasına da katkıda bulunur. Her AES bloğunun sayaç değeri, tek kullanımlık değerden başlayıp artırılarak elde edilir. İki şifreleme aynı tek kullanımlık değeri ve anahtarı kullanırsa aynı anahtar akışını üretir; bunun sonucunda şifreli metinlerinin XOR'u, düz metinlerinin XOR'una eşit olur.
GCM'de Yıkıcı Tek Kullanımlık Değer Yeniden Kullanımı
Aynı (anahtar, tek kullanımlık değer) çiftiyle şifrelenen iki GCM şifreli metninin XOR'u, düz metinlerinin XOR'una eşittir. Saldırgan düz metinlerden birini biliyorsa (seçilmiş düz metin senaryolarında yaygın olduğu gibi), diğerini hemen elde eder. Bilinen bir düz metin olmasa bile şifreli metinlerin XOR'u dil örüntülerini açığa çıkarır ve olası metin parçalarını kaydırarak deneme teknikleriyle saldırıya uğrayabilir. Bu, kriptografideki en yıkıcı yanlış kullanım örüntülerinden biridir.
Tek Kullanımlık Değer Yeniden Kullanımından Kimlik Doğrulama Anahtarının Elde Edilmesi
GCM'de tek kullanımlık değerin yeniden kullanılmasının düz metnin elde edilmesinin ötesinde yıkıcı bir sonucu daha vardır. GHASH kimlik doğrulama anahtarı H yalnızca şifreleme anahtarından türetilir. İki mesaj aynı (anahtar, tek kullanımlık değer) çiftini paylaşırsa saldırgan, H'yi elde etmek için polinom denklemlerini çözebilir. H bilindiğinde saldırgan, rastgele şifreli metinler için geçerli GCM kimlik doğrulama etiketleri oluşturabilir ve böylece mesaj bütünlüğünü tamamen bozabilir.
TLS 1.3 Tek Kullanımlık Değer Oluşturma
TLS 1.3, TLS 1.2 uygulamalarındaki tek kullanımlık değer yeniden kullanımının risklerinden ders aldı. TLS 1.3, GCM tek kullanımlık değerlerini, el sıkışmadan türetilen 12 baytlık yazma IV'si ile 12 bayta sıfırlarla genişletilmiş 8 baytlık sıra numarasını XOR'layarak oluşturur. Sıra numaraları her kayıt için arttığından her kayıt benzersiz bir tek kullanımlık değer kullanır. Bu yöntem, sıra numarası mekanizmasıyla tek kullanımlık değerlerin benzersizliğini garanti ederken rastgele tek kullanımlık değer üretimi riskini ortadan kaldırır.
Yeniden Oynatma Saldırılarına Genel Bakış
Yeniden oynatma saldırısı, geçerli bir mesajı veya kimlik doğrulama belirtecini yakalayıp hileli bir sonuç elde etmek için daha sonra yeniden göndermektir. Örnekler: bir banka işlemini iki kez ücretlendirme yapılacak şekilde yeniden göndermek, geçerli bir kimlik doğrulama yanıtını kullanıcı gibi görünmek için yeniden göndermek veya imzalı bir komutu cihaza yeniden göndermek. Saldırganın mesajı anlaması ya da değiştirmesi gerekmez; yakalanan veriyi yeniden göndermek saldırıyı gerçekleştirmek için yeterlidir.
Yeniden Oynatmayı Önlemek İçin Zaman Damgaları
Kimlik doğrulamalı mesajlara zaman damgası eklemek yeniden oynatmaya karşı koruma sağlar. Alıcı, mesajları yalnızca kısa bir zaman aralığı içinde kabul eder (örneğin, belirtilen zaman damgasından itibaren 5 dakika içinde). Saatler önce yeniden gönderilen bir mesaj bu aralığın dışında kalır ve reddedilir. Saldırganın zaman damgasını güncel görünecek şekilde değiştirmesini önlemek için zaman damgasının kimliği doğrulanmış olmalıdır (HMAC içinde veya AEAD ek verisinin içinde).
Yeniden Oynatmayı Önlemek İçin Sıra Numaraları
Sıra numaraları, yalnızca eski yeniden oynatmaları değil, yinelenen ve sıra dışı teslimatları da algıladığından zaman damgalarından daha güçlü yeniden oynatma koruması sağlar. Alıcı, beklenen sonraki sıra numarasını ve yakın zamanda görülen numaralardan oluşan kayan bir pencereyi tutar. Her mesajın kabul edilebilir pencere içinde bir sıra numarası bulunmalı ve bu numara daha önce görülmemiş olmalıdır. TLS, bir oturum içindeki kayıtların yeniden oynatılmasını önlemek için sıra numaralarını kullanır.
Güvenli Tek Kullanımlık Değerler Üretme
AES-GCM için rastgele tek kullanımlık değerlerde önerilen üretim stratejisi, kriptografik açıdan güvenli bir sözde rastgele sayı üreteci (CSPRNG) kullanarak 96 bitlik değerler üretmektir. 96 bitlik rastgele tek kullanımlık değerlerde doğum günü sınırına dayalı çakışma olasılığı, 2^32 şifrelemeden (yaklaşık 4 milyar) sonra 2^-32'ye ulaşır. Yüksek hacimli uygulamalarda sayaç tabanlı tek kullanımlık değerlere geçin veya güvenli sınırı genişletmek için farklı bir AEAD kullanın (örneğin, 192 bitlik tek kullanımlık değere sahip XChaCha20-Poly1305).
Belirleyici Tek Kullanımlık Değerler: Sayaç Yönetimi
Belirleyici, sayaç tabanlı tek kullanımlık değerler doğum günü sınırı sorunlarını önler, ancak durumun dikkatle yönetilmesini gerektirir. Sayaç, uygulama yeniden başlatıldığında da korunmalıdır; yeniden başlatma sırasında sıfırlanan bir sayaç, aynı anahtarla hemen tek kullanımlık değer yeniden kullanımına yol açar. Sayaç, tek kullanımlık değer kullanılmadan önce atomik olarak güncellenmelidir (sonra değil). Dağıtık sistemlerde sayaç tabanlı tek kullanımlık değerler, iki düğümün aynı sayaç değerini kullanmasını önlemek için eşgüdüm gerektirir.
Daha Büyük Tek Kullanımlık Değerler İçin XChaCha20-Poly1305
XChaCha20-Poly1305, ChaCha20-Poly1305'in tek kullanımlık değerini 96 bitten 192 bite çıkarır. 192 bitlik rastgele tek kullanımlık değerlerde doğum günü sınırına dayalı çakışma olasılığı, 2^96 şifrelemeden sonra bile ihmal edilebilir düzeydedir; bu, astronomik derecede büyük bir mesaj sayısıdır. Böylece pratikte doğum günü sınırı endişesi olmadan rastgele tek kullanımlık değer üretmek güvenli hale gelir. libsodium'un crypto_secretbox (XSalsa20-Poly1305) yapısı da aynı nedenle 192 bitlik tek kullanımlık değerler kullanır.
GCM'de Tek Kullanımlık Değer Yeniden Kullanımının Sonuçları
İki GCM şifreli metni aynı anahtar ve tek kullanımlık değer kullanılarak üretilirse saldırgan neyi elde edebilir?
Tek Kullanımlık Değer ve Yeniden Oynatma Saldırısının Özeti
Tek kullanımlık değer yeniden kullanımının özeti: tek kullanımlık değerler şifreli metinlerin benzersiz olmasını sağlar; GCM'de tek kullanımlık değerlerin yeniden kullanılması düz metinlerin XOR'unu açığa çıkarır ve H'nin elde edilmesi yoluyla kimlik doğrulamayı bozar; TLS 1.3, tek kullanımlık değerlerin benzersizliğini garanti etmek için sıra numarasını IV ile XOR'lar; yeniden oynatma saldırıları geçerli mesajları değiştirmeden yeniden gönderir; kimlik doğrulamalı mesajlardaki zaman damgaları ve sıra numaraları yeniden oynatmayı önler; GCM için 96 bitlik rastgele tek kullanımlık değerler kullanın (doğum günü sınırlarını göz önünde bulundurun) veya daha geniş rastgele tek kullanımlık değer alanı için XChaCha20 kullanın.
Sıkça Sorulan Sorular
“Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları” dersi ücretsiz mi?
Evet — “Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları” 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.
“Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları” dersinde ne öğreneceğim?
GCM ve diğer kiplerde nonce yeniden kullanımının şifreli metin gizliliğini nasıl tamamen tehlikeye atabileceğini 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 2. dersidir.
“Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları” 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
- Ayrıntılı Dolgu Oracle Saldırıları
- Tekrar Oynatma Saldırıları ve Nonce Yeniden Kullanım Güvenlik Açıkları
- Uygulama Düzeyindeki Kodda Zamanlama Saldırıları
- Başlıca Kriptografik Yanlış Kullanım Kalıpları