FairPlay — Apple tomonidan iOS, tvOS va macOS ekotizimida video kontentni himoya qilish uchun ishlab chiqilgan xususiy DRM texnologiyasidir. Tizim Secure Enclave va apparat shifrlashdan foydalanib kalitlarni xavfsiz saqlash imkonini beradi, bu esa striming xizmatlariga 4K HDR sifatida kontent taqdim etishga imkon yaratadi. Apple Developer (2025) hujjatlariga ko'ra, FairPlay Streaming A8 chipi va undan yangi bo'lgan barcha Apple qurilmalarida qo'llab-quvvatlanadi.
Asosiy ma'lumotlar
FairPlay — Apple tomonidan yaratilgan va iOS, tvOS, iPadOS va macOS operatsion tizimlariga audio va video kontentni ruxsatsiz foydalanishdan himoya qilish uchun o'rnatilgan DRM texnologiyasidir. Dastlab iTunes va iPod uchun ishlab chiqilgan bo'lib, FairPlay Streaming protokoli orqali striming kontentni himoya qilishning to'liq tizimiga aylangan.
Boshqa DRM yechimlaridan farqli o'laroq, FairPlay Apple qurilmalarining apparat arxitekturasiga to'liq integratsiyalangan. Shifrni ochish kalitlari Secure Enclave da — asosiy operatsion tizimdan ajratilgan himoyalangan koprotsessorda saqlanadi, bu esa hatto jailbreak holatida ham kalitlarni chiqarib olishni amalda imkonsiz qiladi.
FairPlay tarixi 2003 yilda iTunes Store do'koni bilan boshlangan, bu yerda M4P xususiy formatidan foydalanib AAC fayllarini shifrlash qo'llanilgan. 2009 yilda Apple HLS asosidagi striming videoni himoya qilish protokoli FairPlay Streaming ni taqdim etdi, keyinchalik bu Apple TV va iOS ilovalari uchun majburiy bo'ldi.
iOS 10 va tvOS 10 dan boshlab, Apple FairPlay Streaming ni uchinchi tomon ishlab chiqaruvchilari uchun AVFoundation freymvorki orqali ochdi. Bugungi kunda Netflix, Amazon Prime Video va Disney+ Apple qurilmalarida Dolby Vision bilan 4K HDR ruxsatigacha kontentni himoya qilish uchun FairPlay dan foydalanadi.
FairPlay ning ishlashi uch bosqichli jarayonga asoslanadi: kontentni paketlash, CDN orqali tarqatish va qurilmada shifrni ochish. Paketlash bosqichida video AES-128 yoki AES-256 yordamida shifrlanadi va shifrlash kalitlari Key Envelope mexanizmi orqali ma'lum bir qurilma bilan bog'lanadi.
Kontent so'ralganda, pleyer AVContentKeySession orqali FairPlay seansini boshlaydi, bu kontent provayderining litsenziya serveriga so'rov yuboradi. Server kirish huquqlarini tekshiradi va qurilma sertifikatining ochiq kaliti bilan shifrlangan shifrni ochish kalitini qaytaradi.
Mijoz AVContentKeySession nusxasini yaratadi va unga kontent trekini qo'shadi. Tizim qurilma identifikatori va Apple tomonidan tasdiqlangan ilova sertifikatini o'z ichiga olgan SPC (Server Playback Context) so'rovini shakllantiradi. Bu so'rov HTTPS orqali litsenziya serveriga yuboriladi.
Litsenziya serveri SPC ni tekshiradi, o'z ma'lumotlar bazasidan kontent kalitini chiqaradi va uni qurilmaning ochiq kaliti bilan shifrlab, CKC (Content Key Context) ni shakllantiradi. CKC mijozga qaytariladi, bu yerda AVContentKeySession uni Secure Enclave ning maxfiy kalitidan foydalanib shifrdan chiqaradi.
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 arxitekturasi bir nechta o'zaro bog'liq komponentlarni o'z ichiga oladi: ilova sertifikati, Key Envelope, Secure Enclave va kontent shifrni ochish moduli. Har bir komponent serverdan foydalanuvchi ekranigacha bo'lgan himoya zanjirida o'z rolini o'ynaydi.
| Komponent | Funksiya | Qaerda bajariladi |
|---|---|---|
| Ilova sertifikati | Ilovani litsenziya serveri oldida identifikatsiyalash | Ilova bundle da saqlanadi |
| SPC | Server Playback Context — litsenziya so'rovi | AVContentKeySession tomonidan shakllantiriladi |
| CKC | Content Key Context — kalit bilan javob | Secure Enclave tomonidan qayta ishlanadi |
| Secure Enclave | Kalitlarning apparat saqlanishi va shifrdan chiqarilishi | SoC apparat koprotsessori |
| Key Envelope | Litsenziya metama'lumotlari bilan kalit konteyneri | Litsenziya serveri tomonidan shakllantiriladi |
FairPlay bilan ishlash uchun ishlab chiqaruvchi Apple Developer dasturi orqali Apple dan FPS sertifikatini olishi kerak. Sertifikat assimetrik juftlikning ochiq kalitini o'z ichiga oladi, uning maxfiy qismi Secure Enclave tomonidan CKC ni shifrdan chiqarish uchun ishlatiladi.
Ilova sertifikati loyihaning bundle iga qo'shiladi va Xcode orqali kompilyatsiya vaqtida avtomatik imzolanadi. Himoyalangan kontent birinchi marta ijro etilganda, tizim sertifikatning haqiqiyligini tekshiradi va litsenziya so'raydi.
Secure Enclave — Apple A-seriyasi va M-seriyasi chiplarida izolyatsiyalangan L4 operatsion tizimida ishlaydigan maxsus koprotsessordir. U maxfiy kalitlarni yaratish va saqlash, CKC ni shifrdan chiqarish va kontent kalitini video shifrni ochish moduliga uzatish uchun javobgardir.
Barcha kriptografik operatsiyalar faqat Secure Enclave ichida bajariladi va kalitlar hech qachon himoyalangan hududni tark etmaydi. Yon kanal hujumlari Secure Enclave va asosiy protsessor o'rtasidagi ma'lumotlar magistraliga apparat yaxlitligi monitoringi bilan bloklanadi.
FairPlay integratsiyasi iOS va tvOS ilovalarida AVFoundation orqali amalga oshiriladi va AVContentKeySessionDelegate va AVAssetResourceLoaderDelegate protokollarining tatbiq etilishini talab qiladi. Ishlab chiqaruvchi to'rtta asosiy hodisani boshqarishi kerak: SPC ni olish, serverga yuborish, CKC ni olish va pleyerga uzatish.
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)
)
}
}
Ijro etishni boshlashdan oldin, bundle dan ilova sertifikatini yuklash va kontent identifikatorini (odatda oqim URL i yoki film identifikatori) tayyorlash kerak. Sertifikat kamida kontent ijarasi muddati uchun amal qilishi kerak, aks holda litsenziyalash xato bilan tugaydi.
Kontent identifikatori SPC ni shakllantirish bosqichida litsenziyalash tizimiga uzatiladi. Litsenziya serveri ushbu identifikatordan tegishli kalit va ijro etish siyosatlarini, jumladan vaqt va qurilma cheklovlarini topish uchun foydalanadi.
Litsenziyalash jarayonida xatolar yuz berishi mumkin: sertifikatning muddati tugashi, noto'g'ri kontent identifikatori, foydalanuvchining kirish huquqlarining yo'qligi. FairPlay xatolari contentKeySession:didFailWithError delegati orqali qaytariladi va foydalanuvchiga tegishli interfeysni ko'rsatish bilan boshqarilishi kerak.
Oddiy xato kodlariga obuna bo'lmaganda FP_NO_ENTITLEMENT va tarmoq muammolarida FP_REQUEST_TIMEOUT kiradi. Vaqtinchalik tarmoq nosozliklari uchun eksponensial kechikish bilan qayta urinish mantiqini tatbiq etish tavsiya etiladi.
FairPlay Streaming — HLS asosidagi striming videoni himoya qilish protokoli bo'lib, segmentlarni shifrlash va cheklangan muddatli kalitlar mexanizmidan foydalanadi. Kontent provayderi foydalanuvchi autentifikatsiya tizimi bilan integratsiyalashgan o'z litsenziya serverini o'rnatadi.
Litsenziya serveri mijozdan SPC so'rovini oladi, undan qurilma va kontent identifikatorini chiqaradi, backend da foydalanuvchi huquqlarini tekshiradi va CKC javobini shakllantiradi. Kontent kaliti FPS sertifikatidan qurilmaning ochiq kaliti bilan shifrlanadi.
FairPlay litsenziyasi vaqt cheklovlari (48 soatga ijara), qurilmalar soni (maksimal 5 tasdiqlangan) va ijro etish sifati (asosiy tarif uchun 1080p cheklovi) ni o'z ichiga olishi mumkin. Siyosatlar server tomonida belgilanadi va Key Envelope da paketlanadi.
Shuni ta'kidlash kerakki, FairPlay siyosatlari Secure Enclave darajasida qo'llaniladi va ularni operatsion tizim darajasida dasturiy usullar bilan chetlab o'tish mumkin emas. Hatto jailbreak holatida ham apparat himoyasi kalitni chiqarib olish yoki litsenziya parametrlarini o'zgartirishning oldini oladi.
| Parametr | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ekotizim | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Maksimal sifat | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Apparat himoyasi | Secure Enclave | TEE | TPM + TEE |
| Ishlab chiqaruvchi talablari | Apple FPS sertifikati | Talab qilinmaydi | Microsoft litsenziyasi |
FairPlay Streaming qo'llab-quvvatlashi operatsion tizim versiyasiga va qurilma turiga bog'liq. iOS 10 va tvOS 10 dan boshlab, AVContentKeySession API barcha ilovalar uchun mavjud, ammo Secure Enclave orqali apparat tezlashtirish faqat 4K HDR sifatidagi kontent uchun talab qilinadi. A8–A10 chipli qurilmalarda faqat maksimal 1080p ruxsati mavjud.
iOS 14 da Apple bir nechta FairPlay seanslarini qo'llab-quvvatladi, bu ilovaga bir vaqtning o'zida bir nechta himoyalangan oqimlarni ijro etish imkonini beradi — masalan, rasm ichida rasm turli litsenziyalar bilan. iOS 15 uzoq muddatli tomosha qilish uchun fon kalit yangilashni qo'llab-quvvatlash bilan protokolni kengaytirdi.
Cross-platform striming xizmatlari uchun FairPlay Widevine va PlayReady bilan birgalikda multi-DRM arxitekturasining bir qismi sifatida ishlatiladi. Axinom va EZDRM kabi litsenziya agregatorlari yagona API taqdim etadi, bu so'rovlarni FairPlay uchun SPC formatiga va Widevine uchun MediaDrm formatiga tarjima qilib, barcha platformalarda integratsiyani soddalashtiradi.
Ko'p beriladigan savollar
FairPlay — bu Apple qurilmalarida video kontentni himoya qilish uchun iOS, tvOS va macOS ga o'rnatilgan Apple DRM texnologiyasidir. U Secure Enclave orqali apparat shifrlashi va FairPlay Streaming protokolidan foydalanib Apple qurilmalarida shifrni ochish kalitlarini xavfsiz uzatishni ta'minlaydi.
FPS sertifikatini olish uchun Apple Developer dasturida ro'yxatdan o'tish, Certificates, Identifiers & Profiles bo'limida sertifikat yaratish va uni DER formatida yuklab olish kerak. Sertifikat Xcode loyihasining bundle iga qo'shiladi va kompilyatsiya vaqtida imzolanadi.
Yo'q, FairPlay Android da mavjud emas, chunki bu A-seriyasi va M-seriyasi chiplarida Secure Enclave apparat arxitekturasiga bog'liq bo'lgan Apple ning xususiy texnologiyasidir. Android qurilmalari uchun Google ning Widevine DRM i ishlatiladi.
FairPlay Apple DRM texnologiyasining umumiy nomi, FairPlay Streaming (FPS) esa HLS oqimlarini himoya qilish uchun maxsus protokoldir. FPS video segmentlarini shifrlash va AVContentKeySession orqali litsenziyalarni boshqarish uchun FairPlay mexanizmlaridan foydalanadi.
FairPlay litsenziyasi tomosha vaqti, maksimal video sifati (720p, 1080p, 4K), qurilmalar soni va kalitning amal qilish muddati uchun cheklovlar o'rnatishi mumkin. Barcha siyosatlar Secure Enclave da apparat darajasida bajariladi va chetlab o'tib bo'lmaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.
Shuningdek o'qing