FairPlay — چیست، DRM اپل و اصول کار

نویسنده: IT Sectr منتشر شده: 2026-05-24 زمان مطالعه: 8 دقیقه

FairPlay — یک فناوری اختصاصی DRM است که توسط اپل برای محافظت از محتوای ویدیویی در اکوسیستم iOS، tvOS و macOS توسعه یافته است. این سیستم از Secure Enclave و رمزنگاری سخت‌افزاری برای ذخیره ایمن کلیدها استفاده می‌کند که به سرویس‌های استریم اجازه می‌دهد محتوا را با کیفیت 4K HDR ارائه دهند. طبق مستندات Apple Developer (2025)، FairPlay Streaming در تمام دستگاه‌های اپل با تراشه A8 و جدیدتر پشتیبانی می‌شود.

نکات اصلی

  • FairPlay — راه‌حل DRM اپل برای محافظت از ویدیو در برنامه‌های iOS، tvOS و macOS.
  • Secure Enclave ذخیره‌سازی سخت‌افزاری کلیدهای رمزگشایی در سطح تراشه را فراهم می‌کند.
  • FairPlay Streaming (FPS) — پروتکل حفاظت از جریان‌های HLS در زمان واقعی.
  • SCM (Server Certificate Module) — ماژول تأیید اعتبار سرور مجوز.
  • یکپارچه‌سازی نیاز به ثبت‌نام در برنامه Apple Developer و دریافت گواهی FPS دارد.

FairPlay چیست؟

FairPlay — یک فناوری DRM است که توسط اپل ایجاد شده و در سیستم‌عامل‌های iOS، tvOS، iPadOS و macOS برای محافظت از محتوای صوتی و تصویری در برابر استفاده غیرمجاز پیاده‌سازی شده است. این فناوری که در ابتدا برای iTunes و iPod توسعه یافته بود، به یک سیستم کامل حفاظت از محتوای استریم از طریق پروتکل FairPlay Streaming تبدیل شد.

برخلاف سایر راه‌حل‌های DRM، FairPlay کاملاً در معماری سخت‌افزاری دستگاه‌های اپل یکپارچه شده است. کلیدهای رمزگشایی در Secure Enclave — یک پردازنده کمکی محافظت‌شده که از سیستم‌عامل اصلی جدا شده است — ذخیره می‌شوند که استخراج کلیدها را حتی با جیلبریک تقریباً غیرممکن می‌کند.

تکامل FairPlay

تاریخچه FairPlay در سال ۲۰۰۳ با فروشگاه iTunes Store آغاز شد، جایی که رمزنگاری فایل‌های AAC با استفاده از فرمت اختصاصی M4P اعمال می‌شد. در سال ۲۰۰۹، اپل FairPlay Streaming — پروتکل حفاظت از ویدیوی استریم بر اساس HLS را معرفی کرد که بعداً برای Apple TV و برنامه‌های iOS الزامی شد.

از iOS 10 و tvOS 10 به بعد، اپل FairPlay Streaming را برای توسعه‌دهندگان شخص ثالث از طریق چارچوب AVFoundation باز کرد. امروزه Netflix، Amazon Prime Video و Disney+ از FairPlay برای محافظت از محتوا در دستگاه‌های اپل تا رزولوشن 4K HDR با Dolby Vision استفاده می‌کنند.

FairPlay DRM چگونه کار می‌کند؟

کار FairPlay بر اساس یک فرآیند سه مرحله‌ای است: بسته‌بندی محتوا، توزیع از طریق CDN و رمزگشایی در دستگاه. در مرحله بسته‌بندی، ویدیو با استفاده از AES-128 یا AES-256 رمزنگاری می‌شود و کلیدهای رمزنگاری از طریق مکانیزم Key Envelope به یک دستگاه خاص متصل می‌شوند.

هنگام درخواست محتوا، پخش‌کننده یک جلسه FairPlay را از طریق AVContentKeySession آغاز می‌کند که درخواستی را به سرور مجوز ارائه‌دهنده محتوا ارسال می‌کند. سرور حقوق دسترسی را بررسی کرده و کلید رمزگشایی را که با کلید عمومی گواهی دستگاه رمزنگاری شده است، برمی‌گرداند.

فرآیند دریافت مجوز

کلient یک نمونه AVContentKeySession ایجاد کرده و ترک محتوا را به آن اضافه می‌کند. سیستم درخواست SPC (Server Playback Context) را تشکیل می‌دهد که شامل شناسه دستگاه و گواهی برنامه تأیید شده توسط اپل است. این درخواست از طریق HTTPS به سرور مجوز ارسال می‌شود.

سرور مجوز SPC را اعتبارسنجی می‌کند، کلید محتوا را از پایگاه داده خود استخراج کرده و آن را با کلید عمومی دستگاه رمزنگاری می‌کند و CKC (Content Key Context) را تشکیل می‌دهد. CKC به کلient بازگردانده می‌شود، جایی که AVContentKeySession آن را با استفاده از کلید خصوصی Secure Enclave رمزگشایی می‌کند.

