FairPlay, iOS, tvOS ve macOS ekosisteminde video içeriğini korumak için Apple tarafından geliştirilen özel bir DRM teknolojisidir. Sistem, güvenli anahtar depolama için Secure Enclave ve donanım şifrelemesini kullanarak akış hizmetlerinin içeriği 4K HDR kalitesinde sunmasını sağlar. Apple Developer belgelerine (2025) göre FairPlay Streaming, A8 çip ve üzeri tüm Apple cihazlarında desteklenmektedir.
Önemli Noktalar
FairPlay, Apple tarafından oluşturulan ve ses ile video içeriğini yetkisiz kullanıma karşı korumak için iOS, tvOS, iPadOS ve macOS işletim sistemlerine yerleşik bir DRM teknolojisidir. Başlangıçta iTunes ve iPod için geliştirilen teknoloji, FairPlay Streaming protokolü aracılığıyla tam teşekküllü bir akış içeriği koruma sistemine dönüşmüştür.
Diğer DRM çözümlerinden farklı olarak FairPlay, Apple cihazlarının donanım mimarisine tamamen entegre edilmiştir. Şifre çözme anahtarları, Secure Enclave’de saklanır. Secure Enclave, ana işletim sisteminden izole edilmiş korumalı bir yardımcı işlemcidir ve jailbreak yapılmış olsa bile anahtar çıkarmayı neredeyse imkânsız hale getirir.
FairPlay’in tarihi 2003 yılında iTunes Store ile başladı. Özel M4P formatında AAC dosya şifrelemesi uygulanıyordu. 2009’da Apple, FairPlay Streaming’i tanıttı. HLS tabanlı akış video koruma protokolüydü ve daha sonra Apple TV ile iOS uygulamaları için zorunlu hale geldi.
iOS 10 ve tvOS 10’dan itibaren Apple, AVFoundation çerçevesi aracılığıyla FairPlay Streaming’i üçüncü taraf geliştiricilere açtı. Bugün Netflix, Amazon Prime Video ve Disney+, Dolby Vision ile 4K HDR çözünürlüğe kadar Apple cihazlarında içeriği korumak için FairPlay’i kullanıyor.
FairPlay’in çalışması üç aşamalı bir sürece dayanır: içerik paketleme, CDN üzerinden dağıtım ve cihazda şifre çözme. Paketleme aşamasında video AES-128 veya AES-256 ile şifrelenir ve şifreleme anahtarları Key Envelope mekanizması aracılığıyla belirli bir cihaza bağlanır.
İçerik talep edildiğinde oynatıcı, AVContentKeySession aracılığıyla bir FairPlay oturumu başlatır ve içerik sağlayıcısının lisans sunucusuna istek gönderir. Sunucu erişim haklarını doğrular ve cihaz sertifikasının açık anahtarıyla şifrelenmiş şifre çözme anahtarını döndürür.
İstemci, AVContentKeySession’ın bir örneğini oluşturur ve içerik parçasını ekler. Sistem, cihaz tanımlayıcısını ve Apple tarafından imzalanmış uygulama sertifikasını içeren bir SPC (Server Playback Context) isteği oluşturur. Bu istek HTTPS üzerinden lisans sunucusuna gönderilir.
Lisans sunucusu SPC’yi doğrular, veritabanından içerik anahtarını alır ve cihazın açık anahtarıyla şifreleyerek CKC (Content Key Context) oluşturur. CKC istemciye döndürülür ve AVContentKeySession, Secure Enclave’in özel anahtarını kullanarak şifresini çözer.
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 mimarisi birbiriyle bağlantılı birkaç bileşen içerir: uygulama sertifikası, Key Envelope, Secure Enclave ve içerik şifre çözme modülü. Her bileşen, sunucudan kullanıcı ekranına kadar koruma zincirinde kendi rolünü oynar.
| Bileşen | Fonksiyon | Nerede Çalışır |
|---|---|---|
| Uygulama sertifikası | Uygulamayı lisans sunucusuna tanıtma | Uygulama paketinde saklanır |
| SPC | Server Playback Context — lisans isteği | AVContentKeySession tarafından oluşturulur |
| CKC | Content Key Context — anahtarlı yanıt | Secure Enclave tarafından işlenir |
| Secure Enclave | Donanımsal anahtar depolama ve şifre çözme | SoC üzerinde donanım yardımcı işlemcisi |
| Key Envelope | Lisans meta verileriyle anahtar kapsayıcısı | Lisans sunucusu tarafından oluşturulur |
FairPlay ile çalışmak için geliştiricinin Apple Developer programı aracılığıyla Apple’dan bir FPS sertifikası alması gerekir. Sertifika, özel kısmı Secure Enclave tarafından CKC’nin şifresini çözmek için kullanılan asimetrik bir çiftin açık anahtarını içerir.
Uygulama sertifikası proje paketine eklenir ve Xcode aracılığıyla derleme sırasında otomatik olarak imzalanır. Korumalı içerik ilk kez oynatıldığında sistem sertifikanın geçerliliğini doğrular ve bir lisans talep eder.
Secure Enclave, Apple A serisi ve M serisi çiplerinde izole L4 işletim sisteminde çalışan özel bir yardımcı işlemcidir. Özel anahtarların oluşturulması ve saklanmasından, CKC’nin şifresinin çözülmesinden ve içerik anahtarının video şifre çözme modülüne iletilmesinden sorumludur.
Tüm kriptografik işlemler yalnızca Secure Enclave içinde gerçekleştirilir ve anahtarlar korunan alandan asla ayrılmaz. Secure Enclave ile ana işlemci arasındaki veri yoluna yönelik yan kanal saldırıları, donanım bütünlüğü izlemesi tarafından engellenir.
FairPlay entegrasyonu iOS ve tvOS uygulamalarında AVFoundation aracılığıyla yapılır ve AVContentKeySessionDelegate ile AVAssetResourceLoaderDelegate protokollerinin uygulanmasını gerektirir. Geliştiricinin dört temel olayı yönetmesi gerekir: SPC almak, sunucuya göndermek, CKC almak ve oynatıcıya iletmek.
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)
)
}
}
Oynatmaya başlamadan önce, paketten uygulama sertifikasını yüklemeniz ve içerik tanımlayıcısını (genellikle akış URL’si veya film kimliği) hazırlamanız gerekir. Sertifika, içerik kiralama süresi boyunca geçerli olmalıdır, aksi takdirde lisanslama başarısız olur.
İçerik tanımlayıcısı SPC oluşturma aşamasında lisanslama sistemine iletilir. Lisans sunucusu, zaman ve cihaz kısıtlamaları da dahil olmak üzere ilgili anahtarı ve oynatma politikalarını bulmak için bu tanımlayıcıyı kullanır.
Lisanslama sırasında hatalar oluşabilir: sertifika süresinin dolması, geçersiz içerik tanımlayıcısı, kullanıcının erişim hakkının olmaması. FairPlay hataları contentKeySession:didFailWithError temsilcisi aracılığıyla döndürülür ve uygun kullanıcı arayüzüyle ele alınmalıdır.
Tipik hata kodları arasında abonelik olmadığında FP_NO_ENTITLEMENT ve ağ sorunlarında FP_REQUEST_TIMEOUT bulunur. Geçici ağ arızaları için üstel geri alma ile yeniden deneme mantığı uygulanması önerilir.
FairPlay Streaming, segment şifrelemesi ve süreli anahtar mekanizması kullanan HLS tabanlı akış video koruma protokolüdür. İçerik sağlayıcısı, kullanıcı kimlik doğrulama sistemiyle entegre olan kendi lisans sunucusunu kurar.
Lisans sunucusu istemciden bir SPC isteği alır, cihaz ve içerik tanımlayıcılarını çıkarır, back-end’de kullanıcı haklarını doğrular ve bir CKC yanıtı oluşturur. İçerik anahtarı, FPS sertifikasındaki cihazın açık anahtarıyla şifrelenir.
Bir FairPlay lisansı zaman kısıtlamaları (48 saatlik kiralama), cihaz sınırı (en fazla 5 yetkili cihaz) ve oynatma kalitesi kısıtlamaları (temel plan için 1080p ile sınırlı) içerebilir. Politikalar sunucu tarafında belirlenir ve Key Envelope içinde paketlenir.
FairPlay politikalarının Secure Enclave düzeyinde uygulandığını ve işletim sistemi düzeyindeki yazılım yöntemleriyle aşılamayacağını unutmamak önemlidir. Jailbreak yapılmış olsa bile donanım koruması, anahtar çıkarmayı veya lisans parametrelerinin değiştirilmesini engeller.
| Parametre | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ekosisitem | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Maksimum kalite | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Donanım koruması | Secure Enclave | TEE | TPM + TEE |
| Geliştirici gereksinimleri | Apple FPS sertifikası | Gerekmez | Microsoft lisansı |
FairPlay Streaming desteği işletim sistemi sürümüne ve cihaz türüne bağlıdır. iOS 10 ve tvOS 10’dan itibaren AVContentKeySession API’si tüm uygulamalar için kullanılabilir, ancak Secure Enclave üzerinden donanım hızlandırması yalnızca 4K HDR kalitesindeki içerik için gereklidir. A8–A10 çipli cihazlarda maksimum çözünürlük 1080p ile sınırlıdır.
iOS 14’te Apple, birden fazla FairPlay oturumunu destekleyerek bir uygulamanın aynı anda birden çok korumalı akışı oynatmasına olanak tanıdı. iOS 15, uzun süreli izleme için arka planda anahtar yenileme desteğiyle protokolü genişletti.
Platformlar arası akış hizmetleri için FairPlay, Widevine ve PlayReady ile birlikte çoklu DRM mimarisinin bir parçası olarak kullanılır. Axinom ve EZDRM gibi lisans toplayıcılar, istekleri FairPlay için SPC formatına ve Widevine için MediaDrm formatına çeviren birleşik bir API sağlayarak tüm platformlarda entegrasyonu basitleştirir.
Sıkça Sorulan Sorular
FairPlay, Apple’ın iOS, tvOS ve macOS’a entegre ettiği, video içeriğini koruyan bir DRM teknolojisidir. Apple cihazlarında şifre çözme anahtarlarının güvenli aktarımı için Secure Enclave ve FairPlay Streaming protokolü aracılığıyla donanım şifrelemesi kullanır.
FPS sertifikası almak için Apple Developer programına kaydolmanız, Certificates, Identifiers & Profiles bölümünde bir sertifika oluşturmanız ve DER formatında indirmeniz gerekir. Sertifika Xcode proje paketine eklenir ve derleme sırasında imzalanır.
Hayır, FairPlay Android’de kullanılamaz, çünkü Apple’a ait özel bir teknolojidir ve A serisi ile M serisi çiplerdeki Secure Enclave donanım mimarisine bağlıdır. Android cihazlar Google’ın Widevine DRM’ini kullanır.
FairPlay, Apple DRM teknolojisinin genel adıdır; FairPlay Streaming (FPS) ise HLS akışlarını korumak için özel bir protokoldür. FPS, AVContentKeySession aracılığıyla video segmentlerini şifrelemek ve lisansları yönetmek için FairPlay mekanizmalarını kullanır.
Bir FairPlay lisansı, izleme süresi, maksimum video kalitesi (720p, 1080p, 4K), cihaz sayısı ve anahtar geçerlilik süresi üzerinde kısıtlamalar belirleyebilir. Tüm politikalar Secure Enclave’de donanım düzeyinde uygulanır ve aşılamaz.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun