İçeriğe atla

Zamanlama saldırısı

Kriptografide, bir zamanlama saldırısı, saldırganın kriptografik algoritmaları yürütmek için geçen zamanı analiz ederek bir kriptosistemi tehlikeye atmaya çalıştığı yan kanal saldırısıdır. Bir bilgisayardaki her mantıksal işlemin yürütülmesi zaman alır ve zaman girdiye göre değişebilir; her işlem için tam zaman ölçümleriyle, bir saldırgan girdiye geriye doğru çalışabilir.[1]

Belirli sorgulara yanıt vermek için geçen sürenin ölçülmesi yoluyla sistemden bilgi sızabilir. Bu bilginin bir saldırgana ne kadar yardımcı olabileceği birçok değişkene bağlıdır: kriptografik sistem tasarımı, sistemi çalıştıran CPU, kullanılan algoritmalar, çeşitli uyarlama detayları, zamanlama saldırısı karşı tedbirleri, zamanlama ölçümlerinin doğruluk oranı, vb.

Zamanlama saldırıları genellikle tasarım aşamasında göz ardı edilir, çünkü uyarlamaya çok bağımlıdırlar ve derleyici optimizasyonlarıyla yanlışlıkla tanıtılabilirler. Zamanlama saldırılarından kaçınılması, sabit zamanlı işlevlerin tasarımını ve son yürütülebilir kodun dikkatle test edilmesini içerir.[1]

Kavram

Zamanlama saldırısı, algoritmanın diğer matematiksel özelliklerinden ziyade bir Algoritma uyarlamasının 1 Haziran 2020 tarihinde Wayback Machine sitesinde arşivlendi. verilere bağlı davranışsal karakteristiklerinden yararlanan bir saldırı örneğidir.

Birçok kriptografik algoritma, veriye bağlı zamanlama bilgilerini azaltacak veya ortadan kaldıracak şekilde uygulanabilir (veya bir proxy tarafından maskelenebilir): bir alt rutine yapılan her çağrının her zaman tam olarak x saniye içinde döndüğü bir uygulamayı düşünün; burada x, her muhtemel yetkili girişi için bu rutini yürüttüğü maksimum süredir. Böyle bir uyarlamada, algoritmanın zamanlaması söz konusu çağrılma için sağlanan veriler hakkında hiçbir bilgi sızdırmaz. Bu yaklaşımın kötü tarafı, tüm yürütmeler için kullanılan sürenin, işlevin en kötü durum performansı haline gelmesidir.

Zamanlama saldırıları birçok yönden pratiktir:

  • Zamanlama saldırıları, veriye bağlı zamanlama varyasyonu olan herhangi bir algoritmaya uygulanabilir. Veri önbelleği olan bir CPU üzerinde çalışan yazılım, belleğin önbelleğe bakması sonucunda verilere bağlı zamanlama varyasyonları sergileyecektir. Çarpma gibi bazı işlemler, girdilere bağlı olarak değişen yürütme sürelerine sahip olabilir. Sıklıkla çeşitli yürütme süreleri gösteren düşük düzeyli işlemler kullanan bazı algoritmalarda zamanlama bağımlılıklarını kaldırmak zordur.
  • Zamanlama bilgileriyle sır bulmak, bilinen düz metin, şifreli metin çiftlerinin kriptanalizini kullanmaktan çok daha kolay olabilir. Bazen bilgi sızıntı hızını artırmak için zamanlama bilgisi kriptanaliz ile birleştirilir.

Örnekler

Modüler üs almada 1 Haziran 2020 tarihinde Wayback Machine sitesinde arşivlendi. kullanılan kare ve çarpma algoritmasının 22 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. yürütme süresi, doğrusal olarak anahtardaki '1' bit sayısına bağlıdır. Tek başına '1' bit sayısı, anahtarı bulmak için neredeyse yeterli bilgi olmamakla birlikte, aynı anahtar ve farklı girişlerle tekrarlanan yürütmeler, anahtarı tamamen kurtarmak için zamanlama bilgilerinin istatistiksel korelasyon analizini gerçekleştirmek için kullanılabilir, pasif saldırgan tarafından bile. Gözlemlenen zamanlama ölçümleri genellikle gürültüyü içerir (ağ gecikmesi gibi kaynaklardan veya erişimden erişime disk sürücüsü erişim farklılıkları ve iletim hatalarından kurtulmak için kullanılan hata bulma ve düzeltme teknikleri). Bununla birlikte, zamanlama saldırıları RSA Algoritması, ElGamal ve Dijital İmza Algoritması dahil olmak üzere bir dizi şifreleme algoritmasına karşı pratiktir.