نمودار کار FairPlay Streaming

swift
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

معماری FairPlay شامل چندین جزء به هم مرتبط است: گواهی برنامه، Key Envelope، Secure Enclave و ماژول رمزگشایی محتوا. هر جزء نقش خود را در زنجیره حفاظت از سرور تا صفحه نمایش کاربر ایفا می‌کند.

جزءعملکردمحل اجرا
گواهی برنامهشناسایی برنامه در برابر سرور مجوزذخیره شده در باندل برنامه
SPCServer Playback Context — درخواست مجوزتوسط AVContentKeySession تشکیل می‌شود
CKCContent Key Context — پاسخ با کلیدتوسط Secure Enclave پردازش می‌شود
Secure Enclaveذخیره‌سازی سخت‌افزاری و رمزگشایی کلیدهاپردازنده کمکی سخت‌افزاری SoC
Key Envelopeمحفظه کلید با فراداده مجوزتوسط سرور مجوز تشکیل می‌شود

گواهی برنامه FairPlay

برای کار با FairPlay، توسعه‌دهنده باید از طریق برنامه Apple Developer گواهی FPS را از اپل دریافت کند. گواهی شامل کلید عمومی یک جفت نامتقارن است که بخش خصوصی آن توسط Secure Enclave برای رمزگشایی CKC استفاده می‌شود.

گواهی برنامه به باندل پروژه اضافه می‌شود و هنگام کامپایل از طریق Xcode به طور خودکار امضا می‌شود. در اولین پخش محتوای محافظت‌شده، سیستم اعتبار گواهی را بررسی کرده و مجوز درخواست می‌کند.

Secure Enclave و حفاظت سخت‌افزاری

Secure Enclave — یک پردازنده کمکی اختصاصی در تراشه‌های سری A و M اپل است که بر روی سیستم‌عامل ایزوله L4 کار می‌کند. این پردازنده مسئول تولید و ذخیره کلیدهای خصوصی، رمزگشایی CKC و انتقال کلید محتوا به ماژول رمزگشایی ویدیو است.

تمام عملیات رمزنگاری منحصراً در داخل Secure Enclave انجام می‌شود و کلیدها هرگز منطقه محافظت‌شده را ترک نمی‌کنند. حملات کانال جانبی به گذرگاه داده بین Secure Enclave و پردازنده اصلی توسط مانیتورینگ یکپارچگی سخت‌افزاری مسدود می‌شوند.

یکپارچه‌سازی FairPlay در iOS و tvOS

یکپارچه‌سازی FairPlay در برنامه‌های iOS و tvOS از طریق AVFoundation انجام می‌شود و نیاز به پیاده‌سازی پروتکل‌های AVContentKeySessionDelegate و AVAssetResourceLoaderDelegate دارد. توسعه‌دهنده باید چهار رویداد کلیدی را مدیریت کند: دریافت SPC، ارسال به سرور، دریافت CKC و تحویل به پخش‌کننده.

پیاده‌سازی نماینده AVContentKeySession

swift
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 و مجوزدهی

FairPlay Streaming — یک پروتکل حفاظت از ویدیوی استریم بر اساس HLS است که از رمزنگاری بخش‌ها و مکانیزم کلیدهای با مدت اعتبار محدود استفاده می‌کند. ارائه‌دهنده محتوا سرور مجوز خود را راه‌اندازی می‌کند که با سیستم احراز هویت کاربران یکپارچه می‌شود.

سرور مجوز درخواست SPC را از کلient دریافت می‌کند، شناسه دستگاه و محتوا را از آن استخراج کرده، حقوق کاربر را در بک‌اند بررسی کرده و پاسخ CKC را تشکیل می‌دهد. کلید محتوا با کلید عمومی دستگاه از گواهی FPS رمزنگاری می‌شود.

سیاست‌های مجوزدهی FairPlay

مجوز FairPlay می‌تواند شامل محدودیت‌های زمانی (اجاره ۴۸ ساعته)، تعداد دستگاه (حداکثر ۵ دستگاه مجاز) و کیفیت پخش (محدودیت تا ۱۰۸۰p برای طرح پایه) باشد. سیاست‌ها در سمت سرور تعیین شده و در Key Envelope بسته‌بندی می‌شوند.

توجه به این نکته مهم است که سیاست‌های FairPlay در سطح Secure Enclave اعمال می‌شوند و نمی‌توان با روش‌های نرم‌افزاری در سطح سیستم‌عامل آنها را دور زد. حتی با جیلبریک، حفاظت سخت‌افزاری از استخراج کلید یا تغییر پارامترهای مجوز جلوگیری می‌کند.

مقایسه FairPlay با سایر DRM

