Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

FPGA Güvenliği 9 years 10 months ago #161

  • quantum50
  • quantum50's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
  • Posts: 480
  • Karma: 4
  • Thank you received: 6
Sahada Programlanabilen Kapı Dizisi (FPGA: Field Programmable Gate Array), üretim aşamasından sonra sahada kullanıcı tarafından konfigüre edilebilen entegre devrelerdir. FPGA elemanları kendi alteratifleri olan mikroişlemcilere göre sağladıkları yüksek işlem gücü ve güvenlik, ASIC (Aplication Spesific Integrated Circuit) yapılarına göre sağladıkları maliyet ve kullanım kolaylığı avantajı ile son yıllarda elektronik tasarımların vazgeçilmez bir parçası haline gelmişlerdir. Bugün FPGA teknolojisi; işaret işleme, uzay ve havacılık sistemleri, savunma sanayi, kriptogtafik uygulamalar vb. pek çok alanda yaygın olarak kullanılmaktadır. FPGA teknolojisi ilk ortaya çıktığı dönemden itibaren sağladığı söz konusu avantajlar nedeniyle talep akınına uğramıştır. Ancak aradan geçen zaman içerisinde özellikle gizliliğin önemli olduğu uygulamalar için bu teknojinin güvenlik yönü sorgulanmaya başlamıştır. Bu çalışmada bilgi vermesi açısından öncelikle kısaca FPGA türleri üzerinde durulacak ardından bilgi güvenliği yönü ile bu FPGA türleri analiz edilecektir.

FPGA SINIFLANDIRILMASI
Konfigüre edilme şekillerine göre FPGA elemanları birçok sınıfa ayrılırlar. Bu bölümde sınıflandırma işlemi ve bu sınıfların birbirlerine göre üstünlükleri üzerinde durulacaktır.

FPGA' lar en temel olarak programlanma sayılarına göre sınıflara ayrılabilir.

A) OTP (One Time Programmable) FPGA

İsminden de anlaşılabileceği gibi bu tür FPGA yalnızca bir kez programlanır. Tek sefer programlama özelliği nedeniyle yapılacak bir hata elemanın geri dönüşümsüz olarak kaybına neden olur.

OTP sınıfına giren FPGA türleri; EPROM Based, Fuse ve Anti-Fuse yapılarıdır.

EPROM-Based FPGA aslında tam olarak OTP olmayıp FPGA elemanının, EPROM hücrelerinin tekrar programlanmasını sağlayan UV ışınlarını geçirmeyecek şekilde kılıflanması ile OTP özelliği kazanmış olur.

Fuse FPGA ise bipolar teknolojisi temelli olduğundan üretilen çiplerde ihtiyaç duyulan hız ve boyut küçüklüğü ihtiyacını karşılamada yetersiz kalmış ve bu yüzden terk edilmiştir.

OTP FPGA sınıfının en çok kullanılan türü Anti-Fuse FPGA dır. Anti-Fuse FPGA 'lar gerek CMOS teknolojisini kullanmaları gerekse de data-retention time (veri saklama süresi), başta radyasyon olmak üzere çevresel şartlara kaşı dayanıklı olma avantajı nedeniyle yaygın olarak tercih edilirler [1].

B) Re-Programmable FPGA

İsminden de anlaşılabileceği gibi tekrar tekrar programlanabilen yapılardır. Bu özellikleri nedeniyle kullanıcılar tarafından yaygın olarak tercih edilirler. Tekrar programlanabilir FPGA'lar programlanan hücrelerininin yapılarına göre SRAM-Based FPGA ve Flash-Based FPGA olmak üzere 2 kısma ayrılırlar. Güç kesintisi durumunda konfigürasyonlarını tutma özelliğine göre uçucu (volatile) ve uçucu olmayan (non-volatile) türleri vardır.

SRAM-Based FPGA: Güç kesintisi durumunda konfigürasyonlarını kaybederler. Bu nedenle konfigürasyon dosyaları bir flash memory içerisinde saklı tutulur. Her sistem açılışında bu hafızadan konfigürasyonlarını tekrar yüklerler.

SRAM-Based FPGA'da konfigürasyon dosyasının saklandığı bellek çip dışında ise Harici Hafızalı SRAM-Based FPGA olarak isimlendirilir. Özellikle gelişmişuygulamalarda kullanılan ve yüksek hafıza kapasitesi ve işlem gücü sağlayan SRAM-Based FPGA'lar harici hafızalıdır.

Eğer konfigürasyon dosyasının saklandığı bellek FPGA ile aynı çip içinde ise Dahili Hafızalı SRAM-Based FPGA olarak isimlendirilirler.

Bu FPGA'lar her güç kesintisinden sonra yapılan başlangıçta yeniden konfigürasyon yüklemesine ihtiyaç duyduklarından aşırı güç tüketimi yapmaları ve zaman gecikmeleri ile bilinirler. Ayrıca güvenlik konususnda üzerinde durulacağı üzere kopyalama saldırısına karşı açıktırlar.

Flash-Based FPGA: Flash teknolojisi ile programlanmış elemanlardır. SRAM-Based FPGA flash hafızayı konfigürasyon dosyasını depolayıp her sistem açılışında SRAM hücrelerini konfigüre etmek için kullanırken, FLAS-Based FPGA flash teknolojisini ana konfigürasyon yapısı olarak kullanır. Bunun sonucu olarak da elektriksel olarak sislinmediği müddetçe üzerinde yapılan konfigürasyonu kaybetmez. Bu nedenle diğer elemana kıyasla çok daha hızlı sürede çalışabilir hale gelir ve çok daha az güç tüketir. Ayrıca radyasyona karşı daha toleranslıdır. FLASH-Based FPGA sadece ACTEL tarafından üretilmektedir. Dahili hafızalı SRAM FPGA’ dan ayırmak için True FLASH-Based FPGA ifadesi de kullanılmaktadır.

GÜVENLİK AÇISINDAN FPGA
Bir tasarımın gerçeklenmesi için kullanılacak FPGA türünün seçilmesi esnasında dikkate alınması gereken farklı parametreler vardır (hız, hafıza vb.). Özellikle gizlilik açısından kritik verilerin işlendiği sistemlerde bu parametrelerin başında güvenlik gelmektedir. Bu bölümde FPGA türleri güvenlik açısından analiz edilecektir.

Öncelikle yapılabilecek saldırı türleri ele alınacaktır. Daha sonra her bir FPGA türü için bu saldırıların gerçeklenebilirliği ve alınan önlemler üzerinde durulacaktır.

Kopyalanmaya Karşı Koruma:

FPGA sistemi üzerine yapılması muhtemel ve en kolay saldırı tekniği kopyalama olayıdır. Kopyalama, içeriğinin ne olduğunu anlamaksızın konfigürasyon dosyalarını değişik yöntemlerle aynen almak ve kendi isteği doğrultusunda kullanmaktır. Kopyalamanın en yaygın gerçekleşme şekilleri konfigürasyonların saklandığı hafızanın okunması veya FPGA sistemin çalışmaya başlaması esnasında hafızadan konfigürasyon dosyaları alınırken veri ara yüzünün dinlenmesi şeklinde olur. Kopyalamada elde ettiği veriler ile saldırgan kendi FPGA'sını konfigüre ederek uygulama üzerinde analiz yapabilir. Bu ciddi güvenlik kayıplarına neden olabilir.

Saldırı tekniği incelendiğinde bu saldırılara en fazla hedef olacak yapının SRAM-Based FPGA olduğu görülmektedir. Özellikle harici hafıza kullanan SRAM-Based FPGA bu saldırıya tamamen açık bulunmaktadır. Dahili hafıza içeren yapının ise en azından sistem çalışması esnasında konfigürasyon dosyalarının yapılacak dinlemeye karşı daha dayanıklı olduğu görülmektedir. Buna karşın bu FPGA türü ek bir güvenlik önlemi olmaksızın uzun süre kullanılmıştır. Ancak güvenlik konusundaki kaygıların artması üzerine “bitstream encryption” yöntemi ile korunan bir model geliştirilmiştir.

Söz konusu modelde konfigürasyon dosyaları hafıza elemanları üzerinde şifreli olarak saklanmakta, sisteme güç verildiğinde FPGA öncelikle bu şifreli dosyaları alıp üzerinde sakladığı algoritma ve anahtarlar ile çözmekte ve bu şekilde kendini konfigüre etmektedir [4,5,6].

