0Pricing
Cloud & IT Cert Prep · Ders

Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305

AEAD şifrelerinin gizlilik ve bütünlüğü aynı anda nasıl sağladığını ve AES-GCM'de nonce'ların yanlış kullanılmasının neden felaket niteliğinde anahtar kurtarmaya yol açtığını öğrenin.

Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep 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, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Kimlik Doğrulamalı Şifreleme Nedir

Kimlik Doğrulamalı Şifreleme (AE), temel bir sorunu çözer: geleneksel şifreleme yalnızca gizlilik sağlar — verileri gizli tutar — ancak şifreli metnin değiştirilip değiştirilmediğini doğrulamaz. Bir saldırgan, şifreli metindeki bitleri değiştirerek alıcının değişiklikten haberi olmadan anlamsız verilerin şifresini çözmesine neden olabilir. İlişkili Verilerle Kimlik Doğrulamalı Şifreleme (AEAD), aynı anda bütünlük ve kimlik doğrulama güvencesi ekleyerek hem şifrelenmiş şifreli metin hem de tüm değişiklikleri tespit eden bir kimlik doğrulama etiketi üretir.

AES-GCM: Sayaç Kipi ve GMAC

AES-GCM (Galois/Sayaç Kipi) iki bileşeni birleştirir: şifreleme için AES-CTR (Sayaç Kipi) ve bütünlük için GMAC (Galois Mesaj Kimlik Doğrulama Kodu). AES-CTR, bir sayaç değerini şifreleyerek ve bunu düz metinle XOR'layarak bir anahtar akışı oluşturur; bu, CBC kipinin aksine şifrelemenin paralelleştirilebilmesini sağlar. GMAC, şifreli metin ve tüm ilişkili veriler üzerinden bir kimlik doğrulama etiketi hesaplar. Ortaya çıkan etiket (128 bit) şifreli metinle birlikte gönderilir; tek bir bit değişikliği etiketi geçersiz kılar.

# AES-256-GCM encryption with openssl
openssl enc -aes-256-gcm -in plaintext.txt -out encrypted.bin \
  -K $(openssl rand -hex 32) \
  -iv $(openssl rand -hex 12)

Nonce: Kritik ve Hassas

AES-GCM, genellikle 96 bit (12 bayt) olan bir nonce (bir kez kullanılan sayı) gerektirir. Nonce, aynı anahtarla gerçekleştirilen her şifreleme işlemi için benzersiz olmalıdır; gizli olması gerekmez, ancak hiçbir zaman tekrarlanmamalıdır. AES-GCM'de nonce'un yeniden kullanılması felaketle sonuçlanır: iki ileti aynı anahtar ve nonce ile şifrelenirse saldırgan, anahtar akışını birbirinden çıkarmak için şifreli metinlere XOR uygulayabilir ve bu sayede her iki düz metni de kurtarabilir. Bu güvenlik açığı bazen 'nonce'un hatalı kullanımı' olarak adlandırılır ve gerçek dünyada anahtar kurtarma saldırılarına yol açmıştır.

Nonce'un Hatalı Kullanıldığı Saldırının Açıklaması

AES-GCM nonce'ları yeniden kullanıldığında saldırgan, her iki metin için de aynı anahtar akışı kullanıldığından C1 XOR C2 = P1 XOR P2 (her iki düz metnin XOR'u) hesaplayabilir. Ayrıca nonce'un yeniden kullanılması, doğrulama anahtarı H değerinin kurtarılmasına olanak tanır; bu da saldırganın rastgele iletiler için geçerli doğrulama etiketleri oluşturabilmesi, yani hem gizliliği hem de bütünlüğü tamamen bozabilmesi anlamına gelir. Sony PS3 gibi sistemler tam olarak bu saldırıdan etkilenmiştir. Korunma yöntemi, CSPRNG ile oluşturulan rastgele nonce'lar veya hiçbir zaman sıfırlanmayan deterministik bir sayaç kullanmaktır.

ChaCha20-Poly1305: Bir Akış Şifresi Alternatifi

ChaCha20-Poly1305, TLS 1.3'te kullanılması zorunlu tutulan diğer AEAD şifresidir. ChaCha20, Daniel Bernstein tarafından tasarlanan ve toplama-döndürme-XOR (ARX) işlemlerini kullanarak bir anahtar akışı oluşturan bir akış şifresidir; arama tablosu kullanmaz, çalışma süresi tamamen sabittir ve AES donanım hızlandırması bulunmayan CPU'larda son derece hızlıdır. Poly1305, doğrulama etiketini şifreli metin üzerinden hesaplayan tek kullanımlık bir MAC'tir (ileti doğrulama kodu). Birlikte, AES-GCM'ye eşdeğer güvenlik sağlar; ancak mobil ve IoT cihazlarında önemli ölçüde daha hızlıdır.

Mobil Cihazlarda Neden ChaCha20-Poly1305 Kullanılır?

Modern x86 ve ARM64 masaüstü ve sunucu işlemcilerinde, AES-GCM'yi son derece hızlı hâle getiren AES-NI donanım talimatları bulunur. Ancak birçok mobil ve IoT işlemcisinde AES-NI bulunmadığından yazılımsal AES-GCM görece yavaştır. ChaCha20-Poly1305, basit aritmetik işlemleri kullanarak yazılım üzerinde hızlı çalışacak şekilde tasarlanmıştır; bu sayede mobil cihazlara donanım hızlandırması olmadan karşılaştırılabilir bir performans sunar. Google, tam da Android cihazlar için bir alternatif olarak ChaCha20-Poly1305'i TLS'ye eklemiştir ve bu şifre artık TLS 1.3'te birinci sınıf bir şifre paketidir.