پارامترFairPlayWidevinePlayReady
اکوسیستمApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
حداکثر کیفیت4K HDR Dolby Vision4K UHD4K UHD
حفاظت سخت‌افزاریSecure EnclaveTEETPM + TEE
الزامات توسعه‌دهندهگواهی FPS اپلنیاز نداردمجوز Microsoft

ویژگی‌های کار FairPlay در نسخه‌های مختلف iOS

پشتیبانی از FairPlay Streaming به نسخه سیستم‌عامل و نوع دستگاه بستگی دارد. از iOS 10 و tvOS 10 به بعد، API AVContentKeySession برای همه برنامه‌ها در دسترس است، اما شتاب سخت‌افزاری از طریق Secure Enclave فقط برای محتوای با کیفیت 4K HDR مورد نیاز است. در دستگاه‌های با تراشه A8–A10 فقط حداکثر رزولوشن ۱۰۸۰p در دسترس است.

در iOS 14، اپل پشتیبانی از چندین جلسه FairPlay را اضافه کرد که به برنامه اجازه می‌دهد چند جریان محافظت‌شده را همزمان پخش کند — به عنوان مثال، تصویر در تصویر با مجوزهای مختلف. iOS 15 پروتکل را با پشتیبانی از به‌روزرسانی پس‌زمینه کلیدها برای تماشای طولانی گسترش داد.

FairPlay در معماری چندگانه DRM

برای سرویس‌های استریم بین‌پلتفرمی، FairPlay به عنوان بخشی از معماری multi-DRM همراه با Widevine و PlayReady استفاده می‌شود. تجمیع‌کنندگان مجوز مانند Axinom و EZDRM یک API یکپارچه ارائه می‌دهند که درخواست‌ها را به فرمت SPC برای FairPlay و فرمت MediaDrm برای Widevine ترجمه کرده و یکپارچه‌سازی را در همه پلتفرم‌ها ساده می‌کند.

سؤالات متداول

FairPlay DRM در iOS چیست؟

FairPlay — یک فناوری DRM از اپل است که در iOS، tvOS و macOS برای محافظت از محتوای ویدیویی تعبیه شده است. این فناوری از رمزنگاری سخت‌افزاری از طریق Secure Enclave و پروتکل FairPlay Streaming برای انتقال ایمن کلیدهای رمزگشایی در دستگاه‌های اپل استفاده می‌کند.

چگونه گواهی FairPlay Streaming دریافت کنیم؟

برای دریافت گواهی FPS، باید در برنامه Apple Developer ثبت‌نام کنید، گواهی را در بخش Certificates, Identifiers & Profiles ایجاد کرده و آن را در قالب DER دانلود کنید. گواهی به باندل پروژه Xcode اضافه شده و هنگام کامپایل امضا می‌شود.

آیا می‌توان از FairPlay در Android استفاده کرد؟

خیر، FairPlay در Android در دسترس نیست، زیرا این یک فناوری اختصاصی اپل است که به معماری سخت‌افزاری Secure Enclave در تراشه‌های سری A و M وابسته است. برای دستگاه‌های Android از Widevine DRM گوگل استفاده می‌شود.

تفاوت FairPlay و FairPlay Streaming چیست؟

FairPlay نام کلی فناوری DRM اپل است، در حالی که FairPlay Streaming (FPS) یک پروتکل خاص برای محافظت از جریان‌های HLS است. FPS از مکانیزم‌های FairPlay برای رمزنگاری بخش‌های ویدیو و مدیریت مجوزها از طریق AVContentKeySession استفاده می‌کند.

مجوز FairPlay چه محدودیت‌هایی اعمال می‌کند؟

مجوز FairPlay می‌تواند محدودیت‌هایی برای زمان تماشا، حداکثر کیفیت ویدیو (۷۲۰p، ۱۰۸۰p، ۴K)، تعداد دستگاه‌ها و مدت اعتبار کلید تعیین کند. تمام سیاست‌ها به صورت سخت‌افزاری در Secure Enclave اجرا می‌شوند و قابل دور زدن نیستند.

خلاصه

  • FairPlay — DRM اختصاصی اپل با حفاظت سخت‌افزاری از طریق Secure Enclave و پروتکل FairPlay Streaming برای HLS.
  • SPC و CKC — پیام‌های کلیدی پروتکل: درخواست مجوز از کلient و پاسخ با کلید از سرور.
  • گواهی FPS برای توسعه‌دهندگان الزامی است و از طریق برنامه Apple Developer به دست می‌آید.
  • یکپارچه‌سازی از طریق AVContentKeySession و AVAssetResourceLoaderDelegate در AVFoundation انجام می‌شود.
  • Secure Enclave ذخیره‌سازی و پردازش ایزوله کلیدها را در سطح سخت‌افزار فراهم می‌کند.
  • محدودیت‌ها شامل چارچوب‌های زمانی، کیفیت و تعداد دستگاه‌ها هستند.
  • رویکرد multi-DRM با FairPlay، Widevine و PlayReady برای برنامه‌های استریم بین‌پلتفرمی ضروری است.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید