Tartışma

Cache-Prime+Probe ile AES Anahtar Sızıntısı

Başlatan Riches · 02 Ara 2025 16:13 · 61 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0

Cache-Prime+Probe Saldırılarına Giriş


Modern bilgisayar sistemlerinde işlemciler, performansı artırmak amacıyla önbellek adı verilen hızlı bellek birimlerini kullanır. Ancak bu önbellek mekanizmaları, kötü niyetli aktörler için potansiyel güvenlik açıkları yaratabilir. Yan kanal saldırıları, doğrudan şifreleme algoritmalarını kırmaktansa, algoritmanın çalışma şeklinden kaynaklanan fiziksel yan etkileri (örneğin zamanlama farklılıkları, güç tüketimi, elektromanyetik emisyonlar) izleyerek gizli bilgilere ulaşmayı hedefler. Prime+Probe, özellikle işlemci önbelleklerini hedef alan yıkıcı bir yan kanal saldırı türüdür. Bu saldırı, paylaşımlı önbellekleri kullanan uygulamaların birbiri üzerindeki etkileşimini gözlemleyerek hassas bilgilerin sızdırılmasına olanak tanır. Başka bir deyişle, bir saldırgan, kendi erişim sürelerini ölçerek kurbanın belleğe ne zaman eriştiğini ve dolayısıyla hangi verileri kullandığını anlayabilir.

Önbellek Mimarisi ve Yan Kanal Saldırıları İlişkisi


Bilgisayar mimarisinde, CPU önbellekleri, ana belleğe göre çok daha hızlı erişim süreleri sunar. Genellikle L1, L2 ve L3 olmak üzere farklı seviyelerde bulunurlar ve paylaşımlı veya özel olabilirler. Özellikle çok çekirdekli işlemcilerde birden fazla çekirdek arasında paylaşılan L2 veya L3 önbellekler, yan kanal saldırıları için uygun bir ortam oluşturur. Önbellekler, verileri "önbellek satırları" halinde depolar ve belirli bir adrese sahip verinin hangi önbellek setine yerleşeceği belirli bir haritalama fonksiyonu ile belirlenir. Bu mimari, bir programın belleğe erişim deseniyle önbelleğin durumu arasında doğrudan bir ilişki kurar. Bu nedenle, bir saldırgan, önbelleğin mevcut durumunu gözlemleyerek kurbanın programının belleğe erişim deseni hakkında çıkarımlar yapabilir. Sonuç olarak, bu erişim desenleri, şifreleme algoritmalarının iç durumları gibi gizli bilgileri ortaya çıkarabilir.

Prime+Probe Saldırısının İşleyişi


Prime+Probe saldırısı iki ana aşamadan oluşur: "Prime" (önbelleği doldurma) ve "Probe" (ölçme). İlk olarak, Prime aşamasında saldırgan, kurbanla paylaşılan belirli bir önbellek setini kendi verileriyle doldurur. Başka bir deyişle, saldırgan, kurbanın erişebileceği potansiyel önbellek satırlarını kendi verileriyle doldurarak mevcut tüm kurban verilerini önbellekten çıkarır (evict eder). Ardından, kurbanın hassas bir işlem gerçekleştirmesi beklenir, örneğin bir şifreleme algoritması çalıştırması. Bu işlem sırasında kurban, anahtara veya işlenen verilere bağlı olarak belirli bellek adreslerine erişebilir ve bu da önbellekteki bazı saldırgan verilerinin yerini alabilir. Son aşama olan Probe aşamasında ise saldırgan, başlangıçta doldurduğu aynı önbellek setindeki kendi verilerine yeniden erişir ve bu erişim sürelerini ölçer. Erişim sürelerinin farklılıkları, kurbanın hangi önbellek satırlarına eriştiğini ve dolayısıyla hangi verilere dokunduğunu gösterir.

AES Algoritmasının Önbellek İzleri


AES (Advanced Encryption Standard) algoritması, modern şifrelemede yaygın olarak kullanılan güçlü bir algoritmadır. Ancak, sabit zamanlı (constant-time) olarak uygulanmadığında, bazı işlemleri önbellek izleri bırakarak yan kanal saldırılarına açık hale gelebilir. Özellikle AES'in S-kutusu (Substitution Box) aramaları bu açıdan kritiktir. AES şifreleme ve deşifreleme işlemleri sırasında, anahtar ve veri bağımlı olarak S-kutularına yapılan tablo aramaları, önbellek üzerinde belirli erişim desenleri oluşturur. Örneğin, belirli bir anahtar veya veri byte'ı, S-kutusu tablosunun belirli bir bölümüne erişilmesine neden olabilir ve bu bölüm önbelleğe yüklenir. Eğer bu erişimler her zaman aynı önbellek satırlarına tekabül etmezse, farklı anahtar veya veri kombinasyonları farklı önbellek kullanım desenlerine yol açar. Bu nedenle, bu izler, saldırganın anahtarın belirli bölümleri hakkında çıkarım yapmasına olanak tanır.

