Padding oracle atağı

Kriptolojide padding oracle atağı kriptografik bir mesaja padding(doldurma) denilen yöntemin uygulanması sonucunda ortaya çıkmaktadır.  kriptografide özellikle  değişken uzunluktaki mesajların uzatılarak aynı blok uzunluğuna gelmesi için doldurulmasını sağlamaktadır. Açık anahtarlamalı yapılarda da  kullanılmaktadır. , kriptografide bir testin başarılı olup olmadığını gösteren mekanizmaya denir. Bu mekanizma genellikle karşımıza sunucu olarak çıkmaktadır. Padding oracle atağı da, mesaj bloklarının doldurulmasının doğru olup olmamasına cevap verilmesi özelliğine dayanmaktakdır. Bu atak genellikle blok şifrelemelerde kullanılan  moduyla ilişkilendirilir. Ayrıca asimetrik algoritmalarda (örneğin ) padding oracle zafiyeti olabilir.Manger, James. A Chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS #1 v2.0http://archiv.infsec.ethz.ch/education/fs08/secsem/Manger01.pdf . Telstra Research Laboratories

 Simetrik Şifreleme 
Simetrik kriptografide, padding oracle atağı  ()  işlemine uygulanabilir. Sunucunun blok doldurma işleminin doğru olup olmadığı bilgisini sızdırması sonucunda saldırgana şifreleme anahtarını bilmeden sunucunun anahtarını kullanarak, şifreyi çözmesine imkân tanımaktadır. CBC modunun şifre çözme mekanizması aşağıda gösterilmiştir.
çerçeveli|CBC modu|yok

 CBC Modda Atak Örneği 
Saldırganın elinde üç adet  şifreli blok olduğunu ve ikinci bloğun (yani ) şifresini çözmek istediğini farzedelim. Saldırgan sadece  son bloğun   doldurma(padding)  metodu ile doğru olarak doldurulduğunu (padded) biliyor. PKCS7'de doldurma işlemi,  byte kadar eksik byte varsa oraya 0xn şeklindedir. Aşağıdaki resim doldurma işlemini özetlemektedir.

yok|küçükresim|upright=2.74

CBC şifre çözme işlemi yukarıdaki resimde de belirtildiği gibi şu şekilde çalışır   Eğer saldırgan  in son byte'ını değiştirip, 'i sunucuya gönderirse, 'in tüm bloğu  ve 'nin son byte'ı (  operasyonundan dolayı) etkilenir.

Bundan sonra sunucu, en son şifresi çözülen blokun (yani ) doldurmasının(padding) doğru olup olmadığını döndürür (bu kontrol şifresiz mesaj işlenmeden önce gerçekleştirilir).

, 'in son byte'ı olsun. Saldırgan 'i şu şekilde değiştirsin  (, 'in tahmin edilen son byte'ı olsun). Eğer  doğru bir tahmin ise (yani 'nin doğru son byte'ı ise), sunucu doldurma(padding) hatası vermeyecektir. Eğer sunucu doldurma (padding) hatası verirse, saldırgan 'in hatalı olduğunu anlayacaktır. Bu sebepten saldırgan  için diğer değerleri deneyecektir. Bu şekilde 255 denemede 'in değeri bulunmuş olacaktır. Sonuç olarak 'nin son byte'ı elde edilmiş olur.

Saldırgan  'nin son byte'ını elde ettikten sonra son byte'dan bir önceki byte'ı bulmaya çalışacaktır. Bunu da  ve  şeklinde yapacaktır.

Böylelikle saldırgan tüm bloğu elde edebilecektir.

Farz edelimki 128 bits  kullanılarak şifrelenmiş bloklar var elimizde. Saldırgan 'yi 255⋅16 = 4080 denemede elde edebilecektir. Bu atak birkaç saniye içinde başarıyla gerçekleştirilebilir.

 Padding oracle atakları 
Orijinal padding oracle atağı 2002 yılında   tarafından yazılmıştır. 2010 yılında ise atak, JavaServer Faces, Ruby on Rails ve ASP.NET.Vlad Azarkhin. “Padding Oracle” ASP.NET Vulnerability Explanationhttp://blogs.microsoft.co.il/blogs/linqed/archive/2010/09/19/padding-oracle-asp-net-vulnerability-explanation.aspx  gibi web çatılarına uygulanmıştır. 2012'de bazı güçlendirilmiş donanımlarada atak yapılabildiği gösterilmiştir

Birçok TLS geliştiricisi tarafından bu zafiyet giderilmiş olsa da zaman yan-kanal analizi kullanan  olarak bilinen atak 2013 yılında yayınlandı. 2014 başlarında, gerçek hayatta bir tehdit olarak değerlendirilmese de teoride ( bkz: ) bazı sınıf cihazlarda hala uygulanabilir durumdadır. 2015'te, kriptografik protokollere yapılan ataklar indirgeme () atakları örneğin Logjam. For further information see https://www.weakdh.org . ve Export RSA/FREAKMatthew Green. Attack of the week: FREAK (or 'factoring the NSA for fun and profit'). http://blog.cryptographyengineering.com/2015/03/attack-of-week-freak-or-factoring-nsa.html  atakları gibi karşımıza çıkmaktadır. Bu atak destekleyen istemcilerin daha düşük seviyeli protokelleri kullandırılması prensibine dayanmaktadır. 2014 sonlarında ortaya çıkan PODDLEMatthew Green, Attack of the week: POODLEhttp://blog.cryptographyengineering.com/2014/10/attack-of-week-poodle.html  atağı ise hem indirgeme(SSLv3.0) hem de padding oracle atağını kullanarak güvensiz protokol kullanımını sağlayarak transfer edilen şifreli verinin ele geçirilmesini sağlamaktadır.

 Kaynakça 

Kategori:Kriptoloji
Kategori:Transport Layer Security