2003 yılında Boneh 12 Haziran 2020 tarihinde Wayback Machine sitesinde arşivlendi. ve Brumley 26 Ağustos 2019 tarihinde Wayback Machine sitesinde arşivlendi., Çin'in Chinese Remainder Theorem29 Nisan 2017 tarihinde Wayback Machine sitesinde arşivlendi. optimizasyonlarıyla RSA kullanımı ile ilgili farklı bir güvenlik açığına dayanan, SSL etkin web sunucularında pratik bir ağ tabanlı zamanlama saldırısı gösterdiler. Gerçek ağ mesafesi deneylerinde küçüktü, ancak saldırı birkaç saat içinde bir sunucu özel anahtarını başarıyla kurtardı. Bu gösteri SSL uygulamalarında körleştirme (blinding) 28 Şubat 2020 tarihinde Wayback Machine sitesinde arşivlendi. tekniklerinin yaygın olarak başvurulmasına ve kullanılmasına yol açmıştır. Bu bağlamda körleştirme, anahtar ve şifreleme süresi arasındaki korelasyonları ortadan kaldırmayı amaçlamaktadır.

Unix'in bazı sürümleri, 8 karakterlik bir parolayı 11 karakterlik bir dizeye ayırmak için crypt kitaplığı işlevinin nispeten pahalı bir uyarlaması kullanır. Eski donanımlarda, bu hesaplama kasıtlı olarak ve kısmen uzun bir zaman aldı: bazı durumlarda iki veya üç saniye kadar. [] Unix'in ilk sürümlerindeki login programı, yalnızca oturum açma adı sistem tarafından tanındığında crypt işlevini yürüttü. Bu, şifre yanlış olsa bile, oturum açma adının geçerliliği hakkında zamanlama yoluyla bilgi sızdırdı. Bir saldırgan, ilk olarak geçerli olduğu bilinen giriş adlarının bir listesini üretmek için kaba kuvvet 15 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. uygulayarak bu tür sızıntılardan yararlanabilir, daha sonra yalnızca bu adları sıkça kullanıldığı bilinen çok sayıda parola ile birleştirerek erişim elde etmeye çalışabilir. Oturum açma adlarının geçerliliği hakkında herhangi bir bilgi olmadan, böyle bir yaklaşımın yürütülmesi için gereken süre, büyüklük sıralarına göre artarak etkili bir şekilde işe yaramaz hale gelir. Unix'in sonraki sürümleri, oturum açma adının geçerliliğine bakılmaksızın her zaman crypt işlevini çalıştırarak bu sızıntıyı giderdi. []

Önbellek veya sanal bellek ile tek bir sistemde çalışan, aksi takdirde güvenli bir şekilde izole edilmiş iki işlem, bir işlemde kasıtlı olarak sayfa hatalarına 9 Mayıs 2020 tarihinde Wayback Machine sitesinde arşivlendi. ve/veya önbellek hatalarına 10 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. neden olarak iletişim kurabilir, ardından diğerinden erişim sürelerinde oluşan değişiklikleri izleyebilir. Benzer şekilde, bir uygulama güvenilirse, ancak disk belleği / önbelleğe alma dallanma mantığından etkileniyorsa, ikinci bir uygulamanın erişim süresi değişikliklerini izleyerek şube durumuna kıyasla verilerin değerlerini belirlemesi mümkün olabilir; uç örneklerde bu, kriptografik anahtar bitlerinin kurtarılmasına izin verebilir.[2][3]

CPU üreticilerini (Intel, AMD, ARM ve IBM dahil) CPU'larını yeniden tasarlamaya zorlayan 2017 Meltdown 17 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. ve Spectre11 Ocak 2018 tarihinde Wayback Machine sitesinde arşivlendi. saldırıları, zamanlama saldırılarına güveniyor.[4] 2018'in başından itibaren, dünyadaki hemen hemen her bilgisayar sistemi, bir zamanlama saldırısının tarihteki en güçlü örneği haline getirerek Spectre'den etkilendi.[5][6][7]