Prime+Probe ile AES Anahtar Sızıntısı Nasıl Gerçekleşir?


Prime+Probe saldırısı, AES'in önbellek izlerini kullanarak anahtar sızıntısını şu şekilde gerçekleştirir: Saldırgan, AES işleminin gerçekleşeceği paylaşımlı önbellek setini kendi verileriyle "prime" eder. Ardından, kurbanın bilinen bir düz metni (veya şifreli metni) AES ile şifrelemesi (veya deşifre etmesi) sağlanır. Kurbanın AES işlemi sırasında, S-kutusu aramaları ve diğer anahtar bağımlı bellek erişimleri gerçekleşir. Bu erişimler, saldırganın daha önce önbelleğe yerleştirdiği bazı verilerin yerini alabilir. Son olarak, saldırgan "probe" aşamasına geçer ve önbelleğin başlangıçtaki durumunu tekrar kontrol etmek için kendi verilerine erişir, erişim sürelerini ölçer. Ölçülen zamanlama farkları, kurbanın AES işlemi sırasında hangi S-kutusu girişlerine eriştiğini gösterir. Bu bilgiler, AES anahtarının belirli bölümleri hakkında olasılıkları daraltmaya yardımcı olur ve yeterli sayıda ölçümle tüm anahtarın veya önemli bir kısmının elde edilmesine yol açabilir.

Bu Saldırıların Etkileri ve Riskler


Cache-Prime+Probe gibi yan kanal saldırıları, teorik saldırılar olmaktan çıkıp gerçek dünya sistemleri için ciddi bir güvenlik tehdidi oluşturmaktadır. Bir AES anahtarının sızdırılması, tüm şifrelenmiş iletişimin veya depolanmış verinin güvenliğini tehlikeye atar. Sonuç olarak, saldırganlar hassas kişisel verilere, ticari sırlara, fikri mülkiyete veya devlet sırlarına erişebilirler. Örneğin, bir bulut ortamında paylaşımlı donanım üzerinde çalışan kötü niyetli bir sanal makine, aynı fiziksel işlemcideki başka bir sanal makineden AES anahtarlarını sızdırabilir. Bu durum, finansal kurumlar, sağlık kuruluşları ve kritik altyapı sağlayıcıları için büyük riskler taşır. Veri ihlallerinin maliyeti ve itibara verdiği zarar düşünüldüğünde, bu tür saldırılara karşı savunma mekanizmalarının geliştirilmesi büyük önem taşır. Başka bir deyişle, temel güvenlik mekanizmalarının dahi bu tür dolaylı saldırılara karşı savunmasız olduğu göz ardı edilmemelidir.

Savunma Mekanizmaları ve Korunma Yolları


Cache-Prime+Probe gibi yan kanal saldırılarına karşı korunmak için çeşitli savunma mekanizmaları geliştirilmiştir. En etkili yöntemlerden biri, sabit zamanlı (constant-time) kodlama prensibidir. Bu prensibe göre, bir şifreleme algoritmasının tüm işlemleri, gizli verilere veya anahtara bakılmaksızın her zaman aynı sürede tamamlanmalıdır; bu, bellek erişim desenlerinin de sabit olmasını gerektirir. Ek olarak, donanımsal çözümler de mevcuttur; örneğin, bazı işlemciler, önbellek kullanımını izlemeyi zorlaştıran mekanizmalar sunabilir veya önbellek erişimlerini rastgele geciktirebilir. Yazılım düzeyinde, önbellek bölme (cache partitioning) teknikleri, kurbanın ve saldırganın önbellek alanlarının ayrılmasına yardımcı olabilir. Başka bir yaklaşım ise "körleme" (blinding) teknikleridir; burada giriş verileri veya ara değerler rastgeleleştirilerek, aynı anahtarla aynı işlemi yapsa bile önbellek izlerinin her seferinde farklı görünmesi sağlanır. Bu tür önlemler, sistemlerin yan kanal saldırılarına karşı direncini önemli ölçüde artırır.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi