أمن ReplayKit في iOS و iPadOS
يُعد ReplayKit إطار عمل يسمح للمطورين بإضافة إمكانات التسجيل والبث المباشر إلى تطبيقاتهم. بالإضافة إلى ذلك، يتيح للمستخدمين التعليق على تسجيلاتهم وبثّهم باستخدام الكاميرا الأمامية والميكروفون في الجهاز.
تسجيل الأفلام
توجد عدة طبقات من الأمن مضمّنة في تسجيل الأفلام:
مربع حوار الأذونات: قبل بدء التسجيل، يعرض ReplayKit تنبيهًا بموافقة المستخدم يطلب من المستخدم تأكيد قصد تسجيل الشاشة والميكروفون والكاميرا الأمامية. يتم تقديم هذا التنبيه مرة واحدة لكل عملية في التطبيق، ويتم تقديمه مرة أخرى إذا تُرك التطبيق في الخلفية لمدة تزيد عن 8 دقائق.
التقاط الشاشة والصوت: يحدث التقاط الشاشة والصوت خارج عملية التطبيق في إعادة تشغيل البرنامج الخفي في ReplayKit. وقد تم التصميم بتلك الطريقة لضمان عدم تمكين الوصول إلى المحتوى المُسجّل أبدًا من خلال عملية التطبيق.
التقاط الشاشة والصوت في التطبيق: يسمح هذا للتطبيق بالحصول على الفيديو وعينات المخازن المؤقتة، والتي يحرسها مربع حوار الأذونات.
إنشاء الأفلام والتخزين: تتم كتابة ملف الفيلم إلى دليل لا يمكن الوصول إليه إلا في أنظمة ReplayKit الفرعية ولا يستطيع أي تطبيق الوصول إليه. وهذا يساعد على منع الجهات الخارجية من استخدام التسجيلات دون موافقة المستخدم.
المعاينة والمشاركة من قِبل المستخدم النهائي: تتوفر لدى المستخدم إمكانية معاينة ومشاركة الفيلم عبر واجهة مستخدم توفرها ReplayKit. يتم تقديم واجهة المستخدم خارج العملية من خلال البنية الأساسية لملحقات iOS ويكون لديها حق الوصول إلى ملف الفيلم المنشأ.
بث ReplayKit
توجد عدة طبقات من الأمن مضمّنة في بثّ الأفلام:
التقاط الشاشة والصوت: تشبه آلية التقاط الشاشة والصوت أثناء البث تسجيل الأفلام وتحدث في
replayd
.ملحقات البث: لكي تشارك خدمات الجهات الخارجية في بث ReplayKit، يُطلب منها إنشاء ملحقين جديدين يتم تكوينهما باستخدام نقطة نهاية com.apple.broadcast-services:
ملحق واجهة مستخدم يسمح للمستخدم بإعداد البث الخاص به
ملحق تحميل يعالج تحميل بيانات الفيديو والصوت إلى خوادم الخدمة الخلفية
تضمن البنية أن لا تمتلك تطبيقات الاستضافة أي امتيازات لمحتويات الفيديو والصوت التي يتم بثها. ويكون حق الوصول لدى ReplayKit وملحقات البث التابعة لجهات خارجية فقط.
منتقي البث: باستخدام منتقي البث، يبدأ المستخدمون عمليات البث في النظام مباشرةً من تطبيقاتهم باستخدام نفس واجهة المستخدم المحددة من قِبل النظام التي يمكن الوصول إليها باستخدام مركز التحكم. يتم تطبيق واجهة المستخدم باستخدام API خاص وتكون عبارة عن ملحق يتواجد ضمن إطار عمل ReplayKit. ويكون هذا الملحق خارج العملية من تطبيق الاستضافة.
ملحق التحميل: يستخدم الملحق الذي تنفذه خدمات البث التابعة لجهات خارجية لمعالجة محتوى الفيديو والصوت أثناء البث عينات من المخازن المؤقتة الأولية غير المشفرة. أثناء نمط المعالجة هذا، تتم سلسلة بيانات الفيديو والصوت وتمريرها إلى ملحق التحميل التابع لجهة خارجية في الوقت الفعلي من خلال اتصال XPC المباشر. يتم تشفير بيانات الفيديو عن طريق استخراج كائن IOSurface من عينة المخزن المؤقت للفيديو، وترميزها بشكل آمن ككائن XPC، وإرسالها عبر XPC إلى ملحق الجهة الخارجية، وفك تشفيرها مرة أخرى بشكل آمن إلى كائن IOSurface.