FairPlay — Apple DRM’i nedir ve çalışma prensipleri

Yazar: IT Sectr Yayınlanma: 2026-05-24 Okuma süresi: 8 dk

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 — iOS, tvOS ve macOS uygulamalarında videoyu koruyan Apple’ın DRM çözümü.
  • Secure Enclave, çip düzeyinde donanımsal şifre çözme anahtarı depolaması sağlar.
  • FairPlay Streaming (FPS) — HLS akışlarını gerçek zamanlı olarak koruyan protokol.
  • SCM (Server Certificate Module) — lisans sunucusunun kimliğini doğrulama modülü.
  • Entegrasyon için Apple Developer programına kayıt ve FPS sertifikası alınması gerekir.

FairPlay Nedir?

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 Evrimi

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 DRM Nasıl Çalışır?

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.

Lisans Alma Süreci

İ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.

FairPlay Streaming Çalışma Şeması

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’in Temel Bileşenleri

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şenFonksiyonNerede Çalışır
Uygulama sertifikasıUygulamayı lisans sunucusuna tanıtmaUygulama paketinde saklanır
SPCServer Playback Context — lisans isteğiAVContentKeySession tarafından oluşturulur
CKCContent Key Context — anahtarlı yanıtSecure Enclave tarafından işlenir
Secure EnclaveDonanımsal anahtar depolama ve şifre çözmeSoC üzerinde donanım yardımcı işlemcisi
Key EnvelopeLisans meta verileriyle anahtar kapsayıcısıLisans sunucusu tarafından oluşturulur

FairPlay Uygulama Sertifikası

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 ve Donanım Koruması

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.

iOS ve tvOS’ta FairPlay Entegrasyonu

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.

AVContentKeySession Temsilcisinin Uygulanması

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)
        )
    }
}

Sertifika ve İçerik Tanımlayıcısının Hazırlanması

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 Hatalarının Yönetimi

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 ve Lisanslama

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.

FairPlay Lisanslama Politikaları

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.

FairPlay’in Diğer DRM’lerle Karşılaştırılması

ParametreFairPlayWidevinePlayReady
EkosisitemApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Maksimum kalite4K HDR Dolby Vision4K UHD4K UHD
Donanım korumasıSecure EnclaveTEETPM + TEE
Geliştirici gereksinimleriApple FPS sertifikasıGerekmezMicrosoft lisansı

Farklı iOS Sürümlerinde FairPlay

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.

Çoklu DRM Mimarilerinde FairPlay

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

iOS’ta FairPlay DRM nedir?

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.

FairPlay Streaming sertifikası nasıl alını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.

FairPlay Android’de kullanılabilir mi?

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 ve FairPlay Streaming arasındaki fark nedir?

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ı hangi kısıtlamaları getirir?

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

  • FairPlay — Secure Enclave ve FairPlay Streaming protokolü ile donanım korumalı, Apple’a ait özel DRM.
  • SPC ve CKC — protokolün temel mesajları: istemciden lisans isteği ve sunucudan anahtarlı yanıt.
  • FPS sertifikası geliştiriciler için zorunludur ve Apple Developer programı üzerinden alınır.
  • Entegrasyon AVFoundation’daki AVContentKeySession ve AVAssetResourceLoaderDelegate aracılığıyla yapılır.
  • Secure Enclave, donanım düzeyinde izole anahtar depolama ve işlem sağlar.
  • Lisans kısıtlamaları zaman, kalite ve cihaz sayısını içerir.
  • Çoklu DRM yaklaşımı (FairPlay, Widevine, PlayReady) platformlar arası akış uygulamaları için gereklidir.

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.

Projeyi tartış

Ayrıca okuyun