# Güvenilir Yürütme Teknolojisi
Intel Güvenilir Yürütme Teknolojisi (Intel TXT, eskiden LaGrande Technology olarak bilinirdi), bilgisayar donanım teknolojisidir ve başlıca hedefleri şunlardır:
  - Bir platformun ve işletim sisteminin güvenilirliğinin onaylanması.
  - Bir işletim sisteminin eğer güvenilir bir ortamda başlatıldığından emin olunursa, işletim sistemi güvenilir olarak kabul edilebilir.
  - Güvenilirliği kanıtlanmış işletim sistemlerinin, kanıtlanmamış olanlara göre ek güvenlik özellikleri sağlaması.
Intel TXT, yazılım ve platform bileşenlerinin ölçümlerini sağlamak için bir Güvenilir Platform Modülü (Trusted Platform Module) ve şifreleme teknikleri kullanır. Böylece sistem yazılımı, hem de yerel ve uzaktan yönetim uygulamaları bu ölçümleri kullanarak yazılımın ve platform bileşenlerinin güvenli olup olmadığı kararını verebilir. Bu Intel Yönetim Motoru'nu tamamlar. Bu teknoloji, Güvenilir Bilgi İşlem Grubu’nun (Trusted Computing Group) daha güvenli bilgi işlemeyi teşvik etmek için gerçekleştirdiği bir endüstri girişimine dayanmaktadır. Sistem veya BIOS kodunu bozarak ya da platformun yapılandırmasını değiştirerek hassas bilgileri çalmaya yönelik yazılım tabanlı saldırılara karşı koruma sağlar.


## Ayrıntılar.
TCG tarafından belirtilen Güvenilir Platform Modülü (TPM) birçok güvenlik işlevi sağlar. Bu işlevler, sahteciliği önlemek için güvenli bir konumda çeşitli ölçümleri tutan özel yazmaçları (Platform Yapılandırma Yazmaçları -PCR) içerir. Ölçümler, Güvenli Hash Algoritması (Secure Hashing Algorithm) kullanan bir şifreli hash değerinden oluşur; TPM v1.0 SHA-1 hash algoritmasını kullanır. Daha yeni TPM sürümleri (v2.0 +) SHA-2. 'yi kullanırlar.
Bir hash şifreleme algoritmasının istenen bir özelliği, (tüm pratik amaçlar için), herhangi iki modüldeki hash değerinin (hash özeti veya bir hash), ancak modüller aynı ise, aynı değere sahip olmalarıdır.


### Ölçümler.
Ölçümler kod, veri yapıları, yapılandırma, bilgi veya belleğe yüklenebilen herhangi bir şey olabilir. TCG, kodun ölçülünceye kadar yürütülmemesini gerektirir. Belirli bir ölçüm sırasını sağlamak için, bir sıradaki hash ölçümleri farklı PCR'lere yazılmaz, aksine PCR bir ölçüm ile "genişletilmiş" olur. Bu, TPM'nin PCR'nin mevcut değerini ve genişletilecek ölçümü aldığını, bunların hash değerlerini hesaplayıp PCR'ın içeriğini bu hash değeri ile değiştirdiğini gösterir. Buradan ulaşılan ise bir PCR'de belirli bir ölçüme ulaşmanın tek yolu, tam olarak aynı ölçümleri aynı sırayla genişletmektir. Bu nedenle, ölçülen herhangi bir modül değiştirilmişse, ortaya çıkan PCR ölçümü farklı olacaktır ve dolayısıyla ölçülen herhangi bir kodun, konfigürasyonun, verinin, vs. değiştirilmiş veya bozulmuş olduğunu tespit etmek kolaydır. PCR genişletme mekanizması, yazılım katmanlarına bir güven Zinciri oluşturmak için çok önemlidir (aşağıya bakınız).


### Güven Zinciri.
Teknoloji, hem statik bir güven zincirini hem de dinamik bir güven zincirini destekler. Statik güven zinciri, platform başlatıldığında (veya platform sıfırlandığında), tüm PCR'leri varsayılan değerlerine döndürür. Sunucu platformları için ilk ölçüm, yonga seti (chipset) üreticisi tarafından sağlanan dijital olarak imzalanmış bir modülü (Kimliği Doğrulanmış Kod Modülü veya ACM(Authenticated Code Module) olarak adlandırılır) ölçmek için donanım (yani işlemci) tarafından yapılır. İşlemci, yürütme işlemini gerçekleştirmeden önce imzalı modülün imzasını ve bütünlüğünü doğrular. ACM daha sonra ek ölçümler yapabilen ilk BIOS kod modülünü ölçer.
ACM ve BIOS kod modüllerinin ölçümleri, BIOS Güvenilir Bilgi İşlem Tabanının (Trusted Computing Base) ölçümü ile beraber güven ölçümünün statik çekirdek kökünü de(CRTM) tutacak olan PCR0'a atanmıştır. BIOS PCR’lerin içindeki ek bileşenleri şekildeki gibi ölçer:
  - PCR0 - CRTM, BIOS kodu ve Ana Bilgisayar Platformu Uzantıları YÖNLENDİRME 
  - PCR1 – Sunucu Platformu Yapılandırması
  - PCR2 - Option ROMKodu
  - PCR3 - Option ROM Yapılandırması ve Veri
  - PCR4 - IPL (Başlangıç Program Yükleyici) Kodu (genellikle Ana Önyükleme Kaydı )
  - PCR5 - IPL Kod Yapılandırması ve Verileri (IPL Kodu tarafından kullanılmak üzere)
  - PCR6 - Durum Geçişi ve Uyandırma Olayları
  - PCR7 – Sunucu Platformu Üreticisi Kontrolü
