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 nedeniyle sistemin geri kalanından yalıtılmıştır. Trusty ve Android birbirine paralel çalışır. Trusty, bir cihazın ana işlemcisinin ve belleğinin tüm gücüne erişebilir 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, güvenilir bir yürütme ortamı oluşturmak için ARM'in Trustzone™ özelliğini kullanır. Benzer destek, Intel'in Sanallaştırma Teknolojisini kullanan Intel x86 platformlarında da mevcuttur.
Güvenilir şunlardan oluşur:
- Little Kernel'den türetilen küçük bir işletim sistemi çekirdeği
- Güvenli ortam ile 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 kurmaya yönelik 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 halinde sağlanır veya dahili olarak geliştirilir. Dahili TEE sistemleri geliştirmek veya bir TEE'yi üçüncü taraftan lisanslamak, Çip Ü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 oluşturur. Trusty, ortaklarına Güvenilir Yürütme Ortamları için güvenilir ve ücretsiz bir açık kaynak alternatifi olarak sunulmaktadır. Trusty, kapalı kaynak sistemlerde mümkün olmayan bir düzeyde şeffaflık sunar.
Android çeşitli TEE uygulamalarını destekler, böylece Trusty'yi kullanmakla sınırlı kalmazsınız. Her TEE işletim sisteminin güvenilir uygulamaları dağıtmak için kendine özgü bir yolu vardır. Bu parçalanma, uygulamalarının her Android cihazda çalışmasını sağlamaya çalışan güvenilir uygulama geliştiricileri için bir sorun olabilir. Trusty'yi standart olarak kullanmak, uygulama geliştiricilerin birden fazla TEE sisteminin parçalanmasını hesaba katmadan uygulamaları kolayca oluşturmasına ve dağıtmasına yardımcı olur. Güvenilir TEE, geliştiricilere ve iş ortaklarına şeffaflık, işbirliği, kodun denetlenebilirliği ve hata ayıklama kolaylığı sağlar. Güvenilir uygulama geliştiricileri, güvenlik açıklarının ortaya çıkma riskini azaltmak için ortak araçlar ve API'ler etrafında birleşebilir. Bu geliştiriciler, bir uygulamayı geliştirebileceklerine ve daha fazla geliştirmeye gerek kalmadan uygulamanın birden fazla cihazda yeniden kullanılmasını sağlayabileceklerine güveneceklerdir.
Uygulamalar ve hizmetler
Güvenilir uygulama, ikili dosyalar (yürütülebilir dosyalar ve kaynak dosyalar), ikili bildirim ve şifreleme imzasından oluşan bir koleksiyon olarak tanımlanır. Çalışma zamanında Trusty uygulamaları, Trusty çekirdeği altında ayrıcalıksız modda izole edilmiş işlemler olarak çalışır. Her işlem, TEE işlemcisinin bellek yönetim birimi yeteneklerini kullanarak kendi sanal bellek sanal alanında çalışır. Donanımın yapısı, Trusty'nin takip ettiği süreci tam olarak değiştirir, ancak örneğin çekirdek, bu işlemleri, güvenli bir zamanlayıcı işaretiyle yönlendirilen, önceliğe dayalı, sıralı bir zamanlayıcı kullanarak planlar. Tüm Güvenilir uygulamalar aynı önceliği paylaşır.
Üçüncü taraf Güvenilir uygulamalar
Şu anda tüm Trusty uygulamaları tek bir tarafça geliştirilmekte ve Trusty çekirdek görüntüsüyle paketlenmektedir. Önyükleme sırasında görüntünün tamamı önyükleyici tarafından imzalanır ve doğrulanır. Şu anda Trusty'de üçüncü taraf uygulama geliştirme desteklenmemektedir. Trusty yeni uygulamaların geliştirilmesine olanak sağlasa da, bunu yaparken son derece 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 sırlarına erişebilir ve bunları kullanarak hesaplamalar veya veri dönüşümleri gerçekleştirebilir. TEE'de çalışan yeni uygulamalar geliştirme yeteneği, inovasyon için birçok olasılığın önünü açıyor. Ancak TEE'nin tanımı nedeniyle bu uygulamalar bir tür güven olmadan dağıtılamaz. Tipik olarak bu, uygulamanın üzerinde çalıştığı ürünün kullanıcısı tarafından güvenilen bir varlığın dijital imzası biçiminde gelir.
Kullanımlar ve örnekler
Güvenilir yürütme ortamları mobil cihazlarda hızla standart haline geliyor. Kullanıcılar günlük yaşamlarında mobil cihazlarına giderek daha fazla güveniyor ve güvenlik ihtiyacı da her geçen gün artıyor. TEE'li mobil cihazlar, TEE'siz cihazlardan daha güvenlidir.
TEE uygulamasına sahip cihazlarda, ana işlemciye genellikle "güvenilmeyen" denir; bu, gizli verilerin (cihaza özel şifreleme anahtarları gibi) saklandığı belirli RAM alanlarına, donanım kayıtlarına ve bir kez yazılan sigortalara erişemeyeceği anlamına gelir. üretici tarafından saklanır. Ana işlemci üzerinde çalışan yazılım, gizli verilerin kullanılmasını gerektiren tüm işlemleri TEE işlemcisine devreder.
Bunun Android ekosisteminde en çok bilinen örneği, korumalı içeriğe yönelik 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ı, tekrar korumalı kalıcı depolama, güvenli PIN ve parmak izi işleme ve hatta kötü amaçlı yazılım tespiti gibi başka birçok kullanım alanı vardır.