
iOS’te ve iPadOS’te ReplayKit güvenliği
ReplayKit, geliştiricilerin kendi uygulamalarına kayıt ve canlı yayın yeteneklerini eklemesini sağlayan bir framework’tür. Buna ek olarak kullanıcıların aygıtın öne bakan kamerasını ve mikrofonunu kullanarak kendi kayıtlarına ve yayınlarına açıklama eklemelerini de sağlar.
Film kaydı
Film kaydında yerleşik birçok güvenlik katmanı vardır:
İzinler sorgu kutusu: Kayıt başlamadan önce ReplayKit, kullanıcının ekran, mikrofon ve öne bakan kamera kaydı yapma niyetini onaylamasını isteyen bir kullanıcı onayı uyarısı sunar. Bu uyarı her uygulama işleminde bir kez sunulur ve uygulama 8 dakikadan uzun süre arka planda bırakılırsa yeniden sunulur.
Ekran ve ses kaydı: Ekran ve ses kaydı, uygulama işleminin dışında ReplayKit’in replayd arka plan programında gerçekleştirilir. Bu, uygulama işleminin kaydedilen içeriklere asla erişememesini sağlamak için tasarlanmıştır.
Uygulama içi ekran ve ses kaydı: Bu, uygulamanın, izin iletişimi ile korunan video ve örnek arabelleklerini almasına olanak tanır.
Film yaratma ve saklama: Film dosyası, yalnızca ReplayKit’in alt sistemleri tarafından erişilebilen bir dizine yazılır ve bu dizine hiçbir uygulama asla erişemez. Bu, kayıtların kullanıcının onayı olmadan üçüncü partiler tarafından kullanılmasını engellemeye yardımcı olur.
Son kullanıcı tarafından önizleme ve paylaşma: Kullanıcı, ReplayKit tarafından sağlanan kullanıcı arayüzüyle filmin önizlemesini görebilir ve filmi paylaşabilir. Kullanıcı arayüzü, iOS genişletmesi altyapısı yoluyla işlem dışında sunulur ve oluşturulan film dosyasına erişebilir.
ReplayKit yayını
Film yayınında yerleşik birçok güvenlik katmanı vardır:
Ekran ve ses kaydı: Yayın sırasındaki ekran ve ses kaydı mekanizması, film kaydı ile aynıdır ve
replayd
’de gerçekleşir.Yayın genişletmeleri: Üçüncü parti servislerin ReplayKit yayınına katılması için com.apple.broadcast-services bitiş noktası ile ayarlanmış iki yeni genişletme yaratması gerekir:
Kullanıcının kendi yayınını ayarlamasını sağlayan bir kullanıcı arayüzü genişletmesi
Video ve ses verilerinin servisin arka uçtaki sunucularına yüklenmesi işlemini yöneten bir karşıya yükleme genişletmesi
Mimari, sunucu uygulamaların yayımlanan video ve ses içeriklerinde hiçbir ayrıcalığa sahip olmamasını sağlamaya yardımcı olur. Yalnızca ReplayKit’in ve üçüncü parti yayın genişletmelerinin erişimi vardır.
Yayın seçici: Yayın seçici sayesinde, kullanıcılar Denetim Merkezi kullanılarak erişilebilen sistem tanımlı kullanıcı arayüzünün aynısını kullanarak doğrudan uygulamadan sistem yayınları başlatır. Kullanıcı arayüzü, özel bir API kullanılarak gerçekleştirilen ve ReplayKit framework’ünde bulunan bir genişletmedir. Barındırma uygulamasının işlemi dışındadır.
Karşıya yükleme genişletmesi: Üçüncü parti yayın servislerinin yayın sırasında video ve ses içeriklerini işlemek için gerçekleştirdikleri genişletme, kodlanmamış ham örnek arabelleklerini kullanır. Bu işleme modu sırasında video ve ses verileri seri hâline getirilir ve doğrudan XPC bağlantısı yoluyla gerçek zamanlı olarak üçüncü parti karşıya yükleme genişletmesine geçirilir. Video verileri; video örneği arabelleğinden IOSurface nesnesi çıkarılarak, XPC nesnesi olarak güvenli bir şekilde kodlanarak, XPC yoluyla üçüncü parti genişletmeye gönderilerek ve tekrar bir IOSurface nesnesi olarak güvenli bir şekilde kodu çözülerek kodlanır.