Ang FairPlay ay isang proprietary DRM technology na binuo ng Apple para protektahan ang video content sa iOS, tvOS at macOS ecosystem. Gumagamit ang system ng Secure Enclave at hardware encryption para sa ligtas na pag-imbak ng mga susi, na nagpapahintulot sa mga streaming service na magbigay ng content sa kalidad na 4K HDR. Ayon sa dokumentasyon ng Apple Developer (2025), ang FairPlay Streaming ay sinusuportahan sa lahat ng Apple device na may A8 chip at mas bago.
Mga Pangunahing Punto
FairPlay — Ito ay isang DRM technology na ginawa ng Apple at isinama sa mga operating system na iOS, tvOS, iPadOS at macOS para protektahan ang audio at video content mula sa hindi awtorisadong paggamit. Original na idinisenyo para sa iTunes at iPod, ito ay nag-evolve tungo sa isang kumpletong sistema ng proteksyon ng streaming content sa pamamagitan ng FairPlay Streaming protocol.
Hindi tulad ng ibang DRM solutions, ang FairPlay ay ganap na isinama sa hardware architecture ng mga Apple device. Ang decryption keys ay iniimbak sa Secure Enclave — isang protektadong coprocessor na nakahiwalay mula sa pangunahing OS, na ginagawang halos imposible ang pagkuha ng mga susi kahit na may jailbreak.
Ang kasaysayan ng FairPlay ay nagsimula noong 2003 sa iTunes Store, kung saan ginamit ang encryption ng AAC files gamit ang proprietary M4P format. Noong 2009, inilabas ng Apple ang FairPlay Streaming — isang protocol para sa proteksyon ng video streaming batay sa HLS, na kalaunan ay naging mandatory para sa Apple TV at iOS apps.
Simula sa iOS 10 at tvOS 10, binuksan ng Apple ang access sa FairPlay Streaming para sa third-party developers sa pamamagitan ng AVFoundation framework. Ngayon, ang Netflix, Amazon Prime Video at Disney+ ay gumagamit ng FairPlay para protektahan ang content sa Apple device hanggang sa 4K HDR resolution na may Dolby Vision.
Ang paggana ng FairPlay ay batay sa tatlong-hakbang na proseso: pag-pack ng content, pamamahagi sa pamamagitan ng CDN at decryption sa device. Sa yugto ng pag-pack, ang video ay naka-encrypt gamit ang AES-128 o AES-256, at ang encryption keys ay iniuugnay sa isang partikular na device sa pamamagitan ng Key Envelope mechanism.
Kapag nag-request ng content, ang player ay nag-i-initiate ng FairPlay session sa pamamagitan ng AVContentKeySession, na nagpapadala ng request sa license server ng content provider. Sinusuri ng server ang access rights at ibinabalik ang decryption key, na naka-encrypt gamit ang public key ng certificate ng device.
Ang client ay gumagawa ng AVContentKeySession instance at idinadagdag ang content track. Binubuo ng system ang isang SPC (Server Playback Context) request na naglalaman ng device identifier at application certificate na pinirmahan ng Apple. Ang request na ito ay ipinapadala sa license server sa pamamagitan ng HTTPS.
Bini-validate ng license server ang SPC, kinukuha ang content key mula sa database nito at ini-encrypt ito gamit ang public key ng device, na bumubuo ng CKC (Content Key Context). Ang CKC ay ibinabalik sa client, kung saan ang AVContentKeySession ay nagde-decrypt nito gamit ang private key ng 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)
Ang arkitektura ng FairPlay ay binubuo ng ilang magkakaugnay na bahagi: ang application certificate, Key Envelope, Secure Enclave at content decryption module. Ang bawat bahagi ay may sariling papel sa chain ng proteksyon mula sa server hanggang sa screen ng user.
| Bahagi | Function | Saan isinasagawa |
|---|---|---|
| Application Certificate | Pagkilala ng app sa license server | Naka-imbak sa bundle ng app |
| SPC | Server Playback Context — request ng lisensya | Binubuo ng AVContentKeySession |
| CKC | Content Key Context — tugon na may susi | Pinoproseso ng Secure Enclave |
| Secure Enclave | Hardware-level na pag-imbak at decryption ng mga susi | Hardware coprocessor ng SoC |
| Key Envelope | Container para sa susi na may metadata ng lisensya | Binubuo ng license server |
Para magtrabaho sa FairPlay, ang developer ay dapat kumuha ng FPS certificate mula sa Apple sa pamamagitan ng Apple Developer program. Ang certificate ay naglalaman ng public key ng isang asymmetric pair, na ang private na bahagi ay ginagamit ng Secure Enclave para i-decrypt ang CKC.
Ang application certificate ay idinadagdag sa bundle ng proyekto at awtomatikong pinipirmahan sa pag-compile sa pamamagitan ng Xcode. Sa unang pag-play ng protektadong content, sinusuri ng system ang validity ng certificate at humihiling ng lisensya.
Secure Enclave — Ito ay isang dedikadong coprocessor sa A-series at M-series chips ng Apple, na tumatakbo sa isolated L4 OS. Ito ay responsable para sa pagbuo at pag-imbak ng private keys, decryption ng CKC at paglipat ng content key sa video decryption module.
Lahat ng cryptographic operations ay isinasagawa nang eksklusibo sa loob ng Secure Enclave, at ang mga susi ay hindi umaalis sa protektadong lugar. Mga side-channel attacks sa data bus sa pagitan ng Secure Enclave at pangunahing processor ay hinaharangan ng hardware integrity monitoring.
Ang pagsasama ng FairPlay sa iOS at tvOS apps ay ginagawa sa pamamagitan ng AVFoundation at nangangailangan ng implementasyon ng AVContentKeySessionDelegate at AVAssetResourceLoaderDelegate protocols. Kailangang hawakan ng developer ang apat na pangunahing event: pagkuha ng SPC, pagpapadala sa server, pagkuha ng CKC at pagbibigay sa player.
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)
)
}
}
Bago magsimula ang pag-play, kailangang i-load ang application certificate mula sa bundle at ihanda ang content identifier (karaniwan ay URL ng stream o movie identifier). Ang certificate ay dapat na valid kahit man lang sa tagal ng rental ng content, kung hindi ay mabibigo ang licensing.
Ang content identifier ay ipinapasa sa licensing system sa yugto ng pagbuo ng SPC. Ginagamit ng license server ang identifier na ito para hanapin ang kaukulang key at playback policies, kasama ang mga time at device restrictions.
Sa proseso ng licensing, maaaring lumitaw ang mga error: pag-expire ng certificate, maling content identifier, kawalan ng access rights ng user. Ang FairPlay errors ay ibinabalik sa pamamagitan ng delegate contentKeySession:didFailWithError at dapat ipakita sa user ang naaangkop na UI.
Kasama sa karaniwang error codes ang FP_NO_ENTITLEMENT kapag walang subscription at FP_REQUEST_TIMEOUT para sa network issues. Inirerekomenda ang pag-implement ng retry logic na may exponential backoff para sa pansamantalang network failures.
Ang FairPlay Streaming ay isang protocol para sa proteksyon ng video streaming batay sa HLS, na gumagamit ng segment encryption at key mechanism na may limitadong panahon. Ang content provider ay nagde-deploy ng sarili nitong license server na integrated sa user authentication system.
Ang license server ay tumatanggap mula sa client ng SPC request, kinukuha mula dito ang device at content identifier, sinusuri ang user rights sa backend at bumubuo ng CKC response. Ang content key ay naka-encrypt gamit ang public key ng device mula sa FPS certificate.
Ang FairPlay license ay maaaring maglaman ng time restrictions (48-hour rental), bilang ng device (maximum 5 authorized) at playback quality (limitasyon sa 1080p para sa basic plan). Ang mga patakaran ay itinatakda sa server side at nakabalot sa Key Envelope.
Mahalagang tandaan na ang FairPlay policies ay ipinapatupad sa Secure Enclave level at hindi maaaring i-bypass ng software methods sa OS level. Kahit na may jailbreak, pinipigilan ng hardware protection ang pagkuha ng key o pagbabago ng license parameters.
| Parameter | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ecosystem | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Maximum Quality | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Hardware Protection | Secure Enclave | TEE | TPM + TEE |
| Developer Requirements | Apple FPS Certificate | Hindi kailangan | Microsoft License |
Ang suporta sa FairPlay Streaming ay depende sa bersyon ng operating system at uri ng device. Simula sa iOS 10 at tvOS 10, ang AVContentKeySession API ay available para sa lahat ng apps, ngunit ang hardware acceleration sa pamamagitan ng Secure Enclave ay kailangan lamang para sa content sa kalidad na 4K HDR. Sa mga device na may A8–A10 chip, ang maximum na resolution ay 1080p.
Sa iOS 14, nagdagdag ang Apple ng suporta para sa maramihang FairPlay session, na nagpapahintulot sa app na mag-play ng maraming protected streams nang sabay — halimbawa, picture-in-picture na may ibat ibang lisensya. Pinalawak ng iOS 15 ang protocol na may suporta sa background key renewal para sa mahabang panonood.
Para sa cross-platform streaming services, ang FairPlay ay ginagamit bilang bahagi ng multi-DRM architecture kasama ang Widevine at PlayReady. Ang license aggregators, tulad ng Axinom at EZDRM, ay nagbibigay ng unified API na nagta-translate ng mga request sa SPC format para sa FairPlay at MediaDrm format para sa Widevine, na pinapasimple ang integration sa lahat ng platform.
Mga Madalas Itanong
FairPlay — Ito ay isang DRM technology ng Apple, na naka-embed sa iOS, tvOS at macOS para protektahan ang video content. Gumagamit ito ng hardware encryption sa pamamagitan ng Secure Enclave at FairPlay Streaming protocol para sa ligtas na paglipat ng decryption keys sa mga Apple device.
Para kumuha ng FPS certificate, kailangan mong magrehistro sa Apple Developer program, gumawa ng certificate sa Certificates, Identifiers & Profiles section at i-download ito sa DER format. Ang certificate ay idinadagdag sa Xcode project bundle at pinipirmahan sa pag-compile.
Hindi, ang FairPlay ay hindi available sa Android dahil ito ay proprietary technology ng Apple na naka-link sa Secure Enclave hardware architecture sa A-series at M-series chips. Para sa Android device, ginagamit ang Widevine DRM ng Google.
FairPlay ay ang pangkalahatang pangalan ng DRM technology ng Apple, habang ang FairPlay Streaming (FPS) ay ang partikular na protocol para protektahan ang HLS streams. Ginagamit ng FPS ang FairPlay mechanisms para sa encryption ng video segments at license management sa pamamagitan ng AVContentKeySession.
Ang FairPlay license ay maaaring magtakda ng mga limitasyon sa oras ng panonood, maximum na kalidad ng video (720p, 1080p, 4K), bilang ng device at validity ng key. Lahat ng patakaran ay isinasagawa sa hardware level sa Secure Enclave at hindi maaaring i-bypass.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din