Please use this identifier to cite or link to this item: http://hdl.handle.net/11527/13299
Title: Gömülü Sistemler İçin Güvenilir Platform Modülü Tasarımı
Other Titles: Implementation Of A Lightweight Trusted Platform Module
Authors: Örs Yalçın, Sıddıka Berna
Özkan, Mehmet Akif
10043587
Elektronik ve Haberleşme Mühendisligi
Electronic and Communication Engineering
Keywords: Güvenilir Platform Modülü
Kriptografi
Keccak
Uzaktan Dogrulama
8051
Trusted Platform Module
Cryptography
Secure Hash Algorithm 3
Keccak Algorithm
Remote Attestation
Malware
8051
Issue Date: 9-Jul-2014
Publisher: Fen Bilimleri Enstitüsü
Institute of Science and Technology
Abstract: Gömülü sistemler, özel bir amaca hizmet etmek amacıyla gerçek zaman ihtiyaçlarına cevap verebilecek şekilde genellikle kısıtlı donanımlar üzerinde tasarlanan, güç sınırlamalarına uyan ve çevre birimleri ile uyumlu olarak çalışan bilgisayar platformlarıdır. Düşük performans gereksinimli gömülü sistemler haberleşme, tıp, savunma, otomotiv gibi hemen hemen her alanda görülmektedir. Kullanım alanı her geçen gün daha fazla genişleyen gömülü sistemler kalp pilleri, otomobil frenleri, fabrika otomasyon sistemleri gibi kritik uygulamalarda daha fazla yer almaktadır. Artan kritik görevlerinin yanında gömülü sistemler daha çok uygulamada internet veya yerel bir ağ üzerinden başka bilgisayarlara bağlı olarak kullanılmaktadır. Genel amaçlı bilgisayar platformlarının güvenliğinin sağlanması ve sistemin güvenliğinin doğrulanması üzerine  birçok çalışmanın bulunmasına rağmen yakın zamanlara kadar düşük performans gereksinimli gömülü sistemler bu konuda ihmal edildi. Ancak bu sistemleri hedef alan birçok saldırı literatürde bulunmaktadır. Vücuda yerleştirilen insulin pompası medikal cihazlarına yapılan saldırılar, arabaların kontrolör ağına (CAN) yapılan saldırılar ve Stuxnet bilgisayar kurdunun Iran nükleer tesislerine bulaşarak programlanabilir mantıksal denetleyici (PLC) sistemlerinin yazılımını değiştirmesi bunların örneklerindendir. Günümüzde bilgisayar platformları fiziksel olarak güvenli yerlerde korunabilmesine rağmen, ağ üzerinden yapılan saldırılara ve zararlı yazılımlara karşı daha hassastır. Sistem güvenliğinin sağlanması amacıyla önerilen önemli özelliklerden biri uzaktan doğrulamadır. Yerel veya uzakta çalışan bir bilgisayarın kimliğinin doğrulanması ve çalışmasının beklenildiği gibi olmasının doğru bir şekilde kontrol edilebilmesi güvenli bir uzaktan doğrulama protokolü ile sağlanabilmektedir.  Uzaktan doğrulama yöntemi, doğrulayıcı (verifier) olarak isimlendirilen güvenilir bir bilgisayar sistemi ve sağlayıcı (provider) olarak isimlendirilen, ağ üzerinden bağlanılan, güvenilirliğinin kontrol edilmesi gereken bilgisayar sisteminden oluşur. Uzaktan doğrulama protokolü doğrulayıcının isteği üzerine başlar. Doğrulayıcı her bir hesaplamayı taze tutmak amacıyla sağlayıcıya yeterli büyüklükte rastgele bir sayı iletir. Ardından sağlayıcı; sistem durumunu, iletilen rastgele sayıyı ve sadece doğrulayıcının bildiği bir şifreyi kullanarak bu girişlere özel bir sağlama toplamı (checksum) üretir. Sağlama toplamı, her bir girişi için yeterince farklı bir sonuç üreten tek yönlü bir fonksiyon sonucudur. Sağlayıcının sistem durumu, hafızaları (memory), saklayıcıları (register) gibi yazılımın saklanmasını ve işletilmesini gösteren donanımlarının kontrol edildiği andaki içerikleridir. Sağlama toplamının şifre kullanılarak üretilmesi hesaplama sonucunu sağlayıcıya özel yapar ve hesaplamanın simüle edilebilmesini engeller. Son adım olarak sağlama toplamı doğrulayıcıya iletilir. Doğrulayıcı, kendisine iletilen sağlama toplamının beklediği gibi olması durumunda sağlayıcının güvenli bir şekilde çalıştığı sonucuna varır. Uzaktan doğrulama statik ve dinamik olmak üzere ikiye ayrılır. Dinamik doğrulamada sistem çalışırken dahi güvenilirlik protokolü gerçekleştirilebilirken, statik doğrulamada ise sistem sadece başlangıçta kontrol edilebilir.  Yakın zamanlara kadar düşük performanslı gömülü sistemlerde uygulanması için önerilen uzaktan doğrulama protokolleri sadece yazılım veya sadece donanım tasarımlarına yönelikti. Sadece yazılımın kullanıldığı yöntemler genellikle sağlama toplamının hesaplanması sırasında geçen zamanın da doğrulayıcı tarafından kontrol edilmesi fikrine dayanır. Bu sistemlerde, sağlama toplamının beklenen zaman aralığında hesaplanmaması durumunda fazladan işlem yaptırıldığı ve sağlayıcının zararlı bir yazılım tarafından ele geçirildiği varsayılır. Sadece donanım tasarımına yönelik yöntemler, sağlama toplamının hesaplanması için sağlayıcı platforma ek bir işlemci veya Güvenilir Platform Modülü (Trusted Platform Module, TPM) olarak isimlendirilen özelleştirilmiş bir yonga eklenmesi fikrine dayanır. Sadece yazılımın kullanıldığı sistemlere karşı başarılı birçok saldırının literatürde yer almasının yanında sadece donanımın kullanıldığı yöntemler bu çalışmada hedef olarak belirlenen işlemciler için pahalı olmaktadır.  Şimdilerde donanım ve yazılımın birlikte tasarımıyla daha düşük performans özelliklerine sahip gömülü sistemleri hedef alan yöntemler geliştirildi. Bu metotlar donanımda ufak değişiklikler önererek yazılım tarafından güvenli bir doğrulama protokolü gerçeklemesini mümkün kılmaktadır. SMART (Secure and Minimal Architecture for Root of Trust, Güvenilirlik Kökü için Güvenli ve Minimum Tasarım) bu alandaki en güncel ve önemli çözümlerden biridir.  SMART yönteminde, doğrulama programını saklamak üzere ve sağlayıcı şifresini saklamak üzere işlemciye program bellekleri eklenir. Doğrulama programının veya şifrenin değişmeyeceği durumlarda salt okunur bellek tercih edilir. Güncellenebilir bellekler kullanabilmek içinse işlemcinin yazılımı tarafından değiştirilemeyecek güvenli bir protokol eklenir. Ayrıca işlemci ve veri bellekleri arasına bellek erişimlerini kontrol etmek üzere ufak bir denetleme devresi eklenir. Eklenen denetleme devresi işlemcinin program sayıcısının değerlerini takip ederek bellek erişimlerini kontrol eder. Uzaktan doğrulamada kullanılmak üzere saklanan şifrenin, sadece doğrulama yazılımı tarafından okunmasını sağlar. Ayrıca doğrulama programının sadece ilk direktifinden uyarılabilmesini ve bölünmeden çalıştırılıp son direktifinden çıkabilmesini sağlar. Herhangi bir ihlalde sistemi sıfırlar ve üçüncü bir kişiye veri akışını engeller. Böylece doğrulama yazılımının beklenildiği gibi çalışması zorlanmış olunur. Doğrulama yazılımı doğrulayıcının isteği üzerine çalıştırılır ve uzaktan doğrulama protokolüne uyarak şifreyi, sistem durumunu ve kendisine iletilen rastgele sayıyı kullanarak bir sağlama toplamı hesaplar. Hesaplanan sağlama toplamı doğrulayıcıya iletilir. Bu çalışmada düşük performans özelliklerine sahip gömülü sistemler için dinamik uzaktan doğrulama yöntemi olarak önerilen SMART, Intel 8051 işlemcisi için tasarlanmıştır. 8051 işlemcisi standarda uygun olarak tasarlanan Dalton çekirdeği kullanılarak Spartan 6 CSG324 Sahada Programlanabilir Kapı Dizileri (Field Programmable Gate Array, FPGA) üzerine gömülmüştür. İşlemcinin donanımı SMART yapısına uygun olarak değiştirilmiştir. Doğrulama yazılımı tasarımında sağlama toplamını üretmek üzere 224 bit SHA3[r=40, c=60] (Secure Hash Algorithm, Güvenli Hash Algoritması) seçilmiştir. Hash algoritması herhangi uzunluktaki bir veriden sabit uzunluktaki bir değeri tek yönlü olarak hesaplar ve farklı girişler için farklı çıkışlar üretir. Güvenli hash algoritmaları, Amerika Birleşik Devletleri Standart ve Teknolojiler Enstitüsü (NIST) tarafından belirlenmiş standartlardır. SHA3 algoritması, 2007 yılında NIST tarafından duyurulan ve 2012 ye kadar süren bir yarışmanın kazananıdır. Bir şifre kullanarak sağlama toplamı üreten hash algoritmalarına mesaj doğrulama kodları (MAC, message authentication code) denir. SHA3 algoritması, mesaj doğrulama kodu üretecek şekilde yapılandırılıp SDCC derleyicisi kullanılarak 8051 için tasarlanmıştır. Program önce C programlama dili kullanılarak tasarlanmış ve optimize edilmiştir. Daha sonra assembly (ASM) kullanılarak hedeflenen platform için hızlandırılmıştır. Sonuç olarak SHA3[200] ün kod boyutu ve hızı arasındaki oran tasarlanan kodlarla gösterilmiştir. Bu çalışma SHA3[200] algoritmasının 8051 üzerinde gerçeklemesini göstermesi açısından da bir ilk olma özelliği taşır.   Bu tez SMART sisteminin donanım ve yazılım üzerindeki alan ve hız açısından yükünü gösteren ilk çalışmadır. Sistemin herhangi bir işlemci için gerçeklenmesi sırasında karşılaşılabilecek zorluklar gösterilmiştir. Buna ek olarak SMART sisteminin bellek yapısını değiştirerek alan ve hız açısından daha hızlı bir program tasarımına olanak tanıyan ve SMART sisteminin platforma olan yükünü azaltan bir yöntem önerilmiştir. Önerilen yöntemde doğrulama yazılımına rezerv edilmiş bir veri belleği eklenmiştir. Bu sayede doğrulama yazılımı küçültülebilmiş ve daha hızlı çalıştırılabilmiştir. Sonuç olarak önerilen sistem için tasarlanan doğrulama yazılımının % 36 daha küçük ve %12 daha hızlı olduğu gösterilmiştir.
Today's computing platforms are becoming more and more mobile and networked, while their tasks get increasingly critical. Therefore, the need to verify and identify that a local or remote computing platform behaves as expected has become an important challenge. Software and hardware attestation protocols have been proposed to solve this problem in the past few years. While many vulnerabilities and attacks have been discovered against the proposed software based solutions, hardware based solutions are too costly for lightweight embedded devices. Recently, lightweight solutions requiring minor hardware changes have been proposed for the low-end embedded devices. One of the state of the art approaches is SMART (Secure and Minimal Architecture for Root of Trust), in which memory accesses are controlled by looking at the program counter (PC), proposed by El Defrawy et al. In this thesis, SMART is designed for 8051 platform on a Spartan 6 CGS324 FPGA. This is the first implementation of SMART architecture that shows the cost of the modifications to hardware in terms of area and speed. In addition, a novel hardware architecture that changes memory access layout in order to provide better attestation program in terms of code size and speed is proposed. It is shown that the size of additional program code decreased by 36% and attestation speed is increased by 12% while the area and speed of hardware is optimized. Moreover, 224 bit SHA3 (KECCAK[r=40, c=160]) software is implemented for 8051 by using assembly (ASM) and C programming languages with SDCC compiler. The trade off between code size and speed of SHA3[r=40, c=160] is presented with several implementations. No other SHA3[200] implementation for 8051 can be found in the literature at the time of this thesis is written.
Description: Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2014
Thesis (M.Sc.) -- İstanbul Technical University, Instıtute of Science and Technology, 2014
URI: http://hdl.handle.net/11527/13299
Appears in Collections:Elektronik Mühendisliği Lisansüstü Programı - Yüksek Lisans

Files in This Item:
File Description SizeFormat 
10043587.pdf2.92 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.