Aşağıdaki Visual Basic kodu, karakter uyuşmadığı zaman en kısa sürede sınamayı durduran tipik bir güvenli olmayan string karşılaştırma gösterir. Örneğin, "ABCDE" ile "ABxDE" karşılaştırıldığında, 3 döngü iterasyonundan sonra geriye dönüş yapar:

Function InsecureCompare(StrA As String, StrB As String, length As Integer) As Boolean
 Dim result As Boolean
 For i = 1 To length
  If Mid(StrA, i, 1) <> Mid(StrB, i, 1) Then Exit For
 Next
 result = (i > length)
 InsecureCompare = result
End Function

Karşılaştırma olarak, aşağıdaki sürüm tüm karakterleri test ederek ve koşullu atlama olmadan test etmek için bitsel işlemleri 27 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. kullanarak sabit zamanda çalışır:

Function SecureCompare(StrA As String, StrB As String, length As Integer) As Boolean
 Dim result As Boolean
 For i = 1 To length
  result = result Or (Asc(Mid(StrA, i, 1)) Xor Asc(Mid(StrB, i, 1)))
 Next
 SecureCompare = Not result
End Function

Notlar

Eğer düşman donanım uygulamasının içsellerini ve hatta kullanılan kriptografik sistemi biliyorsa, zamanlama saldırılarının monte edilmesi daha kolaydır. Kriptografik güvenlik asla ikisinin de belirsizliğine bağlı olmamalı iken (bkz. belirsizliğe bağlı güvenlik 30 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi., özellikle hem Shannon'un Maxim'i hem de Kerckhoffs ilkesi), zamanlama saldırılarına karşı direnç de olmamalıdır. Başka bir şey yoksa, bir örnek satın alınabilir ve tersine mühendislik yapılabilir. Zamanlama saldırıları ve diğer yan kanal saldırıları, bazı aygıtlar tarafından kullanılan bir şifreleme algoritmasını tanımlamak veya muhtemelen tersine mühendislik yapmak için de yararlı olabilir.

Kaynakça

  1. ^ a b "BearSSL – Constant-Time Crypto". www.bearssl.org. 11 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Ocak 2017. 
  2. ^ See Percival, Colin, Cache Missing for Fun and Profit 14 Mayıs 2011 tarihinde Wayback Machine sitesinde arşivlendi., 2005.
  3. ^ Bernstein, Daniel J., Cache-timing attacks on AES 7 Haziran 2011 tarihinde Wayback Machine sitesinde arşivlendi., 2005.
  4. ^ Meltdown (security vulnerability)
  5. ^ "Arşivlenmiş kopya". 3 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Nisan 2020. 
  6. ^ "Arşivlenmiş kopya". 3 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Nisan 2020. 
  7. ^ "Arşivlenmiş kopya". 3 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Nisan 2020. 

Daha fazla okuma için

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">AES</span> Şifreleme standartı

AES, elektronik verinin şifrelenmesi için sunulan bir standarttır. Amerikan hükûmeti tarafından kabul edilen AES, uluslararası alanda da defacto şifreleme (kripto) standardı olarak kullanılmaktadır. DES'in yerini almıştır. AES ile tanımlanan şifreleme algoritması, hem şifreleme hem de şifreli metni çözmede kullanılan anahtarların birbiriyle ilişkili olduğu, simetrik-anahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır.

Kriptografide, SHA-1 NSA tarafından dizayn edilmiş ve NIST tarafından yayınlanmış bir Amerika Birleşik Devletleri Federal Bilgi İşleme Standartı 'nda bir kriptografik özet fonksiyonudur. SHA-1, mesaj özeti olarak da bilinen 160-bit özet değeri üretir. Bir SHA-1 özet değeri genellikle 40 basamaklı bir onaltılık sayı olarak üretilir.

<span class="mw-page-title-main">Aradaki adam saldırısı</span>

Man-in-the-middle saldırısı, saldırganın birbiri ile doğrudan iletişim kuran iki taraf arasındaki iletişimi gizlice ilettiği veya değiştirdiği saldırı türüdür. İletişim ağı üzerinde veri paketleri serbestçe dolaşır. Özellikle broadcast olarak salınan paketler, aynı ağa bağlı tüm cihazlar tarafından görülebilir. İlkesel olarak hedefinde kendi IP'si olmayan bir paketi alan makinelerin, bu paketlerle ilgili herhangi bir işlem yapmamaları gerekir. Ancak istenirse bu paketlere müdahale edebilir ya da içeriğini öğrenebilirler. Aradaki adam saldırısı ağ üzerindeki paketleri yakalayarak manipüle etmek olarak özetlenebilir.

