Trusty, Android için Güvenilir Yürütme Ortamı (TEE) sağlayan güvenli bir işletim sistemidir (OS). Trusty OS, Android OS ile aynı işlemcide çalışır ancak hem donanım hem de yazılım tarafından sistemin geri kalanından izole edilir. Trusty ve Android birbirine paralel olarak çalışır. Güvenilir, cihazın ana işlemcisinin ve belleğinin tüm gücüne erişebilir ancak tamamen izoledir. Trusty'nin yalıtımı, kullanıcı tarafından yüklenen kötü amaçlı uygulamalardan ve Android'de keşfedilebilecek olası güvenlik açıklarından korur.
Trusty, ARM ve Intel işlemcilerle uyumludur. ARM sistemlerinde Trusty, ana işlemciyi sanallaştırmak ve güvenli bir güvenilir yürütme ortamı oluşturmak için ARM'in Trustzone™'unu kullanır. Benzer destek, Intel'in sanallaştırma teknolojisini kullanan Intel x86 platformlarında da kullanılabilir.

Şekil 1. Güvenilir'e genel bakış şeması.
Güvenilir, aşağıdakilerden oluşur:
- Little Kernel'den türetilen küçük bir işletim sistemi çekirdeği
- Güvenli ortam ile Android arasında veri aktarmak için bir Linux çekirdek sürücüsü
- Çekirdek sürücüsü aracılığıyla güvenilir uygulamalarla (yani güvenli görevler/hizmetler) iletişim kurmak için bir Android kullanıcı alanı kitaplığı
Not: Trusty ve Trusty API değişikliğe tabidir. Trusty API hakkında bilgi edinmek için API Referansı'na bakın.
Trusty neden tercih edilir?
Diğer TEE işletim sistemleri genellikle üçüncü taraf sağlayıcılar tarafından ikili blob olarak sağlanır veya şirket içinde geliştirilir. Dahili TEE sistemleri geliştirmek veya bir TEE'yi üçüncü taraflardan lisanslamak, çip üzerinde sistem (SoC) tedarikçileri ve OEM'ler için maliyetli olabilir. Güvenilir olmayan üçüncü taraf sistemlerle birlikte parasal maliyet, Android için kararsız bir ekosistem oluşturur. Trusty, iş ortaklarına Güvenilir Yürütme Ortamı için güvenilir ve ücretsiz bir açık kaynak alternatifi olarak sunulur. Trusty, kapalı kaynak sistemlerde mümkün olmayan bir şeffaflık düzeyi sunar.
Android, çeşitli TEE uygulamalarını destekler. Bu sayede Trusty'yi kullanmakla sınırlı kalmazsınız. Her TEE OS'nin güvenilir uygulamaları dağıtma yöntemi kendine özgüdür. Bu da, uygulamalarının her Android cihazda çalıştığından emin olmaya çalışan güvenilir uygulama geliştiricileri için sorun oluşturabilir. Trusty'yi standart olarak kullanmak, uygulama geliştiricilerin birden fazla TEE sisteminin parçalanmasını dikkate almadan kolayca uygulama oluşturmasına ve dağıtmasına yardımcı olur. Trusty TEE, geliştiricilere ve iş ortaklarına şeffaflık, işbirliği, kodun incelenebilirliği ve hata ayıklama kolaylığı sağlar. Güvenilir uygulama geliştiriciler, güvenlik açıkları oluşturma riskini azaltmak için ortak araçlar ve API'ler etrafında birleşebilir. Bu geliştiriciler, bir uygulama geliştirebileceklerine ve daha fazla geliştirme yapmadan bu uygulamayı birden fazla cihazda yeniden kullanabileceklerine güvenebilirler.
Uygulamalar ve hizmetler
Güvenilir uygulama, ikili dosya (yürütülebilir ve kaynak dosyalar) koleksiyonu, ikili manifest ve kriptografik imza olarak tanımlanır. Trusty uygulamaları, çalışma zamanında Trusty çekirdeği altında ayrıcalıksız modda izole işlemler olarak çalışır. Her işlem, TEE işlemcisinin bellek yönetim birimi özelliklerini kullanarak kendi sanal bellek korumalı alanında çalışır. Donanım derlemesi, Trusty'nin izlediği süreci tam olarak değiştirir ancak örneğin, çekirdek bu işlemleri güvenli bir zamanlayıcı tıklaması tarafından yönlendirilen öncelik tabanlı bir döngüsel planlayıcı kullanarak planlar. Tüm Trusty uygulamaları aynı önceliğe sahiptir.

Şekil 2. Güvenilir uygulamaya genel bakış.
Üçüncü taraf Trusty uygulamaları
Şu anda tüm Trusty uygulamaları tek bir taraf tarafından geliştirilmekte ve Trusty çekirdek görüntüsüyle paketlenmektedir. Görüntünün tamamı, önyükleme sırasında önyükleme yükleyici tarafından imzalanır ve doğrulanır. Üçüncü taraf uygulama geliştirme, Trusty'de şu anda desteklenmiyor. Trusty yeni uygulamaların geliştirilmesini sağlar ancak bu işlem son derece dikkatli bir şekilde yapılmalıdır. Her yeni uygulama, sistemin güvenilir bilgi işlem tabanının (TCB) alanını artırır. Güvenilir uygulamalar, cihaz sırlarına erişebilir ve bunları kullanarak hesaplamalar veya veri dönüşümleri gerçekleştirebilir. TEE'de çalışan yeni uygulamalar geliştirebilmek, yenilik için birçok olanak sunar. Ancak TEE'nin tanımı gereği, bu uygulamalar bir tür güven olmadan dağıtılamaz. Bu genellikle, uygulamanın çalıştığı ürünün kullanıcısı tarafından güvenilen bir tüzel kişi tarafından oluşturulan dijital imza şeklindedir.
Kullanım alanları ve örnekler
Güvenilir yürütme ortamları, mobil cihazlarda hızla standart hâline geliyor. Kullanıcılar günlük yaşamlarında mobil cihazlarına giderek daha fazla güveniyor ve güvenlik ihtiyacı her geçen gün artıyor. TEE'si olan mobil cihazlar, TEE'si olmayan cihazlara göre daha güvenlidir.
TEE uygulamasına sahip cihazlarda ana işlemci genellikle "güvenilir değil" olarak adlandırılır. Bu, gizli verilerin (ör. cihaza özgü kriptografik anahtarlar) üretici tarafından depolandığı RAM, donanım kayıtları ve bir kez yazılabilen sigortaların belirli alanlarına erişemeyeceği anlamına gelir. Ana işlemcide çalışan yazılım, gizli verilerin kullanılmasını gerektiren tüm işlemleri TEE işlemciye devreder.
Android ekosisteminde bunun en yaygın örneği, korumalı içerik için DRM çerçevesidir. TEE işlemcisinde çalışan yazılımlar, korunan içeriğin şifresini çözmek için gereken cihaza özgü anahtarlara erişebilir. Ana işlemci yalnızca şifrelenmiş içeriği görür. Bu sayede, yazılım tabanlı saldırılara karşı yüksek düzeyde güvenlik ve koruma sağlar.
TEE'nin mobil ödemeler, güvenli bankacılık, çok faktörlü kimlik doğrulama, cihaz sıfırlama koruması, yeniden oynatma korumalı kalıcı depolama, güvenli PIN ve parmak izi işleme ve hatta kötü amaçlı yazılım algılama gibi birçok başka kullanımı vardır.