Trusty, Android için Güvenilir Yürütme Ortamı (TEE) sağlayan güvenli bir İşletim Sistemidir (OS). Trusty OS, Android OS ile aynı işlemci üzerinde çalışır, ancak Trusty, hem donanım hem de yazılım tarafından sistemin geri kalanından izole edilmiştir. Trusty ve Android birbirine paralel çalışır. Trusty, bir cihazın ana işlemcisinin ve belleğinin tüm gücüne erişime sahiptir ancak tamamen yalıtılmıştır. Trusty'nin izolasyonu, onu 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'nin Trustzone™ özelliğini kullanır. Benzer destek, Intel'in Sanallaştırma Teknolojisini kullanan Intel x86 platformlarında da mevcuttur.

Şekil 1 . Güvenilir genel bakış diyagramı.
Trusty şunlardan oluşur:
- Little Kernel'den türetilen küçük bir işletim sistemi çekirdeği
- Güvenli ortam ve Android arasında veri aktarımı 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şebilir. Güvenilir API hakkında bilgi için API Referansına bakın.
Neden Güvenilir?
Diğer TEE işletim sistemleri geleneksel olarak üçüncü taraf satıcılar tarafından ikili bloblar olarak sağlanır veya dahili olarak geliştirilir. Dahili TEE sistemleri geliştirmek veya bir üçüncü taraftan bir TEE'yi lisanslamak, Yonga Üzerinde Sistem (SoC) satıcıları ve OEM'ler için maliyetli olabilir. Güvenilmez üçüncü taraf sistemlerle birleşen parasal maliyet, Android için istikrarsız bir ekosistem yaratır. Trusty, Güvenilir Yürütme Ortamları için güvenilir ve ücretsiz bir açık kaynak alternatifi olarak ortaklarına sunulmaktadır. Trusty, kapalı kaynak sistemlerle mümkün olmayan bir şeffaflık düzeyi sunar.
Android, çeşitli TEE uygulamalarını destekler, böylece Trusty'yi kullanmakla sınırlı kalmazsınız. Her TEE OS'nin güvenilir uygulamaları dağıtmak için kendine özgü bir yolu vardır. Bu parçalanma, uygulamalarının her Android cihazında çalışmasını sağlamaya çalışan güvenilir uygulama geliştiricileri için bir sorun olabilir. Trusty'yi standart olarak kullanmak, uygulama geliştiricilerinin, birden çok TEE sisteminin parçalanmasını hesaba katmadan uygulamaları kolayca oluşturmasına ve dağıtmasına yardımcı olur. Trusty TEE, geliştiricilere ve ortaklara şeffaflık, işbirliği, kod denetlenebilirliği ve hata ayıklama kolaylığı sağlar. Güvenilir uygulama geliştiricileri, 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 birden fazla cihazda yeniden kullanabileceklerine dair güvene sahip olacaklar.
Uygulamalar ve hizmetler
Trusty uygulaması, ikili dosyalar (yürütülebilir dosyalar ve kaynak dosyaları), ikili bildirim ve kriptografik imza koleksiyonu olarak tanımlanır. Çalışma zamanında, Trusty uygulamaları, Trusty çekirdeği altında ayrıcalıksız modda yalıtılmış süreçler olarak çalışır. Her işlem, TEE işlemcisinin bellek yönetim birimi özelliklerini kullanarak kendi sanal bellek sanal alanında çalışır. Donanımın yapısı, Trusty'nin izlediği süreci tam olarak değiştirir, ancak örneğin, çekirdek, bu işlemleri, güvenli bir zamanlayıcı tik tarafından yönlendirilen, önceliğe dayalı, sıralı bir zamanlayıcı kullanarak zamanlar. Tüm Trusty uygulamaları aynı önceliği paylaşır.

Şekil 2 . Güvenilir uygulamaya genel bakış.
Üçüncü taraf Güvenilir uygulamalar
Şu anda tüm Trusty uygulamaları tek bir tarafça geliştirilmekte ve Trusty çekirdek görüntüsü ile paketlenmektedir. Tüm görüntü, önyükleme sırasında önyükleyici tarafından imzalanır ve doğrulanır. Trusty'de şu anda üçüncü taraf uygulama geliştirme desteklenmemektedir. Trusty, yeni uygulamaların geliştirilmesine olanak sağlasa da, bunu yaparken çok dikkatli olunmalıdır; her yeni uygulama, sistemin güvenilir bilgi işlem tabanının (TCB) alanını artırır. Güvenilir uygulamalar, cihaz gizli anahtarlarına erişebilir ve bunları kullanarak hesaplamalar veya veri dönüştürmeleri gerçekleştirebilir. TEE'de çalışan yeni uygulamalar geliştirme yeteneği, inovasyon için birçok olanak sunar. Ancak, TEE'nin tanımı gereği, bu uygulamalar bir tür güven eklenmeden dağıtılamaz. Tipik olarak bu, uygulamanın çalıştığı ürünün kullanıcısı tarafından güvenilen bir varlık tarafından dijital imza biçiminde gelir.
Kullanımlar ve örnekler
Güvenilir yürütme ortamları, mobil cihazlarda hızla standart hale geliyor. Kullanıcılar günlük yaşamları için mobil cihazlarına giderek daha fazla güveniyor ve güvenlik ihtiyacı her zaman artıyor. TEE'li mobil cihazlar, TEE'siz cihazlardan daha güvenlidir.
TEE uygulamasına sahip cihazlarda, ana işlemciye genellikle "güvenilmeyen" denir, yani RAM'in belirli alanlarına, donanım kayıtlarına ve gizli verilerin (cihaza özel kriptografik anahtarlar gibi) olduğu bir kez yazılır sigortalara erişemez. üretici tarafından saklanır. Ana işlemci üzerinde çalışan yazılım, gizli veri kullanımını gerektiren tüm işlemleri TEE işlemcisine devreder.
Bunun Android ekosisteminde en yaygın olarak bilinen örneği, korunan içerik için DRM çerçevesidir . TEE işlemcisinde çalışan yazılım, korunan içeriğin şifresini çözmek için gereken cihaza özel anahtarlara erişebilir. Ana işlemci yalnızca şifrelenmiş içeriği görür ve 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.