Dinamik güven zinciri, işletim sisteminin özel bir güvenlik talimatını çağırması ile başlar. Bu güvenlik talimatı dinamik PCR'leri (PCR17–22) varsayılan değerlerine sıfırlar ve ölçülen başlatmayı başlatır. (starts the measured launch.) İlk dinamik ölçüm donanım (yani işlemci) tarafından bir modülü (SINIT ACM olarak adlandırılacaktır.) ölçmek için yapılır. Bu modül yonga seti üreticisi tarafından sağlanmıştır. İmza ve bütünlüğü işlemci tarafından doğrulanmıştır ve dijital olarak imzalanmıştır. Bu, Güven Ölçümü’nün Dinamik Kökü (DRTM) olarak bilinir.
SINIT ACM ilk olarak işletim sistemi kod modülünü ölçer (ölçülen başlatma ortamı - MLE olarak anılacaktır). MLE'nin yürütülmesine izin verilmeden önce, SINIT ACM, platformun platform sahibi tarafından ayarlanan Başlatma Kontrol İlke’lerinin (LCP) gereksinimlerini karşıladığını doğrular. LCP üç bölümden oluşmaktadır:
  - SINIT sürümünün belirtilen değerden eşit veya daha yeni olduğunu doğrulamak
  - PCR0-7 yazmaçlarını bilinen-iyi değerlerle karşılaştırarak Platform yapılandırmasının (PCONF),  geçerli olduğunu doğrulamak (platform sahibi hangi PCR'lerin ekleneceğine karar verir)
  - MLE'nin geçerli olduğunu, bilinen iyi ölçümlerin bir listesiyle MLE’nin ölçümünü karşılaştırarak doğrulamak
LCP'nin bütünlüğü ve bilinen iyi ölçümlerinin listesi, TPM'deki politikanın bir hash değerinin saklanmasıyla korunmaktadır. Sadece platform sahibi tarafından değiştirilebilen korumalı uçucu olmayan bir konumda saklanmaktadır.


### Güvenilir Bir İşletim Sistemi Olarak Çalıştırılması.
LCP’nin çalışması bitirildikten sonra SINIT ACM, MLE'nin özel güvenlik yazmaçlarına erişim sağlar ve TPM Locality 2. seviye erişimini etkinleştirir. Bunun sonucunda Güvenilir İşletim Sistemi(Trusted Operating System) olarak çalışmasına izin verir. MLE artık dinamik PCR'lere ek ölçümler yapabilir duruma gelir. Dinamik PCR'ler aşağıdaki ölçümleri içerir:
  - PCR17 - DRTM ve başlatma kontrol politikası
  - PCR18 - Güvenilir işletim sistemi başlatma kodu (MLE)
  - PCR19 - Güvenilir İşletim Sistemi (örneğin OS konfigürasyonu)
  - PCR20 - Güvenilir İşletim Sistemi (örneğin OS Kernel ve diğer kodlar)
  - PCR21 - Güvenilir İşletim Sistemi tarafından tanımlandığı şekilde
  - PCR22 - Güvenilir İşletim Sistemi tarafından tanımlandığı şekilde
Teknoloji ayrıca işletim sisteminin platformu başlatması için daha güvenli bir yol sağlar. Normal işlemci başlatma işleminin aksine işletim sistemi, uygulama işlemcilerini doğrudan "korumalı modda" başlatırlar. Bunu uygulama işlemcilerini özel bir uyku durumunda bırakıp güvenli bir başlatma gerçekleştirerek yapar ve bu sayede güvenlik açığını önler.


## Uygulama.
PCR değerleri hem lokal hem de uzaktan kullanılabilir. Ayrıca, TPM, PCR değerlerini dijital olarak imzalayabilme yeteneğine sahiptir, böylece herhangi bir kişi, ölçümlerin TPM'den geldiğini ve güvenli olduğunu doğrulayabilir. Böylece Uzaktan Onaylama’nın PCR değerlerindeki oynanmaları, bozulmaları ve kötü amaçlı yazılımları saptamasını sağlar. Ek olarak, bu değerler, yürütme ortamını tanımlamak için kullanılabilir (BIOS sürümü, işletim sistemi düzeyi, yapılandırma vb.) ve platformun daha fazla kategorize edilmesi için bunları kendi iyi bilinen değerleriyle karşılaştırır. Platformların güven seviyelerini değerlendirme ve güven düzeyi atama yeteneği, Güvenilir Bilgi İşlem Havuzları(Trusted Compute Pools) olarak bilinir.
Güvenilir Bilgi İşlem Havuzlarının nasıl kullanıldığıyla ilgili bazı örnekler:
  - İzolasyon - bir platformun üretim ağına bağlanıp bağlanmadığını kontrol etme veya güven seviyesine göre veya başlatma kontrol politikasını geçememesine dayalı olarak karantinaya alınması.
  - Güven Temelli Politika - örneğin, belirli bir güven düzeyine uymayan platformlarda kritik uygulamaların yürütülmesini kısıtlar.
  - Uyumluluk ve Denetim - kritik, kişisel veya hassas verilerin yalnızca güven gereksinimlerini karşılayan platformlarda işlendiğini gösterir.
Sayısız sunucu platformu Intel TXT'yi içerir ve TXT işlevi HyTrust, PrivateCore, Citrix, Cloud Raxak ve VMware dahil olmak üzere yazılım satıcıları tarafından geliştirilmiştir. Açık Kaynaklı projeler de TXT işlevini kullanır. Örneğin "tboot", Linux çekirdeği ve Xenhypervisor için TXT tabanlı bir bütünlük sistemi sağlar.