Kopyalama saldırısının bir diğer uygulaması ise FPGA’ ların programlandıktan sonra konfigürasyon dosyalarının yeniden okunması nedeniyle ortaya çıkar. Çünkü çoğu FPGA türü hata ayıklama (debugging) açısından kolaylık sağlamak amacıyla konfigürasyon dosyalarının JTAG portundan geri okunabilmesine olanak sağlar.

Bazı SRAM-Based FPGA türlerinde bu durum için "güvenlik biti" önlemi vardır [6]. Eğer tasarımcı güvenlik bitlerini aktif etmezse geri okuma mümkün olabilir. Ancak aktif ederse geri okuma işlemi kapanmış olur. Bu durumda geri okuma için yapılması gereken "security bit" lerin FPGA içerinde yerlerini bulmak ve deaktive etmektir. "güvenlik bitlerinin" aygıt içerisinde maximum güvenlik altında saklanmaları sağlanmaktadır [1,6]. Bu sayede konfigürasyon dosyaların şifreleri çözülmüş halde bulunduğu FPGA içerisinden alınmasının önüne geçilmiş olur [6].

Yine bazı SRAM-Based FPGA modelinde bu güvenlik artırılarak JTAG portları hassas hale getirilmiştir. Konfigürasyonda geri okuma kaldırıldığı halde bu işlem denenirse FPGA içerisinde yer alan kritik bilgileri silmektedir

FLASH-Based FPGA'da bunun için farklı sayılarda bitlerden oluşan “lock” yapıları bulunmaktadır [2].

Kriptografik uygulamalarda yaygın olarak kullanılan Xilinx Spartan 3 serisinde klonlamaya karşı olarak öncelikle konfigürasyonu tutan hafıza FPGA içerisine yarleştirilmiştir (dahili hafızalı SRAM-Based FPGA uygulaması). Ancak asıl olarak FPGA içerisine yüklenen bilgilerin o FPGA ile ilintilenmesini dolayısıyla kopyalama gerçekleşse bile başka bir FPGA üzerinde çalışmamasını sağlayan “Çip DNA” önlemi alınmıştır. Bu yöntemde her FPGA içerisinde fabrikasyon anında yerleştirilmiş 57 bit ID değeri vardır. Tasarımcı FPGA' ya yükleme anında konfigürasyon dosyasını bu ID ile eşleştirir. Bu önlemin bir kademe yükseği Spartan 3AN FPGA da uygulanmaktadır. Bu modelde Çip DNA 'sına ek olarak “Fabrika Bellek ID” değeri sisteme eklenmektedir. Sonuç olarak 57 bit olan güvenlik düzeyi 70 Byte’ a kadar çıkmaktadır [7]. Yine Spartan 3 serisinde kopyalamaya karşı önlem olarak “geri okuma” ve “tekrar konfigüre edilebilme” özellikleri pasif edilebilir.

Tersine Mühendislik İçin Karşı Koruma:

Tersine mühendislikte kopyalamanın aksine konfigürasyon dosyası analiz edilerek tasarımın anlaşılmasına çalışılır. Tersine mühendislik çalışmaları özellikle kopyalamaya göre çok daha zaman ve teknoloji gerektiren çalışmalardır.

Yukarıda sınıflandırılan her bir FPGA türü bu saldırının hedefi olabilir. SRAM-Based FPGA’lar konfigürasyonları saklandıkları belleklerin (PROM) bu tür saldırılar için uygunluğu nedeniyle bu konuda en zayıf elemanlar olarak görülmektedir. Ancak yukarıda anlatılan “bitstream encryption” yöntemi hafızalar üzerinden bu saldırıların yapılmasının önüne geçmektedir.

Diğer yaygın FPGA türleri FLASH-Based ve Anti-fuse FPGA elemanlarında ise durum şu şekildedir [3] .

Öncelikle belirtilmesi gereken nokta ASIC tasarımların tersine mühendislik saldırılarına karşı FPGA’ lara göre daha zayıf olduğudur. Çünkü ASIC tasarımda yer alan bağlantı ve kanallar FPGA’ lara göre çok daha belirgindir.