DNS spoofing diğer adıyla DNS önbellek zehirlenmesi, Alan Adı Sistemi verisini bozarak, DNS çözümleme önbelleğine bozuk verinin yerleştirildiği bir bilgisayar güvenliği saldırısıdır. Ad sunucusunun yanlış sonuç dönmesini sağlar, örneğin IP adresi. Böylece saldırgan, trafiği kendi bilgisayarına yönlendirebilir.

<span class="mw-page-title-main">Kriptografik özet fonksiyonu</span>

Kriptografik özet fonksiyonu çeşitli güvenlik özelliklerini sağlayan bir özet fonksiyonudur. Veriyi belirli uzunlukta bir bit dizisine, (kriptografik) özet değerine, dönüştürür. Bu dönüşüm öyle olmalıdır ki verideki herhangi bir değişiklik özet değerini değiştirmelidir. Özetlenecek veri mesaj, özet değeri ise mesaj özeti veya kısaca özet olarak da adlandırılır.

Mesaj doğrulama kodu kriptografi biliminde bir mesajın doğruluğunu kanıtlamak için kullanılan küçük boyutlu bilgilerdir.

<span class="mw-page-title-main">Kriptanaliz</span>

Kriptanaliz şifrelenmiş metinlerin çözümünü araştıran kriptoloji dalıdır. Kriptanaliz, bilinmeyen anahtarları bulmak için kullanılır.

<span class="mw-page-title-main">SQL enjeksiyonu</span>

SQL enjeksiyonu, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler.. SQL enjeksiyonu, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL enjeksiyonu, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

<span class="mw-page-title-main">HMAC</span>

Kriptografide, HMAC, kriptografik özet fonksiyonu ve gizli bir kriptografik anahtar içeren bir mesaj doğrulama kodu türüdür. Diğer MAC türleri gibi, HMAC de hem veri bütünlüğünü kontrol etmek hem de mesaj içeriğini onaylamakta kullanılabilir. HMAC in hesaplanmasında herhangi bir kriptografik özet fonksiyonu kullanılabilir. Örneğin, HMAC in hesaplanmasında MD5 veya SHA-1 özet fonksiyonu kullanılması durumunda, ilgili MAC algoritması da buna uygun olarak HMAC-MD5 veya HMAC-SHA1 olarak isimlendirilebilir. HMAC'in kriptografik saldırılara karşı dayanıklılığı, kullanılan özet fonksiyonunun dayanıklılığına, elde edilen özetin boyutuna, kullanılan kriptografik anahtarın boyutuna ve kalitesine bağlıdır.

Kriptografide ilişkili-anahtar saldırısı; değerleri başlangıçta bilinmeyen ancak anahtarları bağlayan bazı matematiksel bağıntıların saldırgan tarafından bilindiği, birkaç farklı anahtar altında çalışan bir şifrenin saldırgan tarafından gözlemlenebildiği bir tür kripto analiz yöntemidir. Örneğin; saldırgan başta bitlerin ne olduğunu bilmese de anahtarın son 80 bitinin her zaman aynı olduğunu biliyor olabilir. Bu ilk bakışta gerçekçi olmayan bir örnektir; saldırganın şifreleme yapan kişiyi, şifresiz bir metni birbirleriyle ilişkili çok sayıda gizli anahtar ile şifrelemeye ikna etmesi neredeyse imkânsızdır.

<span class="mw-page-title-main">SP ağı</span>

Kriptografide, SP-network ya da koyma-değiştirme ağı(SPN), AES (Rijndael), 3-Way, Kuznyechik, PRESENT, SAFER, SHARK ve Square gibi gibi blok şifreleme algoritmalarında kullanılan bir dizi bağlantılı matematiksel işlemdir.

<span class="mw-page-title-main">Spectre (güvenlik açığı)</span>

Spectre dallanma öngörüsü kullanan modern mikroişlemcileri etkileyen bir güvenlik açığıdır. Çoğu işlemcide spekülatif yürütmeden kaynaklanan hatalı dallanma tahmini, özel bilgilerin saldırganların eline geçmesine neden olabilecek ciddi yan etkiler bırakabilir. Örneğin, bu spekülatif yürütme tarafından gerçekleştirilen bellek modeli özel verilere bağlıysa veri önbelleğinin sonuç durumu, bir saldırganın bir zamanlama saldırısı gerçekleştirerek özel veriler hakkında bilgi alabildiği bir yan kanal oluşturur.

Bilgisayar güvenliğinde yan kanal saldırısı bir bilgisayar sistemine gerçekleştirilirken şifreleme algoritmasının uygulanma şeklinin öğrenilmesinden ziyade uygulanan algoritmadaki zayıflıklara odaklanır. Çoğu yan kanal saldırısı Paul Kocher'in öncülüğünü yaptığı istatistiksel metotlara dayanarak yapılmaktadır.

Kriptografide, scrypt, Colin Percival tarafından Tarsnap çevrimiçi yedekleme hizmeti için oluşturulan bir parola tabanlı anahtar türetme fonksiyonudur. Bu algoritma, büyük miktarda bellek gerektirerek büyük ölçekli özel donanım saldırılarını gerçekleştirmeyi pahalı hale getirmek için özel olarak tasarlanmıştır. 2016 yılında, scrypt algoritması IETF tarafından RFC 7914 olarak yayınlandı. Scrypt algoritmasının, ArtForz kullanıcı adına sahip ve gerçek adı bilinmeyen bir programcı tarafından implemente edilmiş, basitleştirilmiş bir sürümü, önce Tenebrix'te ve ardından Fairbrix ve Litecoin olmak üzere bir dizi kripto para birimi tarafından iş kanıtı şeması olarak kullanıldı.

<span class="mw-page-title-main">Anahtar türetme fonksiyonu</span>

Kriptografide, anahtar türetme fonksiyonu (ATF), bir veya daha fazla gizli anahtarı, ana anahtar, parola veya geçit parolası gibi unsurlardan bir sözderastlantısal fonksiyon kullanarak türetir. ATF'ler, anahtarlar boyutlarını uzatmak veya belirli formatlarda anahtarlar elde etmek için kullanılabilirler. Diffie-Hellman anahtar değişimi sonucunda oluşacak bir grup unsurların, AES'in kullanılabileceği bir simetrik anahtara dönüştürülmesi bu kullanıma örnek olarak gösterilebilir. Anahtar kullanılan kriptografik özet fonksiyonları, anahtar türetme için kullanılan sözderastlantısal fonksiyonların popüler örneklerinden biridir.

<span class="mw-page-title-main">Güç analizi</span>

Kriptografide güç analizi, saldırganın bir kriptografik donanım cihazının güç tüketimini incelediği bir yan kanal saldırısı biçimidir. Saldırı, kriptografik anahtarları ve diğer gizli bilgileri cihazdan invaziv olmayan bir şekilde çıkarabilir.

Güçlü kriptografi veya kriptografik olarak güçlü, kriptografik sistemlere veya kriptanaliz için dirençli olduğu düşünülen bileşenlere uygulanan genel terimlerdir.

Kriptografide, bir ayırt edici saldırı, bir saldırganın şifreli verileri rastgele verilerden ayırt etmesini sağlayan bir şifreyle şifrelenmiş veriler üzerinde bulunan herhangi bir kriptanaliz biçimidir. Modern simetrik anahtar şifreleri, böyle bir saldırıya karşı bağışık olacak şekilde özel olarak tasarlanmıştır. Başka bir deyişle, modern şifreleme şemaları sözde rastgele permütasyonlardır ve şifreli metin ayırt edilemezliğine sahip olacak şekilde tasarlanmıştır. Çıktıyı rastgele bir brute force aramasından daha hızlı ayırt edebilen bir algoritma bulunursa, bu bir şifre kırılması olarak kabul edilir.

<span class="mw-page-title-main">Hertzbleed</span>

Hertzbleed, gizli verileri açığa çıkarmak için dinamik frekans ölçekleme özelliğini istismar etmeyi tanımlayan teorik bir donanımsal güvenlik saldırısıdır. Önceki güç analizi açıklarıyla benzerlik gösteren bu saldırı, bir zamanlama saldırısıdır. Hertzbleed, uzaktaki bir saldırgan tarafından istismar edilebildiği için güç analizi saldırılarından daha tehlikelidir. Bu istirmarla ilgili ana endişe, kriptografik anahtarların açığa çıkmasıdır.