Trusty, Android için Güvenilir Yürütme Ortamı (TEE) sağlayan güvenli bir İşletim Sistemidir (OS). Trusty OS, Android işletim sistemi 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. Güvenilir 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 izole edilmiştir. 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 ™ 'sini kullanır. Benzer destek, Intel'in Sanallaştırma Teknolojisini kullanan Intel x86 platformlarında da mevcuttur.
Trusty ş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 kurmak için bir Android kullanıcı alanı kitaplığı
Not: Trusty ve Trusty API değiştirilebilir. Güvenilir API hakkında bilgi için API Başvurusuna 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üvenilir olmayan üçüncü taraf sistemlerle birleştirilen 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 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 cihazda çalışmasını sağlamaya çalışan güvenilir uygulama geliştiricileri için bir sorun olabilir. Trusty'yi bir standart olarak kullanmak, uygulama geliştiricilerin birden çok 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 ortaklara şeffaflık, işbirliği, kodun denetlenebilirliği ve hata ayıklama kolaylığı sağlar. Güvenilir uygulama geliştiricileri, güvenlik açıkları ortaya çıkma 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 onu birden çok cihazda yeniden kullanabileceklerine güvenecekler.
Uygulamalar ve hizmetler
Güvenilir bir uygulama, ikili dosyalar (yürütülebilir dosyalar ve kaynak dosyaları), bir ikili bildirim ve bir şifreleme imzası koleksiyonu olarak tanımlanır. Çalışma zamanında, Trusty uygulamaları, Trusty çekirdeği altında ayrıcalıksız modda yalıtılmış 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 izlediği süreci tam olarak değiştirir, ancak örneğin, çekirdek, bu işlemleri, güvenli bir zamanlayıcı işaretiyle çalıştırılan önceliğe dayalı, döngüsel bir zamanlayıcı kullanarak planlar. Tüm Trusty uygulamaları aynı önceliği paylaşır.
Üçüncü taraf Güvenilir uygulamaları
Şu anda tüm Trusty uygulamaları tek bir taraf tarafından geliştirilmekte ve Trusty kernel 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. Üçüncü taraf uygulama geliştirme şu anda Trusty'de desteklenmemektedir. Trusty yeni uygulamaların geliştirilmesine olanak sağlasa da, bunu yapmak son derece dikkatli yapılmalıdır; her yeni uygulama, sistemin güvenilir bilgi işlem tabanı (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ık sağlar. Bununla birlikte, bir TEE'nin tanımından dolayı, 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 şeklinde gelir.
Kullanımlar ve örnekler
Güvenilir yürütme ortamları, mobil cihazlarda hızla bir standart haline 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'si olan mobil cihazlar, TEE'si olmayan cihazlardan daha güvenlidir.
TEE uygulaması olan cihazlarda, ana işlemci genellikle "güvenilmez" olarak anılır, yani gizli verilerin (cihaza özel şifreleme anahtarları gibi) olduğu yerlerde belirli RAM alanlarına, donanım kayıtlarına ve bir kez yazılabilen sigortalara erişemez üretici tarafından saklanır. Ana işlemcide çalışan yazılım, gizli verilerin kullanılmasını gerektiren tüm işlemleri TEE işlemcisine devreder.
Android ekosisteminde bunun en yaygın bilinen örneği, korumalı içerik için DRM çerçevesidir . TEE işlemcisi üzerinde çalışan yazılım, korumalı 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.
Bir TEE için 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 birçok başka kullanım vardır.