FairPlay — шта је то, DRM од Apple-а и принципи рада

Аутор: IT Sectr Објављено: 2026-05-24 Време читања: 8 мин

FairPlay — је власничка DRM технологија коју је развио Apple за заштиту видео садржаја у екосистему iOS, tvOS и macOS. Систем користи Secure Enclave и хардверско шифровање за безбедно чување кључева, што омогућава стриминг сервисима да пружају садржај у квалитету 4K HDR. Према документацији Apple Developer (2025), FairPlay Streaming је подржан на свим Apple уређајима са чипом A8 и новијим.

Главно

  • FairPlay — DRM решење компаније Apple за заштиту видеа у апликацијама iOS, tvOS и macOS.
  • Secure Enclave обезбеђује хардверско чување кључева за дешифровање на нивоу чипа.
  • FairPlay Streaming (FPS) — протокол за заштиту HLS токова у реалном времену.
  • SCM (Server Certificate Module) — модул за проверу аутентичности сервера лиценци.
  • Интеграција захтева регистрацију у програму Apple Developer и добијање FPS сертификата.

Шта је FairPlay?

FairPlay — је DRM технологија коју је створио Apple и имплементирао у оперативне системе iOS, tvOS, iPadOS и macOS за заштиту аудио и видео садржаја од неовлашћене употребе. Првобитно развијена за iTunes и iPod, еволуирала је у потпуни систем заштите стриминг садржаја кроз протокол FairPlay Streaming.

За разлику од других DRM решења, FairPlay је потпуно интегрисана у хардверску архитектуру Apple уређаја. Кључеви за дешифровање се чувају у Secure Enclave — заштићеном копроцесору, изолованом од главног оперативног система, што чини екстракцију кључева практично немогућом чак и при jailbreak-у.

Еволуција FairPlay-а

Историја 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 DRM?

Рад 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-а.

Шема рада 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 и модул за дешифровање садржаја. Свака компонента игра своју улогу у ланцу заштите од сервера до екрана корисника.

КомпонентаФункцијаГде се извршава
Сертификат апликацијеИдентификација апликације пред сервером лиценциЧува се у bundle-у апликације
SPCServer Playback Context — захтев за лиценцуФормира га AVContentKeySession
CKCContent Key Context — одговор са кључемОбрађује га Secure Enclave
Secure EnclaveХардверско чување и дешифровање кључеваХардверски копроцесор SoC-а
Key EnvelopeКонтејнер за кључ са метаподацима лиценцеФормира га сервер лиценци

Сертификат апликације FairPlay-а

За рад са FairPlay-ом, програмер мора да добије FPS сертификат од Apple-а путем програма Apple Developer. Сертификат укључује јавни кључ асиметричног пара, чији приватни део користи Secure Enclave за дешифровање CKC-а.

Сертификат апликације се додаје у bundle пројекта и аутоматски се потписује при компајлирању путем Xcode-а. При првом репродуковању заштићеног садржаја, систем проверава валидност сертификата и захтева лиценцу.

Secure Enclave и хардверска заштита

Secure Enclave — је наменски копроцесор на Apple чиповима 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)
        )
    }
}

Припрема сертификата и идентификатора садржаја

Пре почетка репродукције, потребно је учитати сертификат апликације из bundle-а и припремити идентификатор садржаја (обично URL тока или идентификатор филма). Сертификат мора да важи најмање за период изнајмљивања садржаја, иначе ће лиценцирање завршити грешком.

Идентификатор садржаја се прослеђује систему за лиценцирање у фази формирања SPC-а. Сервер лиценци користи овај идентификатор за проналажење одговарајућег кључа и политика репродукције, укључујући временска и уређајска ограничења.

Обрада грешака лиценцирања

У процесу лиценцирања могу настати грешке: истек сертификата, неважећи идентификатор садржаја, недостатак права приступа корисника. FairPlay грешке се враћају путем делегата contentKeySession:didFailWithError и треба их обрадити уз приказ одговарајућег корисничког интерфејса.

Типични кодови грешака укључују FP_NO_ENTITLEMENT при недостатку претплате и FP_REQUEST_TIMEOUT при проблемима са мрежом. Препоручује се имплементација логике поновних покушаја са експоненцијалним кашњењем за привремене мрежне проблеме.

FairPlay Streaming и лиценцирање

FairPlay Streaming — је протокол за заштиту стриминг видеа заснован на HLS-у, који користи шифровање сегмената и механизам кључева са ограниченим роком трајања. Провајдер садржаја поставља сопствени сервер лиценци који се интегрише са системом аутентификације корисника.

Сервер лиценци прима од клијента SPC захтев, издваја из њега идентификатор уређаја и садржаја, проверава права корисника у бекенду и формира CKC одговор. Кључ садржаја се шифрује јавним кључем уређаја из FPS сертификата.

Политике лиценцирања FairPlay-а

FairPlay лиценца може да садржи временска ограничења (изнајмљивање на 48 сати), број уређаја (максимално 5 ауторизованих) и квалитет репродукције (ограничење на 1080p за основни план). Политике се постављају на страни сервера и пакују се у Key Envelope.

Важно је напоменути да се FairPlay политике примењују на нивоу Secure Enclave-а и не могу се заобићи софтверским методама на нивоу оперативног система. Чак и при jailbreak-у, хардверска заштита спречава екстракцију кључа или измену параметара лиценце.

Поређење FairPlay-а са другим DRM-овима

ПараметарFairPlayWidevinePlayReady
ЕкосистемApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Максимални квалитет4K HDR Dolby Vision4K UHD4K UHD
Хардверска заштитаSecure EnclaveTEETPM + TEE
Захтеви за програмераApple FPS сертификатНије потребноMicrosoft лиценца

Карактеристике рада FairPlay-а на различитим верзијама iOS-а

Подршка за FairPlay Streaming зависи од верзије оперативног система и типа уређаја. Почевши од iOS 10 и tvOS 10, API AVContentKeySession је доступан за све апликације, али хардверско убрзање путем Secure Enclave-а је потребно само за садржај у квалитету 4K HDR. На уређајима са чипом A8–A10 доступна је само максимална резолуција 1080p.

У iOS 14, Apple је додао подршку за вишеструке FairPlay сесије, што омогућава апликацији да репродукује више заштићених токова истовремено — на пример, слика у слици са различитим лиценцама. iOS 15 је проширио протокол подршком за позадинско ажурирање кључева за дуготрајно гледање.

FairPlay у мулти-DRM архитектури

За међуплатформске стриминг сервисе, FairPlay се користи као део мулти-DRM архитектуре заједно са Widevine и PlayReady. Агрегатори лиценци, као што су Axinom и EZDRM, пружају јединствени API који преводи захтеве у SPC формат за FairPlay и MediaDrm формат за Widevine, поједностављујући интеграцију на свим платформама.

Често постављана питања

Шта је FairPlay DRM у iOS-у?

FairPlay — је DRM технологија компаније Apple, уграђена у iOS, tvOS и macOS за заштиту видео садржаја. Користи хардверско шифровање путем Secure Enclave-а и протокол FairPlay Streaming за безбедан пренос кључева за дешифровање на Apple уређајима.

Како добити FairPlay Streaming сертификат?

За добијање FPS сертификата потребно је регистровати се у програму Apple Developer, креирати сертификат у секцији Certificates, Identifiers & Profiles и преузети га у DER формату. Сертификат се додаје у bundle Xcode пројекта и потписује при компајлирању.

Може ли се FairPlay користити на Android-у?

Не, FairPlay није доступан на Android-у, јер је то власничка технологија компаније Apple везана за хардверску архитектуру Secure Enclave-а на чиповима A-серије и M-серије. За Android уређаје користи се Widevine DRM компаније Google.

Која је разлика између FairPlay-а и FairPlay Streaming-а?

FairPlay је општи назив за Apple DRM технологију, а FairPlay Streaming (FPS) је конкретан протокол за заштиту HLS токова. FPS користи FairPlay механизме за шифровање видео сегмената и управљање лиценцама путем AVContentKeySession-а.

Која ограничења намеће FairPlay лиценца?

FairPlay лиценца може да постави ограничења времена гледања, максималног квалитета видеа (720p, 1080p, 4K), броја уређаја и рока важења кључа. Све политике се извршавају хардверски у Secure Enclave-у и не могу се заобићи.

Резиме

  • FairPlay — власнички Apple DRM са хардверском заштитом путем Secure Enclave-а и FairPlay Streaming протоколом за HLS.
  • SPC и CKC — кључне поруке протокола: захтев за лиценцу од клијента и одговор са кључем од сервера.
  • FPS сертификат је обавезан за програмере и добија се путем програма Apple Developer.
  • Интеграција се изводи путем AVContentKeySession-а и AVAssetResourceLoaderDelegate-а у AVFoundation-у.
  • Secure Enclave обезбеђује изоловано чување и обраду кључева на хардверском нивоу.
  • Ограничења лиценце укључују временске оквире, квалитет и број уређаја.
  • Мулти-DRM приступ са FairPlay, Widevine и PlayReady неопходан је за међуплатформске стриминг апликације.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође