GİRİŞ
Hata analizi, bir sisteme çeşitli şekillerle hata
yaptırılması sonucunda oluşan çıktıların yorumlanması ile gizli bilgi
çıkarımında bulunma işlemidir. Hata analizi güç veya toprak ucundan
yapılabilir. Hata enjekte edilmiş sistemlerin hatalı sonuçlarının incelenmesi
de hata analizinin bir yöntemidir. RSA algoritması gibi gizli anahtarların
kritik olduğu sistemlerde, hatalı sonuçların doğru sonuçlarla karşılaştırılması
anahtar hakkında bilgi vermektedir. Bu nedenle sistemler hata ataklarını
anlayacak ve bir hata olduğunda dışarıya çıktı vermeyecek şekilde
tasarlanmaktadır.
HATA ANALİZİ
Hata analizi çeşitli şekillerde yapılabilmektedir.
Aşağıda literatürde yer alan hata analiz yöntemleri anlatılmıştır:
Voltaj Atağı
Sistemlerin normal çalışma aralıklarına müdahalede
bulunulur. Sistemler normal çalışma aralığının altında veya üstünde
çalıştırılır. Ortaya çıkan bu kararsız durumda cihaz anormal davranışlar
göstererek eksik tur sayısı (AES gibi algoritmalar için), eksik imzalama
işlemleri (RSA, ECC) gibi anormal sonuçlar ortaya çıkarabilir. Sistemlerde bu
atakların önüne geçilmek için voltaj sensörleriyle önlemler alınmaktadır.
Maliyeti düşük bir atak olması sebebiyle kolaylıkla gerçekleştirilebilmektedir.
Saat Aksatma Atakları
Bir sistem dışarıdan saat üretimine gerek duyuyor olabilir.
Sistemde bu saat girişine müdahalede bulunularak sistemde hatalar
yaptırılmaktadır. Meydana getirilen bu hatalar sistemlerde kararsızlıklara yol
açmaktadır. Bu hata sonucunda kritik veriler yazılmaması gereken bellek
bölgelerine yazılabilmektedir. Bu durum ciddi güvenlik açıklıklarına sebep
vermekte ve sistem koruması gereken gizli bilgileri güvensiz ortamlara
sızdırmış olmaktadır. Voltaj atağı gibi bu atağın da maliyeti düşüktür ve bu
atak da kolaylıkla gerçekleştirilebilmektedir. Sistemlerde bu tür atakların
önüne geçilebilmek için, saat bilgisi devre içerisinde üretilmekte ve mümkün
olduğunca dışarıdan saat bilgisi alınmamaya çalışılmaktadır. Ayrıca saat bilgisi
kontrol mekanizmalarıyla özellikle kritik işlemlerden önce kontrol
edilmektedir. Herhangi bir hata durumunda sistem kendisini korumaya almaktadır.
Isı Atakları
Bu atakta, sistem
normal çalışma ısısının dışında çalıştırılır. Atak, belleklerde depolanan
verilerin değiştirilmesi için uygulanır. Ancak verilerin belirli kısımlarına
odaklanmak zor olduğu için uygulanabilirliği düşük bir ataktır. Sistemlerde bu
atakların önüne geçilmek için ısı sensörleri kullanılmaktadır.
Optik Ataklar
Sistemlere yoğun ışık uygulanarak gerçekleştirilen
ataklardır. Atağın temeli iletkenlerin ve yarı iletkenlerin lazer izolasyonuna
duyarlı olmasına dayanmaktadır. Bir ışık palsına maruz kalan transistörlerde
değişimler meydana gelmektedir. Odaklanmış bir iyon demeti kullanılarak,
belleklerde bir bit, set ya da reset edilebilir. Pahalı bir yöntemdir.
Uygulanabilirliği yüksektir. Sistemlerde bu atağın önüne geçmek için aktif
kalkan yapısı kullanılmaktadır. Ancak FIB(Focused Ion Beam) gibi gelişmiş cihazlarla aktif kalkan
by-pass edilerek bu atak uygulanabilir hale getirilebilmektedir.
Odaklanmış Bir Lazer Işını Etkisi
Elektromanyetik Ataklar
Bir çipe dış manyetik
alan kullanılarak hata eklenebilir veya herhangi bir bellek bölgesindeki
veriler değiştirilebilir. Çip yüzeyi yoğun bir manyetik girdaba maruz
bırakılır. Çipin fiziksel kısmı manipüle edilerek transistörler arası anormal
geçişler elde edilebilir.
RSA Algoritması Ve RSA-CRT
RSA, güvenliği tam
sayıları çarpanlarına ayırmanın zorluğuna dayanan açık anahtarlı bir şifreleme
yöntemidir. 1978’de Ron Rivest, Adi Shamir ve Leonard Adleman tarafından geliştirilmiştir.
Günümüzde 2048 bit ve üzeri güvenli kabul edilmektedir.
Aşağıda RSA algoritması
matematiksel olarak ifade edilmiştir:
p ve q asal olmak üzere,
N = p*q
Φ (n) =
(p-1)*(q-1)
e, 1 < e <
Φ (n)
d, d*e ≡ 1 mod(Φ (n))
Şifreleme:
c = me
(mod n)
Şifre Çözme:
m = cd (mod n)
RSA algoritması yavaş
çalışan bir algoritmadır. Bu durum performans açısından RSA’i olumsuz
etkilemektedir. Güvenlik gerekçesiyle anahtar bit boyutları artırıldıkça, bu
sorun daha da aşılamaz hale gelmektedir. Bu nedenle RSA algoritmasının hız
açısından iyileştirilmesi için çalışmalar yapılmaktadır. RSA-CRT de bu yönde
ortaya atılmış bir çözümdür. RSA algoritmasının hızlandırılmış olarak
implemente edilmiş halidir. Çinli Kalan Teoremi’nin RSA algoritmasının
hesaplanmasında kullanılmasıdır.
Aşağıda RSA-CRT algoritması
matematiksel olarak ifade edilmiştir:
d mod (p-1) = e-1 mod (p-1)
d mod (q-1) = e-1 mod (q-1)
dp = d mod (p-1)
dq = d mod (q-1)
Qinv = q-1 mod p
Sp = Mdp mod p
Sq = Mdq mod q
S = (((Sp – Sq)*Qinv) mod p)*q + Sq
RSA algoritması bir
sistemde gerçeklenirken(özellikle akıllı kartlarda), RSA performansının
artırılması için RSA-CRT olarak implemente edilir. Bu nedenle literatür
incelendiğinde RSA-CRT implementasyonuna yapılan atakların daha fazla olduğu
görülmektedir.
RSA Algoritması’na Hata Ekleme Noktaları
RSA algoritmasına hata üç farklı yerde enjekte edilebilir:
- Giriş parametrelerine hata yaptırılabilir. Özel giriş değerleri ile sistemden, gizli anahtar değerleriyle ilgili bilgi vermesi beklenir.
- İşlem esnasında hata yaptırılabilir. RSA işlemi gerçekleştirilirken sisteme müdahale edilir. Bu müdahale ile sistemin işlemleri eksik yapması sağlanır.
- Program akışına hata yaptırılabilir. Sistemde hata sonucunda ortaya çıkan kararsız yapıyla, sistemin işlem sırasını karıştırması sağlanabilir.
Literatürde RSA Hata Analizi
Bu bölümde literatürde yer alan RSA algoritmasına
yapılan hata atakları anlatılacaktır.
Hatalı Üs Atağı
1997 yılında, önlemsiz RSA
algoritmasına, El Gamal ve Schnorr imzalama şemasına yapılan bir ataktır. Üs
alma işleminde herhangi bir yere rastgele hata yaptırılır. Sonuç yorumlanır
hata yaptırılan bitin gerçek değeri öğrenilir.
Aşağıda matematiksel
olarak atak açıklanmıştır:
Hatasız mesaj:
m = cd mod n
Hatalı mesaj:
m’ = cd’ mod n
Hata yaptırılan bit dj olsun
Bellcore Atağı
Atak, 1997 yılında
Bellcore Laboratuvarları çalışanları tarafından gerçekleştirilmiştir. Teorik
bir model olarak sunulmuştur. RSA-CRT algoritmasının önlemsiz haline yapılan
bir ataktır. Algoritmanın çalışması esnasında Sp ya da Sq
bileşenlerinden birinin herhangi bir kısmına rastgele hata yaptırılır. Hatasız
sonuçla hatalı sonucun birlikte analiz edilmesiyle p ve q değerlerine ulaşılır.
Aşağıda Bellcore atağı
matematiksel olarak anlatılmıştır:
Hatasız RSA-CRT sonucu:
S = (((Sp – Sq)*Qinv) mod p)*q + Sq
Hatalı RSA-CRT sonucu:
S’ = (((Sp’ – Sq)*Qinv) mod p)*q + Sq (Burada Sp bileşenine hata
yaptırılmıştır)
İki işlemin fark değeri hesaplanır:
S-S’ = (((Sp
– Sq)*Qinv) mod p)*q - (((S’p – Sq) * Qinv)
mod p)*q
Sonuç:
Eğer S-S’ işleminin
sonucu p değerine bölünmüyorsa;
gcd(S-S’, N) = q değerini
vermektedir.
p = n/q eşitliğinden p değeri de
hesaplanır. Böylece gizli olan p ve q değerleri elde edilmiş olur.
Bellcore atağından
sonra RSA-CRT algoritması için önlemler geliştirilmiş ve doğrudan p ve q
değerlerine erişimin önüne geçilme çalışmaları yapılmıştır.
RSA-CRT Optik ve EM Atağı
2007 yılında Jörn-Marc
Schmidt ve Michael Hutter tarafından geliştirilmiş bir ataktır. Atakta fiber
optik ışıkları kullanılmıştır. Ayrıca makalede yüksek frekanslı kıvılcım boşlukları
kullanılarak yeni bir non-invasive elektromanyetik hata saldırısı
anlatılmaktadır. Tüm saldırıların low-cost olduğu iddia edilmiştir.
Atakta yapılan işlemin
matematiksel ifadesi aşağıdaki gibidir:
p ve q 1024 bit iki
asal,
z = CRT(x,y)
z ϵ Zn
CRT (x, y) = xcp + ycq mod n
cp = q (q-1 mod p) (Gauss Algoritması)
cq = p (p-1 mod q)
S = md mod n, m mesaj
Hatasız RSA-CRT işlemi
S = CRT ((md mod p), (md mod q)) mod n:
Hatalı RSA-CRT işlemi
S’ = CRT ((m mod p)d, (m mod q)d + ∆) mod n
= md + ∆ p (p-1
mod q) mod n, ∆ → hata
Sonuç:
p = gcd( S’ – S, n) ya da
p =
gcd( S’e – m, n)
Perturbating RSA Public Keys
Atak, imza şemasında üs hesaplanması sırasında public olan modülüsün değiştirilmesine dayanmaktadır. Bilgisayarlarda kullanılan GMP kütüphanesine aktif olarak yapılmış bir ataktır.
R8,
0’dan farklı rastgele byte
değeri
Brier Atağı
2006 yılında CHES’de
sunulmuş bir ataktır. Public parametrelerin (modülüs) değeri bozularak public
şifreleme üzerinde hata analizi anlatılmaktadır. Public anahtarların güvenliği
çok önemsenmediği için motivasyonu yüksek bir atak olarak kabul edilmiştir. Atak
standart RSA algoritmasına yapılmıştır, ancak RSA-CRT ve diğer RSA implementasyonları
için de geçerli olduğu iddia edilmiştir. Pratik olarak gerçeklenmemiştir, ancak
güçlü simülasyonlar aracılığıyla doğrulanmıştır.
Atakta, saldırgan
bilinen farklı girişler için birçok hatalı imza elde edebilmelidir. Saldırgan hatalı
hesaplanan birçok modulüs elde eder.
Seifert Atağı
Seifert, public parametreler kullanarak
atak yapan ilk kişidir. Modülüse yönelik bir ataktır. Seifert Atağı iki
aşamadan aluşmaktadır. İlki off-line mod, diğeri de on-line moddur. İlk modda
değiştirilmiş bir modülüs bulma ve imza üretme işlemleri yer alır. Ikinci modda
ise üretilen bu hatalı imzanın doğrulanması işlemi vardır. Saldırgan burada iki
aşamada da hata saldırısını gerçekleştirmelidir. Bu iki sonuç birbiriyle
uyuşmalıdır.
Aumüller Atağı
Aumüller atağı Bellcore atağına
benzemektedir. RSA-CRT hesaplanırken, Sp ya da Sq
bileşenlerinden birisine hata yaptırılır. Analiz kısmında Aumüller,
Bellcore’dan farklı bir yöntem denemektedir.
Aumüller atağının matematiksel ifadesi
aşağıdaki gibidir:
S = (((Sp – Sq)*Qinv) mod p)*q + Sq
S’ = (((Sp’ – Sq)*Qinv) mod p)*q + Sq
S – S’ ≠ 0
S – S’ ≡ 0 mod q
gcd (( m – (S’)e) mod n, n) = q
Wagner Atağı
Blömer, Otto ve Seifert tarafından
yayınlanan Bellcore ataklarına dayanıklı RSA algoritmasına yapılan bir ataktır.
Atak yayınlandıktan sonra yeni bir yayınlanan makaleyle [11] Blömer ve Otto
tarafından konuya açıklık getirilmiş ve algoritmanın hala güçlü olduğu iddia
edilmiştir.
Sonuç
Bu çalışmayla, son
yıllarda RSA algoritmasına yapılan ataklar incelenmiştir. Ataklar aşağıdaki
tabloyla gruplandırılmıştır. Bu tabloda ataklar, RSA algoritmasının hangi aşamasına
atak yapıldığına göre sınıflandırılmıştır.
Son
yıllardaki ataklar incelendiğinde, motivasyonun yüksek olmasından dolayı public
verilere ataklarda bir artış görülmüştür. Makaleler incelendiğinde atakların
düşük maliyetle gerçekleştirilebileceği sonucuna varılmıştır.
Ayrıca makaleler
incelendiğinde, RSA algoritmasına hata yaptırılması sırasında, yeri doğru olmak
şartıyla herhangi bir byte ya da bit değerine hata yaptırmanın atağı başarılı
bir şekilde sonlandırmada yeterli olduğu görülmüştür. Bu durum da RSA
algoritmasına yapılan ataklar da motivasyonu artıran diğer bir etken olarak
yerini almaktadır.
Kaynakça
- D.Karaklajic, Schmidt and I.Verbauwhede “Hardware Designer’s Guide to Fault Attacks”, Ekim 2013.
- Jörn-Marc Schmidt, “Differential Fault Analysis”, Haziran 2008
- Bao, F, Deng, R., Han, Y., Jeng, A., Narasimhalu, A.D., Ngair, T.-H., “Breaking Public Key Cryptosystems an Tamper Resistance Devices in the Presence of Transient Fault”, 1997
- D.Boneh, R.ADeMillo and R.J.Lipton “On the Importance of Checking Cryptographic Protocols for Faults”, 1997
- Jörn-Marc Schmidt and Michael Hutter, “Optical and EM Fault-Attacks on CRT-based RSA: Concrete Results”, 2007
- Alexandre Berzati, Cecile Canovas and Louis Goubin, “Perturbating RSA Public Keys: An Improved Attack”, 2008
- Brier, E., Chevallier-Mames, B., Ciet, M., Clavier, C., “Why one should also secure RSA public key elements”, 2006
- Seifert, J.-P., “On Authenticated Computing and RSA-based Authentication”, 2005
- C. Aumüller, P. Bier, W. Fischer, P. Hofreiter, and J.-P. Seifert, “Fault Attacks on RSA with CRT: Concrete Results and Practical Countermeasures”, 2002
- David Wagner, “Cryptanalysis of a provably secure CRT-RSA algorithm”, 2002
- Johannes Blömer, and Martin Otto, “Wagner’s Attack on a Secure CRT-RSA Algorithm Reconsidered”, 2006




Hiç yorum yok:
Yorum Gönder