İlişkili Veriler: Üst Bilgileri Koruma

AEAD'deki 'AD', Associated Data ifadesinin kısaltmasıdır; şifrelenmeyen, ancak kimliği doğrulanan düz metin üst verilerini ifade eder. Bu sayede paket üst bilgileri veya kayıt türü alanları gibi okunabilir kalması gereken verileri doğrulayabilir ve aynı zamanda bunları kurcalanmaya karşı koruyabilirsiniz. TLS 1.3'te kayıt üst bilgisi baytları, AEAD hesaplamasına ilişkili veri olarak dâhil edilir. Saldırgan üst bilgiyi değiştirirse (örneğin kayıt uzunluğunu değiştirirse) doğrulama etiketi kontrolü başarısız olur ve bağlantı sonlandırılır.

AEAD ve Encrypt-Then-MAC Karşılaştırması

AEAD standart hâle gelmeden önce kriptograflar Encrypt-then-MAC (EtM) yaklaşımını öneriyordu: düz metni şifrelemek ve ardından şifreli metin üzerinden bir MAC hesaplamak. Bu yaklaşım güvenlidir, ancak iki ayrı anahtarla iki ayrı işlem gerektirir. AES-GCM gibi AEAD şemaları her iki işlemi tek bir anahtarla birleştirir; böylece uygulama karmaşıklığını azaltır ve eski TLS sürümlerinde kullanılan MAC-then-Encrypt (MtE) sıralamasının (CBC + HMAC) yol açtığı bütün bir dolgu kehaneti saldırıları sınıfını ortadan kaldırır. AEAD kullanan TLS 1.3 bu sorunlardan tamamen kaçınır.

AES-128-GCM ve AES-256-GCM Karşılaştırması

Hem AES-128-GCM hem de AES-256-GCM NIST tarafından onaylanmış ve klasik bilgisayarlara karşı güvenli kabul edilmiştir. AES-128, biraz daha yüksek performansla 128 bit güvenlik sunar; AES-256 ise 256 bit güvenlik sağlayarak gelecekteki kriptanaliz ve kuantum tehditlerine karşı daha büyük bir güvenlik payı sunar. Günümüzde çoğu uygulama için AES-128-GCM yeterlidir; ancak devletin gizli bilgileri işleyen sistemlerinde (NSA Suite B) AES-256 kullanılması gerekir. TLS 1.3 her ikisini de sunar ve sunucular güvenlik politikalarına göre öncelik belirleyebilir.

Doğrulama Etiketi Kontrol Süreci

AEAD şifreli metni çözülürken alıcı, şifre çözme işleminden önce doğrulama etiketini kontrol etmelidir. Süreç şöyledir: alınan şifreli metin, anahtar ve nonce değerlerinden beklenen etiketi yeniden hesaplamak; bunu alınan etiketle sabit süreli bir karşılaştırma işlevi kullanarak karşılaştırmak; yalnızca değerler eşleşirse şifre çözmeye devam etmek. Sabit süreli karşılaştırma kritik öneme sahiptir: karşılaştırma ilk uyuşmayan baytta sonlandırılırsa saldırgan, geçerli etiketleri bayt bayt oluşturmak için zamanlama yan kanal saldırısı düzenleyebilir. Erken çıkışlı karşılaştırma kullanan tüm AEAD kitaplıkları savunmasızdır.

Gerçek Dünyada AEAD Uygulamaları

AEAD algoritmaları modern güvenlikte her yerde kullanılır: TLS 1.3 tüm kayıt şifrelemelerinde AES-GCM ve ChaCha20-Poly1305 kullanır; WireGuard VPN yalnızca ChaCha20-Poly1305 kullanır; Signal Protocol ileti şifrelemede bunu kullanır; QUIC protocol (HTTP/3'ün temelini oluşturur) AES-GCM kullanır. TLS_AES_256_GCM_SHA384 gibi bir şifre paketi gördüğünüzde SHA384, bütünlük mekanizmasını değil, anahtar türetme için kullanılan HKDF özet işlevini ifade eder; bütünlüğü GCM etiketi sağlar.

Kısa Kontrol

Bu derste ele alınan CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: AEAD algoritmaları, şifreli metin üzerindeki her değişikliği tespit eden bir doğrulama etiketi aracılığıyla gizlilik ve bütünlüğü aynı anda sağlar; AES-GCM nonce'unun yeniden kullanılması felaketle sonuçlanır — anahtar akışının kurtarılmasına ve doğrulama anahtarının sahtecilikle oluşturulmasına olanak tanır — bu nedenle nonce'lar her şifreleme işlemi için benzersiz olmalıdır; ChaCha20-Poly1305, donanım AES hızlandırması bulunmayan cihazlar için AES-GCM'ye performans açısından verimli bir alternatiftir. Sırada, parolaları güvenceye almak için anahtar türetme işlevlerini inceleyeceğiz.

Sıkça Sorulan Sorular

“Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305” dersi ücretsiz mi?

Evet — “Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305” 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 Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305” dersinde ne öğreneceğim?

AEAD şifrelerinin gizlilik ve bütünlüğü aynı anda nasıl sağladığını ve AES-GCM'de nonce'ların yanlış kullanılmasının neden felaket niteliğinde anahtar kurtarmaya yol açtığını öğrenin. Cloud & IT Cert Prep 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.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, 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.

“Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305” 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 Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep 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. TLS 1.3 El Sıkışması ve 0-RTT Yeniden Başlatma
  2. Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305
  3. Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2
  4. Kuantum Sonrası Kriptografi: CRYSTALS-Kyber ve Dilithium
← Cloud & IT Cert Prep Sayfasına Dön