Anti-fuse FPGA’ da konfigürasyon esnasında yapılan bağlantılar incelenerek anlam çıkarılması zor yapılardır. Bu nedenle tersine mühendislik saldırılarını gerçeklemek imkânsız olmasa da çok zor görülmektedir.

FLASH-Based FPGA ise tersine mühendisliğe karşı maximum dayanıklık sağlar. Çünkü FLASH-Based FPGA programlanmasında komponent üzerinde yer alan anahtarların fiziksel olarak durum değiştirmesi söz konusu değildir. Bunun yerine “floating gate” bölgelerinde elektronların yoğunluğu değişir [3].

Modifikasyona Karşı Koruması

FPGA sistemine yapılacak diğer bir saldırı "modifikasyon" yani aygıtın üzerindeki konfigürasyonun modifiye edilmesidir. Bu modifikasyon sayesinde aygıtın çalışma düzeninin bozulması ve gizli bilgilerin ortaya çıkmasının sağlanması mümkündür.

OTP FPGA (ör. Anti-fuse FPGA) doğası gereği bilinçli bir tampering saldırısına karşı dirençlidir.

SRAM-Based FPGA bir önlem alınmadan kullanıldığı takdirde bu saldırıya da açık görünmektedir. Ancak bitstream encryption yöntemi ile dosyaların şifreli olarak yüklenmesi ve aygıt üzerinde saklı anahtarla açılarak kullanılması bilinçli bir "modifikasyon" faliyetine karşı önlem sağlanmış olur. Zira saldırgan, modifiye edilmiş bir kodu FPGA'a yüklese bile işleyecek olan şifre çözme süreci nedeniyle dosya anlamsız hale gelecek ve saldırganın istediği bilinçli yanıltma gerçeklenemeyecektir. Benzer şekilde xilinx spartan 3 serisinde yer alan “Çip DNA” yöntemi modifiye edilmiş kodun başka bir FPGA üzerinde kullanılmasına engeldir.

FLASH-Based FPGA de tekrar programlanabilme özelliği nedeniyle bu saldırılara açıktır. Ancak bu saldırılara karşı “flash lock” önlemi ile bu saldırının engellenmesi öngörülmüştür [2].

SONUÇ
Daha öncede bahsedildiği gibi bir sistemde kullanılacak FPGA elemanının seçimi esnasında dikkate alınması gereken farklı parametreler mevcuttur. Seçilen FPGA içim "güvenlik", önemli bir parametre olmakla beraber tek unsur değildir. Tasarımcının ihtiyaçları doğrultusunda dikkate alması gereken hız, bellek kapasitesi, kullanım kolaylığı gibi başka kritik parametreler de mevcuttur. Bu nedenle sadece güvenlik boyutunu dikkate alarak belli model ve türler üzerine yoğunlaşmak doğru bir yaklaşım olmayacaktır.

Yukarıda ayrıntılı olarak verilen bilgiler analiz edildiğinde en çok saldırılara hedef olan yapıların SRAM-Based FPGA olduğu dikkat çekmektedir. Buna karşın en çok kullanılan FPGA türü bu türdür. Bu görüşü dayanağı, FPGA piyasasının yaklaşık %80'lik bir kısmına sahip olan Xilinx ve Altera firmalarının neredeyse sadece SRAM-Based FPGA üretimi yapmalarıdır [8]. Bu noktadan kıyasla SRAM-Based FPGA kullanımının ne kadar yaygın olduğu anlaşılabilir.

Bunun nedeni SRAM-Based FPGA türününün güvenlik dışındaki parametreler (İşlem gücü, kapasite, kullanım kolaylığı vb.) açısından kullanıcıya sağladığı avantajlardır. Söz konusu avantajlar nedeniyle SRAM-Based FPGA'lar veri gizliliğinin kritik önem taşıdığığı uygulamalarda bile tasarımcılar tarafından tercih edilebilmektedir. Bu durum ileri teknoloji sistemlerinin geliştirilmesinde verimli çalışabilme kaygısının bilgi güvenliğinin geri plana itilmesine neden olduğunun göstergesidir.

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.815 seconds

NDK Hoş Geldin