
Keamanan ReplayKit di iOS dan iPadOS
ReplayKit adalah kerangka yang memungkinkan pengembang untuk menambahkan fitur perekaman dan siaran langsung ke app mereka. Selain itu, ReplayKit juga memungkinkan pengguna untuk menganotasi rekaman dan siaran mereka menggunakan kamera depan dan mikrofon perangkat.
Perekaman film
Ada beberapa lapisan keamanan yang terdapat di perekaman film:
Dialog izin: Sebelum perekaman dimulai, ReplayKit memberi pengguna peringatan persetujuan yang meminta pengguna untuk menyatakan niat mereka untuk merekam layar, mikrofon, dan kamera depan. Peringatan ini diberikan sekali per proses app, dan akan diberikan lagi jika app berada di latar belakang selama lebih dari 8 menit.
Pengambilan layar dan audio: Pengambilan layar dan audio berlangsung di luar proses app di replayd daemon ReplayKit. Ini dirancang untuk memastikan bahwa konten yang direkam tidak dapat diakses oleh proses app.
Pengambilan layar dan audio di app: Ini memungkinkan app untuk mendapatkan buffer video dan sampel, yang dijaga oleh dialog izin.
Pembuatan dan penyimpanan film: File film dituliskan ke direktori yang hanya dapat diakses oleh subsistem ReplayKit dan tidak dapat diakses oleh app mana pun. Ini membantu mencegah rekaman agar tidak digunakan oleh pihak ketiga tanpa persetujuan pengguna.
Pratinjau dan berbagi oleh pengguna akhir: Pengguna memiliki akses untuk mempratinjau dan membagikan film dengan antarmuka pengguna dari ReplayKit. Antarmuka pengguna diberikan di luar proses melalui infrastruktur Ekstensi iOS dan memiliki akses ke file film yang dibuat.
Penyiaran ReplayKit
Ada beberapa lapisan keamanan yang terdapat di penyiaran film:
Pengambilan layar dan audio: Mekanisme pengambilan layar dan audio selama siaran sama seperti perekaman film dan berlangsung di
replayd
.Ekstensi siaran: Layanan pihak ketiga harus membuat dua ekstensi baru yang dikonfigurasi dengan titik akhir com.apple.broadcast-services agar dapat berpartisipasi dalam siaran ReplayKit:
Ekstensi antarmuka pengguna yang memungkinkan pengguna untuk mengatur siaran mereka
Ekstensi pengunggahan yang menangani pengunggahan data video dan audio ke server ujung belakang layanan
Arsitektur membantu memastikan app host tidak memiliki hak ke konten video dan audio yang disiarkan. Hanya ReplayKit dan ekstensi penyiaran pihak ketiga yang memiliki akses.
Pemilih siaran: Dengan pemilih siaran, pengguna memulai siaran sistem secara langsung dari app mereka yang menggunakan antarmuka pengguna tetapan sistem yang sama, yang dapat diakses menggunakan Pusat Kontrol. Antarmuka pengguna diterapkan menggunakan API pribadi dan merupakan ekstensi yang berada di dalam kerangka ReplayKit. Pemilih siaran berada di luar proses app host.
Ekstensi pengunggahan: Ekstensi yang diterapkan layanan siaran pihak ketiga untuk menangani konten video dan audio selama siaran menggunakan buffer sampel mentah yang tidak dikodekan. Selama mode penanganan ini, data video dan audio disusun secara serial dan diteruskan ke ekstensi pengunggahan pihak ketiga secara real time melalui koneksi XPC langsung. Data video dikodekan dengan mengekstrak objek IOSurface dari buffer sampel video, mengodekannya secara aman sebagai objek XPC, mengirimkannya melalui XPC ke ekstensi pihak ketiga, dan mendekodekannya kembali secara aman ke objek IOSurface.