Previous slide Next slide Toggle fullscreen Open presenter view
CEN429 Güvenli Programlama · Hafta 11
Whitebox Kriptografi
CEN429 Güvenli Programlama — Hafta 11
Dr. Öğr. Üyesi Uğur CORUH · 27.11.2026
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bugünün planı (3 saat)
Zaman
Bölüm
Ne yapılıyor
0:00–0:25
1
Kara/gri/beyaz kutu modelleri; WBC saldırgan yetenekleri
0:25–0:50
2
Problem neden zor; naif çözümler: gömülü anahtar, XOR, code lifting
0:55–1:40
3
Tablo tabanlı WBC (Chow AES): kodlama, bijeksiyonlar, tablo boyutu/hız
1:45–2:20
4
Saldırı geçmişi: BGE, DFA, DCA, WhibOx; "hepsi kırıldı" ve karşı önlemler
2:20–2:45
5
Katmanlı savunmadaki yeri; donanım alternatifleri (TEE/SE, HSM/SoftHSM)
2:45–3:00
6–7
Hatalı→saldırı→koruma; proje S8; kendini sınama
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bu hafta nereye oturuyor?
9. hafta: kod gizleme — "gizleme anahtarı korumaz" dedik
Bu hafta (11): peki anahtarı yazılımda nasıl koruruz? → whitebox
10. hafta: kriptonun doğru kullanımı, anahtar yaşam döngüsü
Bugün "anahtar saldırganın elindeyken ne yaparız?" sorusunu işliyoruz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Öğrenme çıktısı
Bu hafta ÖÇ.2 / ÖÇ.4 (kriptografi, güvenli iletişim) üstünedir.
Sonunda yapabileceğiniz:
Kara/gri/beyaz kutu modellerini ayırmak
Whitebox'ın ne yaptığını ve neden yetmediğini anlatmak
Bir anahtar için doğru koruma kararı vermek
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Baştan bir uyarı
Bugüne kadar yayımlanmış saf yazılım whitebox tasarımlarının hepsi kırıldı .
O yüzden bugün "whitebox = güvenli anahtar" demeyeceğiz.
Diyeceğiz ki: whitebox, anahtar çıkarmayı geciktiren bir katmandır — ve tek başına yeterli değildir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Önceki haftalardan gelenler (1)
Şifreleme, anahtar, simetrik/asimetrik — açık metni bir anahtarla okunamaz hale getirmek; güvenlik anahtarın gizliliğine dayanır, algoritmanın gizliliğine değil (Hafta 3)
AES ve bit güvenlik düzeyi — en yaygın simetrik algoritma, 16 baytlık bloklar, turlar; "n-bit güvenlik" ≈ 2ⁿ deneme (Hafta 10)
XOR — bitler farklıysa 1, aynıysa 0; a^b^b=a ile geri alınabilir; AES'te anahtar ekleme adımı budur (Hafta 5)
Entropi — bir verinin baytlarının ne kadar rastgele göründüğünün ölçüsü; şifreli/rastgele bloklar yüksek entropili görünür (Hafta 2)
Bu hafta bu araçları whitebox bağlamında yeniden kullanıyoruz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Önceki haftalardan gelenler (2)
Hata ayıklayıcı (debugger) — bir programı adım adım çalıştırıp bellek/kayıtları okuyan araç (gdb, x64dbg) (Hafta 6)
Statik ve dinamik analiz — çalıştırmadan / çalıştırarak yapılan inceleme; saldırıları sınıflamakta kullanacağız (Hafta 4)
Enstrümantasyon ve emülatör — bir programı otomatik izleyen ve gerçek işlemciyi yazılımla taklit eden araçlar (Hafta 6)
HSM ve SoftHSM — anahtarı hiç dışarı çıkarmadan işleyen özel donanım ve onun yazılım benzetimi (Hafta 10)
Bu hafta bunları whitebox saldırganının araç kutusu ve savunma seçenekleri olarak yeniden görüyoruz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bu haftanın kavramları
Her terim, gövdede ilk geçtiği yerde tanımlanır; burada yalnız nerede olduğunu işaretliyoruz.
Kavram
Nerede
Kara/gri/beyaz kutu, WBC saldırgan modeli
Bölüm 1
Problem neden zor; naif çözümler (gömülü anahtar, XOR, code lifting)
Bölüm 2
Tablo tabanlı WBC: kısmi değerlendirme, iç/dış kodlama, bijeksiyon
Bölüm 3
Saldırı geçmişi: BGE, DFA, DCA, WhibOx
Bölüm 4
Katmanlı savunmadaki yer; TEE/SE, HSM/SoftHSM
Bölüm 5
Hatalı → saldırı → koruma senaryosu
Bölüm 6
Proje S8, kendini sınama
Bölüm 7
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ön bilgi · S-box nedir?
S-box (substitution box): bir baytı başka bir baytla değiştiren sabit bir tablo .
AES'in "bayt değiştirme" adımı budur.
Örnek: S-box[0x53] = 0xED gibi 256 girişli bir eşleme.
Bu tabloyu aklınızda tutun; whitebox'ın kalbi budur.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Arama tablosu (lookup table)
Arama tablosu: "girdiye karşılık çıktı" veren dizi.
T[x] = x için önceden hesaplanmış sonuç.
Hesap yapmak yerine tablodan okursunuz ; hızlıdır.
Whitebox, hesabı tablolara gömer.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ön bilgi · Yan kanal (side channel) nedir?
Yan kanal: algoritmanın matematiğini değil, çalışırken sızdırdığı fiziksel/dolaylı bilgiyi kullanan saldırı.
Örnek: harcanan zaman , güç tüketimi, elektromanyetik yayım.
Kartlarda klasiktir; birazdan whitebox'ta yazılım karşılığını göreceğiz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
DPA nedir?
DPA (Differential Power Analysis): bir cihazın güç tüketimi ölçümlerine istatistik uygulayıp anahtarı çıkaran yan kanal saldırısı.
Cihazın içine bakmaz; dışarıdan ölçer.
Bu fikri aklınızda tutun; whitebox'ın en güçlü saldırısı (DCA) bunun yazılım hâlidir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ön bilgi · Bijeksiyon (birebir-örten eşleme)
Bijeksiyon: her girdiyi tam bir çıktıya eşleyen, tersi alınabilen dönüşüm.
Örnek: f(x) = x ^ 0x5A bir bijeksiyondur (tersi yine kendisi).
Whitebox, tabloları gizli bijeksiyonlarla sarar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ön bilgi · TEE ve güvenli öğe (SE)
TEE (Trusted Execution Environment): telefon işlemcisinin, işletim sisteminden yalıtılmış güvenli bölgesi.
Güvenli öğe (SE): anahtarları saklayan ayrı, kurcalamaya dirençli donanım çip.
Anahtar için en güçlü koruma bunlardır; whitebox bunların olmadığı durum içindir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Şimdi hazırız
Bildiğimiz terimler:
şifreleme/çözme · anahtar · simetrik/asimetrik · AES · S-box · arama tablosu · XOR · bit güvenlik · yan kanal · DPA · bijeksiyon · TEE/SE · HSM/SoftHSM
Şimdi asıl soruya: anahtar saldırganın elindeyken ne yaparız?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
1. Üç saldırgan modeli
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kısa tarihçe — whitebox kriptografi
1883 — Kerckhoffs : güvenlik anahtarda olmalı, sistemin gizliliğinde değil
2002 — Chow vd. ilk whitebox AES/DES (DRM için) — WBC'nin doğuşu
2004 — BGE saldırısı ilk WB-AES'i kırar
2016 — DCA (Bos vd.): donanım DPA'sı yazılıma taşınır, otomatik kırar
2017–2024 — WhibOx : yayımlanan tüm saf-yazılım adaylar kırıldı
Bugünkü kural: WBC bir geciktirme katmanı ; mümkünse donanım (TEE/SE/HSM).
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Neden "model"?
Bir savunmayı tasarlamadan önce saldırganın neyi görebildiğini belirlemeliyiz.
Buna saldırgan modeli denir.
Üç model var: kara, gri, beyaz kutu.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kara kutu
Saldırgan yalnız girdi ve çıktıyı görür.
İçeriyi (anahtar, ara değerler) göremez.
Tipik ortam: uzak sunucu (kod sizde, saldırgan ağdan bağlanıyor).
AES/RSA'nın güvenlik kanıtları bunu varsayar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Gri kutu
Saldırgan girdi/çıktıya ek olarak yan kanalları görür (zaman, güç, EM).
İçeriyi doğrudan okuyamaz ama dolaylı ölçer.
Tipik ortam: elinde tuttuğu bir akıllı kart ya da gömülü cihaz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Beyaz kutu
Saldırgan her şeyi görür: kod, bellek, tüm ara değerler.
Üstelik değiştirebilir .
Tipik ortam: yazılım , saldırganın kendi cihazında çalışıyor.
Bu, mobil/masaüstü uygulamanın gerçek durumudur.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Üç model bir arada
Model
Ne görür / yapar
Ortam
Kara
Girdi/çıktı
Uzak sunucu
Gri
+ yan kanal
Akıllı kart
Beyaz
Her şey + değiştirir
Yazılım, kendi cihazı
Kripto kara kutu için tasarlandı; biz beyaz kutudayız .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Üç saldırgan modeli — ne görüyor?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Saldırgan modelleri (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Saldırgan modelleri — uç durum: hepsi beyaz kutu
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Sorun burada
AES matematiksel olarak güçlü. Ama:
Beyaz kutuda anahtar bellekte bir yerdedir
Saldırgan belleği okuyabilir
O zaman AES'in gücü ne işe yarar?
Güçlü kilit, anahtarı kapının yanına asarsanız işe yaramaz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Whitebox kriptografi (WBC) fikri
WBC: şifrelemeyi, anahtar hiçbir zaman açıkça bellekte olmayacak biçimde gerçekleştirmek.
Anahtar, önceden hesaplanmış arama tablolarının içine gömülür.
Bellekte "işte anahtar bu" diyebileceğiniz bir bayt dizisi yoktur .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC bir tanım değil, bir saldırgan modeli
WBC, 2002'de Chow ve arkadaşları tarafından tanımlandı.
Aslında bir saldırgan modelidir : "saldırgan her şeyi görüp değiştirebiliyorsa şifreleme nasıl yapılır?"
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC saldırgan neler yapabilir? (1)
Gözlemler:
O an işlenen komutlara erişir
Algoritma akışını izler
Kullanılan belleği görür
Yani programın gördüğü her ara değeri o da görür.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC saldırgan neler yapabilir? (2)
Değiştirir:
Program belleğini kurcalar
Algoritmanın yalnız bir turunu çalıştırır
if koşullarını değiştirir
Döngü sayaçlarını değiştirir
Hata enjekte eder (bir değeri bozar)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kaynağın uyum maddesi
Teknik kılavuz bu bölümü şu gereksinimle açar:
"Kriptografik anahtarlar, gizlilik ve bütünlüğü korumak için güvence altına alınmalı ve/veya gizlenmelidir. "
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ama hemen ekliyor
Kılavuz, bu saldırgan yeteneklerine karşı koruyanın yalnız WBC olmadığını söyler:
Uygulamayı ve varlıkları koruyan şey, kod sağlamlaştırma (9. hafta) ve RASP (6. hafta) yöntemleridir.
WBC ilk cümleden itibaren tek başına sunulmaz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2. Problem ve naif çözümler
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Problem neden bu kadar zor?
Temel gerilim:
Program şifrelemek için anahtara erişmek zorunda
Saldırgan da programın gördüğü her şeyi görüyor
Yani anahtar bir noktada saldırganın da görebildiği yerde
WBC bunu "anahtarı tablolara pişirerek" aşmaya çalışır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bu gizlilik değil, maliyet
WBC gizliliği kriptodan gizlemeye taşımaz .
Matematiksel bir dönüşümle anahtarı tablolara dağıtır .
Amaç yine 9. haftadaki gibi: anahtarı geri çıkarmayı çok daha pahalı yapmak.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif çözümler neden çöker?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Anahtar tablodan nasıl sızıyor — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Neden çökenleri öğreniyoruz?
WBC'ye neden ihtiyaç olduğunu görmek için.
Her başarısız "kolay" çözüm, bir güvenli programlama kuralına dönüşür.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 1 · Anahtarı diziye göm
static const uint8_t k[16 ] = { 0x2B , 0x7E , ... };
En kolay yol, en zayıf yol.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 1 · Nasıl kırılır?
strings / bayt taraması: 16 baytlık blok görünür
Entropi taraması: yüksek entropili blok "anahtar burada" der (Shamir–van Someren gözlemi)
Hata ayıklayıcı: şifreleme çağrısında bu bloğun kullanıldığını doğrular
Süre: dakikalar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 1 · Kural
Düz gömülü anahtar bir anahtar koruması değildir .
Bu, 9. haftadaki "dize gizleme anahtar saklamaz" kuralının ta kendisi.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Gömülü anahtarı tarayarak bulma (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Gömülü anahtar taraması — uç durum: anahtar yok
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 2 · XOR ile "karıştır"
static const uint8_t k_gizli[16 ] = ...;
"Anahtarı bir maskeyle XOR'layıp saklayayım."
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 2 · Neden çöker?
Maske de binary dosyadadır
Program k'yı çözebiliyorsa, saldırgan da çözer
Sadece bir adım fazladan; gerçek bir engel değil
Program neyi yapabiliyorsa, beyaz kutu saldırgan da yapar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif 3 tehdidi · Kod sökme (code lifting)
Diyelim WBC anahtarı tablolara gömdü.
Saldırgan anahtarı hiç çıkarmadan , şifreleme yapan kod parçasını (tablolar + yorumlayıcı) olduğu gibi kopyalar .
Kendi programında kullanır: anahtarı bilmeden işlevini çalar .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Code lifting — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kod sökme · Kural
WBC'nin "anahtarı gizledim" demesi yetmez.
Kod sökmeye (code lifting) karşı cihaz/sürüm bağlama gerekir (birazdan 3. bölüm): tablolar yalnız belirli bir cihazda/sürümde anlamlı olsun.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Naif çözümler: özet
Naif çözüm
Kıran
Diziye gömülü anahtar
strings + entropi + gdb
XOR/whitening
maske de içeride
(WBC bile)
kod sökme → cihaz bağlama gerekir
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 1–2 — kısa sınama
Kara, gri, beyaz kutu farkı?
AES güçlüyken beyaz kutuda sorun ne?
Anahtarı diziye gömmek neden koruma değil?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 1–2 — cevaplar
Kara: yalnız girdi/çıktı · Gri: + yan kanallar (zaman/güç) · Beyaz: her şey + değiştirir.
Anahtar bir noktada bellekte ; beyaz kutu saldırgan onu görür. AES'in gücü kara kutu varsayımına dayanır.
strings + entropi taraması + gdb ile dakikalar içinde bulunur; program onu kullanmak zorundadır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
3. Tablo tabanlı WBC (adım adım)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ne öğreneceğiz?
Chow ve arkadaşlarının 2002 AES tasarımı, tablo tabanlı WBC'nin klasiğidir.
Fikri (nasıl çalışır)
Maliyeti (tablo boyutu, hız)
Sınırı (neden yeterli değil)
Sınavda matematik yok; fikir ve sınır var.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Hatırlatma: bir AES turunun iki adımı
Durum baytını tur anahtarıyla XOR 'la: x ^ k
Sonucu S-box 'tan geçir: S-box[x ^ k]
Bu iki adım, sabit bir k için birleştirilebilir mi? Evet.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
AES turu sıfırdan (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
AES turu — uç durum: durum ve anahtar sıfır
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 1 · Anahtarı tabloya "pişir"
Normal: çıktı = S-box[ x ^ k ]
WBC: T[x] = S-box[ x ^ k ] (256 girişli tablo)
Artık kodda k diye bir değişken yok . k, tablonun içine gömülü.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 1 · Ne kazandık?
Bellekte k adında bir bayt dizisi yok
Sadece T tablosu var (256 giriş)
Görünüşte anahtar kayboldu. Ama...
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 1 · Neden tek başına güvensiz?
T, S-box'ın x ^ k ile ötelenmiş hali
Saldırgan T'yi bilinen S-box ile karşılaştırır
Öteleme miktarından k'yı geri çıkarır
Bu yüzden tabloları kodlamak gerekir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Neden oyuncak örnek?
Gerçek AES 256 girişli tablolarla çalışır; tahtaya sığmaz.
Fikri 4 değerli minik bir örnekle göreceğiz.
Amaç: "anahtarı tabloya pişirmek" ne demek, elle görmek.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Minik S-box tanımı
Diyelim 2 bitlik değerlerimiz var (0,1,2,3) ve şu sabit S-box:
x: 0 1 2 3
S-box[x]: 3 2 0 1
Bu tablo herkese açık (algoritmanın parçası, sır değil).
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Anahtar ve işlem
Anahtar k = 1 (gizli).
İşlem (bir AES turunun mini hâli): çıktı = S-box[x ^ k].
^ = XOR. x ^ 1: 0↔1, 2↔3 (son biti çevirir).
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım adım: normal işlem
x=0 → x^1=1 → S-box[1]=2
x=1 → x^1=0 → S-box[0]=3
x=2 → x^1=3 → S-box[3]=1
x=3 → x^1=2 → S-box[2]=0
Burada k=1 kodda açıkça kullanılıyor. Saldırgan görür.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Anahtarı tabloya "pişir"
T[x] = S-box[x ^ 1] diye önceden hesaplayıp tablo yapalım:
x: 0 1 2 3
T[x]: 2 3 1 0
Artık kodda k yok ; sadece T var. Görünüşte anahtar kayboldu.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ama anahtar sızıyor! (kodlama yoksa)
Saldırgan T'yi bilinen S-box ile karşılaştırır:
S-box: 3 2 0 1
T: 2 3 1 0
T[x] = S-box[x ^ k] olduğunu bilerek hangi k uyuyor diye dener: k=1 uyar.
Sonuç: kodlanmamış tablo anahtarı ele verir. İşte bu yüzden iç/dış kodlama var.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Tabloya anahtarı gömme (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Neden tablo anahtarı ele verir? (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Tablo sızıntısı — uç durum: sıfır anahtar
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 2 · Tabloları büyüt (T-box)
Tek bayt eşlemesi yerine, S-box ile AES'in karıştırma adımını (MixColumns) birleştir
Sonuç: 8 bit girip 32 bit çıkaran daha büyük tablolar (T-box )
Baytlar arası XOR'lar da küçük XOR tabloları (4 bit) olur
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 2 · Sonuç
Bütün tur, bir arama tabloları ağına dönüşür
Hiçbir yerde açık bir aritmetik anahtar işlemi görünmez
Ama tablolar hâlâ tek başına incelenebilir → kodlama şart
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 3 · İç kodlamalar (internal encodings)
Her tablonun çıkışına gizli bir bijeksiyon uygula
Bir sonraki tablonun girişinde onun tersini uygula
Ardışık kodlamalar birbirini götürür → sonuç doğru
Ama ara değerler karışık görünür.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
İç kodlama — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 3 · Neyi engeller?
Bir tabloyu tek başına inceleyen saldırganı durdurmayı amaçlar.
Çünkü o tablonun girişi/çıkışı, gizli bir kodlamayla bozulmuştur.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kodlama fikri (minik)
Çıkışa gizli bir eşleme E uygula: T'[x] = E(T[x]).
E: 0→1, 1→3, 2→0, 3→2 (gizli bijeksiyon)
T': E(2) E(3) E(1) E(0) = 0 2 3 1
Artık T', S-box'a benzemez; basit karşılaştırma k'yı vermez.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kodlamanın bedeli
Bir sonraki adım E'nin tersini uygulamalı ki sonuç doğru çıksın.
Gerçek AES'te bu, tabloları zincirleyerek yapılır (iç kodlamalar).
Her kodlama fazladan tablo ve boyut demektir → maliyet .
Minik örnek bile fikri gösteriyor: gizlilik ucuz değil.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 4 · Karıştırıcı bijeksiyonlar
İç kodlamalara ek olarak, GF(2) üzerinde doğrusal karıştırıcı matrisler (8×8, 32×32)
Bunlar bilgiyi tablolar arasında yayar
Bir tablodan sızan bilgi tek başına anlamlı olmaz
(GF(2) = bitlerle, XOR aritmetiğiyle çalışan matematik; ayrıntı gerekmez.)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 4 · Tablo tipleri
Chow'un tasarımında bu kodlanmış/karıştırılmış tabloların tipleri vardır (literatürde I–IV).
Her tip farklı bir rol üstlenir.
Ders için: "tablolar tek tip değil, çeşitli" bilmek yeter.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 5 · Dış kodlamalar F ve G
En dışta, tüm şifre iki gizli bijeksiyonla sarılır: F ve G
Kaynak kılavuz: "whitebox AES işlemi F ve G adlı iki rastgele tekil-olmayan matrisle kapsüllenir"
Yani ağ artık saf AES değil:
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 5 · Dış kodlama neden güçlü?
Saldırganın gördüğü giriş/çıkış standart AES'in giriş/çıkışı değil
Tek başına tablolara bakan pek çok saldırıyı (istatistiksel/cebirsel) çok zorlaştırır
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Adım 5 · Ama en büyük sınır da bu
G ∘ AES ∘ F⁻¹ standart AES değildir.
Karşı taraf (sunucu/başka uç) F ve G'yi bilip geri almadan sonuç anlamsız
Yani dış kodlamalı WBC yalnız iki ucu da sizde olan protokolde kullanılır
EMV gibi standart AES bekleyen bir protokolde kullanılamayabilir
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Beş adım · özet
Anahtarı tabloya pişir
Tabloları büyüt (T-box + XOR tabloları)
İç kodlamalar
Karıştırıcı bijeksiyonlar
Dış kodlamalar (F, G)
Sonuç: anahtar açıkça yok; her şey kodlanmış tablolarda.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Minik örnekten çıkan ders
Anahtarı tabloya gömmek onu görünmez yapmaz (kodlama şart)
Kodlama işi çözer ama boyut/karmaşıklık ekler
Gerçekte tablolar yüzlerce KB olur
Bu, bölüm 2'deki beş adımın sezgisidir .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC'nin maliyeti
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC bedava değil (1)
Anahtarı tablolara gömmenin bedeli: kocaman tablolar .
Ölçüt
Yaklaşık (mertebe)
Tablo boyutu
Yüzlerce KB (~770 KB)
Karşılaştırma
Std AES anahtarı: 16–32 bayt
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC bedava değil (2)
Ölçüt
Yaklaşık (mertebe)
Tur başına tablo okuması
Binlerce (~3000)
Hız
Std AES'e göre ~50× yavaş
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ölçü hissi: tablo boyutu hesabı
Örnek: 288 tablo × 1 KB ≈ 294.912 bayt (~288 KB).
Amaç kesin sayı değil, mertebe
Bu yüzden WBC yalnız seçili, kritik işlemlere uygulanır
Aynı mantık 9. haftadaki sanallaştırma (K-10) ile birebir
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 3 — kısa sınama
T[x] = S-box[x ^ k] tek başına neden güvensiz?
İç kodlama ile dış kodlama farkı?
Dış kodlamanın (F, G) en büyük sınırı ne?
WBC neden yalnız seçili işlemlere uygulanır?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 3 — cevaplar
T, bilinen S-box'ın x^k ile ötelenmişidir; iki tablo karşılaştırılıp k geri çıkar .
İç: tablolar arası ara değerleri karıştırır · Dış (F,G): tüm şifreyi sarar (G∘AES∘F⁻¹).
Artık standart AES değildir ; karşı taraf F/G'yi bilmeli — EMV gibi standartlarda kullanılamayabilir.
Tablolar yüzlerce KB + ~50× yavaş; maliyet yüzünden yalnız küçük/kritik işlemler.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
4. Saldırı geçmişi ve karşı önlemler
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC kırılma tarihi — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Neden geçmişe bakıyoruz?
Bir korumaya ne kadar güveneceğinizi, onun kırılma geçmişi söyler.
Her satır, savunmacı için bir çıkarım dır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2002 · Doğuş
Chow ve arkadaşları WB-AES ve WB-DES tasarımlarını yayımlar.
Tablo tabanlı yaklaşım doğar.
Çıkarım: fikir umut verici; ama sınanmadı.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2004 · BGE saldırısı
BGE (Billet–Gilbert–Ech-Chatbi): Chow AES'i pratik sürede kırar (~2³⁰ işlem).
İç kodlamaları çözer.
Çıkarım: iç kodlamalar tek başına yetmez .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2007 · WB-DES düşer
Goubin, Wyseur ve diğerleri WB-DES ve harici kodlamalı türevlerini kırar.
Çıkarım: DES tabanlı WBC bırakılır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2010'lar · "Daha çok tablo" denemesi
Karroumi'nin "çift AES" güçlendirmesi de kırılır (~2²²).
Çıkarım: daha çok tablo = daha çok güç değildir .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2015 · DFA (hata enjeksiyonu)
DFA (Differential Fault Analysis): çalışırken bir değere hata enjekte edip bozulan çıktıdan anahtarı geri hesaplar.
"Unboxing the White-Box" (Black Hat EU).
Çıkarım: tasarımın iç matematiğini bilmeden de kırılır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2016 · DCA (en önemlisi)
DCA (Differential Computation Analysis): çalışırken üretilen ara değerlerin izini toplar, DPA benzeri istatistikle anahtarı çıkarır.
İç kodlamaları çoğu zaman görmezden gelir .
Çıkarım: klasik yan kanal savunmaları WBC için de gerekli.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
DCA saldırısı — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Sezgi: neyi izliyor?
WBC çalışırken tablolardan ara değerler okur.
Bu ara değerler, gizli anahtara bağlı değişir.
DCA bu değerlerin izini toplar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
İstatistik nasıl anahtarı verir?
Saldırgan bir anahtar baytı için tahmin yapar.
Tahmine göre ara değerin nasıl davranması gerektiğini hesaplar.
Toplanan izlerle en iyi uyan tahmin, doğru bayttır.
Bu, DPA'nın (güç analizi) yazılım hâlidir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
İç kodlama neden DCA'yı durdurmaz?
İç kodlama ara değeri karıştırır ama birebir eşlemedir (bijeksiyon)
İstatistiksel korelasyon çoğu zaman hayatta kalır
Bu yüzden 2016'dan sonra WBC'ler DCA'ya karşı savunmasız kaldı
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2017–2024 · WhibOx yarışmaları
Akademi ve endüstri tasarımlarını yarışmaya gönderir.
Gönderilen tasarımların tamamı kırıldı .
Çıkarım (bugün): kırılmadan kalan yayımlanmış saf-yazılım WBC yok .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kronoloji · özet
Yıl
Olay
Çıkarım
2002
Chow WB-AES/DES
Doğuş
2004
BGE
İç kodlama yetmez
2007
WB-DES kırıldı
DES bırakılır
2010'lar
Karroumi kırıldı
Çok tablo ≠ güç
2015
DFA
Matematiği bilmeden
2016
DCA
Yan kanal savunması gerek
2017–24
WhibOx
Hepsi kırıldı
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
DCA ve DFA neden yeni tasarımları da vurur?
Çünkü ikisi de tasarımın gizli matematiğini çözmeye çalışmaz :
DCA: kutuyu açmaz; çalışırken iz toplar, istatistikle anahtarı bulur
DFA: çalışırken hata enjekte eder , bozuk çıktıdan hesaplar
Genel ve taşınabilir oldukları için her tasarımı tehdit ederler.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Fark/hata karşılaştırması, oyuncak ölçekte (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Fark karşılaştırması — uç durum: hata maskesi sıfır
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Peki ne yapacağız? (karşı önlemler)
Araştırma durmadı; ama hiçbir önlem "artık güvenli" demez.
Hepsi maliyeti artırır ve birlikte kullanılır. Sırayla:
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 1 · Doğrusal olmayan maskeleme
DCA'nın dayandığı doğrusal korelasyonu bozmaya çalışır (ör. Biryukov–Udovenko 2018).
İstatistiksel saldırıyı zorlaştırır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 2 · Dış kodlama (F, G)
DCA/DFA/BGE'yi zorlaştırır.
Ama gördüğümüz sınır: standart AES uyumluluğunu kırar.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 3 · Katmanlı savunma
WBC'nin çevresine 9. haftanın gizleme kuralları
haftanın RASP 'ı (anti-debug, kurcalama/bütünlük denetimi)
Amaç: DCA'nın iz toplamasını, DFA'nın hata enjekte etmesini zorlaştırmak
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Katmanlı WBC — şema
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 4 · Anahtar yenileme
Anahtar sık yenilenirse, bir anahtarı çıkarmanın değeri düşer
hafta: kripto-periyot (bir anahtarın ömrü)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 5 · Cihaz/sürüm bağlama
Tablolar yalnız belirli bir cihazda/sürümde anlamlı olur
Kod sökmeyi (code lifting) engeller
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 6 · Sunucu tarafı risk denetimi
Uçtaki koruma ne olursa olsun, işlem sunucuda ayrıca değerlendirilir
Hız sınırı, anomali tespiti, sayaç/ATC denetimi
Son ve en güvenilir savunma
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karşı önlem 7 · Donanıma taşı
Mümkünse anahtarı hiç yazılıma koyma
TEE, güvenli öğe (SE), HSM
Bu, bir sonraki bölümün konusu.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Ana kural (tekrar)
WBC bir katmandır , çözüm değil.
Doğru ifade: "anahtar çıkarmayı şu kadar geciktiriyorum; asıl güvencem anahtar yenileme, cihaz bağlama ve sunucu risk denetiminde."
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 4 — kısa sınama
"Hepsi kırıldı" ifadesi kararınızı nasıl etkiler?
DCA hangi klasik saldırıya benzer?
İç kodlamalar DCA'yı neden her zaman durdurmaz?
En güvenilir son savunma hangisi?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bölüm 4 — cevaplar
WBC tek başına güvence değil; anahtar yenileme + cihaz bağlama + sunucu denetimi + gizleme ile; mümkünse donanıma taşı.
DPA 'ya (güç analizi) — DCA onun yazılım hâlidir.
İç kodlama birebir eşlemedir (bijeksiyon); istatistiksel korelasyon çoğu zaman hayatta kalır.
Sunucu tarafı risk denetimi (son ve en güvenilir).
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
5. WBC'nin katmanlı savunmadaki yeri
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Anahtar korumak: seçenekler
WBC tek seçenek değil. Bir anahtarı korumanın yolları var; güç ve maliyet farklı.
Sırayla, en zayıftan en güçlüye.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenek 1 · Sabit dizide düz anahtar
Anahtar: yazılımda, açık
Güç: yok
Ne zaman: asla
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenek 2 · Gizlenmiş/parçalanmış anahtar
Anahtar: yazılımda, gizlenmiş
Güç: çok düşük
Ne zaman: yalnız düşük değerli, kısa ömürlü sırlar
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenek 3 · WBC + katmanlı savunma
Anahtar: yazılımda, tablolara gömülü
Güç: orta (geciktirir)
Ne zaman: donanım kökü yoksa; anahtar yenileme + sunucu denetimiyle
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenek 4 · TEE / Güvenli Öğe (SE)
Anahtar: donanımla yalıtılmış
Güç: yüksek
Ne zaman: cihaz destekliyorsa tercih edilir
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenek 5 · HSM / SoftHSM
Anahtar: donanım (ya da yazılım benzetimi) modülünde
Güç: yüksek (HSM); SoftHSM yalnız test
Ne zaman: sunucu tarafı ; anahtar hiç dışarı çıkmaz
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Seçenekler · tek tablo
Seçenek
Anahtar nerede
Güç
Düz dizi
Yazılımda açık
Yok
Gizli/parçalı
Yazılımda gizli
Çok düşük
WBC + katman
Tablolara gömülü
Orta
TEE / SE
Donanım yalıtık
Yüksek
HSM / SoftHSM
Donanım modülü
Yüksek
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karar kuralı
Anahtarı yazılıma koymak zorunda değilsen, koyma.
Donanım kökü (TEE/SE/HSM) varsa onu kullan
WBC, donanım kökünün olmadığı durumda bir ödünleşim çözümüdür
Her zaman: anahtar yenileme + cihaz bağlama + sunucu denetimiyle birlikte
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
WBC katmanlı savunmada nereye oturur? (animasyon)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Katmanlı savunma — uç durum: hepsi WBC
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
"Bu anahtarı nasıl korurum?" — 1
Soru 1: Cihazda TEE/güvenli öğe var mı?
Evet → anahtarı oraya koy. Bitti (en güçlü).
Hayır → devam.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
"Bu anahtarı nasıl korurum?" — 2
Soru 2: Bu sunucu tarafı bir anahtar mı?
Evet → HSM/PKCS#11 (üretimde HSM, testte SoftHSM).
Hayır (istemci, donanım yok) → devam.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
"Bu anahtarı nasıl korurum?" — 3
Soru 3: Varlık değeri koruma maliyetini haklı çıkarıyor mu?
Düşük → hafif gizleme + kısa ömür yeter.
Yüksek → WBC + katmanlı savunma + yenileme + cihaz bağlama + sunucu denetimi.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
"Bu anahtarı nasıl korurum?" — 4
Her durumda:
Anahtarı düz gömme
Kararı ve gerekçesini S8'e yaz
Kalan riski açıkça belirt
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Karar akışı · tek bakış
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
SoftHSM ve PKCS#11 (sunucu köprüsü)
PKCS#11: anahtar modülleriyle konuşmanın standart arayüzü
Uygulama anahtarın değerini görmez ; "şunu imzala/şifrele" der
SoftHSM: aynı arayüzü sunan yazılım benzetimi; gerçek donanım koruması yok → geliştirme/test için
WBC uçtaki (istemci) problem; bu sunucudaki anahtar problemine yanıt.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
6. Hatalı → saldırı → koruma
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
1 · Hatalı tasarım
static const uint8_t k[16 ] = { ... };
Bir istemci, bir veri şifreleme anahtarını sabit diziye gömer.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
2 · Saldırı (kavramsal)
strings + entropi taraması → yüksek entropili 16 baytlık blok
Hata ayıklayıcı → bu bloğun şifreleme çağrısında kullanıldığını doğrular
Anahtar dakikalar içinde çıkar
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
3 · Koruma (katmanlı) — a
Anahtarı mümkünse TEE/SE 'ye taşı
Değilse WBC tablolarına göm (düz bayt dizisi kalmasın)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
3 · Koruma (katmanlı) — b
WBC'yi 9. haftanın gizlemesiyle ve 6. haftanın RASP 'ıyla sar
DCA için iz toplamak, DFA için hata enjekte etmek zorlaşır
Cihaz/sürüm bağla → kod sökme işe yaramaz
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
3 · Koruma (katmanlı) — c
Anahtarı sık yenile (kısa kripto-periyot)
Sunucuda risk denetimi uygula (hız sınırı, anomali)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
4 · Dürüst kalan risk
Yeterince kararlı bir saldırgan tek bir cihazda anahtarı yine çıkarabilir
Ama artık:
Bir kopyayı kırmak bütün sistemi açmaz (cihaz bağlama)
Çıkarılan anahtarın ömrü kısa (yenileme)
Sunucu, anormal kullanımı yakalar
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Senaryodan çıkan kurallar
Anahtarı düz gömme
Donanım kökü varsa kullan
WBC'yi asla tek başına bırakma
Cihaz bağlama + yenileme + sunucu denetimi
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · kurgu
Bir mobil uygulama, sunucudan indirdiği oturum anahtarıyla yerel veriyi şifreliyor.
Cihazların bir kısmında TEE var, bir kısmında yok.
Anahtar günde bir yenileniyor.
Nasıl koruruz?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · TEE olan cihazlar
Anahtarı TEE'ye koy.
Uygulama anahtarı hiç görmez; TEE içinde şifreleme yapılır.
En güçlü çözüm; ek WBC gereksiz.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · TEE olmayan cihazlar
Anahtarı WBC tablolarına göm (düz dizi yok).
hafta gizleme + 6. hafta RASP ile sar.
Cihaz bağla: tablolar başka cihazda çalışmasın.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · ortak katmanlar
Anahtar günde bir yenileniyor → çıkarılanın ömrü kısa.
Sunucu , anormal kullanımı (çok istek, tuhaf konum) yakalıyor.
Böylece bir cihaz kırılsa bile hasar sınırlı.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · kalan risk (dürüst)
TEE'siz cihazda kararlı saldırgan anahtarı çıkarabilir.
Ama: tek cihazla sınırlı + 24 saat ömür + sunucu denetimi.
Bu ödünleşim S8'de açıkça yazılır .
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Vaka · çıkarım
Tek bir "sihirli" koruma yok.
Güç, katmanların birleşiminden ve dürüst kalan risk analizinden geliyor.
Değerlendirici (12. hafta) tam da bunu arıyor.
WBC'yi anlamak , onu doğru yere koymak demektir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
7. Proje ve kapanış
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Proje · S8 (anahtar koruma gerekçesi) — 1
En az bir hassas anahtar için bir koruma kararı ve gerekçesi yazın:
1. Anahtar nerede durur, nasıl korunur? (düz değilse: TEE/SE, WBC, gizleme — hangisi, neden )
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Proje · S8 — 2
2. Koruma yeterli değilse (ör. saf yazılımdaysanız) bunu açıkça yazın ve telafi katmanlarını belirtin:
anahtar yenileme periyodu
cihaz/sürüm bağlama
sunucu risk denetimi
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Proje · S8 — 3
3. WBC kullanmadıysanız neden kullanmadığınızın gerekçesi:
maliyet
donanım kökü var
varlık değeri düşük
Gerekçeli bir "kullanmadık" tam bir yanıttır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
⚠️ Depoda gerçek anahtar olmasın
Bütün anahtar dosyaları, tablolar ve örnekler sentetik olmalı
Sertifikasyonda depoda gerçek anahtar = en ağır bulgulardan biri
Projede de öyle sayılır
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Terimler sözlüğü (1)
Terim
Anlam
Kara/gri/beyaz kutu
Saldırganın gördüğü
WBC
Beyaz kutuda çalışan kripto
S-box
Baytı değiştiren sabit tablo
Bijeksiyon
Tersi alınabilen birebir eşleme
İç/dış kodlama
Tablo içi / tüm şifreyi saran gizli dönüşüm
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Terimler sözlüğü (2)
Terim
Anlam
Kod sökme
Anahtarı çıkarmadan kodu kopyalama
DCA
Çalışma izlerine DPA benzeri istatistik
DFA
Hata enjekte edip anahtarı hesaplama
Kripto-periyot
Bir anahtarın ömrü
TEE/SE/HSM
Donanım tabanlı anahtar koruması
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kendini sınama (1–6)
Üç saldırgan modeli; AES kanıtı hangisini varsayar?
"Tek turu çalıştır" ve "hata enjekte et" hangi saldırılara zemin?
Diziye gömülü anahtar neden koruma değil? (entropi)
Kod sökme nedir, hangi önlem kapatır?
T[x]=S-box[x^k] tek başına neden güvensiz?
İç ve dış kodlama farkı; dış kodlamanın sınırı?
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kendini sınama — cevaplar (1–6)
Kara kutu (yalnız G/Ç), gri kutu (+yan kanal: güç/zaman), beyaz kutu (tam erişim). Klasik AES kanıtı kara kutuyu varsayar.
"Tek turu çalıştır/ara değeri gözle" → DCA ; "hata enjekte et" → DFA .
Anahtar yüksek entropili bir blok olarak durur → entropi taraması/strings/desenle bulunur (demo --scan). Konum değiştirmek gizleme değil.
Code lifting: tabloyu/rutini olduğu gibi kopyalayıp başka yerde kullanmak. Kapatan: dış kodlama (+ cihaz bağlama/sunucu denetimi).
T[x]=S-box[x^k] doğrudan k'ye bağlı; tablo S-box ile karşılaştırılıp k geri hesaplanır . İç kodlamayla maskele.
İç kodlama ara değerleri gizli bijeksiyonlarla maskeler; dış kodlama giriş/çıkışı dönüştürür (code lifting'i zorlaştırır). Sınır: çağıranın da eşleşmesi gerekir → standart AES uyumu bozulur.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kendini sınama (7–12)
Tablo boyutu/hız mertebesi? Neden seçili işlemlere?
"Hepsi kırıldı" kararınızı nasıl etkiler?
DCA hangi donanım saldırısına benzer?
Anahtar koruma seçeneklerini güç/maliyetle sırala
WBC kullanıyorsan eklemen gereken 3 katman?
Bir anahtar için S8 gerekçesini üç cümleyle yaz
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kendini sınama — cevaplar (7–12)
Tablolar yüzlerce KB (std AES anahtarı 16–32 bayt) ve ~50× yavaş → yalnız seçili/kritik işlemlere uygulanır.
WBC'yi tek başına anahtar koruması saymayız; geciktirici katman olarak yenileme + bağlama + sunucu denetimiyle kullanırız (mümkünse donanım).
DPA'ya (Differential Power Analysis); DCA güç izinin yerine yazılım izini (bellek erişimi/ara değer) koyar.
(zayıf→güçlü) düz gömülü anahtar < kodlanmış tablo (saf-yazılım WBC) < WBC+bağlama/yenileme < TEE/SE < HSM/donanım . Maliyet aynı yönde artar.
Anahtar yenileme · cihaz/uygulama bağlama · sunucu tarafı denetim/iptal (+ RASP/bütünlük).
Örnek: "DEK, beklemedeki veriyi AES-256-GCM ile korur. HSM'de üretilir/saklanır, düz bellekte tutulmaz. Saf-yazılım whitebox'lar kırıldığı ve varlık değeri yüksek olduğu için donanım seçildi."
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Özet: bu haftanın tek cümlesi
Yayımlanmış saf-yazılım whitebox'ların hepsi kırıldı; WBC anahtar çıkarmayı geciktiren bir katmandır ve
yenileme, cihaz bağlama, sunucu denetimiyle birlikte anlam kazanır.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Kaynaklar
Güvenli programlama teknik kılavuzu — WBC saldırgan modeli, whitebox AES'in konumu
Chow, Eisen, Johnson, van Oorschot — WB-AES (SAC 2002), WB-DES (DRM 2002)
Wyseur — "Hiding Keys in Software" (kısa giriş)
BGE (SAC 2004); Bos vd. DCA (CHES 2016); "Unboxing the White-Box" (BH EU 2015)
WhibOx yarışması sonuçları (2017–2024)
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
CEN429 Güvenli Programlama · Hafta 11
Bir sonraki hafta
12. hafta — Sertifikasyon ve sızma testi planlaması
Bir korumanın "ne kadar dayandığını" ölçmek → bağımsız değerlendirme süreci ve raporlama.
9. hafta: gizleme kuralları (kod) · 11. hafta: whitebox (anahtar) — bugün · 14. hafta: otomasyon (Tigress)
Ortak kural: koruma kırılamazlık değil, gecikme ; güç katmanlardan ve ölçümden gelir.
RTEÜ Bilgisayar Mühendisliği · 2026-2027 Güz
Konuşma notu: Bu hafta whitebox kriptografiyi bir güvenlik katmanı olarak işliyoruz. Ana kural: yayımlanmış saf-yazılım WBC tasarımlarının tamamı kırıldı; WBC tek başına çözüm değil, anahtar çıkarmayı geciktiren bir katmandır ve anahtar yenileme, cihaz bağlama, sunucu risk denetimiyle birlikte anlam kazanır. Saldırıları savunmayı sınamak için öğreniyoruz.
Konuşma notu: Bu hafta whitebox kriptografi. Öğrenciler kriptoyu 3 ve 10. haftada gördü ama burada sıfırdan hatırlatacağız. Ana mesaj baştan verilecek: yayımlanmış saf-yazılım WBC'lerin hepsi kırıldı; WBC bir katmandır, sihir değil.
Konuşma notu: Bu çerçeveyi baştan kur; ders boyunca buraya döneceğiz.
Konuşma notu: 12 senaryoyu tek tek izleyin; her modelin yalnız IO'dan başlayıp nasıl daha fazla yetenek kazandığını vurgulayın.
Konuşma notu: beyaz kutuda MOD ve COD'un HER ZAMAN var olduğunu, bu yüzden WBC'nin bu ikisini hedeflediğini gösterin.
Konuşma notu: 16 baytlık pencerenin ikili dosyanın üzerinde adım adım kaydığını, eşleşme bulunca hemen durduğunu gösterin.
Konuşma notu: taramanın tüm pencereleri deneyip -1 döndüğünü gösterin — gerçek demoda bu asla olmaz çünkü anahtar kendi ikilisinin içindedir.
Konuşma notu: önce sordur, sonra aç.
Konuşma notu: Chow AES'in fikrini adım adım kuruyoruz. Matematiği değil, mantığı ve maliyeti öğreteceğiz. Yavaş gidin.
Konuşma notu: 4x4 durumun sütun sütun dolduğunu, dört adımın (SubBytes, ShiftRows, MixColumns, AddRoundKey) sırasını vurgulayın.
Konuşma notu: sıfır girdide bile SubBytes'ın sabit terimi (0x0D) yüzünden çıktı sıfır kalmadığını gösterin.
Konuşma notu: toy_table.c'nin gerçek kodunu izleyin; naif ve kodlanmış tablonun aynı x için farklı bayt ürettiğini vurgulayın.
Konuşma notu: naif tabloda k0'ın x=255'e kadar hep sabit kaldığını, kodlanmış tabloda x=1'de hemen bozulduğunu gösterin.
Konuşma notu: k=0 olsa bile naif tablonun yine sızdırdığını, kodlanmış tablonun yine engellediğini vurgulayın.
Konuşma notu: önce sordur, sonra aç; ara sonrası saldırı geçmişi.
Konuşma notu: Bu geçmişi saldırı öğretmek için değil, "bu korumaya ne kadar güvenebilirim?" sorusunu yanıtlamak için anlatıyoruz.
Konuşma notu: doğru ve hataya uğratılmış çıktının farkının çoğu girdide SIFIR OLMADIĞINI, ama tek başına anahtarı vermediğini vurgulayın.
Konuşma notu: hata yoksa (maske=0x00) farkın HER ZAMAN sıfır olduğunu, yani hiç bilgi taşımadığını gösterin.
Konuşma notu: önce sordur, sonra aç.
Konuşma notu: wbc kararının HER ZAMAN dört katmanı (WBC, ROTATE, BIND, AUDIT) birlikte etkinleştirdiğini vurgulayın.
Konuşma notu: donanım kökü hiç yokken bile aynı dört katmanın hep birlikte geldiğini gösterin.
Konuşma notu: Bütün haftayı tek senaryoda toplayan sentetik, savunma amaçlı bir örnek.