FairPlay هي تقنية DRM ملكية طورتها Apple لحماية محتوى الفيديو في بيئة iOS، tvOS و macOS. يستخدم النظام Secure Enclave والتشفير عبر المعالج لتخزين المفاتيح بأمان، مما يسمح لخدمات البث بتقديم المحتوى بجودة 4K HDR. وفقًا لوثائق Apple Developer (2025)، فإن FairPlay Streaming مدعومة على جميع أجهزة Apple بمعالج A8 وأحدث.
النقاط الرئيسية
FairPlay هي تقنية DRM أنشأتها Apple وأدرجتها في أنظمة التشغيل iOS، tvOS، iPadOS و macOS لحماية محتوى الصوت والفيديو من الاستخدام غير المصرح به. طورت في الأصل لـ iTunes و iPod، وتطورت إلى نظام كامل لحماية محتوى البث من خلال بروتوكول FairPlay Streaming.
على عكس حلول DRM الأخرى، FairPlay مدمجة بالكامل في البنية المعدنية لأجهزة Apple. تتم تخزين مفاتيح فك التشفير في Secure Enclave — معالج مساعد محمي معزول عن نظام التشغيل الرئيسي، مما يجعل استخراج المفاتيح مستحيلًا تقريبًا حتى مع وجود جيلبريك.
بدأت قصة FairPlay عام 2003 مع متجر iTunes Store، حيث تم استخدام تشفير ملفات AAC بتنسيق M4P الملكي. في عام 2009، قدمت Apple FairPlay Streaming — بروتوكول حماية فيديو البث المباشر القائم على HLS، الذي أصبح لاحقًا إجباريًا لأجهزة Apple TV وتطبيقات iOS.
ابتداءً من iOS 10 و tvOS 10، فتحت Apple إمكانية FairPlay Streaming للمطورين الخارجيين عبر إطار AVFoundation. اليوم، تستخدم Netflix، Amazon Prime Video و Disney+ FairPlay لحماية المحتوى على أجهزة Apple بدقة تصوير 4K HDR مع Dolby Vision.
عمل FairPlay يستند إلى عملية من ثلاث مراحل: تغليف المحتوى، التوزيع عبر CDN وفك التشفير على الجهاز. في مرحلة التغليف، يتم تشفير الفيديو باستخدام AES-128 أو AES-256، وترتبط مفاتيح التشفير بجهاز محدد عبر آلية Key Envelope.
عند طلب المحتوى، يبدأ مشغل الوسائط جلسة FairPlay من خلال AVContentKeySession، الذي يرسل طلبًا إلى خادم التراخيص لموزِّع المحتوى. يتحقق الخادم من حقوق الوصول ويعيد مفتاح فك التشفير مشفرًا بالمفتاح العام لشهادة الجهاز.
يقوم العميل بإنشاء مثال من AVContentKeySession وإضافة مسار المحتوى إليه. يقوم النظام بتكوين طلب SPC (Server Playback Context)، الذي يحتوي على معرِّف الجهاز وشهادة التطبيق الموقعة من Apple. يتم إرسال هذا الطلب إلى خادم التراخيص عبر HTTPS.
يتحقق خادم التراخيص من صحة SPC، يستخرج مفتاح المحتوى من قاعدة بياناته ويشفره بالمفتاح العام للجهاز، مشكِّلًا CKC (Content Key Context). تعاد CKC إلى العميل، حيث يقوم AVContentKeySession بفك تشفيرها باستخدام المفتاح الخاص لـ Secure Enclave.
let contentKeySession = AVContentKeySession(keySystem: .fairPlayStreaming)
contentKeySession.setDelegate(self, queue: .main)
let asset = AVURLAsset(url: streamURL)
asset.resourceLoader.setDelegate(self, queue: .main)
contentKeySession.addContentKeyRecipient(asset)
let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)
بنية FairPlay تضم عدة مكونات مترابطة: شهادة التطبيق، Key Envelope، Secure Enclave ووحدة فك تشفير المحتوى. يؤدي كل مكون دوره في سلسلة الحماية من الخادم إلى شاشة المستخدم.
| المكون | الوظيفة | أين يتم التنفيذ |
|---|---|---|
| شهادة التطبيق | تحديد هوية التطبيق لخادم التراخيص | تخزن في حزمة التطبيق |
| SPC | Server Playback Context — طلب الترخيص | يتم تكوينه بواسطة AVContentKeySession |
| CKC | Content Key Context — استجابة بالمفتاح | يتم معالجته بواسطة Secure Enclave |
| Secure Enclave | تخزين وفك تشفير المفاتيح عبر المعالج | معالج مساعد مادي على SoC |
| Key Envelope | حاوية المفتاح ببيانات الترخيص الوصفية | يتم تكوينه بواسطة خادم التراخيص |
للعمل مع FairPlay، يجب على المطور الحصول على شهادة FPS من Apple عبر برنامج Apple Developer. تشمل الشهادة المفتاح العام لزوج غير متماثل، يستخدم Secure Enclave الجزء الخاص منه لفك تشفير CKC.
تضاف شهادة التطبيق إلى حزمة المشروع وتوقع تلقائيًا عند البناء من خلال Xcode. عند أول تشغيل لمحتوى محمي، يتحقق النظام من صلاحية الشهادة ويطلب ترخيصًا.
Secure Enclave هو معالج مساعد مخصص على رقاقات Apple من سلسلة A و M، يعمل على نظام تشغيل L4 معزول. هو مسؤول عن توليد وتخزين المفاتيح الخاصة، فك تشفير CKC ونقل مفتاح المحتوى إلى وحدة فك تشفير الفيديو.
تتم جميع العمليات التشفيرية حصريًا داخل Secure Enclave، ولا تغادر المفاتيح المنطقة المحمية أبدًا. هجومات القنوات الجانبية على ناقل البيانات بين Secure Enclave والمعالج الرئيسي تتم حجبها عبر مراقبة سلامة المعالج.
دمج FairPlay في تطبيقات iOS و tvOS يتم من خلال AVFoundation ويتطلب تنفيذ بروتوكولات AVContentKeySessionDelegate و AVAssetResourceLoaderDelegate. يجب على المطور معالجة أربعة أحداث رئيسية: استلام SPC، إرساله إلى الخادم، استلام CKC ونقله إلى مشغل الوسائط.
func contentKeySession(
_ session: AVContentKeySession,
didProvide keyRequest: AVContentKeyRequest
) {
guard let identifier = keyRequest.identifier
else { return }
let spc: Data = keyRequest.makeStreamingContentKeyRequestData(
appCertificate: certificate,
contentIdentifier: identifier,
options: nil
)
licenseService.requestCKC(spc) { ckc in
keyRequest.processContentKeyResponse(
AVContentKeyResponse(fairPlayStreamingKeyResponseData: ckc)
)
}
}
قبل بدء التشغيل، يجب تحميل شهادة التطبيق من الحزمة وتحضير معرِّف المحتوى (عادةً URL التدفق أو معرِّف الفيلم). يجب أن تكون الشهادة صالحة لمدة استئجار المحتوى على الأقل، وإلا ستفشل عملية الترخيص.
يتم تمرير معرِّف المحتوى إلى نظام التراخيص في مرحلة تكوين SPC. يستخدم خادم التراخيص هذا المعرِّف للبحث عن المفتاح المناسب وسياسات التشغيل، بما في ذلك قيود الوقت والأجهزة.
قد تحدث أخطاء أثناء عملية الترخيص: انتهاء صلاحية الشهادة، معرِّف محتوى غير صالح، عدم وجود حقوق وصول للمستخدم. أخطاء FairPlay تعاد من خلال المفوض contentKeySession:didFailWithError ويجب معالجتها مع عرض واجهة مستخدم مناسبة.
تشمل أكواد الأخطاء النموذجية FP_NO_ENTITLEMENT عند عدم وجود اشتراك و FP_REQUEST_TIMEOUT لمشاكل الشبكة. يوصى بتنفيذ منطق إعادة المحاولة مع تأخير أسي للأخطاء الشبكية المؤقتة.
FairPlay Streaming هو بروتوكول حماية فيديو البث المباشر القائم على HLS والذي يستخدم تشفير المقاطع وآلية المفاتيح محدودة الصلاحية. يقوم موزِّع المحتوى بنشر خادم تراخيص خاص به، يتكامل مع نظام مصادقة المستخدمين.
يتلقى خادم التراخيص طلب SPC من العميل، يستخرج معرِّفات الجهاز والمحتوى، يتحقق من حقوق المستخدم في البكند ويشكِّل استجابة CKC. يتم تشفير مفتاح المحتوى بالمفتاح العام للجهاز من شهادة FPS.
قد تحتوي ترخيصة FairPlay على قيود زمنية (إيجار لمدة 48 ساعة)، حد أقصى للأجهزة (5 أجهزة مصرح بها) وقيود جودة التشغيل (مقتصرة على 1080p للخطة الأساسية). تتم ضبط السياسات على جانب الخادم وتغلف في Key Envelope.
من المهم ملاحظة أن سياسات FairPlay تتم تطبيقها على مستوى Secure Enclave، ولا يمكن تجاوزها بأساليب برمجية على مستوى نظام التشغيل. حتى مع وجود جيلبريك، فإن الحماية عبر المعالج تمنع استخراج المفتاح أو تغيير معلمات الترخيص.
| المعلم | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| البيئة | Apple (iOS، tvOS، macOS) | Google (Android، Chrome) | Microsoft (Windows، Xbox) |
| أقصى جودة | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| الحماية عبر المعالج | Secure Enclave | TEE | TPM + TEE |
| متطلبات المطور | شهادة FPS من Apple | غير مطلوبة | ترخيص من Microsoft |
يعتمد دعم FairPlay Streaming على إصدار نظام التشغيل ونوع الجهاز. منذ iOS 10 و tvOS 10، واجهة برمجة AVContentKeySession متاحة لجميع التطبيقات، ولكن التسارع عبر المعالج من خلال Secure Enclave مطلوب فقط للمحتوى بجودة 4K HDR. على الأجهزة بمعالجات A8–A10، أقصى دقة متاحة هي 1080p.
في iOS 14، أضافت Apple دعم جلسات FairPlay متعددة، مما يسمح لتطبيق واحد بتشغيل عدة تدفقات محمية في نفس الوقت — على سبيل المثال، صورة داخل صورة بتراخيص مختلفة. وسع iOS 15 البروتوكول بدعم تجديد المفاتيح في الخلفية للمشاهدة المطولة.
بالنسبة لخدمات البث عبر المنصات، يتم استخدام FairPlay كجزء من بنية متعددة DRM مع Widevine و PlayReady. مجمعات التراخيص، مثل Axinom و EZDRM، توفر واجهة برمجة موحدة تقوم بترجمة الطلبات إلى تنسيق SPC لـ FairPlay وتنسيق MediaDrm لـ Widevine، مما يبسط الدمج على جميع المنصات.
الأسئلة الشائعة
FairPlay هي تقنية DRM من Apple مدمجة في iOS، tvOS و macOS لحماية محتوى الفيديو. تستخدم التشفير عبر المعالج من خلال Secure Enclave وبروتوكول FairPlay Streaming لنقل آمن لمفاتيح فك التشفير على أجهزة Apple.
للحصول على شهادة FPS، يجب التسجيل في برنامج Apple Developer، إنشاء شهادة في قسم Certificates، Identifiers & Profiles وتنزيلها بتنسيق DER. تضاف الشهادة إلى حزمة مشروع Xcode وتوقع عند البناء.
لا، FairPlay غير متاحة على Android، حيث أنها تقنية ملكية من Apple مرتبطة ببنية Secure Enclave على رقاقات السلسلة A و M. تستخدم أجهزة Android Widevine DRM من Google.
FairPlay هو الاسم العام لتقنية DRM من Apple، بينما FairPlay Streaming (FPS) هو بروتوكول محدد لحماية تدفقات HLS. يستخدم FPS آليات FairPlay لتشفير مقاطع الفيديو وإدارة التراخيص عبر AVContentKeySession.
يمكن لترخيصة FairPlay تحديد قيود على وقت المشاهدة، أقصى جودة فيديو (720p، 1080p، 4K)، عدد الأجهزة وفترة صلاحية المفتاح. تتم تنفيذ جميع السياسات عبر المعالج في Secure Enclave ولا يمكن تجاوزها.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.